@dsivd/prestations-ng 15.2.2 → 15.2.3-beta11

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 (198) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dsivd-prestations-ng-v15.2.3-beta11.tgz +0 -0
  3. package/esm2020/abstract-page-component.mjs +4 -4
  4. package/esm2020/directives/currency-formatter.directive.mjs +4 -4
  5. package/esm2020/directives/formatter.module.mjs +5 -5
  6. package/esm2020/directives/iban-formatter.directive.mjs +4 -4
  7. package/esm2020/directives/ide-formatter.directive.mjs +4 -4
  8. package/esm2020/directives/ndc-formatter.directive.mjs +4 -4
  9. package/esm2020/foehn-address/foehn-address.module.mjs +5 -5
  10. package/esm2020/foehn-address/foehn-display-address.component.mjs +4 -4
  11. package/esm2020/foehn-address/foehn-input-address.component.mjs +4 -4
  12. package/esm2020/foehn-address/foehn-input-foreign-locality.component.mjs +4 -4
  13. package/esm2020/foehn-address/foehn-input-foreign-street.component.mjs +4 -4
  14. package/esm2020/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.mjs +4 -4
  15. package/esm2020/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.mjs +4 -4
  16. package/esm2020/foehn-agenda/foehn-agenda.component.mjs +4 -4
  17. package/esm2020/foehn-agenda/foehn-agenda.module.mjs +5 -5
  18. package/esm2020/foehn-autocomplete/foehn-autocomplete.component.mjs +4 -4
  19. package/esm2020/foehn-autocomplete/foehn-autocomplete.module.mjs +5 -5
  20. package/esm2020/foehn-boolean/foehn-boolean-checkbox.component.mjs +4 -4
  21. package/esm2020/foehn-boolean/foehn-boolean-radio.component.mjs +4 -4
  22. package/esm2020/foehn-boolean/foehn-boolean.module.mjs +5 -5
  23. package/esm2020/foehn-breadcrumb/breadcrumb-event.service.mjs +4 -4
  24. package/esm2020/foehn-breadcrumb/foehn-breadcrumb.component.mjs +4 -4
  25. package/esm2020/foehn-breadcrumb/foehn-breadcrumb.module.mjs +5 -5
  26. package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +4 -4
  27. package/esm2020/foehn-checkables/foehn-checkables.module.mjs +5 -5
  28. package/esm2020/foehn-checkables/foehn-checkbox.component.mjs +4 -4
  29. package/esm2020/foehn-checkables/foehn-radio.component.mjs +4 -4
  30. package/esm2020/foehn-checkables/foehn-select.component.mjs +4 -4
  31. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.component.mjs +4 -4
  32. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.module.mjs +5 -5
  33. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.service.mjs +4 -4
  34. package/esm2020/foehn-date-picker/foehn-date-picker.component.mjs +4 -4
  35. package/esm2020/foehn-date-picker/foehn-date-picker.module.mjs +5 -5
  36. package/esm2020/foehn-date-picker-button/foehn-date-picker-button.component.mjs +4 -4
  37. package/esm2020/foehn-date-picker-button/foehn-date-picker-button.module.mjs +5 -5
  38. package/esm2020/foehn-debug-summary/foehn-debug-summary.component.mjs +4 -4
  39. package/esm2020/foehn-debug-summary/foehn-debug-summary.component.module.mjs +5 -5
  40. package/esm2020/foehn-decision-electronique/foehn-decision-electronique.component.mjs +4 -4
  41. package/esm2020/foehn-decision-electronique/foehn-decision-electronique.module.mjs +5 -5
  42. package/esm2020/foehn-footer/foehn-footer.component.mjs +4 -4
  43. package/esm2020/foehn-footer/foehn-footer.module.mjs +5 -5
  44. package/esm2020/foehn-form/foehn-form.component.mjs +4 -4
  45. package/esm2020/foehn-form/foehn-form.module.mjs +5 -5
  46. package/esm2020/foehn-growl/foehn-growl.component.mjs +4 -4
  47. package/esm2020/foehn-growl/foehn-growl.module.mjs +5 -5
  48. package/esm2020/foehn-growl/growl-broker.service.mjs +4 -4
  49. package/esm2020/foehn-header/foehn-header.component.mjs +4 -4
  50. package/esm2020/foehn-header/foehn-header.module.mjs +5 -5
  51. package/esm2020/foehn-header/foehn-skip-link.component.mjs +4 -4
  52. package/esm2020/foehn-help-modal/foehn-help-modal.component.mjs +4 -4
  53. package/esm2020/foehn-help-modal/foehn-help-modal.module.mjs +5 -5
  54. package/esm2020/foehn-icons/abstract-icon-component.mjs +4 -4
  55. package/esm2020/foehn-icons/foehn-icon-calendar.component.mjs +4 -4
  56. package/esm2020/foehn-icons/foehn-icon-check-square-o.component.mjs +4 -4
  57. package/esm2020/foehn-icons/foehn-icon-check.component.mjs +4 -4
  58. package/esm2020/foehn-icons/foehn-icon-chevron-down.component.mjs +4 -4
  59. package/esm2020/foehn-icons/foehn-icon-chevron-left.component.mjs +4 -4
  60. package/esm2020/foehn-icons/foehn-icon-chevron-right.component.mjs +4 -4
  61. package/esm2020/foehn-icons/foehn-icon-chevron-up.component.mjs +4 -4
  62. package/esm2020/foehn-icons/foehn-icon-clock.component.mjs +4 -4
  63. package/esm2020/foehn-icons/foehn-icon-comment-dots.component.mjs +4 -4
  64. package/esm2020/foehn-icons/foehn-icon-edit.component.mjs +4 -4
  65. package/esm2020/foehn-icons/foehn-icon-external-link-alt.component.mjs +4 -4
  66. package/esm2020/foehn-icons/foehn-icon-file-pdf.component.mjs +4 -4
  67. package/esm2020/foehn-icons/foehn-icon-info-circle.component.mjs +4 -4
  68. package/esm2020/foehn-icons/foehn-icon-lock.component.mjs +4 -4
  69. package/esm2020/foehn-icons/foehn-icon-map-marker.component.mjs +4 -4
  70. package/esm2020/foehn-icons/foehn-icon-minus-circle.component.mjs +4 -4
  71. package/esm2020/foehn-icons/foehn-icon-plus-circle.component.mjs +4 -4
  72. package/esm2020/foehn-icons/foehn-icon-plus-square.component.mjs +4 -4
  73. package/esm2020/foehn-icons/foehn-icon-search.component.mjs +4 -4
  74. package/esm2020/foehn-icons/foehn-icon-times.component.mjs +4 -4
  75. package/esm2020/foehn-icons/foehn-icon-trash-alt.component.mjs +4 -4
  76. package/esm2020/foehn-icons/foehn-icon-unlock-alt.component.mjs +4 -4
  77. package/esm2020/foehn-icons/foehn-icons.module.mjs +5 -5
  78. package/esm2020/foehn-input/foehn-input-email.component.mjs +4 -4
  79. package/esm2020/foehn-input/foehn-input-hidden.component.mjs +4 -4
  80. package/esm2020/foehn-input/foehn-input-number.component.mjs +60 -13
  81. package/esm2020/foehn-input/foehn-input-password.component.mjs +4 -4
  82. package/esm2020/foehn-input/foehn-input-phone.component.mjs +4 -4
  83. package/esm2020/foehn-input/foehn-input-string.component.mjs +4 -4
  84. package/esm2020/foehn-input/foehn-input-text.component.mjs +4 -4
  85. package/esm2020/foehn-input/foehn-input-textarea.component.mjs +4 -4
  86. package/esm2020/foehn-input/foehn-input.component.mjs +4 -4
  87. package/esm2020/foehn-input/foehn-input.module.mjs +5 -5
  88. package/esm2020/foehn-input-date/foehn-input-date.component.mjs +6 -6
  89. package/esm2020/foehn-input-time/foehn-input-time.component.mjs +6 -6
  90. package/esm2020/foehn-list/foehn-list.component.mjs +4 -4
  91. package/esm2020/foehn-list/foehn-list.module.mjs +5 -5
  92. package/esm2020/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +4 -4
  93. package/esm2020/foehn-menu-prestation/abstract-menu-page.component.mjs +4 -4
  94. package/esm2020/foehn-menu-prestation/abstract-page-from-menu.component.mjs +4 -4
  95. package/esm2020/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs +4 -4
  96. package/esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +4 -4
  97. package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +4 -4
  98. package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs +4 -4
  99. package/esm2020/foehn-menu-prestation/foehn-menu-prestation.module.mjs +5 -5
  100. package/esm2020/foehn-misc/foehn-abbr.component.mjs +4 -4
  101. package/esm2020/foehn-misc/foehn-misc.module.mjs +5 -5
  102. package/esm2020/foehn-modal/foehn-modal.component.mjs +4 -7
  103. package/esm2020/foehn-modal/foehn-modal.module.mjs +5 -5
  104. package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +4 -4
  105. package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.mjs +5 -5
  106. package/esm2020/foehn-nav13/foehn-input-nav13.component.mjs +6 -6
  107. package/esm2020/foehn-nav13/foehn-input-nav13.module.mjs +5 -5
  108. package/esm2020/foehn-navigation/foehn-navigation.component.mjs +4 -4
  109. package/esm2020/foehn-navigation/foehn-navigation.module.mjs +5 -5
  110. package/esm2020/foehn-navigation/foehn-navigation.service.mjs +4 -4
  111. package/esm2020/foehn-notfound/foehn-notfound.component.mjs +4 -4
  112. package/esm2020/foehn-notfound/foehn-notfound.module.mjs +5 -5
  113. package/esm2020/foehn-page/foehn-page-counter.component.mjs +4 -4
  114. package/esm2020/foehn-page/foehn-page-modal.component.mjs +4 -4
  115. package/esm2020/foehn-page/foehn-page-modal.service.mjs +4 -4
  116. package/esm2020/foehn-page/foehn-page.component.mjs +4 -4
  117. package/esm2020/foehn-page/foehn-page.module.mjs +5 -5
  118. package/esm2020/foehn-page/foehn-page.service.mjs +4 -4
  119. package/esm2020/foehn-recap-section/foehn-recap-section.component.mjs +4 -4
  120. package/esm2020/foehn-recap-section/foehn-recap-section.module.mjs +5 -5
  121. package/esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.mjs +4 -4
  122. package/esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs +5 -5
  123. package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +4 -4
  124. package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs +5 -5
  125. package/esm2020/foehn-table/foehn-table-column-configuration.mjs +1 -1
  126. package/esm2020/foehn-table/foehn-table.component.mjs +5 -5
  127. package/esm2020/foehn-table/foehn-table.module.mjs +5 -5
  128. package/esm2020/foehn-upload/abstract-foehn-uploader.component.mjs +4 -4
  129. package/esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs +4 -4
  130. package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +4 -4
  131. package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs +5 -5
  132. package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +4 -4
  133. package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs +5 -5
  134. package/esm2020/foehn-upload/foehn-multi-upload/multi-upload.service.mjs +4 -4
  135. package/esm2020/foehn-upload/foehn-multi-upload/pending-upload.service.mjs +4 -4
  136. package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +4 -4
  137. package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs +5 -5
  138. package/esm2020/foehn-user-connected-as/foehn-user-connected-as.component.mjs +4 -4
  139. package/esm2020/foehn-user-connected-as/foehn-user-connected-as.module.mjs +5 -5
  140. package/esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs +4 -4
  141. package/esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs +5 -5
  142. package/esm2020/foehn-validation-alerts/foehn-validation-alerts.component.mjs +4 -4
  143. package/esm2020/foehn-validation-alerts/foehn-validation-alerts.module.mjs +5 -5
  144. package/esm2020/gesdem/gesdem-error-handler.service.mjs +4 -4
  145. package/esm2020/gesdem/gesdem-event.service.mjs +4 -4
  146. package/esm2020/gesdem/gesdem-handler.service.mjs +5 -4
  147. package/esm2020/gesdem/gesdem-loader.guard.mjs +4 -4
  148. package/esm2020/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs +4 -4
  149. package/esm2020/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +4 -4
  150. package/esm2020/gesdem-action-recovery/gesdem-action-recovery.module.mjs +5 -5
  151. package/esm2020/gesdem-action-recovery/gesdem-action-recovery.service.mjs +4 -4
  152. package/esm2020/gesdem-confirmation/gesdem-confirmation.component.mjs +4 -4
  153. package/esm2020/gesdem-confirmation/gesdem-confirmation.module.mjs +5 -5
  154. package/esm2020/gesdem-error/gesdem-error.component.mjs +4 -4
  155. package/esm2020/gesdem-error/gesdem-error.module.mjs +5 -5
  156. package/esm2020/pipes/currency.pipe.mjs +4 -4
  157. package/esm2020/pipes/date.pipe.mjs +4 -4
  158. package/esm2020/pipes/formatIde.pipe.mjs +4 -4
  159. package/esm2020/pipes/pipes.module.mjs +5 -5
  160. package/esm2020/prestations-ng-core.module.mjs +5 -5
  161. package/esm2020/sdk-appinfo/application-info.service.mjs +4 -4
  162. package/esm2020/sdk-currency/currency.helper.mjs +4 -4
  163. package/esm2020/sdk-date/date.helper.mjs +4 -4
  164. package/esm2020/sdk-dictionary/default-dictionary.mjs +3 -1
  165. package/esm2020/sdk-dictionary/sdk-dictionary.module.mjs +5 -5
  166. package/esm2020/sdk-dictionary/sdk-dictionary.pipe.mjs +4 -4
  167. package/esm2020/sdk-dictionary/sdk-dictionary.service.mjs +6 -7
  168. package/esm2020/sdk-epayment/sdk-epayment.component.mjs +4 -4
  169. package/esm2020/sdk-epayment/sdk-epayment.module.mjs +5 -5
  170. package/esm2020/sdk-epayment/sdk-epayment.service.mjs +4 -4
  171. package/esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs +4 -4
  172. package/esm2020/sdk-recaptcha/recaptcha.service.mjs +4 -4
  173. package/esm2020/sdk-recaptcha/sdk-recaptcha.component.mjs +4 -4
  174. package/esm2020/sdk-recaptcha/sdk-recaptcha.module.mjs +5 -5
  175. package/esm2020/sdk-redirect/iam-expired-interceptor.service.mjs +29 -19
  176. package/esm2020/sdk-redirect/redirect.component.mjs +12 -21
  177. package/esm2020/sdk-redirect/sdk-redirect.module.mjs +5 -5
  178. package/esm2020/sdk-session-info/session-info-with-application.service.mjs +4 -4
  179. package/esm2020/sdk-session-info/session-info.service.mjs +4 -4
  180. package/esm2020/sdk-statistics/sdk-statistics.service.mjs +4 -4
  181. package/esm2020/sdk-support-alert/support-alert-container.component.mjs +4 -4
  182. package/esm2020/sdk-support-alert/support-alert.component.mjs +4 -4
  183. package/esm2020/sdk-support-alert/support-alert.module.mjs +5 -5
  184. package/esm2020/sdk-support-alert/support-alert.service.mjs +4 -4
  185. package/esm2020/supported-browser.mjs +2 -2
  186. package/esm2020/validation/validation-handler.service.mjs +4 -4
  187. package/fesm2015/dsivd-prestations-ng.mjs +684 -639
  188. package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
  189. package/fesm2020/dsivd-prestations-ng.mjs +683 -639
  190. package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
  191. package/foehn-input/foehn-input-number.component.d.ts +8 -1
  192. package/foehn-modal/foehn-modal.component.d.ts +1 -2
  193. package/foehn-table/foehn-table-column-configuration.d.ts +6 -1
  194. package/package.json +2 -2
  195. package/sdk-dictionary/sdk-dictionary.service.d.ts +6 -0
  196. package/sdk-redirect/iam-expired-interceptor.service.d.ts +2 -2
  197. package/sdk-redirect/redirect.component.d.ts +2 -8
  198. package/dsivd-prestations-ng-v15.2.2.tgz +0 -0
@@ -134,15 +134,15 @@ export class FoehnBoMultiUploadComponent extends AbstractFoehnUploaderComponent
134
134
  return files.slice(0, 1);
135
135
  }
136
136
  }
137
- FoehnBoMultiUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnBoMultiUploadComponent, deps: [{ token: i1.BoMultiUploadService }, { token: i2.ApplicationInfoService }, { token: i3.FoehnConfirmModalService }, { token: i4.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
138
- FoehnBoMultiUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: FoehnBoMultiUploadComponent, selector: "foehn-bo-multi-upload", inputs: { uploadUrl: "uploadUrl", deleteUrl: "deleteUrl", downloadUrl: "downloadUrl", shouldDisplayFileSavedConfirmation: "shouldDisplayFileSavedConfirmation" }, outputs: { documentDeleted: "documentDeleted" }, providers: [
137
+ FoehnBoMultiUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnBoMultiUploadComponent, deps: [{ token: i1.BoMultiUploadService }, { token: i2.ApplicationInfoService }, { token: i3.FoehnConfirmModalService }, { token: i4.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
138
+ FoehnBoMultiUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FoehnBoMultiUploadComponent, selector: "foehn-bo-multi-upload", inputs: { uploadUrl: "uploadUrl", deleteUrl: "deleteUrl", downloadUrl: "downloadUrl", shouldDisplayFileSavedConfirmation: "shouldDisplayFileSavedConfirmation" }, outputs: { documentDeleted: "documentDeleted" }, providers: [
139
139
  {
140
140
  provide: FoehnInputComponent,
141
141
  useExisting: forwardRef(() => FoehnBoMultiUploadComponent),
142
142
  multi: true
143
143
  }
144
144
  ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <a [href]=\"boMultiUploadService.getDownloadUrl(downloadUrl, document)\">\n {{ document.filename }}\n </a>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(document.fileSize) }}\n <abbr\n [title]=\"'foehn-uploader.abbr-megaoctet-title' | fromDictionary\"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-uploaded\"\n (click)=\"removeFile(document)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: document.filename }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary uploaded-global-info\"\n *ngIf=\"showGlobalInfos(model)\"\n [innerHTML]=\"getGlobalInfos(model)\"\n ></small>\n\n <ng-container *ngIf=\"canAddMoreFiles()\">\n <input\n class=\"form-control-file actual-input\"\n type=\"file\"\n [name]=\"name || label\"\n [multiple]=\"multiple\"\n [attr.accept]=\"\n overrideAcceptedExtensions\n ? overrideAcceptedExtensions\n : uploaderHelper.accept\n ? uploaderHelper.accept\n : null\n \"\n (change)=\"onFileChange($event)\"\n #inputFile\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'sr-only': !showUploadButton }\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n #entryComponent\n >\n {{ multiple ? chooseButtonLabelMultiple : chooseButtonLabel }}\n </button>\n\n <div\n *ngIf=\"dragAndDrop\"\n aria-hidden=\"true\"\n class=\"dropfile\"\n [class.dropfile-border-transparent]=\"showDropZone\"\n (click)=\"inputFile.click()\"\n >\n {{ multiple ? dropZoneLabelMultiple : dropZoneLabel }}\n </div>\n </ng-container>\n</div>\n", styles: [".dropfile{width:300px;border:3px dashed #bbb;text-align:center;margin-top:10px;cursor:pointer;padding:15px 3px}.dropfile-border-transparent{border-color:var(--white)}.actual-input{display:none}.file-list{margin-top:20px}.icon-button{border:0;background-color:transparent}.icon-button:hover{cursor:pointer}:host ::ng-deep .svg-inline--fa{color:#000!important}.drop-zone-highlight{outline:3px dashed #bbb}\n"], components: [{ type: i5.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i6.FoehnIconTimesComponent, selector: "foehn-icon-times" }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": i9.SdkDictionaryPipe } });
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnBoMultiUploadComponent, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnBoMultiUploadComponent, decorators: [{
146
146
  type: Component,
147
147
  args: [{ selector: 'foehn-bo-multi-upload', providers: [
148
148
  {
@@ -162,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
162
162
  }], documentDeleted: [{
163
163
  type: Output
164
164
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tYm8tbXVsdGktdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11cGxvYWQvZm9laG4tYm8tbXVsdGktdXBsb2FkL2ZvZWhuLWJvLW11bHRpLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdXBsb2FkL2ZvZWhuLWJvLW11bHRpLXVwbG9hZC9mb2Vobi1iby1tdWx0aS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXJFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7OztBQWM5RSxNQUFNLE9BQU8sMkJBQ1QsU0FBUSw4QkFBbUQ7SUFtQjNELFlBQ0ksb0JBQTBDLEVBQ2hDLHNCQUE4QyxFQUM5QyxtQkFBNkMsRUFDN0MsaUJBQXVDO1FBRWpELEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBSjVELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQUM3QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXNCO1FBWHJELHVDQUFrQyxHQUFHLElBQUksQ0FBQztRQUcxQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFxQixD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bUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjswTkFNRCxTQUFTO3NCQURSLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixrQ0FBa0M7c0JBRGpDLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlTWFwLCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJvTXVsdGlVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9iby1tdWx0aS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBEb2N1bWVudFJlZmVyZW5jZSB9IGZyb20gJy4uL2RvY3VtZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuQ29uZmlybU1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtRXJyb3IgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yJztcbmltcG9ydCB7IEJvRG9jdW1lbnRFcnJvciB9IGZyb20gJy4vYm8tbXVsdGktdXBsb2FkLnR5cGUnO1xuaW1wb3J0IHsgQWJzdHJhY3RGb2VoblVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtZm9laG4tdXBsb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWJvLW11bHRpLXVwbG9hZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWJvLW11bHRpLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4uL2ZvZWhuLXVwbG9hZC5jb21wb25lbnQuY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2VobkJvTXVsdGlVcGxvYWRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5Cb011bHRpVXBsb2FkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdEZvZWhuVXBsb2FkZXJDb21wb25lbnQ8RG9jdW1lbnRSZWZlcmVuY2VbXT5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIHVwbG9hZFVybDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBkZWxldGVVcmw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZG93bmxvYWRVcmw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvdWxkRGlzcGxheUZpbGVTYXZlZENvbmZpcm1hdGlvbiA9IHRydWU7XG5cbiAgICBAT3V0cHV0KClcbiAgICBkb2N1bWVudERlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERvY3VtZW50UmVmZXJlbmNlPigpO1xuXG4gICAgYm9NdWx0aVVwbG9hZFNlcnZpY2U6IEJvTXVsdGlVcGxvYWRTZXJ2aWNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGJvTXVsdGlVcGxvYWRTZXJ2aWNlOiBCb011bHRpVXBsb2FkU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBjb25maXJtTW9kYWxTZXJ2aWNlOiBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoYXBwbGljYXRpb25JbmZvU2VydmljZSwgY29uZmlybU1vZGFsU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UpO1xuICAgICAgICB0aGlzLmJvTXVsdGlVcGxvYWRTZXJ2aWNlID0gYm9NdWx0aVVwbG9hZFNlcnZpY2U7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgLy8gQWRkIGZpbGVzIGxvZ2ljXG4gICAgICAgIHRoaXMudXBsb2FkRmlsZXNTdWJzY3JpcHRpb24gPSB0aGlzLnVwbG9hZEZpbGVzU3ViamVjdFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGZpbGVzID0+ICEhZmlsZXMpLFxuICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIGNhbGwgZXZlcnkgMzAwbXMgdG8gc3RvcCBjb25jdXJyZW50IGFjY2Vzc1xuICAgICAgICAgICAgICAgIHRocm90dGxlVGltZSgzMDApLFxuICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIGNvbmN1cnJlbnQgY2FsbCBhdCB0aGUgdGltZVxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKFxuICAgICAgICAgICAgICAgICAgICBmaWxlcyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib011bHRpVXBsb2FkU2VydmljZS51cGxvYWREb2N1bWVudHMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3VsZERpc3BsYXlGaWxlU2F2ZWRDb25maXJtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICh7IGRvY3VtZW50cywgZXJyb3JzIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UmVzdWx0RnJvbVNlcnZlcihkb2N1bWVudHMsIGVycm9ycyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzOiBGb3JtRXJyb3JbXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHN0YXR1cyB9OiBhbnkgPSBlcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlckhlbHBlci5hZGRDdXN0b21FcnJvck9yRGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3N0YXR1c31gLFxuICAgICAgICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVNYXhTaXplSW5NbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlTWF4RmlsZU5hbWVMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlSWxsZWdhbENoYXJhY3RlcnNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRXJyb3JzKFtlcnJvcnMsIHRydWVdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgIC8vIERlbGV0ZSBkb2N1bWVudCBsb2dpY1xuICAgICAgICB0aGlzLmRlbGV0ZURvY3VtZW50U3Vic2NyaXB0aW9uID0gdGhpcy5kZWxldGVEb2N1bWVudFN1YmplY3RcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihkb2N1bWVudCA9PiAhIWRvY3VtZW50KSxcbiAgICAgICAgICAgICAgICAvLyBPbmx5IG9uZSBjYWxsIGV2ZXJ5IDMwMCBtcyB0byBzdG9wIGNvbmN1cnJlbnQgYWNjZXNzXG4gICAgICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDMwMCksXG4gICAgICAgICAgICAgICAgLy8gT25seSBvbmUgY29uY3VycmVudCBjYWxsIGF0IHRoZSB0aW1lXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJvTXVsdGlVcGxvYWRTZXJ2aWNlLmRlbGV0ZURvY3VtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAvLyBTaWRlIGVmZmVjdCBvbmNlIHRoZSBkb2N1bWVudCBoYXMgYmVlbiBkZWxldGVkLlxuICAgICAgICAgICAgICAgIHRhcChkb2N1bWVudCA9PiB0aGlzLmRvY3VtZW50RGVsZXRlZC5uZXh0KGRvY3VtZW50KSksXG4gICAgICAgICAgICAgICAgdGFwKGRvY3VtZW50ID0+IHRoaXMucmVtb3ZlRG9jdW1lbnRGcm9tTW9kZWwoZG9jdW1lbnQpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGNhbkFkZE1vcmVGaWxlcygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhKHRoaXMubW9kZWwgJiYgISF0aGlzLm1vZGVsLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgb25GaWxlQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBQUkVTVEFLSVQtMzA5OiBNYXJrIGFzIHByaXN0aW5lIHNvIGVycm9ycyBjYW4gYmUgc2hvd24gZGlyZWN0bHkgdG8gdXNlciB3aGVuIHVwbG9hZGluZyBmaWxlXG4gICAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcblxuICAgICAgICBjb25zdCB0YXJnZXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZUZpbGVJdGVtTGlzdCh0YXJnZXQuZmlsZXMpO1xuICAgICAgICB0YXJnZXQudmFsdWUgPSBudWxsOyAvLyByZXNldCBoaWRkZW4gZmlsZSBpbnB1dCB2YWx1ZXNcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIG9uRHJvcChldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBsb2FkZXJIZWxwZXIucHJldmVudEFuZFN0b3AoZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5kcmFnQW5kRHJvcCkge1xuICAgICAgICAgICAgY29uc3QgZmlsZUxpc3Q6IEZpbGVMaXN0ID0gdGhpcy51cGxvYWRlckhlbHBlci5nZXRUcmFuc2ZlcihldmVudCk7XG4gICAgICAgICAgICBpZiAoZmlsZUxpc3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvcHVsYXRlRmlsZUl0ZW1MaXN0KGZpbGVMaXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVGaWxlSXRlbUxpc3QoZmlsZUxpc3Q6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgICAgIGxldCBmaWxlcyA9IEFycmF5LmZyb20oZmlsZUxpc3QpO1xuXG4gICAgICAgIGlmICghZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXaGVuIGRyYWcvZHJvcCBhbmQgYXNrZWQgZm9yIHNpbmdsZSB1cGxvYWQsIHdlIGVuc3VyZSB3ZSBzdG9yZSBvbmx5IG9uZSBmaWxlIGZvciB1cGxvYWRcbiAgICAgICAgaWYgKHRoaXMuZHJhZ0FuZERyb3AgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGZpbGVzID0gdGhpcy5tYW5hZ2VTaW5nbGVGaWxlKGZpbGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERpc3BsYXkgbG9jYWwgZXJyb3JzIGFuZCBzdG9wIHByb2Nlc3NpbmdcbiAgICAgICAgY29uc3QgZmlsZXNFcnJvcnMgPSB0aGlzLmRpc3BsYXlMb2NhbEVycm9ycyhmaWxlcyk7XG4gICAgICAgIGlmIChmaWxlc0Vycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluaXRpYWxpemUgbW9kZWwgaWYgZW1wdHlcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsIHx8ICF0aGlzLm1vZGVsLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gd2Ugc2VuZCBmaWxlcyB0byBzZXJ2ZXJcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlc1N1YmplY3QubmV4dChmaWxlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNwbGF5UmVzdWx0RnJvbVNlcnZlcihcbiAgICAgICAgZG9jdW1lbnRzOiBEb2N1bWVudFJlZmVyZW5jZVtdLFxuICAgICAgICBlcnJvcnM6IEJvRG9jdW1lbnRFcnJvcltdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzcGxheUVycm9yc0Zyb21TZXJ2ZXIoZXJyb3JzKTtcbiAgICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsLCAuLi4oZG9jdW1lbnRzIHx8IFtdKV07XG4gICAgICAgIHRoaXMudHJpZ2dlclVzZXJJbnB1dCh0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc3BsYXlFcnJvcnNGcm9tU2VydmVyKGVycm9yczogQm9Eb2N1bWVudEVycm9yW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFlcnJvcnMgfHwgIWVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIFBSRVNUQUtJVC0zMDk6IFNpbXVsYXRlIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBjb21wb25lbnRcbiAgICAgICAgICAgIC8vIG9ubHkgd2hlbiBubyBlcnJvciBzbyBpc1ByaXN0aW5lIGlzIHNldCB0byBmYWxzZSBmb3IgdmFsaWRhdGlvbiBwdXJwb3NlXG4gICAgICAgICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdFcnJvcnM6IEZvcm1FcnJvcltdID0gW107XG4gICAgICAgIGVycm9ycy5mb3JFYWNoKGVycm9yID0+XG4gICAgICAgICAgICB0aGlzLnVwbG9hZGVySGVscGVyLmFkZEN1c3RvbUVycm9yT3JEZWZhdWx0KFxuICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICBuZXdFcnJvcnMsXG4gICAgICAgICAgICAgICAgYCR7ZXJyb3IuZXJyb3JDb2RlfWAsXG4gICAgICAgICAgICAgICAgZXJyb3IubGFiZWwsXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21FcnJvcnMsXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZU1heFNpemVJbk1vLFxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnMsXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZU1heEZpbGVOYW1lTGVuZ3RoLFxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVJbGxlZ2FsQ2hhcmFjdGVyc1xuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyhbbmV3RXJyb3JzLCB0cnVlXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEb2N1bWVudEZyb21Nb2RlbChkb2N1bWVudDogRG9jdW1lbnRSZWZlcmVuY2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGVsLmluZGV4T2YoZG9jdW1lbnQpO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsXTtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlclVzZXJJbnB1dCh0aGlzLm1vZGVsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFuYWdlU2luZ2xlRmlsZShmaWxlczogRmlsZVtdKTogRmlsZVtdIHtcbiAgICAgICAgLy8gRWRnZSBicm93c2VyIGxldHMgeW91IGRyb3AgZmlsZXMgZnJvbSBkaWFsb2cgYm94IHdoZW4gc2VsZWN0aW5nIGEgZmlsZS5cbiAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgd2Ugb25seSBrZWVwIGxhc3Qgc2VsZWN0ZWQgZmlsZSBmcm9tIHVzZXJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwgJiYgdGhpcy5tb2RlbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxGaWxlcyA9IFsuLi50aGlzLm1vZGVsXTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICBjdXJyZW50TW9kZWxGaWxlcy5mb3JFYWNoKChkb2M6IGFueSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZpbGVPbkNvbmZpcm1hdGlvbihkb2MpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoZW4gd2UgZW5zdXJlIHdlIHRha2Ugb25seSBvbmUgZmlsZSBmcm9tIGN1cnJlbnQgc2VsZWN0aW9uXG4gICAgICAgIHJldHVybiBmaWxlcy5zbGljZSgwLCAxKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbY2xhc3MuZHJvcC16b25lLWhpZ2hsaWdodF09XCJzaG93RHJvcFpvbmVcIlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ0NvbnRhaW5lcicpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgKGRyYWdlbnRlcik9XCJvbkRyYWdlbnRlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cIm9uRHJhZ2xlYXZlKCRldmVudClcIlxuICAgIChkcmFnb3Zlcik9XCJvbkRyYWdvdmVyKCRldmVudClcIlxuPlxuICAgIDxsYWJlbFxuICAgICAgICBbYXR0ci5mb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAqbmdJZj1cIiEhbGFiZWxcIlxuICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3NyLW9ubHknIDogbGFiZWxTdHlsZU1vZGlmaWVyXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHNcbiAgICAgICAgW2NvbXBvbmVudF09XCJ0aGlzXCJcbiAgICAgICAgW3Nob3VsZEVycm9yc0JlTGl2ZV09XCJoYXNMaXZlVXBsb2FkRXJyb3JzKClcIlxuICAgID48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8IS0tIFBSRVNUQUtJVC0zMDk6IEZha2UgaW5wdXQgd2l0aCBOZ01vZGVsIHRvIGJlIHJlZ2lzdGVyZWQgaW50byBGb3JtIGNvbnRyb2xzIC0tPlxuICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiIFtuZ01vZGVsXT1cIm1vZGVsXCIgLz5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IGRvY3VtZW50IG9mIG1vZGVsOyB0cmFja0J5OiB0cmFja0J5RG9jdW1lbnRcIlxuICAgICAgICBjbGFzcz1cImZpbGUgZmlsZS11cGxvYWRlZFwiXG4gICAgPlxuICAgICAgICA8YSBbaHJlZl09XCJib011bHRpVXBsb2FkU2VydmljZS5nZXREb3dubG9hZFVybChkb3dubG9hZFVybCwgZG9jdW1lbnQpXCI+XG4gICAgICAgICAgICB7eyBkb2N1bWVudC5maWxlbmFtZSB9fVxuICAgICAgICA8L2E+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMSBtci0xXCI+XG4gICAgICAgICAgICAoe3sgdG9NZWdhT2N0ZXRzKGRvY3VtZW50LmZpbGVTaXplKSB9fVxuICAgICAgICAgICAgPGFiYnJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ2ZvZWhuLXVwbG9hZGVyLmFiYnItbWVnYW9jdGV0LXRpdGxlJyB8IGZyb21EaWN0aW9uYXJ5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnZm9laG4tdXBsb2FkZXIuYWJici1tZWdhb2N0ZXQnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvYWJicj5cbiAgICAgICAgICAgIClcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiFyZWFkb25seVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGljb24tYnV0dG9uIGRlbGV0ZS11cGxvYWRlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRmlsZShkb2N1bWVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXVwbG9hZGVyLmRlbGV0ZS1pY29uLXRpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeTogeyBkb2NOYW1lOiBkb2N1bWVudC5maWxlbmFtZSB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWljb24tdGltZXM+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPHNtYWxsXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5IHVwbG9hZGVkLWdsb2JhbC1pbmZvXCJcbiAgICAgICAgKm5nSWY9XCJzaG93R2xvYmFsSW5mb3MobW9kZWwpXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJnZXRHbG9iYWxJbmZvcyhtb2RlbClcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhbkFkZE1vcmVGaWxlcygpXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZmlsZSBhY3R1YWwtaW5wdXRcIlxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgW2F0dHIuYWNjZXB0XT1cIlxuICAgICAgICAgICAgICAgIG92ZXJyaWRlQWNjZXB0ZWRFeHRlbnNpb25zXG4gICAgICAgICAgICAgICAgICAgID8gb3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgOiB1cGxvYWRlckhlbHBlci5hY2NlcHRcbiAgICAgICAgICAgICAgICAgICAgPyB1cGxvYWRlckhlbHBlci5hY2NlcHRcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAjaW5wdXRGaWxlXG4gICAgICAgIC8+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdzci1vbmx5JzogIXNob3dVcGxvYWRCdXR0b24gfVwiXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImJ1aWxkSWQoJ0Vycm9yc0NvbnRhaW5lcicpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpbnB1dEZpbGUuY2xpY2soKVwiXG4gICAgICAgICAgICAjZW50cnlDb21wb25lbnRcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgbXVsdGlwbGUgPyBjaG9vc2VCdXR0b25MYWJlbE11bHRpcGxlIDogY2hvb3NlQnV0dG9uTGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJkcmFnQW5kRHJvcFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZmlsZVwiXG4gICAgICAgICAgICBbY2xhc3MuZHJvcGZpbGUtYm9yZGVyLXRyYW5zcGFyZW50XT1cInNob3dEcm9wWm9uZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaW5wdXRGaWxlLmNsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBtdWx0aXBsZSA/IGRyb3Bab25lTGFiZWxNdWx0aXBsZSA6IGRyb3Bab25lTGFiZWwgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tYm8tbXVsdGktdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11cGxvYWQvZm9laG4tYm8tbXVsdGktdXBsb2FkL2ZvZWhuLWJvLW11bHRpLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdXBsb2FkL2ZvZWhuLWJvLW11bHRpLXVwbG9hZC9mb2Vobi1iby1tdWx0aS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXJFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7OztBQWM5RSxNQUFNLE9BQU8sMkJBQ1QsU0FBUSw4QkFBbUQ7SUFtQjNELFlBQ0ksb0JBQTBDLEVBQ2hDLHNCQUE4QyxFQUM5QyxtQkFBNkMsRUFDN0MsaUJBQXVDO1FBRWpELEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBSjVELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQUM3QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXNCO1FBWHJELHVDQUFrQyxHQUFHLElBQUksQ0FBQztRQUcxQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFxQixD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bUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjswTkFNRCxTQUFTO3NCQURSLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixrQ0FBa0M7c0JBRGpDLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlTWFwLCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJvTXVsdGlVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9iby1tdWx0aS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBEb2N1bWVudFJlZmVyZW5jZSB9IGZyb20gJy4uL2RvY3VtZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuQ29uZmlybU1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtRXJyb3IgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yJztcbmltcG9ydCB7IEJvRG9jdW1lbnRFcnJvciB9IGZyb20gJy4vYm8tbXVsdGktdXBsb2FkLnR5cGUnO1xuaW1wb3J0IHsgQWJzdHJhY3RGb2VoblVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtZm9laG4tdXBsb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWJvLW11bHRpLXVwbG9hZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWJvLW11bHRpLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4uL2ZvZWhuLXVwbG9hZC5jb21wb25lbnQuY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2VobkJvTXVsdGlVcGxvYWRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5Cb011bHRpVXBsb2FkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdEZvZWhuVXBsb2FkZXJDb21wb25lbnQ8RG9jdW1lbnRSZWZlcmVuY2VbXT5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIHVwbG9hZFVybDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBkZWxldGVVcmw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZG93bmxvYWRVcmw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvdWxkRGlzcGxheUZpbGVTYXZlZENvbmZpcm1hdGlvbiA9IHRydWU7XG5cbiAgICBAT3V0cHV0KClcbiAgICBkb2N1bWVudERlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERvY3VtZW50UmVmZXJlbmNlPigpO1xuXG4gICAgYm9NdWx0aVVwbG9hZFNlcnZpY2U6IEJvTXVsdGlVcGxvYWRTZXJ2aWNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGJvTXVsdGlVcGxvYWRTZXJ2aWNlOiBCb011bHRpVXBsb2FkU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBjb25maXJtTW9kYWxTZXJ2aWNlOiBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoYXBwbGljYXRpb25JbmZvU2VydmljZSwgY29uZmlybU1vZGFsU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UpO1xuICAgICAgICB0aGlzLmJvTXVsdGlVcGxvYWRTZXJ2aWNlID0gYm9NdWx0aVVwbG9hZFNlcnZpY2U7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgLy8gQWRkIGZpbGVzIGxvZ2ljXG4gICAgICAgIHRoaXMudXBsb2FkRmlsZXNTdWJzY3JpcHRpb24gPSB0aGlzLnVwbG9hZEZpbGVzU3ViamVjdFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGZpbGVzID0+ICEhZmlsZXMpLFxuICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIGNhbGwgZXZlcnkgMzAwbXMgdG8gc3RvcCBjb25jdXJyZW50IGFjY2Vzc1xuICAgICAgICAgICAgICAgIHRocm90dGxlVGltZSgzMDApLFxuICAgICAgICAgICAgICAgIC8vIE9ubHkgb25lIGNvbmN1cnJlbnQgY2FsbCBhdCB0aGUgdGltZVxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKFxuICAgICAgICAgICAgICAgICAgICBmaWxlcyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib011bHRpVXBsb2FkU2VydmljZS51cGxvYWREb2N1bWVudHMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3VsZERpc3BsYXlGaWxlU2F2ZWRDb25maXJtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICh7IGRvY3VtZW50cywgZXJyb3JzIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UmVzdWx0RnJvbVNlcnZlcihkb2N1bWVudHMsIGVycm9ycyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzOiBGb3JtRXJyb3JbXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHN0YXR1cyB9OiBhbnkgPSBlcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlckhlbHBlci5hZGRDdXN0b21FcnJvck9yRGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3N0YXR1c31gLFxuICAgICAgICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVNYXhTaXplSW5NbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlTWF4RmlsZU5hbWVMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlSWxsZWdhbENoYXJhY3RlcnNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRXJyb3JzKFtlcnJvcnMsIHRydWVdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgIC8vIERlbGV0ZSBkb2N1bWVudCBsb2dpY1xuICAgICAgICB0aGlzLmRlbGV0ZURvY3VtZW50U3Vic2NyaXB0aW9uID0gdGhpcy5kZWxldGVEb2N1bWVudFN1YmplY3RcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihkb2N1bWVudCA9PiAhIWRvY3VtZW50KSxcbiAgICAgICAgICAgICAgICAvLyBPbmx5IG9uZSBjYWxsIGV2ZXJ5IDMwMCBtcyB0byBzdG9wIGNvbmN1cnJlbnQgYWNjZXNzXG4gICAgICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDMwMCksXG4gICAgICAgICAgICAgICAgLy8gT25seSBvbmUgY29uY3VycmVudCBjYWxsIGF0IHRoZSB0aW1lXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJvTXVsdGlVcGxvYWRTZXJ2aWNlLmRlbGV0ZURvY3VtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAvLyBTaWRlIGVmZmVjdCBvbmNlIHRoZSBkb2N1bWVudCBoYXMgYmVlbiBkZWxldGVkLlxuICAgICAgICAgICAgICAgIHRhcChkb2N1bWVudCA9PiB0aGlzLmRvY3VtZW50RGVsZXRlZC5uZXh0KGRvY3VtZW50KSksXG4gICAgICAgICAgICAgICAgdGFwKGRvY3VtZW50ID0+IHRoaXMucmVtb3ZlRG9jdW1lbnRGcm9tTW9kZWwoZG9jdW1lbnQpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGNhbkFkZE1vcmVGaWxlcygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhKHRoaXMubW9kZWwgJiYgISF0aGlzLm1vZGVsLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgb25GaWxlQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBQUkVTVEFLSVQtMzA5OiBNYXJrIGFzIHByaXN0aW5lIHNvIGVycm9ycyBjYW4gYmUgc2hvd24gZGlyZWN0bHkgdG8gdXNlciB3aGVuIHVwbG9hZGluZyBmaWxlXG4gICAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcblxuICAgICAgICBjb25zdCB0YXJnZXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZUZpbGVJdGVtTGlzdCh0YXJnZXQuZmlsZXMpO1xuICAgICAgICB0YXJnZXQudmFsdWUgPSBudWxsOyAvLyByZXNldCBoaWRkZW4gZmlsZSBpbnB1dCB2YWx1ZXNcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIG9uRHJvcChldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBsb2FkZXJIZWxwZXIucHJldmVudEFuZFN0b3AoZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5kcmFnQW5kRHJvcCkge1xuICAgICAgICAgICAgY29uc3QgZmlsZUxpc3Q6IEZpbGVMaXN0ID0gdGhpcy51cGxvYWRlckhlbHBlci5nZXRUcmFuc2ZlcihldmVudCk7XG4gICAgICAgICAgICBpZiAoZmlsZUxpc3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvcHVsYXRlRmlsZUl0ZW1MaXN0KGZpbGVMaXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVGaWxlSXRlbUxpc3QoZmlsZUxpc3Q6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgICAgIGxldCBmaWxlcyA9IEFycmF5LmZyb20oZmlsZUxpc3QpO1xuXG4gICAgICAgIGlmICghZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXaGVuIGRyYWcvZHJvcCBhbmQgYXNrZWQgZm9yIHNpbmdsZSB1cGxvYWQsIHdlIGVuc3VyZSB3ZSBzdG9yZSBvbmx5IG9uZSBmaWxlIGZvciB1cGxvYWRcbiAgICAgICAgaWYgKHRoaXMuZHJhZ0FuZERyb3AgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGZpbGVzID0gdGhpcy5tYW5hZ2VTaW5nbGVGaWxlKGZpbGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERpc3BsYXkgbG9jYWwgZXJyb3JzIGFuZCBzdG9wIHByb2Nlc3NpbmdcbiAgICAgICAgY29uc3QgZmlsZXNFcnJvcnMgPSB0aGlzLmRpc3BsYXlMb2NhbEVycm9ycyhmaWxlcyk7XG4gICAgICAgIGlmIChmaWxlc0Vycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluaXRpYWxpemUgbW9kZWwgaWYgZW1wdHlcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsIHx8ICF0aGlzLm1vZGVsLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gd2Ugc2VuZCBmaWxlcyB0byBzZXJ2ZXJcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlc1N1YmplY3QubmV4dChmaWxlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNwbGF5UmVzdWx0RnJvbVNlcnZlcihcbiAgICAgICAgZG9jdW1lbnRzOiBEb2N1bWVudFJlZmVyZW5jZVtdLFxuICAgICAgICBlcnJvcnM6IEJvRG9jdW1lbnRFcnJvcltdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzcGxheUVycm9yc0Zyb21TZXJ2ZXIoZXJyb3JzKTtcbiAgICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsLCAuLi4oZG9jdW1lbnRzIHx8IFtdKV07XG4gICAgICAgIHRoaXMudHJpZ2dlclVzZXJJbnB1dCh0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc3BsYXlFcnJvcnNGcm9tU2VydmVyKGVycm9yczogQm9Eb2N1bWVudEVycm9yW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFlcnJvcnMgfHwgIWVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIFBSRVNUQUtJVC0zMDk6IFNpbXVsYXRlIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBjb21wb25lbnRcbiAgICAgICAgICAgIC8vIG9ubHkgd2hlbiBubyBlcnJvciBzbyBpc1ByaXN0aW5lIGlzIHNldCB0byBmYWxzZSBmb3IgdmFsaWRhdGlvbiBwdXJwb3NlXG4gICAgICAgICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdFcnJvcnM6IEZvcm1FcnJvcltdID0gW107XG4gICAgICAgIGVycm9ycy5mb3JFYWNoKGVycm9yID0+XG4gICAgICAgICAgICB0aGlzLnVwbG9hZGVySGVscGVyLmFkZEN1c3RvbUVycm9yT3JEZWZhdWx0KFxuICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICBuZXdFcnJvcnMsXG4gICAgICAgICAgICAgICAgYCR7ZXJyb3IuZXJyb3JDb2RlfWAsXG4gICAgICAgICAgICAgICAgZXJyb3IubGFiZWwsXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21FcnJvcnMsXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZU1heFNpemVJbk1vLFxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnMsXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZU1heEZpbGVOYW1lTGVuZ3RoLFxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVJbGxlZ2FsQ2hhcmFjdGVyc1xuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyhbbmV3RXJyb3JzLCB0cnVlXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEb2N1bWVudEZyb21Nb2RlbChkb2N1bWVudDogRG9jdW1lbnRSZWZlcmVuY2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGVsLmluZGV4T2YoZG9jdW1lbnQpO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsXTtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlclVzZXJJbnB1dCh0aGlzLm1vZGVsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFuYWdlU2luZ2xlRmlsZShmaWxlczogRmlsZVtdKTogRmlsZVtdIHtcbiAgICAgICAgLy8gRWRnZSBicm93c2VyIGxldHMgeW91IGRyb3AgZmlsZXMgZnJvbSBkaWFsb2cgYm94IHdoZW4gc2VsZWN0aW5nIGEgZmlsZS5cbiAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgd2Ugb25seSBrZWVwIGxhc3Qgc2VsZWN0ZWQgZmlsZSBmcm9tIHVzZXJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwgJiYgdGhpcy5tb2RlbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxGaWxlcyA9IFsuLi50aGlzLm1vZGVsXTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICBjdXJyZW50TW9kZWxGaWxlcy5mb3JFYWNoKChkb2M6IGFueSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZpbGVPbkNvbmZpcm1hdGlvbihkb2MpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoZW4gd2UgZW5zdXJlIHdlIHRha2Ugb25seSBvbmUgZmlsZSBmcm9tIGN1cnJlbnQgc2VsZWN0aW9uXG4gICAgICAgIHJldHVybiBmaWxlcy5zbGljZSgwLCAxKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbY2xhc3MuZHJvcC16b25lLWhpZ2hsaWdodF09XCJzaG93RHJvcFpvbmVcIlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ0NvbnRhaW5lcicpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgKGRyYWdlbnRlcik9XCJvbkRyYWdlbnRlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cIm9uRHJhZ2xlYXZlKCRldmVudClcIlxuICAgIChkcmFnb3Zlcik9XCJvbkRyYWdvdmVyKCRldmVudClcIlxuPlxuICAgIDxsYWJlbFxuICAgICAgICBbYXR0ci5mb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAqbmdJZj1cIiEhbGFiZWxcIlxuICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3NyLW9ubHknIDogbGFiZWxTdHlsZU1vZGlmaWVyXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHNcbiAgICAgICAgW2NvbXBvbmVudF09XCJ0aGlzXCJcbiAgICAgICAgW3Nob3VsZEVycm9yc0JlTGl2ZV09XCJoYXNMaXZlVXBsb2FkRXJyb3JzKClcIlxuICAgID48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8IS0tIFBSRVNUQUtJVC0zMDk6IEZha2UgaW5wdXQgd2l0aCBOZ01vZGVsIHRvIGJlIHJlZ2lzdGVyZWQgaW50byBGb3JtIGNvbnRyb2xzIC0tPlxuICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiIFtuZ01vZGVsXT1cIm1vZGVsXCIgLz5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IGRvY3VtZW50IG9mIG1vZGVsOyB0cmFja0J5OiB0cmFja0J5RG9jdW1lbnRcIlxuICAgICAgICBjbGFzcz1cImZpbGUgZmlsZS11cGxvYWRlZFwiXG4gICAgPlxuICAgICAgICA8YSBbaHJlZl09XCJib011bHRpVXBsb2FkU2VydmljZS5nZXREb3dubG9hZFVybChkb3dubG9hZFVybCwgZG9jdW1lbnQpXCI+XG4gICAgICAgICAgICB7eyBkb2N1bWVudC5maWxlbmFtZSB9fVxuICAgICAgICA8L2E+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMSBtci0xXCI+XG4gICAgICAgICAgICAoe3sgdG9NZWdhT2N0ZXRzKGRvY3VtZW50LmZpbGVTaXplKSB9fVxuICAgICAgICAgICAgPGFiYnJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ2ZvZWhuLXVwbG9hZGVyLmFiYnItbWVnYW9jdGV0LXRpdGxlJyB8IGZyb21EaWN0aW9uYXJ5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnZm9laG4tdXBsb2FkZXIuYWJici1tZWdhb2N0ZXQnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvYWJicj5cbiAgICAgICAgICAgIClcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiFyZWFkb25seVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGljb24tYnV0dG9uIGRlbGV0ZS11cGxvYWRlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRmlsZShkb2N1bWVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXVwbG9hZGVyLmRlbGV0ZS1pY29uLXRpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeTogeyBkb2NOYW1lOiBkb2N1bWVudC5maWxlbmFtZSB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWljb24tdGltZXM+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPHNtYWxsXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5IHVwbG9hZGVkLWdsb2JhbC1pbmZvXCJcbiAgICAgICAgKm5nSWY9XCJzaG93R2xvYmFsSW5mb3MobW9kZWwpXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJnZXRHbG9iYWxJbmZvcyhtb2RlbClcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhbkFkZE1vcmVGaWxlcygpXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZmlsZSBhY3R1YWwtaW5wdXRcIlxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgW2F0dHIuYWNjZXB0XT1cIlxuICAgICAgICAgICAgICAgIG92ZXJyaWRlQWNjZXB0ZWRFeHRlbnNpb25zXG4gICAgICAgICAgICAgICAgICAgID8gb3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgOiB1cGxvYWRlckhlbHBlci5hY2NlcHRcbiAgICAgICAgICAgICAgICAgICAgPyB1cGxvYWRlckhlbHBlci5hY2NlcHRcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAjaW5wdXRGaWxlXG4gICAgICAgIC8+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdzci1vbmx5JzogIXNob3dVcGxvYWRCdXR0b24gfVwiXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImJ1aWxkSWQoJ0Vycm9yc0NvbnRhaW5lcicpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpbnB1dEZpbGUuY2xpY2soKVwiXG4gICAgICAgICAgICAjZW50cnlDb21wb25lbnRcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgbXVsdGlwbGUgPyBjaG9vc2VCdXR0b25MYWJlbE11bHRpcGxlIDogY2hvb3NlQnV0dG9uTGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJkcmFnQW5kRHJvcFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZmlsZVwiXG4gICAgICAgICAgICBbY2xhc3MuZHJvcGZpbGUtYm9yZGVyLXRyYW5zcGFyZW50XT1cInNob3dEcm9wWm9uZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaW5wdXRGaWxlLmNsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBtdWx0aXBsZSA/IGRyb3Bab25lTGFiZWxNdWx0aXBsZSA6IGRyb3Bab25lTGFiZWwgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -8,20 +8,20 @@ import { FormsModule } from '@angular/forms';
8
8
  import * as i0 from "@angular/core";
9
9
  export class FoehnBoMultiUploadModule {
10
10
  }
11
- FoehnBoMultiUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnBoMultiUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- FoehnBoMultiUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnBoMultiUploadModule, declarations: [FoehnBoMultiUploadComponent], imports: [CommonModule,
11
+ FoehnBoMultiUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnBoMultiUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ FoehnBoMultiUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnBoMultiUploadModule, declarations: [FoehnBoMultiUploadComponent], imports: [CommonModule,
13
13
  FoehnIconsModule,
14
14
  FoehnValidationAlertsModule,
15
15
  SdkDictionaryModule,
16
16
  FormsModule], exports: [FoehnBoMultiUploadComponent] });
17
- FoehnBoMultiUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnBoMultiUploadModule, imports: [[
17
+ FoehnBoMultiUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnBoMultiUploadModule, imports: [[
18
18
  CommonModule,
19
19
  FoehnIconsModule,
20
20
  FoehnValidationAlertsModule,
21
21
  SdkDictionaryModule,
22
22
  FormsModule
23
23
  ]] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnBoMultiUploadModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnBoMultiUploadModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  imports: [
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
35
35
  exports: [FoehnBoMultiUploadComponent]
36
36
  }]
37
37
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tYm8tbXVsdGktdXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11cGxvYWQvZm9laG4tYm8tbXVsdGktdXBsb2FkL2ZvZWhuLWJvLW11bHRpLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDM0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWE3QyxNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3NIQUF4Qix3QkFBd0IsaUJBSGxCLDJCQUEyQixhQU50QyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLDJCQUEyQjtRQUMzQixtQkFBbUI7UUFDbkIsV0FBVyxhQUdMLDJCQUEyQjtzSEFFNUIsd0JBQXdCLFlBVnhCO1lBQ0wsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQiwyQkFBMkI7WUFDM0IsbUJBQW1CO1lBQ25CLFdBQVc7U0FDZDsyRkFJUSx3QkFBd0I7a0JBWHBDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsV0FBVztxQkFDZDtvQkFDRCxZQUFZLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb2Vobkljb25zTW9kdWxlIH0gZnJvbSAnLi4vLi4vZm9laG4taWNvbnMvZm9laG4taWNvbnMubW9kdWxlJztcbmltcG9ydCB7IEZvZWhuVmFsaWRhdGlvbkFsZXJ0c01vZHVsZSB9IGZyb20gJy4uLy4uL2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzL2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzLm1vZHVsZSc7XG5pbXBvcnQgeyBGb2VobkJvTXVsdGlVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWJvLW11bHRpLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeU1vZHVsZSB9IGZyb20gJy4uLy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5Lm1vZHVsZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9laG5JY29uc01vZHVsZSxcbiAgICAgICAgRm9laG5WYWxpZGF0aW9uQWxlcnRzTW9kdWxlLFxuICAgICAgICBTZGtEaWN0aW9uYXJ5TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbRm9laG5Cb011bHRpVXBsb2FkQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbRm9laG5Cb011bHRpVXBsb2FkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobkJvTXVsdGlVcGxvYWRNb2R1bGUge31cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tYm8tbXVsdGktdXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11cGxvYWQvZm9laG4tYm8tbXVsdGktdXBsb2FkL2ZvZWhuLWJvLW11bHRpLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDM0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWE3QyxNQUFNLE9BQU8sd0JBQXdCOztzSEFBeEIsd0JBQXdCO3VIQUF4Qix3QkFBd0IsaUJBSGxCLDJCQUEyQixhQU50QyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLDJCQUEyQjtRQUMzQixtQkFBbUI7UUFDbkIsV0FBVyxhQUdMLDJCQUEyQjt1SEFFNUIsd0JBQXdCLFlBVnhCO1lBQ0wsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQiwyQkFBMkI7WUFDM0IsbUJBQW1CO1lBQ25CLFdBQVc7U0FDZDs0RkFJUSx3QkFBd0I7a0JBWHBDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsV0FBVztxQkFDZDtvQkFDRCxZQUFZLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb2Vobkljb25zTW9kdWxlIH0gZnJvbSAnLi4vLi4vZm9laG4taWNvbnMvZm9laG4taWNvbnMubW9kdWxlJztcbmltcG9ydCB7IEZvZWhuVmFsaWRhdGlvbkFsZXJ0c01vZHVsZSB9IGZyb20gJy4uLy4uL2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzL2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzLm1vZHVsZSc7XG5pbXBvcnQgeyBGb2VobkJvTXVsdGlVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWJvLW11bHRpLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeU1vZHVsZSB9IGZyb20gJy4uLy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5Lm1vZHVsZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9laG5JY29uc01vZHVsZSxcbiAgICAgICAgRm9laG5WYWxpZGF0aW9uQWxlcnRzTW9kdWxlLFxuICAgICAgICBTZGtEaWN0aW9uYXJ5TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbRm9laG5Cb011bHRpVXBsb2FkQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbRm9laG5Cb011bHRpVXBsb2FkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobkJvTXVsdGlVcGxvYWRNb2R1bGUge31cbiJdfQ==
@@ -187,15 +187,15 @@ export class FoehnMultiUploadComponent extends AbstractFoehnUploaderComponent {
187
187
  return files.slice(0, 1);
188
188
  }
189
189
  }
190
- FoehnMultiUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnMultiUploadComponent, deps: [{ token: i1.MultiUploadService }, { token: i2.PendingUploadService }, { token: i3.ApplicationInfoService }, { token: i4.FoehnConfirmModalService }, { token: i5.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
191
- FoehnMultiUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: FoehnMultiUploadComponent, selector: "foehn-multi-upload", inputs: { url: "url", reference: "reference", shouldDisplayFileSavedConfirmation: "shouldDisplayFileSavedConfirmation" }, providers: [
190
+ FoehnMultiUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnMultiUploadComponent, deps: [{ token: i1.MultiUploadService }, { token: i2.PendingUploadService }, { token: i3.ApplicationInfoService }, { token: i4.FoehnConfirmModalService }, { token: i5.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
191
+ FoehnMultiUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FoehnMultiUploadComponent, selector: "foehn-multi-upload", inputs: { url: "url", reference: "reference", shouldDisplayFileSavedConfirmation: "shouldDisplayFileSavedConfirmation" }, providers: [
192
192
  {
193
193
  provide: FoehnInputComponent,
194
194
  useExisting: forwardRef(() => FoehnMultiUploadComponent),
195
195
  multi: true
196
196
  }
197
197
  ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"reference\">\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <a [href]=\"multiUploadService.getDownloadUrl(url, document)\">\n {{ document.filename }}\n </a>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(document.fileSize) }}\n <abbr title=\"Megaoctet\">Mo</abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-uploaded\"\n (click)=\"removeFile(document)\"\n >\n <foehn-icon-times\n title=\"Supprimer {{ document.filename }}\"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary uploaded-global-info\"\n *ngIf=\"showGlobalInfos(model)\"\n [innerHTML]=\"getGlobalInfos(model)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"!reference\">\n <div\n *ngFor=\"let pending of pendingFiles; trackBy: trackByPending\"\n class=\"file file-pending\"\n >\n <span>{{ pending.name }}</span>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(pending.size) }}\n <abbr title=\"Megaoctet\">Mo</abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-pending\"\n (click)=\"removeFile(pending)\"\n >\n <foehn-icon-times\n title=\"Supprimer {{ pending.name }}\"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary pending-global-info\"\n *ngIf=\"showGlobalInfos(pendingFiles)\"\n [innerHTML]=\"getGlobalInfos(pendingFiles)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"canAddMoreFiles()\">\n <input\n class=\"form-control-file actual-input\"\n type=\"file\"\n [name]=\"name || label\"\n [multiple]=\"multiple\"\n [attr.accept]=\"\n overrideAcceptedExtensions\n ? overrideAcceptedExtensions\n : uploaderHelper.accept\n ? uploaderHelper.accept\n : null\n \"\n (change)=\"onFileChange($event)\"\n #inputFile\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'sr-only': !showUploadButton }\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n #entryComponent\n >\n {{ multiple ? chooseButtonLabelMultiple : chooseButtonLabel }}\n </button>\n\n <div\n *ngIf=\"dragAndDrop\"\n aria-hidden=\"true\"\n class=\"dropfile\"\n [class.dropfile-border-transparent]=\"showDropZone\"\n (click)=\"inputFile.click()\"\n >\n {{ multiple ? dropZoneLabelMultiple : dropZoneLabel }}\n </div>\n </ng-container>\n</div>\n", styles: [".dropfile{width:300px;border:3px dashed #bbb;text-align:center;margin-top:10px;cursor:pointer;padding:15px 3px}.dropfile-border-transparent{border-color:var(--white)}.actual-input{display:none}.file-list{margin-top:20px}.icon-button{border:0;background-color:transparent}.icon-button:hover{cursor:pointer}:host ::ng-deep .svg-inline--fa{color:#000!important}.drop-zone-highlight{outline:3px dashed #bbb}\n"], components: [{ type: i6.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i7.FoehnIconTimesComponent, selector: "foehn-icon-times" }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": i10.SdkDictionaryPipe } });
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnMultiUploadComponent, decorators: [{
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnMultiUploadComponent, decorators: [{
199
199
  type: Component,
200
200
  args: [{ selector: 'foehn-multi-upload', providers: [
201
201
  {
@@ -211,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
211
211
  }], shouldDisplayFileSavedConfirmation: [{
212
212
  type: Input
213
213
  }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbXVsdGktdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11cGxvYWQvZm9laG4tbXVsdGktdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC9mb2Vobi1tdWx0aS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQVFoRixPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7Ozs7OztBQWM5RSxNQUFNLE9BQU8seUJBQ1QsU0FBUSw4QkFBbUQ7SUFnQjNELFlBQ0ksa0JBQXNDLEVBQ3RDLG9CQUEwQyxFQUNoQyxzQkFBOEMsRUFDOUMsbUJBQTZDLEVBQzdDLGlCQUF1QztRQUVqRCxLQUFLLENBQUMsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUo1RCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMEI7UUFDN0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtRQWxCckQsUUFBRyxHQUFHLGNBQWMsQ0FBQztRQU1yQix1Q0FBa0MsR0FBRyxJQUFJLENBQUM7UUFldEMsSUFBSSxDQUFDLG9CQUFvQixHQUFH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LENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUNyQyxDQUFDO2FBQ0w7U0FDSjthQUFNO1lBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25ELElBQUksbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDaEMsOERBQThEO2dCQUM5RCxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUNyQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQ3JDLENBQUM7YUFDTDtTQUNKO1FBQ0QsOERBQThEO1FBQzlELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7c0hBbFNRLHlCQUF5QjswR0FBekIseUJBQXlCLHVLQVJ2QjtRQUNQO1lBQ0ksT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQ3hELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixpREN4QkwsK3pKQWtKQTsyRkR4SGEseUJBQXlCO2tCQVpyQyxTQUFTOytCQUNJLG9CQUFvQixhQUduQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7MlBBTUQsR0FBRztzQkFERixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixrQ0FBa0M7c0JBRGpDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTXVsdGlVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9tdWx0aS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtRXJyb3IgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yJztcbmltcG9ydCB7IERvY3VtZW50RXJyb3IsIERvY3VtZW50c1dpdGhFcnJvcnMgfSBmcm9tICcuL211bHRpLXVwbG9hZC50eXBlJztcbmltcG9ydCB7IERvY3VtZW50UmVmZXJlbmNlIH0gZnJvbSAnLi4vZG9jdW1lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IFBlbmRpbmdVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9wZW5kaW5nLXVwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlTWFwLCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvZWhuQ29uZmlybU1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZvZWhuVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1mb2Vobi11cGxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tbXVsdGktdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tbXVsdGktdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi4vZm9laG4tdXBsb2FkLmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuTXVsdGlVcGxvYWRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5NdWx0aVVwbG9hZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RGb2VoblVwbG9hZGVyQ29tcG9uZW50PERvY3VtZW50UmVmZXJlbmNlW10+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICB1cmwgPSAnYXBpL2RvY3VtZW50JztcblxuICAgIEBJbnB1dCgpXG4gICAgcmVmZXJlbmNlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3VsZERpc3BsYXlGaWxlU2F2ZWRDb25maXJtYXRpb24gPSB0cnVlO1xuXG4gICAgbXVsdGlVcGxvYWRTZXJ2aWNlOiBNdWx0aVVwbG9hZFNlcnZpY2U7XG4gICAgcGVuZGluZ1VwbG9hZFNlcnZpY2U6IFBlbmRpbmdVcGxvYWRTZXJ2aWNlO1xuXG4gICAgcHJpdmF0ZSBwZW5kaW5nVXBsb2FkZWRFcnJvcnNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBtdWx0aVVwbG9hZFNlcnZpY2U6IE11bHRpVXBsb2FkU2VydmljZSxcbiAgICAgICAgcGVuZGluZ1VwbG9hZFNlcnZpY2U6IFBlbmRpbmdVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGNvbmZpcm1Nb2RhbFNlcnZpY2U6IEZvZWhuQ29uZmlybU1vZGFsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBTZGtEaWN0aW9uYXJ5U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihhcHBsaWNhdGlvbkluZm9TZXJ2aWNlLCBjb25maXJtTW9kYWxTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSk7XG4gICAgICAgIHRoaXMucGVuZGluZ1VwbG9hZFNlcnZpY2UgPSBwZW5kaW5nVXBsb2FkU2VydmljZTtcbiAgICAgICAgdGhpcy5tdWx0aVVwbG9hZFNlcnZpY2UgPSBtdWx0aVVwbG9hZFNlcnZpY2U7XG4gICAgfVxuXG4gICAgZ2V0IHBlbmRpbmdGaWxlcygpOiBGaWxlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5wZW5kaW5nVXBsb2FkU2VydmljZS5nZXRQZW5kaW5nRmlsZXModGhpcy5uYW1lKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICB0aGlzLnBlbmRpbmdVcGxvYWRlZEVycm9yc1N1YnNjcmlwdGlvbiA9IHRoaXMucGVuZGluZ1VwbG9hZFNlcnZpY2UucGVuZGluZ1VwbG9hZGVkRXJyb3JzLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXNwb25zZTogRG9jdW1lbnRzV2l0aEVycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVBlbmRpbmdVcGxvYWRlZEVycm9yc0Zyb21TZXJ2ZXJCeUZvcm1LZXkoXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBBZGQgZmlsZXMgbG9naWNcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlc1N1YnNjcmlwdGlvbiA9IHRoaXMudXBsb2FkRmlsZXNTdWJqZWN0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZmlsZXMgPT4gISFmaWxlcyksXG4gICAgICAgICAgICAgICAgLy8gT25seSBvbmUgY2FsbCBldmVyeSAzMDBtcyB0byBzdG9wIGNvbmN1cnJlbnQgYWNjZXNzXG4gICAgICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDMwMCksXG4gICAgICAgICAgICAgICAgLy8gT25seSBvbmUgY29uY3VycmVudCBjYWxsIGF0IHRoZSB0aW1lXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm11bHRpVXBsb2FkU2VydmljZS51cGxvYWREb2N1bWVudHMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3VsZERpc3BsYXlGaWxlU2F2ZWRDb25maXJtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICh7IGRvY3VtZW50cywgZXJyb3JzIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UmVzdWx0RnJvbVNlcnZlcihkb2N1bWVudHMsIGVycm9ycyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzOiBGb3JtRXJyb3JbXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHN0YXR1cyB9OiBhbnkgPSBlcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlckhlbHBlci5hZGRDdXN0b21FcnJvck9yRGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3N0YXR1c31gLFxuICAgICAgICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVNYXhTaXplSW5NbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlTWF4RmlsZU5hbWVMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlSWxsZWdhbENoYXJhY3RlcnNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRXJyb3JzKFtlcnJvcnMsIHRydWVdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgIC8vIERlbGV0ZSBkb2N1bWVudCBsb2dpY1xuICAgICAgICB0aGlzLmRlbGV0ZURvY3VtZW50U3Vic2NyaXB0aW9uID0gdGhpcy5kZWxldGVEb2N1bWVudFN1YmplY3RcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihkb2N1bWVudCA9PiAhIWRvY3VtZW50KSxcbiAgICAgICAgICAgICAgICAvLyBPbmx5IG9uZSBjYWxsIGV2ZXJ5IDMwMCBtcyB0byBzdG9wIGNvbmN1cnJlbnQgYWNjZXNzXG4gICAgICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDMwMCksXG4gICAgICAgICAgICAgICAgLy8gT25seSBvbmUgY29uY3VycmVudCBjYWxsIGF0IHRoZSB0aW1lXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm11bHRpVXBsb2FkU2VydmljZS5kZWxldGVEb2N1bWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgLy8gU2lkZSBlZmZlY3Qgb25jZSB0aGUgZG9jdW1lbnQgaGFzIGJlZW4gZGVsZXRlZC5cbiAgICAgICAgICAgICAgICB0YXAoZG9jdW1lbnQgPT4gdGhpcy5yZW1vdmVEb2N1bWVudEZyb21Nb2RlbChkb2N1bWVudCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICAgICAgaWYgKCEhdGhpcy5wZW5kaW5nVXBsb2FkZWRFcnJvcnNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1VwbG9hZGVkRXJyb3JzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5UGVuZGluZyhwZW5kaW5nOiBGaWxlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHBlbmRpbmcubGFzdE1vZGlmaWVkO1xuICAgIH1cblxuICAgIGNhbkFkZE1vcmVGaWxlcygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsICYmICEhdGhpcy5tb2RlbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhdGhpcy5wZW5kaW5nVXBsb2FkU2VydmljZS5oYXNQZW5kaW5nRmlsZXModGhpcy5uYW1lKTtcbiAgICB9XG5cbiAgICBvbkZpbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIFBSRVNUQUtJVC0zMDk6IE1hcmsgYXMgcHJpc3RpbmUgc28gZXJyb3JzIGNhbiBiZSBzaG93biBkaXJlY3RseSB0byB1c2VyIHdoZW4gdXBsb2FkaW5nIGZpbGVcbiAgICAgICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuXG4gICAgICAgIGNvbnN0IHRhcmdldDogSFRNTElucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICB0aGlzLnBvcHVsYXRlRmlsZUl0ZW1MaXN0KHRhcmdldC5maWxlcyk7XG4gICAgICAgIHRhcmdldC52YWx1ZSA9IG51bGw7IC8vIHJlc2V0IGhpZGRlbiBmaWxlIGlucHV0IHZhbHVlc1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgb25Ecm9wKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRlckhlbHBlci5wcmV2ZW50QW5kU3RvcChldmVudCk7XG4gICAgICAgIGlmICh0aGlzLmRyYWdBbmREcm9wKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlTGlzdDogRmlsZUxpc3QgPSB0aGlzLnVwbG9hZGVySGVscGVyLmdldFRyYW5zZmVyKGV2ZW50KTtcbiAgICAgICAgICAgIGlmIChmaWxlTGlzdCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdWxhdGVGaWxlSXRlbUxpc3QoZmlsZUxpc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zaG93RHJvcFpvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJvdGVjdGVkIHJlbW92ZUZpbGVPbkNvbmZpcm1hdGlvbihkb2N1bWVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghIXRoaXMucmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBzdXBlci5yZW1vdmVGaWxlT25Db25maXJtYXRpb24oZG9jdW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhlIGRvY3VtZW50IGhhc24ndCBiZWVuIHVwbG9hZGVkLlxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nVXBsb2FkU2VydmljZS5yZW1vdmVQZW5kaW5nRmlsZShkb2N1bWVudCwgdGhpcy5uYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVGaWxlSXRlbUxpc3QoZmlsZUxpc3Q6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgICAgIGxldCBmaWxlcyA9IEFycmF5LmZyb20oZmlsZUxpc3QpO1xuXG4gICAgICAgIGlmICghZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXaGVuIGRyYWcvZHJvcCBhbmQgYXNrZWQgZm9yIHNpbmdsZSB1cGxvYWQsIHdlIGVuc3VyZSB3ZSBzdG9yZSBvbmx5IG9uZSBmaWxlIGZvciB1cGxvYWRcbiAgICAgICAgaWYgKHRoaXMuZHJhZ0FuZERyb3AgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGZpbGVzID0gdGhpcy5tYW5hZ2VTaW5nbGVGaWxlKGZpbGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERpc3BsYXkgbG9jYWwgZXJyb3JzIGFuZCBzdG9wIHByb2Nlc3NpbmdcbiAgICAgICAgY29uc3QgZmlsZXNFcnJvcnMgPSB0aGlzLmRpc3BsYXlMb2NhbEVycm9ycyhmaWxlcyk7XG4gICAgICAgIGlmIChmaWxlc0Vycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluaXRpYWxpemUgbW9kZWwgaWYgZW1wdHlcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsIHx8ICF0aGlzLm1vZGVsLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy5yZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgaGF2ZSBhIHJlZmVyZW5jZSwgd2Ugc2VuZCBmaWxlcyB0byBzZXJ2ZXJcbiAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZXNTdWJqZWN0Lm5leHQoZmlsZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gUFJFU1RBS0lULTMwOTogU2ltdWxhdGUgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNvbXBvbmVudFxuICAgICAgICAgICAgLy8gb25seSB3aGVuIG5vIGVycm9yIHNvIGlzUHJpc3RpbmUgaXMgc2V0IHRvIGZhbHNlIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VcbiAgICAgICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcblxuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBzdG9yZSBmaWxlcyBpbiBwZW5kaW5nIHN0b3JhZ2VcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1VwbG9hZFNlcnZpY2UuYWRkUGVuZGluZ0ZpbGVzKFxuICAgICAgICAgICAgICAgIHRoaXMudXJsLFxuICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsLFxuICAgICAgICAgICAgICAgIGZpbGVzLFxuICAgICAgICAgICAgICAgIHRoaXMua2V5LFxuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgdGhpcy5zaG91bGREaXNwbGF5RmlsZVNhdmVkQ29uZmlybWF0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNwbGF5UGVuZGluZ1VwbG9hZGVkRXJyb3JzRnJvbVNlcnZlckJ5Rm9ybUtleShcbiAgICAgICAgZXJyb3JzOiBEb2N1bWVudEVycm9yW10sXG4gICAgICAgIGZvcm1LZXk6IHN0cmluZ1xuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBlcnJvcnNCeUZvcm1LZXkgPSBlcnJvcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGVycm9yOiBEb2N1bWVudEVycm9yKSA9PiBlcnJvci5mb3JtS2V5ID09PSBmb3JtS2V5XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGlzcGxheUVycm9yc0Zyb21TZXJ2ZXIoZXJyb3JzQnlGb3JtS2V5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc3BsYXlSZXN1bHRGcm9tU2VydmVyKFxuICAgICAgICBkb2N1bWVudHM6IERvY3VtZW50UmVmZXJlbmNlW10sXG4gICAgICAgIGVycm9yczogRG9jdW1lbnRFcnJvcltdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzcGxheUVycm9yc0Zyb21TZXJ2ZXIoZXJyb3JzKTtcbiAgICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsLCAuLi4oZG9jdW1lbnRzIHx8IFtdKV07XG4gICAgICAgIHRoaXMudHJpZ2dlclVzZXJJbnB1dCh0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZURvY3VtZW50RnJvbU1vZGVsKGRvY3VtZW50OiBEb2N1bWVudFJlZmVyZW5jZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMubW9kZWwuaW5kZXhPZihkb2N1bWVudCk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gWy4uLnRoaXMubW9kZWxdO1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyVXNlcklucHV0KHRoaXMubW9kZWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNwbGF5RXJyb3JzRnJvbVNlcnZlcihlcnJvcnM6IERvY3VtZW50RXJyb3JbXSk6IHZvaWQge1xuICAgICAgICBpZiAoIWVycm9ycyB8fCAhZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gUFJFU1RBS0lULTMwOTogU2ltdWxhdGUgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNvbXBvbmVudFxuICAgICAgICAgICAgLy8gb25seSB3aGVuIG5vIGVycm9yIHNvIGlzUHJpc3RpbmUgaXMgc2V0IHRvIGZhbHNlIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VcbiAgICAgICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld0Vycm9yczogRm9ybUVycm9yW10gPSBbXTtcbiAgICAgICAgZXJyb3JzLmZvckVhY2goZXJyb3IgPT5cbiAgICAgICAgICAgIHRoaXMudXBsb2FkZXJIZWxwZXIuYWRkQ3VzdG9tRXJyb3JPckRlZmF1bHQoXG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgICAgICAgIG5ld0Vycm9ycyxcbiAgICAgICAgICAgICAgICBgJHtlcnJvci5lcnJvckNvZGV9YCxcbiAgICAgICAgICAgICAgICBlcnJvci5sYWJlbCxcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUVycm9ycyxcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlTWF4U2l6ZUluTW8sXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZUFjY2VwdGVkRXh0ZW5zaW9ucyxcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlTWF4RmlsZU5hbWVMZW5ndGgsXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZUlsbGVnYWxDaGFyYWN0ZXJzXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoRXJyb3JzKFtuZXdFcnJvcnMsIHRydWVdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZVNpbmdsZUZpbGUoZmlsZXM6IEZpbGVbXSk6IEZpbGVbXSB7XG4gICAgICAgIC8vIEVkZ2UgYnJvd3NlciBsZXRzIHlvdSBkcm9wIGZpbGVzIGZyb20gZGlhbG9nIGJveCB3aGVuIHNlbGVjdGluZyBhIGZpbGUuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIG9ubHkga2VlcCBsYXN0IHNlbGVjdGVkIGZpbGUgZnJvbSB1c2VyXG4gICAgICAgIGlmICghIXRoaXMucmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbCAmJiB0aGlzLm1vZGVsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxGaWxlcyA9IFsuLi50aGlzLm1vZGVsXTtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgIGN1cnJlbnRNb2RlbEZpbGVzLmZvckVhY2goKGRvYzogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZpbGVPbkNvbmZpcm1hdGlvbihkb2MpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQZW5kaW5nRmlsZXMgPSBbLi4udGhpcy5wZW5kaW5nRmlsZXNdO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRQZW5kaW5nRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgY3VycmVudFBlbmRpbmdGaWxlcy5mb3JFYWNoKChkb2M6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWxlT25Db25maXJtYXRpb24oZG9jKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhlbiB3ZSBlbnN1cmUgd2UgdGFrZSBvbmx5IG9uZSBmaWxlIGZyb20gY3VycmVudCBzZWxlY3Rpb25cbiAgICAgICAgcmV0dXJuIGZpbGVzLnNsaWNlKDAsIDEpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgIFtjbGFzcy5oYXMtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbY2xhc3MudmQtZm9ybS1ncm91cC1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFtjbGFzcy5kcm9wLXpvbmUtaGlnaGxpZ2h0XT1cInNob3dEcm9wWm9uZVwiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAoZHJhZ2VudGVyKT1cIm9uRHJhZ2VudGVyKCRldmVudClcIlxuICAgIChkcmFnbGVhdmUpPVwib25EcmFnbGVhdmUoJGV2ZW50KVwiXG4gICAgKGRyYWdvdmVyKT1cIm9uRHJhZ292ZXIoJGV2ZW50KVwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAnc3Itb25seScgOiBsYWJlbFN0eWxlTW9kaWZpZXJcIlxuICAgID5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0c1xuICAgICAgICBbY29tcG9uZW50XT1cInRoaXNcIlxuICAgICAgICBbc2hvdWxkRXJyb3JzQmVMaXZlXT1cImhhc0xpdmVVcGxvYWRFcnJvcnMoKVwiXG4gICAgPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICA8c21hbGxcbiAgICAgICAgKm5nSWY9XCJoZWxwVGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ0hlbHAnXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImhlbHBUZXh0XCJcbiAgICA+PC9zbWFsbD5cblxuICAgIDwhLS0gUFJFU1RBS0lULTMwOTogRmFrZSBpbnB1dCB3aXRoIE5nTW9kZWwgdG8gYmUgcmVnaXN0ZXJlZCBpbnRvIEZvcm0gY29udHJvbHMgLS0+XG4gICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCIgW25nTW9kZWxdPVwibW9kZWxcIiAvPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlZmVyZW5jZVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZG9jdW1lbnQgb2YgbW9kZWw7IHRyYWNrQnk6IHRyYWNrQnlEb2N1bWVudFwiXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUgZmlsZS11cGxvYWRlZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxhIFtocmVmXT1cIm11bHRpVXBsb2FkU2VydmljZS5nZXREb3dubG9hZFVybCh1cmwsIGRvY3VtZW50KVwiPlxuICAgICAgICAgICAgICAgIHt7IGRvY3VtZW50LmZpbGVuYW1lIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTEgbXItMVwiPlxuICAgICAgICAgICAgICAgICh7eyB0b01lZ2FPY3RldHMoZG9jdW1lbnQuZmlsZVNpemUpIH19XG4gICAgICAgICAgICAgICAgPGFiYnIgdGl0bGU9XCJNZWdhb2N0ZXRcIj5NbzwvYWJicj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhcmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGljb24tYnV0dG9uIGRlbGV0ZS11cGxvYWRlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUoZG9jdW1lbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlN1cHByaW1lciB7eyBkb2N1bWVudC5maWxlbmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgPjwvZm9laG4taWNvbi10aW1lcz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c21hbGxcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5IHVwbG9hZGVkLWdsb2JhbC1pbmZvXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0dsb2JhbEluZm9zKG1vZGVsKVwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldEdsb2JhbEluZm9zKG1vZGVsKVwiXG4gICAgICAgID48L3NtYWxsPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyZWZlcmVuY2VcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBlbmRpbmcgb2YgcGVuZGluZ0ZpbGVzOyB0cmFja0J5OiB0cmFja0J5UGVuZGluZ1wiXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUgZmlsZS1wZW5kaW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgcGVuZGluZy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0xIG1yLTFcIj5cbiAgICAgICAgICAgICAgICAoe3sgdG9NZWdhT2N0ZXRzKHBlbmRpbmcuc2l6ZSkgfX1cbiAgICAgICAgICAgICAgICA8YWJiciB0aXRsZT1cIk1lZ2FvY3RldFwiPk1vPC9hYmJyPlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gaWNvbi1idXR0b24gZGVsZXRlLXBlbmRpbmdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGaWxlKHBlbmRpbmcpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlN1cHByaW1lciB7eyBwZW5kaW5nLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgID48L2ZvZWhuLWljb24tdGltZXM+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeSBwZW5kaW5nLWdsb2JhbC1pbmZvXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0dsb2JhbEluZm9zKHBlbmRpbmdGaWxlcylcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRHbG9iYWxJbmZvcyhwZW5kaW5nRmlsZXMpXCJcbiAgICAgICAgPjwvc21hbGw+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FuQWRkTW9yZUZpbGVzKClcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbC1maWxlIGFjdHVhbC1pbnB1dFwiXG4gICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICBbYXR0ci5hY2NlcHRdPVwiXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgPyBvdmVycmlkZUFjY2VwdGVkRXh0ZW5zaW9uc1xuICAgICAgICAgICAgICAgICAgICA6IHVwbG9hZGVySGVscGVyLmFjY2VwdFxuICAgICAgICAgICAgICAgICAgICA/IHVwbG9hZGVySGVscGVyLmFjY2VwdFxuICAgICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICNpbnB1dEZpbGVcbiAgICAgICAgLz5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NyLW9ubHknOiAhc2hvd1VwbG9hZEJ1dHRvbiB9XCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYnVpbGRJZCgnRXJyb3JzQ29udGFpbmVyJylcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImlucHV0RmlsZS5jbGljaygpXCJcbiAgICAgICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBtdWx0aXBsZSA/IGNob29zZUJ1dHRvbkxhYmVsTXVsdGlwbGUgOiBjaG9vc2VCdXR0b25MYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImRyYWdBbmREcm9wXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImRyb3BmaWxlXCJcbiAgICAgICAgICAgIFtjbGFzcy5kcm9wZmlsZS1ib3JkZXItdHJhbnNwYXJlbnRdPVwic2hvd0Ryb3Bab25lXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpbnB1dEZpbGUuY2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IG11bHRpcGxlID8gZHJvcFpvbmVMYWJlbE11bHRpcGxlIDogZHJvcFpvbmVMYWJlbCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbXVsdGktdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11cGxvYWQvZm9laG4tbXVsdGktdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC9mb2Vobi1tdWx0aS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQVFoRixPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7Ozs7OztBQWM5RSxNQUFNLE9BQU8seUJBQ1QsU0FBUSw4QkFBbUQ7SUFnQjNELFlBQ0ksa0JBQXNDLEVBQ3RDLG9CQUEwQyxFQUNoQyxzQkFBOEMsRUFDOUMsbUJBQTZDLEVBQzdDLGlCQUF1QztRQUVqRCxLQUFLLENBQUMsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUo1RCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMEI7UUFDN0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtRQWxCckQsUUFBRyxHQUFHLGNBQWMsQ0FBQztRQU1yQix1Q0FBa0MsR0FBRyxJQUFJLENBQUM7UUFldEMsSUFBSSxDQUFDLG9CQUFvQixHQUFH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LENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUNyQyxDQUFDO2FBQ0w7U0FDSjthQUFNO1lBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25ELElBQUksbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDaEMsOERBQThEO2dCQUM5RCxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUNyQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQ3JDLENBQUM7YUFDTDtTQUNKO1FBQ0QsOERBQThEO1FBQzlELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7dUhBbFNRLHlCQUF5QjsyR0FBekIseUJBQXlCLHVLQVJ2QjtRQUNQO1lBQ0ksT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQ3hELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixpREN4QkwsK3pKQWtKQTs0RkR4SGEseUJBQXlCO2tCQVpyQyxTQUFTOytCQUNJLG9CQUFvQixhQUduQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7MlBBTUQsR0FBRztzQkFERixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixrQ0FBa0M7c0JBRGpDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTXVsdGlVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9tdWx0aS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtRXJyb3IgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yJztcbmltcG9ydCB7IERvY3VtZW50RXJyb3IsIERvY3VtZW50c1dpdGhFcnJvcnMgfSBmcm9tICcuL211bHRpLXVwbG9hZC50eXBlJztcbmltcG9ydCB7IERvY3VtZW50UmVmZXJlbmNlIH0gZnJvbSAnLi4vZG9jdW1lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IFBlbmRpbmdVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9wZW5kaW5nLXVwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlTWFwLCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvZWhuQ29uZmlybU1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZvZWhuVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1mb2Vobi11cGxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tbXVsdGktdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tbXVsdGktdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi4vZm9laG4tdXBsb2FkLmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuTXVsdGlVcGxvYWRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5NdWx0aVVwbG9hZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RGb2VoblVwbG9hZGVyQ29tcG9uZW50PERvY3VtZW50UmVmZXJlbmNlW10+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICB1cmwgPSAnYXBpL2RvY3VtZW50JztcblxuICAgIEBJbnB1dCgpXG4gICAgcmVmZXJlbmNlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3VsZERpc3BsYXlGaWxlU2F2ZWRDb25maXJtYXRpb24gPSB0cnVlO1xuXG4gICAgbXVsdGlVcGxvYWRTZXJ2aWNlOiBNdWx0aVVwbG9hZFNlcnZpY2U7XG4gICAgcGVuZGluZ1VwbG9hZFNlcnZpY2U6IFBlbmRpbmdVcGxvYWRTZXJ2aWNlO1xuXG4gICAgcHJpdmF0ZSBwZW5kaW5nVXBsb2FkZWRFcnJvcnNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBtdWx0aVVwbG9hZFNlcnZpY2U6IE11bHRpVXBsb2FkU2VydmljZSxcbiAgICAgICAgcGVuZGluZ1VwbG9hZFNlcnZpY2U6IFBlbmRpbmdVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGNvbmZpcm1Nb2RhbFNlcnZpY2U6IEZvZWhuQ29uZmlybU1vZGFsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBTZGtEaWN0aW9uYXJ5U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihhcHBsaWNhdGlvbkluZm9TZXJ2aWNlLCBjb25maXJtTW9kYWxTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSk7XG4gICAgICAgIHRoaXMucGVuZGluZ1VwbG9hZFNlcnZpY2UgPSBwZW5kaW5nVXBsb2FkU2VydmljZTtcbiAgICAgICAgdGhpcy5tdWx0aVVwbG9hZFNlcnZpY2UgPSBtdWx0aVVwbG9hZFNlcnZpY2U7XG4gICAgfVxuXG4gICAgZ2V0IHBlbmRpbmdGaWxlcygpOiBGaWxlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5wZW5kaW5nVXBsb2FkU2VydmljZS5nZXRQZW5kaW5nRmlsZXModGhpcy5uYW1lKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICB0aGlzLnBlbmRpbmdVcGxvYWRlZEVycm9yc1N1YnNjcmlwdGlvbiA9IHRoaXMucGVuZGluZ1VwbG9hZFNlcnZpY2UucGVuZGluZ1VwbG9hZGVkRXJyb3JzLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXNwb25zZTogRG9jdW1lbnRzV2l0aEVycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVBlbmRpbmdVcGxvYWRlZEVycm9yc0Zyb21TZXJ2ZXJCeUZvcm1LZXkoXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBBZGQgZmlsZXMgbG9naWNcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlc1N1YnNjcmlwdGlvbiA9IHRoaXMudXBsb2FkRmlsZXNTdWJqZWN0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZmlsZXMgPT4gISFmaWxlcyksXG4gICAgICAgICAgICAgICAgLy8gT25seSBvbmUgY2FsbCBldmVyeSAzMDBtcyB0byBzdG9wIGNvbmN1cnJlbnQgYWNjZXNzXG4gICAgICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDMwMCksXG4gICAgICAgICAgICAgICAgLy8gT25seSBvbmUgY29uY3VycmVudCBjYWxsIGF0IHRoZSB0aW1lXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm11bHRpVXBsb2FkU2VydmljZS51cGxvYWREb2N1bWVudHMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3VsZERpc3BsYXlGaWxlU2F2ZWRDb25maXJtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICh7IGRvY3VtZW50cywgZXJyb3JzIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UmVzdWx0RnJvbVNlcnZlcihkb2N1bWVudHMsIGVycm9ycyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzOiBGb3JtRXJyb3JbXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHN0YXR1cyB9OiBhbnkgPSBlcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlckhlbHBlci5hZGRDdXN0b21FcnJvck9yRGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3N0YXR1c31gLFxuICAgICAgICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVNYXhTaXplSW5NbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlTWF4RmlsZU5hbWVMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlSWxsZWdhbENoYXJhY3RlcnNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRXJyb3JzKFtlcnJvcnMsIHRydWVdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgIC8vIERlbGV0ZSBkb2N1bWVudCBsb2dpY1xuICAgICAgICB0aGlzLmRlbGV0ZURvY3VtZW50U3Vic2NyaXB0aW9uID0gdGhpcy5kZWxldGVEb2N1bWVudFN1YmplY3RcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihkb2N1bWVudCA9PiAhIWRvY3VtZW50KSxcbiAgICAgICAgICAgICAgICAvLyBPbmx5IG9uZSBjYWxsIGV2ZXJ5IDMwMCBtcyB0byBzdG9wIGNvbmN1cnJlbnQgYWNjZXNzXG4gICAgICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDMwMCksXG4gICAgICAgICAgICAgICAgLy8gT25seSBvbmUgY29uY3VycmVudCBjYWxsIGF0IHRoZSB0aW1lXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm11bHRpVXBsb2FkU2VydmljZS5kZWxldGVEb2N1bWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgLy8gU2lkZSBlZmZlY3Qgb25jZSB0aGUgZG9jdW1lbnQgaGFzIGJlZW4gZGVsZXRlZC5cbiAgICAgICAgICAgICAgICB0YXAoZG9jdW1lbnQgPT4gdGhpcy5yZW1vdmVEb2N1bWVudEZyb21Nb2RlbChkb2N1bWVudCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICAgICAgaWYgKCEhdGhpcy5wZW5kaW5nVXBsb2FkZWRFcnJvcnNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1VwbG9hZGVkRXJyb3JzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5UGVuZGluZyhwZW5kaW5nOiBGaWxlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHBlbmRpbmcubGFzdE1vZGlmaWVkO1xuICAgIH1cblxuICAgIGNhbkFkZE1vcmVGaWxlcygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsICYmICEhdGhpcy5tb2RlbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhdGhpcy5wZW5kaW5nVXBsb2FkU2VydmljZS5oYXNQZW5kaW5nRmlsZXModGhpcy5uYW1lKTtcbiAgICB9XG5cbiAgICBvbkZpbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIFBSRVNUQUtJVC0zMDk6IE1hcmsgYXMgcHJpc3RpbmUgc28gZXJyb3JzIGNhbiBiZSBzaG93biBkaXJlY3RseSB0byB1c2VyIHdoZW4gdXBsb2FkaW5nIGZpbGVcbiAgICAgICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuXG4gICAgICAgIGNvbnN0IHRhcmdldDogSFRNTElucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICB0aGlzLnBvcHVsYXRlRmlsZUl0ZW1MaXN0KHRhcmdldC5maWxlcyk7XG4gICAgICAgIHRhcmdldC52YWx1ZSA9IG51bGw7IC8vIHJlc2V0IGhpZGRlbiBmaWxlIGlucHV0IHZhbHVlc1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgb25Ecm9wKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRlckhlbHBlci5wcmV2ZW50QW5kU3RvcChldmVudCk7XG4gICAgICAgIGlmICh0aGlzLmRyYWdBbmREcm9wKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlTGlzdDogRmlsZUxpc3QgPSB0aGlzLnVwbG9hZGVySGVscGVyLmdldFRyYW5zZmVyKGV2ZW50KTtcbiAgICAgICAgICAgIGlmIChmaWxlTGlzdCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdWxhdGVGaWxlSXRlbUxpc3QoZmlsZUxpc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zaG93RHJvcFpvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJvdGVjdGVkIHJlbW92ZUZpbGVPbkNvbmZpcm1hdGlvbihkb2N1bWVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghIXRoaXMucmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBzdXBlci5yZW1vdmVGaWxlT25Db25maXJtYXRpb24oZG9jdW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhlIGRvY3VtZW50IGhhc24ndCBiZWVuIHVwbG9hZGVkLlxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nVXBsb2FkU2VydmljZS5yZW1vdmVQZW5kaW5nRmlsZShkb2N1bWVudCwgdGhpcy5uYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVGaWxlSXRlbUxpc3QoZmlsZUxpc3Q6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgICAgIGxldCBmaWxlcyA9IEFycmF5LmZyb20oZmlsZUxpc3QpO1xuXG4gICAgICAgIGlmICghZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXaGVuIGRyYWcvZHJvcCBhbmQgYXNrZWQgZm9yIHNpbmdsZSB1cGxvYWQsIHdlIGVuc3VyZSB3ZSBzdG9yZSBvbmx5IG9uZSBmaWxlIGZvciB1cGxvYWRcbiAgICAgICAgaWYgKHRoaXMuZHJhZ0FuZERyb3AgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGZpbGVzID0gdGhpcy5tYW5hZ2VTaW5nbGVGaWxlKGZpbGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERpc3BsYXkgbG9jYWwgZXJyb3JzIGFuZCBzdG9wIHByb2Nlc3NpbmdcbiAgICAgICAgY29uc3QgZmlsZXNFcnJvcnMgPSB0aGlzLmRpc3BsYXlMb2NhbEVycm9ycyhmaWxlcyk7XG4gICAgICAgIGlmIChmaWxlc0Vycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluaXRpYWxpemUgbW9kZWwgaWYgZW1wdHlcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsIHx8ICF0aGlzLm1vZGVsLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy5yZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgaGF2ZSBhIHJlZmVyZW5jZSwgd2Ugc2VuZCBmaWxlcyB0byBzZXJ2ZXJcbiAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZXNTdWJqZWN0Lm5leHQoZmlsZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gUFJFU1RBS0lULTMwOTogU2ltdWxhdGUgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNvbXBvbmVudFxuICAgICAgICAgICAgLy8gb25seSB3aGVuIG5vIGVycm9yIHNvIGlzUHJpc3RpbmUgaXMgc2V0IHRvIGZhbHNlIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VcbiAgICAgICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcblxuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBzdG9yZSBmaWxlcyBpbiBwZW5kaW5nIHN0b3JhZ2VcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1VwbG9hZFNlcnZpY2UuYWRkUGVuZGluZ0ZpbGVzKFxuICAgICAgICAgICAgICAgIHRoaXMudXJsLFxuICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsLFxuICAgICAgICAgICAgICAgIGZpbGVzLFxuICAgICAgICAgICAgICAgIHRoaXMua2V5LFxuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgdGhpcy5zaG91bGREaXNwbGF5RmlsZVNhdmVkQ29uZmlybWF0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNwbGF5UGVuZGluZ1VwbG9hZGVkRXJyb3JzRnJvbVNlcnZlckJ5Rm9ybUtleShcbiAgICAgICAgZXJyb3JzOiBEb2N1bWVudEVycm9yW10sXG4gICAgICAgIGZvcm1LZXk6IHN0cmluZ1xuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBlcnJvcnNCeUZvcm1LZXkgPSBlcnJvcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGVycm9yOiBEb2N1bWVudEVycm9yKSA9PiBlcnJvci5mb3JtS2V5ID09PSBmb3JtS2V5XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGlzcGxheUVycm9yc0Zyb21TZXJ2ZXIoZXJyb3JzQnlGb3JtS2V5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc3BsYXlSZXN1bHRGcm9tU2VydmVyKFxuICAgICAgICBkb2N1bWVudHM6IERvY3VtZW50UmVmZXJlbmNlW10sXG4gICAgICAgIGVycm9yczogRG9jdW1lbnRFcnJvcltdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzcGxheUVycm9yc0Zyb21TZXJ2ZXIoZXJyb3JzKTtcbiAgICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsLCAuLi4oZG9jdW1lbnRzIHx8IFtdKV07XG4gICAgICAgIHRoaXMudHJpZ2dlclVzZXJJbnB1dCh0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZURvY3VtZW50RnJvbU1vZGVsKGRvY3VtZW50OiBEb2N1bWVudFJlZmVyZW5jZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMubW9kZWwuaW5kZXhPZihkb2N1bWVudCk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gWy4uLnRoaXMubW9kZWxdO1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyVXNlcklucHV0KHRoaXMubW9kZWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNwbGF5RXJyb3JzRnJvbVNlcnZlcihlcnJvcnM6IERvY3VtZW50RXJyb3JbXSk6IHZvaWQge1xuICAgICAgICBpZiAoIWVycm9ycyB8fCAhZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gUFJFU1RBS0lULTMwOTogU2ltdWxhdGUgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNvbXBvbmVudFxuICAgICAgICAgICAgLy8gb25seSB3aGVuIG5vIGVycm9yIHNvIGlzUHJpc3RpbmUgaXMgc2V0IHRvIGZhbHNlIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VcbiAgICAgICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld0Vycm9yczogRm9ybUVycm9yW10gPSBbXTtcbiAgICAgICAgZXJyb3JzLmZvckVhY2goZXJyb3IgPT5cbiAgICAgICAgICAgIHRoaXMudXBsb2FkZXJIZWxwZXIuYWRkQ3VzdG9tRXJyb3JPckRlZmF1bHQoXG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgICAgICAgIG5ld0Vycm9ycyxcbiAgICAgICAgICAgICAgICBgJHtlcnJvci5lcnJvckNvZGV9YCxcbiAgICAgICAgICAgICAgICBlcnJvci5sYWJlbCxcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUVycm9ycyxcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlTWF4U2l6ZUluTW8sXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZUFjY2VwdGVkRXh0ZW5zaW9ucyxcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlTWF4RmlsZU5hbWVMZW5ndGgsXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZUlsbGVnYWxDaGFyYWN0ZXJzXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoRXJyb3JzKFtuZXdFcnJvcnMsIHRydWVdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZVNpbmdsZUZpbGUoZmlsZXM6IEZpbGVbXSk6IEZpbGVbXSB7XG4gICAgICAgIC8vIEVkZ2UgYnJvd3NlciBsZXRzIHlvdSBkcm9wIGZpbGVzIGZyb20gZGlhbG9nIGJveCB3aGVuIHNlbGVjdGluZyBhIGZpbGUuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIG9ubHkga2VlcCBsYXN0IHNlbGVjdGVkIGZpbGUgZnJvbSB1c2VyXG4gICAgICAgIGlmICghIXRoaXMucmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbCAmJiB0aGlzLm1vZGVsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxGaWxlcyA9IFsuLi50aGlzLm1vZGVsXTtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgIGN1cnJlbnRNb2RlbEZpbGVzLmZvckVhY2goKGRvYzogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZpbGVPbkNvbmZpcm1hdGlvbihkb2MpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQZW5kaW5nRmlsZXMgPSBbLi4udGhpcy5wZW5kaW5nRmlsZXNdO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRQZW5kaW5nRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgY3VycmVudFBlbmRpbmdGaWxlcy5mb3JFYWNoKChkb2M6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWxlT25Db25maXJtYXRpb24oZG9jKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhlbiB3ZSBlbnN1cmUgd2UgdGFrZSBvbmx5IG9uZSBmaWxlIGZyb20gY3VycmVudCBzZWxlY3Rpb25cbiAgICAgICAgcmV0dXJuIGZpbGVzLnNsaWNlKDAsIDEpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgIFtjbGFzcy5oYXMtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbY2xhc3MudmQtZm9ybS1ncm91cC1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFtjbGFzcy5kcm9wLXpvbmUtaGlnaGxpZ2h0XT1cInNob3dEcm9wWm9uZVwiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAoZHJhZ2VudGVyKT1cIm9uRHJhZ2VudGVyKCRldmVudClcIlxuICAgIChkcmFnbGVhdmUpPVwib25EcmFnbGVhdmUoJGV2ZW50KVwiXG4gICAgKGRyYWdvdmVyKT1cIm9uRHJhZ292ZXIoJGV2ZW50KVwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAnc3Itb25seScgOiBsYWJlbFN0eWxlTW9kaWZpZXJcIlxuICAgID5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0c1xuICAgICAgICBbY29tcG9uZW50XT1cInRoaXNcIlxuICAgICAgICBbc2hvdWxkRXJyb3JzQmVMaXZlXT1cImhhc0xpdmVVcGxvYWRFcnJvcnMoKVwiXG4gICAgPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICA8c21hbGxcbiAgICAgICAgKm5nSWY9XCJoZWxwVGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ0hlbHAnXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImhlbHBUZXh0XCJcbiAgICA+PC9zbWFsbD5cblxuICAgIDwhLS0gUFJFU1RBS0lULTMwOTogRmFrZSBpbnB1dCB3aXRoIE5nTW9kZWwgdG8gYmUgcmVnaXN0ZXJlZCBpbnRvIEZvcm0gY29udHJvbHMgLS0+XG4gICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCIgW25nTW9kZWxdPVwibW9kZWxcIiAvPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlZmVyZW5jZVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZG9jdW1lbnQgb2YgbW9kZWw7IHRyYWNrQnk6IHRyYWNrQnlEb2N1bWVudFwiXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUgZmlsZS11cGxvYWRlZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxhIFtocmVmXT1cIm11bHRpVXBsb2FkU2VydmljZS5nZXREb3dubG9hZFVybCh1cmwsIGRvY3VtZW50KVwiPlxuICAgICAgICAgICAgICAgIHt7IGRvY3VtZW50LmZpbGVuYW1lIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTEgbXItMVwiPlxuICAgICAgICAgICAgICAgICh7eyB0b01lZ2FPY3RldHMoZG9jdW1lbnQuZmlsZVNpemUpIH19XG4gICAgICAgICAgICAgICAgPGFiYnIgdGl0bGU9XCJNZWdhb2N0ZXRcIj5NbzwvYWJicj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhcmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGljb24tYnV0dG9uIGRlbGV0ZS11cGxvYWRlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUoZG9jdW1lbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlN1cHByaW1lciB7eyBkb2N1bWVudC5maWxlbmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgPjwvZm9laG4taWNvbi10aW1lcz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c21hbGxcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5IHVwbG9hZGVkLWdsb2JhbC1pbmZvXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0dsb2JhbEluZm9zKG1vZGVsKVwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldEdsb2JhbEluZm9zKG1vZGVsKVwiXG4gICAgICAgID48L3NtYWxsPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyZWZlcmVuY2VcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBlbmRpbmcgb2YgcGVuZGluZ0ZpbGVzOyB0cmFja0J5OiB0cmFja0J5UGVuZGluZ1wiXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUgZmlsZS1wZW5kaW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgcGVuZGluZy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0xIG1yLTFcIj5cbiAgICAgICAgICAgICAgICAoe3sgdG9NZWdhT2N0ZXRzKHBlbmRpbmcuc2l6ZSkgfX1cbiAgICAgICAgICAgICAgICA8YWJiciB0aXRsZT1cIk1lZ2FvY3RldFwiPk1vPC9hYmJyPlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gaWNvbi1idXR0b24gZGVsZXRlLXBlbmRpbmdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGaWxlKHBlbmRpbmcpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlN1cHByaW1lciB7eyBwZW5kaW5nLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgID48L2ZvZWhuLWljb24tdGltZXM+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeSBwZW5kaW5nLWdsb2JhbC1pbmZvXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0dsb2JhbEluZm9zKHBlbmRpbmdGaWxlcylcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRHbG9iYWxJbmZvcyhwZW5kaW5nRmlsZXMpXCJcbiAgICAgICAgPjwvc21hbGw+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FuQWRkTW9yZUZpbGVzKClcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbC1maWxlIGFjdHVhbC1pbnB1dFwiXG4gICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICBbYXR0ci5hY2NlcHRdPVwiXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVBY2NlcHRlZEV4dGVuc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgPyBvdmVycmlkZUFjY2VwdGVkRXh0ZW5zaW9uc1xuICAgICAgICAgICAgICAgICAgICA6IHVwbG9hZGVySGVscGVyLmFjY2VwdFxuICAgICAgICAgICAgICAgICAgICA/IHVwbG9hZGVySGVscGVyLmFjY2VwdFxuICAgICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICNpbnB1dEZpbGVcbiAgICAgICAgLz5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NyLW9ubHknOiAhc2hvd1VwbG9hZEJ1dHRvbiB9XCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYnVpbGRJZCgnRXJyb3JzQ29udGFpbmVyJylcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImlucHV0RmlsZS5jbGljaygpXCJcbiAgICAgICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBtdWx0aXBsZSA/IGNob29zZUJ1dHRvbkxhYmVsTXVsdGlwbGUgOiBjaG9vc2VCdXR0b25MYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImRyYWdBbmREcm9wXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImRyb3BmaWxlXCJcbiAgICAgICAgICAgIFtjbGFzcy5kcm9wZmlsZS1ib3JkZXItdHJhbnNwYXJlbnRdPVwic2hvd0Ryb3Bab25lXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpbnB1dEZpbGUuY2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IG11bHRpcGxlID8gZHJvcFpvbmVMYWJlbE11bHRpcGxlIDogZHJvcFpvbmVMYWJlbCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -8,20 +8,20 @@ import { FormsModule } from '@angular/forms';
8
8
  import * as i0 from "@angular/core";
9
9
  export class FoehnMultiUploadModule {
10
10
  }
11
- FoehnMultiUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnMultiUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- FoehnMultiUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnMultiUploadModule, declarations: [FoehnMultiUploadComponent], imports: [CommonModule,
11
+ FoehnMultiUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnMultiUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ FoehnMultiUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnMultiUploadModule, declarations: [FoehnMultiUploadComponent], imports: [CommonModule,
13
13
  FoehnIconsModule,
14
14
  FoehnValidationAlertsModule,
15
15
  SdkDictionaryModule,
16
16
  FormsModule], exports: [FoehnMultiUploadComponent] });
17
- FoehnMultiUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnMultiUploadModule, imports: [[
17
+ FoehnMultiUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnMultiUploadModule, imports: [[
18
18
  CommonModule,
19
19
  FoehnIconsModule,
20
20
  FoehnValidationAlertsModule,
21
21
  SdkDictionaryModule,
22
22
  FormsModule
23
23
  ]] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: FoehnMultiUploadModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnMultiUploadModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  imports: [
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
35
35
  exports: [FoehnMultiUploadComponent]
36
36
  }]
37
37
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbXVsdGktdXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11cGxvYWQvZm9laG4tbXVsdGktdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDM0csT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWE3QyxNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO29IQUF0QixzQkFBc0IsaUJBSGhCLHlCQUF5QixhQU5wQyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLDJCQUEyQjtRQUMzQixtQkFBbUI7UUFDbkIsV0FBVyxhQUdMLHlCQUF5QjtvSEFFMUIsc0JBQXNCLFlBVnRCO1lBQ0wsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQiwyQkFBMkI7WUFDM0IsbUJBQW1CO1lBQ25CLFdBQVc7U0FDZDsyRkFJUSxzQkFBc0I7a0JBWGxDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsV0FBVztxQkFDZDtvQkFDRCxZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb2Vobkljb25zTW9kdWxlIH0gZnJvbSAnLi4vLi4vZm9laG4taWNvbnMvZm9laG4taWNvbnMubW9kdWxlJztcbmltcG9ydCB7IEZvZWhuVmFsaWRhdGlvbkFsZXJ0c01vZHVsZSB9IGZyb20gJy4uLy4uL2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzL2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzLm1vZHVsZSc7XG5pbXBvcnQgeyBGb2Vobk11bHRpVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1tdWx0aS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlNb2R1bGUgfSBmcm9tICcuLi8uLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvZWhuSWNvbnNNb2R1bGUsXG4gICAgICAgIEZvZWhuVmFsaWRhdGlvbkFsZXJ0c01vZHVsZSxcbiAgICAgICAgU2RrRGljdGlvbmFyeU1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW0ZvZWhuTXVsdGlVcGxvYWRDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtGb2Vobk11bHRpVXBsb2FkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGb2Vobk11bHRpVXBsb2FkTW9kdWxlIHt9XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbXVsdGktdXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11cGxvYWQvZm9laG4tbXVsdGktdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDM0csT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWE3QyxNQUFNLE9BQU8sc0JBQXNCOztvSEFBdEIsc0JBQXNCO3FIQUF0QixzQkFBc0IsaUJBSGhCLHlCQUF5QixhQU5wQyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLDJCQUEyQjtRQUMzQixtQkFBbUI7UUFDbkIsV0FBVyxhQUdMLHlCQUF5QjtxSEFFMUIsc0JBQXNCLFlBVnRCO1lBQ0wsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQiwyQkFBMkI7WUFDM0IsbUJBQW1CO1lBQ25CLFdBQVc7U0FDZDs0RkFJUSxzQkFBc0I7a0JBWGxDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsV0FBVztxQkFDZDtvQkFDRCxZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb2Vobkljb25zTW9kdWxlIH0gZnJvbSAnLi4vLi4vZm9laG4taWNvbnMvZm9laG4taWNvbnMubW9kdWxlJztcbmltcG9ydCB7IEZvZWhuVmFsaWRhdGlvbkFsZXJ0c01vZHVsZSB9IGZyb20gJy4uLy4uL2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzL2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzLm1vZHVsZSc7XG5pbXBvcnQgeyBGb2Vobk11bHRpVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1tdWx0aS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlNb2R1bGUgfSBmcm9tICcuLi8uLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvZWhuSWNvbnNNb2R1bGUsXG4gICAgICAgIEZvZWhuVmFsaWRhdGlvbkFsZXJ0c01vZHVsZSxcbiAgICAgICAgU2RrRGljdGlvbmFyeU1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW0ZvZWhuTXVsdGlVcGxvYWRDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtGb2Vobk11bHRpVXBsb2FkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGb2Vobk11bHRpVXBsb2FkTW9kdWxlIHt9XG4iXX0=
@@ -66,12 +66,12 @@ export class MultiUploadService {
66
66
  return `${baseUrl}/download/${this.reference}/doc/${document.reference}`;
67
67
  }
68
68
  }
69
- MultiUploadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: MultiUploadService, deps: [{ token: i1.HttpClient }, { token: i2.GrowlBrokerService }, { token: i3.GesdemEventService }, { token: i4.GesdemHandlerService }, { token: i5.ApplicationInfoService }, { token: i6.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Injectable });
70
- MultiUploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: MultiUploadService, providedIn: 'root' });
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: MultiUploadService, decorators: [{
69
+ MultiUploadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MultiUploadService, deps: [{ token: i1.HttpClient }, { token: i2.GrowlBrokerService }, { token: i3.GesdemEventService }, { token: i4.GesdemHandlerService }, { token: i5.ApplicationInfoService }, { token: i6.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Injectable });
70
+ MultiUploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MultiUploadService, providedIn: 'root' });
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MultiUploadService, decorators: [{
72
72
  type: Injectable,
73
73
  args: [{
74
74
  providedIn: 'root'
75
75
  }]
76
76
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.GrowlBrokerService }, { type: i3.GesdemEventService }, { type: i4.GesdemHandlerService }, { type: i5.ApplicationInfoService }, { type: i6.SdkDictionaryService }]; } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC9tdWx0aS11cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU8xRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7O0FBS3BELE1BQU0sT0FBTyxrQkFBa0I7SUFRM0IsWUFDWSxVQUFzQixFQUN0QixZQUFnQyxFQUNoQyxrQkFBc0MsRUFDdEMsb0JBQTBDLEVBQzFDLHNCQUE4QyxFQUM5QyxpQkFBdUM7UUFMdkMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtRQVhuRCxxQ0FBcUM7UUFDN0IsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsZUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFXdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENB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LE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN6RCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFlLEVBQUUsUUFBMkI7UUFDdkQsT0FBTyxHQUFHLE9BQU8sYUFBYSxJQUFJLENBQUMsU0FBUyxRQUFRLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM3RSxDQUFDOzsrR0E3R1Esa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGZixNQUFNOzJGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG9jdW1lbnRzV2l0aEVycm9ycyB9IGZyb20gJy4vbXVsdGktdXBsb2FkLnR5cGUnO1xuaW1wb3J0IHsgR3Jvd2xUeXBlIH0gZnJvbSAnLi4vLi4vZm9laG4tZ3Jvd2wvZ3Jvd2wtdHlwZXMnO1xuaW1wb3J0IHsgR3Jvd2xCcm9rZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZm9laG4tZ3Jvd2wvZ3Jvd2wtYnJva2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ2VzZGVtL2dlc2RlbS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9jdW1lbnRSZWZlcmVuY2UgfSBmcm9tICcuLi9kb2N1bWVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXBsb2FkZXJIZWxwZXIgfSBmcm9tICcuLi91cGxvYWRlci5oZWxwZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpVXBsb2FkU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWZlcmVuY2U6IHN0cmluZztcblxuICAgIC8vIEEgd2F5IHRvIGhhdmUgYSB1bmlxdWUgSWQgcGVyIGZpbGVcbiAgICBwcml2YXRlIGdsb2JhbFNlcXVlbmNlID0gMDtcbiAgICBwcml2YXRlIHVuaXFQcmVmaXggPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBwcml2YXRlIHVwbG9hZGVySGVscGVyOiBVcGxvYWRlckhlbHBlcjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xTZXJ2aWNlOiBHcm93bEJyb2tlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtSGFuZGxlclNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGljdGlvbmFyeVNlcnZpY2U6IFNka0RpY3Rpb25hcnlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UgPSB0aGlzLmdlc2RlbUhhbmRsZXJTZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXBsb2FkZXJIZWxwZXIgPSBuZXcgVXBsb2FkZXJIZWxwZXIoXG4gICAgICAgICAgICBkaWN0aW9uYXJ5U2VydmljZSxcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGxvYWREb2N1bWVudHMoXG4gICAgICAgIGJhc2VVcmw6IHN0cmluZyxcbiAgICAgICAgZm9ybUtleTogc3RyaW5nLFxuICAgICAgICBsYWJlbDogc3RyaW5nLFxuICAgICAgICBmaWxlczogRmlsZVtdLFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgaXNNdWx0aXBsZTogYm9vbGVhbixcbiAgICAgICAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgICAgICAgc2hvdWxkRGlzcGxheUZpbGVTYXZlZENvbmZpcm1hdGlvbjogYm9vbGVhblxuICAgICk6IE9ic2VydmFibGU8RG9jdW1lbnRzV2l0aEVycm9ycz4ge1xuICAgICAgICBpZiAodGhpcy5yZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50cyA9IGZpbGVzLm1hcChmaWxlID0+XG4gICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlckhlbHBlci5tYXBUb0RvY3VtZW50UmVmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICBpc011bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXFQcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsU2VxdWVuY2UrK1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IHRoaXMudXBsb2FkZXJIZWxwZXIubWFwVG9Gb3JtRGF0YShcbiAgICAgICAgICAgICAgICBkb2N1bWVudHMsXG4gICAgICAgICAgICAgICAgZm9ybUtleSxcbiAgICAgICAgICAgICAgICBsYW5ndWFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9L3VwbG9hZC8ke3RoaXMucmVmZXJlbmNlfWA7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAgICAgLnBvc3Q8RG9jdW1lbnRzV2l0aEVycm9ycz4odXJsLCBmb3JtRGF0YSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzZnVsRG9jdW1lbnRzQ291bnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5kb2N1bWVudHMgJiYgcmVzdWx0LmRvY3VtZW50cy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bERvY3VtZW50c0NvdW50ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkRGlzcGxheUZpbGVTYXZlZENvbmZpcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGAke3N1Y2Nlc3NmdWxEb2N1bWVudHNDb3VudH0gZmljaGllcihzKSBzYXV2ZWdhcmTDqShzKSBhdmVjIHN1Y2PDqHNgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xTZXJ2aWNlLmFkZFdpdGhUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcm93bFR5cGUuU1VDQ0VTUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSB0cmFuc21pc3Npb24gZGUgdm9zIGRvY3VtZW50cyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3dsU2VydmljZS5hZGRXaXRoVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcm93bFR5cGUuREFOR0VSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgIH1cblxuICAgIGRlbGV0ZURvY3VtZW50KFxuICAgICAgICBiYXNlVXJsOiBzdHJpbmcsXG4gICAgICAgIGRvY3VtZW50OiBEb2N1bWVudFJlZmVyZW5jZVxuICAgICk6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U+IHtcbiAgICAgICAgY29uc3QgeyByZWZlcmVuY2UgfSA9IHRoaXMuZ2VzZGVtSGFuZGxlclNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGE7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9L2RlbGV0ZS8ke3JlZmVyZW5jZX0vZG9jLyR7ZG9jdW1lbnQucmVmZXJlbmNlfWA7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUodXJsKS5waXBlKFxuICAgICAgICAgICAgLy8gUmVmbGVjdCB0aGUgZG9jdW1lbnQgb25jZSB0aGUgdXBkYXRlIGlzIGRvbmUgdG8gZWFzZSBjaGFpbmluZyBvYnNlcnZhYmxlcy5cbiAgICAgICAgICAgIG1hcCgoKSA9PiBkb2N1bWVudCksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgU3VwcHJlc3Npb24gZHUgZmljaGllciAke2RvY3VtZW50LmZpbGVuYW1lfSByw6l1c3NpZWA7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm93bFNlcnZpY2UuYWRkV2l0aFR5cGUoR3Jvd2xUeXBlLlNVQ0NFU1MsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgICAgICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlIHZvdHJlIGRvY3VtZW50JztcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3dsU2VydmljZS5hZGRXaXRoVHlwZShHcm93bFR5cGUuREFOR0VSLCBtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0RG93bmxvYWRVcmwoYmFzZVVybDogc3RyaW5nLCBkb2N1bWVudDogRG9jdW1lbnRSZWZlcmVuY2UpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0vZG93bmxvYWQvJHt0aGlzLnJlZmVyZW5jZX0vZG9jLyR7ZG9jdW1lbnQucmVmZXJlbmNlfWA7XG4gICAgfVxufVxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC9tdWx0aS11cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU8xRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7O0FBS3BELE1BQU0sT0FBTyxrQkFBa0I7SUFRM0IsWUFDWSxVQUFzQixFQUN0QixZQUFnQyxFQUNoQyxrQkFBc0MsRUFDdEMsb0JBQTBDLEVBQzFDLHNCQUE4QyxFQUM5QyxpQkFBdUM7UUFMdkMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtRQVhuRCxxQ0FBcUM7UUFDN0IsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsZUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFXdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENB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LE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN6RCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFlLEVBQUUsUUFBMkI7UUFDdkQsT0FBTyxHQUFHLE9BQU8sYUFBYSxJQUFJLENBQUMsU0FBUyxRQUFRLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM3RSxDQUFDOztnSEE3R1Esa0JBQWtCO29IQUFsQixrQkFBa0IsY0FGZixNQUFNOzRGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG9jdW1lbnRzV2l0aEVycm9ycyB9IGZyb20gJy4vbXVsdGktdXBsb2FkLnR5cGUnO1xuaW1wb3J0IHsgR3Jvd2xUeXBlIH0gZnJvbSAnLi4vLi4vZm9laG4tZ3Jvd2wvZ3Jvd2wtdHlwZXMnO1xuaW1wb3J0IHsgR3Jvd2xCcm9rZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZm9laG4tZ3Jvd2wvZ3Jvd2wtYnJva2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ2VzZGVtL2dlc2RlbS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9jdW1lbnRSZWZlcmVuY2UgfSBmcm9tICcuLi9kb2N1bWVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXBsb2FkZXJIZWxwZXIgfSBmcm9tICcuLi91cGxvYWRlci5oZWxwZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpVXBsb2FkU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWZlcmVuY2U6IHN0cmluZztcblxuICAgIC8vIEEgd2F5IHRvIGhhdmUgYSB1bmlxdWUgSWQgcGVyIGZpbGVcbiAgICBwcml2YXRlIGdsb2JhbFNlcXVlbmNlID0gMDtcbiAgICBwcml2YXRlIHVuaXFQcmVmaXggPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBwcml2YXRlIHVwbG9hZGVySGVscGVyOiBVcGxvYWRlckhlbHBlcjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xTZXJ2aWNlOiBHcm93bEJyb2tlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtSGFuZGxlclNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGljdGlvbmFyeVNlcnZpY2U6IFNka0RpY3Rpb25hcnlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UgPSB0aGlzLmdlc2RlbUhhbmRsZXJTZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXBsb2FkZXJIZWxwZXIgPSBuZXcgVXBsb2FkZXJIZWxwZXIoXG4gICAgICAgICAgICBkaWN0aW9uYXJ5U2VydmljZSxcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGxvYWREb2N1bWVudHMoXG4gICAgICAgIGJhc2VVcmw6IHN0cmluZyxcbiAgICAgICAgZm9ybUtleTogc3RyaW5nLFxuICAgICAgICBsYWJlbDogc3RyaW5nLFxuICAgICAgICBmaWxlczogRmlsZVtdLFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgaXNNdWx0aXBsZTogYm9vbGVhbixcbiAgICAgICAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgICAgICAgc2hvdWxkRGlzcGxheUZpbGVTYXZlZENvbmZpcm1hdGlvbjogYm9vbGVhblxuICAgICk6IE9ic2VydmFibGU8RG9jdW1lbnRzV2l0aEVycm9ycz4ge1xuICAgICAgICBpZiAodGhpcy5yZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50cyA9IGZpbGVzLm1hcChmaWxlID0+XG4gICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlckhlbHBlci5tYXBUb0RvY3VtZW50UmVmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICBpc011bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXFQcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsU2VxdWVuY2UrK1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IHRoaXMudXBsb2FkZXJIZWxwZXIubWFwVG9Gb3JtRGF0YShcbiAgICAgICAgICAgICAgICBkb2N1bWVudHMsXG4gICAgICAgICAgICAgICAgZm9ybUtleSxcbiAgICAgICAgICAgICAgICBsYW5ndWFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9L3VwbG9hZC8ke3RoaXMucmVmZXJlbmNlfWA7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAgICAgLnBvc3Q8RG9jdW1lbnRzV2l0aEVycm9ycz4odXJsLCBmb3JtRGF0YSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzZnVsRG9jdW1lbnRzQ291bnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5kb2N1bWVudHMgJiYgcmVzdWx0LmRvY3VtZW50cy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bERvY3VtZW50c0NvdW50ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkRGlzcGxheUZpbGVTYXZlZENvbmZpcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGAke3N1Y2Nlc3NmdWxEb2N1bWVudHNDb3VudH0gZmljaGllcihzKSBzYXV2ZWdhcmTDqShzKSBhdmVjIHN1Y2PDqHNgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xTZXJ2aWNlLmFkZFdpdGhUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcm93bFR5cGUuU1VDQ0VTUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSB0cmFuc21pc3Npb24gZGUgdm9zIGRvY3VtZW50cyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3dsU2VydmljZS5hZGRXaXRoVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcm93bFR5cGUuREFOR0VSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgIH1cblxuICAgIGRlbGV0ZURvY3VtZW50KFxuICAgICAgICBiYXNlVXJsOiBzdHJpbmcsXG4gICAgICAgIGRvY3VtZW50OiBEb2N1bWVudFJlZmVyZW5jZVxuICAgICk6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U+IHtcbiAgICAgICAgY29uc3QgeyByZWZlcmVuY2UgfSA9IHRoaXMuZ2VzZGVtSGFuZGxlclNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGE7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9L2RlbGV0ZS8ke3JlZmVyZW5jZX0vZG9jLyR7ZG9jdW1lbnQucmVmZXJlbmNlfWA7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUodXJsKS5waXBlKFxuICAgICAgICAgICAgLy8gUmVmbGVjdCB0aGUgZG9jdW1lbnQgb25jZSB0aGUgdXBkYXRlIGlzIGRvbmUgdG8gZWFzZSBjaGFpbmluZyBvYnNlcnZhYmxlcy5cbiAgICAgICAgICAgIG1hcCgoKSA9PiBkb2N1bWVudCksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgU3VwcHJlc3Npb24gZHUgZmljaGllciAke2RvY3VtZW50LmZpbGVuYW1lfSByw6l1c3NpZWA7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm93bFNlcnZpY2UuYWRkV2l0aFR5cGUoR3Jvd2xUeXBlLlNVQ0NFU1MsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgICAgICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlIHZvdHJlIGRvY3VtZW50JztcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3dsU2VydmljZS5hZGRXaXRoVHlwZShHcm93bFR5cGUuREFOR0VSLCBtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0RG93bmxvYWRVcmwoYmFzZVVybDogc3RyaW5nLCBkb2N1bWVudDogRG9jdW1lbnRSZWZlcmVuY2UpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0vZG93bmxvYWQvJHt0aGlzLnJlZmVyZW5jZX0vZG9jLyR7ZG9jdW1lbnQucmVmZXJlbmNlfWA7XG4gICAgfVxufVxuIl19