@hmcts/ccd-case-ui-toolkit 6.11.0-case-file-view-move-document → 6.11.0

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 (632) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +8547 -4496
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +1 -1
  6. package/esm2015/lib/components/banners/alert/alert.component.js +7 -5
  7. package/esm2015/lib/components/banners/alert/alert.module.js +12 -4
  8. package/esm2015/lib/components/footer/footer.component.js +55 -30
  9. package/esm2015/lib/components/footer/footers.module.js +12 -4
  10. package/esm2015/lib/components/form/date-input/date-input.component.js +63 -44
  11. package/esm2015/lib/components/form/form.module.js +8 -4
  12. package/esm2015/lib/components/header/header-bar/header-bar.component.js +33 -21
  13. package/esm2015/lib/components/header/headers.module.js +6 -4
  14. package/esm2015/lib/components/header/navigation/navigation-item.component.js +9 -7
  15. package/esm2015/lib/components/header/phase/phase.component.js +20 -9
  16. package/esm2015/lib/components/tabs/tabs.component.js +8 -5
  17. package/esm2015/lib/components/tabs/tabs.module.js +6 -2
  18. package/esm2015/lib/shared/commons/case-edit-data/case-edit-data.module.js +1 -1
  19. package/esm2015/lib/shared/commons/case-edit-data/case-edit-data.service.js +5 -8
  20. package/esm2015/lib/shared/commons/case-edit-data/case-edit-validation.model.js +1 -1
  21. package/esm2015/lib/shared/components/activity/activity-banner/activity-banner.component.js +12 -9
  22. package/esm2015/lib/shared/components/activity/activity-icon/activity-icon.component.js +11 -8
  23. package/esm2015/lib/shared/components/activity/activity.component.js +19 -14
  24. package/esm2015/lib/shared/components/activity/activity.module.js +6 -2
  25. package/esm2015/lib/shared/components/case-editor/case-create/case-create.component.js +2 -2
  26. package/esm2015/lib/shared/components/case-editor/case-edit/case-edit.component.js +2 -2
  27. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +30 -26
  28. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +98 -53
  29. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.js +7 -0
  30. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +216 -148
  31. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +35 -28
  32. package/esm2015/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.js +2 -1
  33. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +51 -26
  34. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +53 -30
  35. package/esm2015/lib/shared/components/case-editor/case-progress/case-progress.component.js +2 -2
  36. package/esm2015/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.js +2 -1
  37. package/esm2015/lib/shared/components/case-editor/domain/wizard-page-field.model.js +1 -1
  38. package/esm2015/lib/shared/components/case-editor/domain/wizard-page.model.js +2 -1
  39. package/esm2015/lib/shared/components/case-editor/services/case-edit-wizard.guard.js +3 -2
  40. package/esm2015/lib/shared/components/case-editor/services/case-flag-state.service.js +19 -0
  41. package/esm2015/lib/shared/components/case-editor/services/cases.service.js +11 -22
  42. package/esm2015/lib/shared/components/case-editor/services/page-validation.service.js +2 -2
  43. package/esm2015/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.js +12 -12
  44. package/esm2015/lib/shared/components/case-editor/services/work-allocation.service.js +2 -2
  45. package/esm2015/lib/shared/components/case-history/case-history.component.js +89 -63
  46. package/esm2015/lib/shared/components/case-history/case-history.module.js +18 -14
  47. package/esm2015/lib/shared/components/case-history/domain/case-history.model.js +2 -1
  48. package/esm2015/lib/shared/components/case-list/case-list.component.js +56 -49
  49. package/esm2015/lib/shared/components/case-list/case-list.module.js +8 -4
  50. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.module.js +11 -7
  51. package/esm2015/lib/shared/components/case-timeline/case-timeline.component.js +9 -6
  52. package/esm2015/lib/shared/components/case-timeline/case-timeline.module.js +12 -8
  53. package/esm2015/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +106 -61
  54. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +93 -73
  55. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.js +45 -23
  56. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +18 -17
  57. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +158 -95
  58. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.js +32 -20
  59. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +107 -79
  60. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +82 -52
  61. package/esm2015/lib/shared/components/case-viewer/case-view/case-view.component.js +1 -1
  62. package/esm2015/lib/shared/components/case-viewer/case-viewer.component.js +13 -15
  63. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +37 -27
  64. package/esm2015/lib/shared/components/case-viewer/printer/case-printer.component.js +36 -22
  65. package/esm2015/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.js +3 -3
  66. package/esm2015/lib/shared/components/case-viewer/services/case.resolver.js +2 -2
  67. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.component.js +63 -40
  68. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.module.js +6 -2
  69. package/esm2015/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.js +28 -14
  70. package/esm2015/lib/shared/components/dialogs/dialogs.module.js +6 -2
  71. package/esm2015/lib/shared/components/dialogs/document-dialog/document-dialog.component.js +28 -14
  72. package/esm2015/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.js +28 -14
  73. package/esm2015/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.js +28 -14
  74. package/esm2015/lib/shared/components/error/callback-errors.component.js +38 -27
  75. package/esm2015/lib/shared/components/error/domain/error-context.js +1 -1
  76. package/esm2015/lib/shared/components/error/errors.module.js +6 -2
  77. package/esm2015/lib/shared/components/error-message/error-message.component.js +14 -11
  78. package/esm2015/lib/shared/components/error-message/error-message.module.js +8 -4
  79. package/esm2015/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.js +39 -20
  80. package/esm2015/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.js +34 -18
  81. package/esm2015/lib/shared/components/event-start/components/task-assigned/task-assigned.component.js +34 -19
  82. package/esm2015/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.js +50 -25
  83. package/esm2015/lib/shared/components/event-start/components/task-conflict/task-conflict.component.js +39 -20
  84. package/esm2015/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.js +34 -18
  85. package/esm2015/lib/shared/components/event-start/event-guard/event-start.guard.js +2 -2
  86. package/esm2015/lib/shared/components/event-start/event-start.module.js +8 -4
  87. package/esm2015/lib/shared/components/event-trigger/event-trigger.component.js +27 -17
  88. package/esm2015/lib/shared/components/event-trigger/event-trigger.module.js +6 -2
  89. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.component.js +7 -5
  90. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.module.js +6 -2
  91. package/esm2015/lib/shared/components/pagination/pagination.component.js +93 -76
  92. package/esm2015/lib/shared/components/pagination/pagination.module.js +8 -4
  93. package/esm2015/lib/shared/components/palette/address/address-option.model.js +4 -7
  94. package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +53 -34
  95. package/esm2015/lib/shared/components/palette/base-field/field-read-label.component.js +10 -8
  96. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +6 -2
  97. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +3 -3
  98. package/esm2015/lib/shared/components/palette/base-field/payment-field.component.js +4 -1
  99. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field.component.js +32 -46
  100. package/esm2015/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.js +1 -1
  101. package/esm2015/lib/shared/components/palette/case-file-view/index.js +1 -2
  102. package/esm2015/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.js +62 -37
  103. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.js +244 -42
  104. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +145 -69
  105. package/esm2015/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.js +181 -0
  106. package/esm2015/lib/shared/components/palette/case-flag/components/index.js +3 -1
  107. package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +62 -87
  108. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.js +6 -0
  109. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.js +133 -101
  110. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +55 -35
  111. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +208 -124
  112. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.js +292 -0
  113. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.js +286 -99
  114. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag-state.model.js +1 -1
  115. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +1 -1
  116. package/esm2015/lib/shared/components/palette/case-flag/domain/language.model.js +1 -1
  117. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.js +9 -0
  118. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.js +12 -0
  119. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.js +3 -2
  120. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.js +8 -3
  121. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.js +6 -0
  122. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.js +6 -0
  123. package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +8 -2
  124. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.js +3 -2
  125. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.js +2 -1
  126. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.js +6 -0
  127. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.js +6 -0
  128. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.js +3 -1
  129. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.js +3 -2
  130. package/esm2015/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.js +8 -4
  131. package/esm2015/lib/shared/components/palette/case-flag/index.js +2 -1
  132. package/esm2015/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.js +41 -0
  133. package/esm2015/lib/shared/components/palette/case-flag/pipes/index.js +5 -0
  134. package/esm2015/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.js +41 -0
  135. package/esm2015/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.js +109 -0
  136. package/esm2015/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.js +77 -0
  137. package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +121 -50
  138. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +274 -154
  139. package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +16 -12
  140. package/esm2015/lib/shared/components/palette/collection/collection-create-checker.service.js +5 -5
  141. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +63 -39
  142. package/esm2015/lib/shared/components/palette/complex/read-complex-field-collection-table.component.js +53 -48
  143. package/esm2015/lib/shared/components/palette/complex/read-complex-field-raw.component.js +7 -6
  144. package/esm2015/lib/shared/components/palette/complex/read-complex-field-table.component.js +22 -20
  145. package/esm2015/lib/shared/components/palette/complex/write-complex-field.component.js +5 -4
  146. package/esm2015/lib/shared/components/palette/date/write-date-field.component.js +16 -12
  147. package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker.component.js +38 -19
  148. package/esm2015/lib/shared/components/palette/document/write-document-field.component.js +31 -25
  149. package/esm2015/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.js +9 -7
  150. package/esm2015/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.js +32 -20
  151. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/index.js +3 -0
  152. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.js +47 -0
  153. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.js +153 -0
  154. package/esm2015/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.js +9 -7
  155. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +26 -20
  156. package/esm2015/lib/shared/components/palette/email/write-email-field.component.js +16 -12
  157. package/esm2015/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.js +9 -7
  158. package/esm2015/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.js +19 -14
  159. package/esm2015/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.js +9 -7
  160. package/esm2015/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.js +20 -15
  161. package/esm2015/lib/shared/components/palette/history/event-log/event-log-details.component.js +87 -65
  162. package/esm2015/lib/shared/components/palette/history/event-log/event-log-table.component.js +60 -46
  163. package/esm2015/lib/shared/components/palette/index.js +3 -1
  164. package/esm2015/lib/shared/components/palette/label/label-field.component.js +24 -5
  165. package/esm2015/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.js +2 -4
  166. package/esm2015/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.js +31 -9
  167. package/esm2015/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.js +152 -77
  168. package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.js +21 -19
  169. package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.js +32 -8
  170. package/esm2015/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.js +2 -4
  171. package/esm2015/lib/shared/components/palette/linked-cases/domain/linked-cases.model.js +4 -1
  172. package/esm2015/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.js +3 -1
  173. package/esm2015/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.js +3 -5
  174. package/esm2015/lib/shared/components/palette/linked-cases/services/linked-cases.service.js +5 -6
  175. package/esm2015/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.js +43 -90
  176. package/esm2015/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.js +16 -12
  177. package/esm2015/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.js +15 -11
  178. package/esm2015/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +19 -14
  179. package/esm2015/lib/shared/components/palette/number/write-number-field.component.js +16 -12
  180. package/esm2015/lib/shared/components/palette/order-summary/fee.model.js +2 -1
  181. package/esm2015/lib/shared/components/palette/order-summary/order-summary.model.js +1 -1
  182. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-field.component.js +43 -25
  183. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-row.component.js +7 -6
  184. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-raw.component.js +41 -29
  185. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-table.component.js +48 -35
  186. package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +88 -50
  187. package/esm2015/lib/shared/components/palette/palette.module.js +168 -77
  188. package/esm2015/lib/shared/components/palette/palette.service.js +9 -4
  189. package/esm2015/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.js +3 -3
  190. package/esm2015/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.js +16 -12
  191. package/esm2015/lib/shared/components/palette/query-management/__mocks__/index.js +112 -0
  192. package/esm2015/lib/shared/components/palette/query-management/components/index.js +4 -0
  193. package/esm2015/lib/shared/components/palette/query-management/components/query-create/query-create.component.js +18 -0
  194. package/esm2015/lib/shared/components/palette/query-management/components/query-detail/query-detail.component.js +18 -0
  195. package/esm2015/lib/shared/components/palette/query-management/components/query-list/query-list.component.js +185 -0
  196. package/esm2015/lib/shared/components/palette/query-management/domain/index.js +7 -0
  197. package/esm2015/lib/shared/components/palette/query-management/domain/party-messages/party-message.model.js +2 -0
  198. package/esm2015/lib/shared/components/palette/query-management/domain/party-messages/party-messages-group.model.js +2 -0
  199. package/esm2015/lib/shared/components/palette/query-management/domain/query-list/query-list-data/query-list-data.model.js +18 -0
  200. package/esm2015/lib/shared/components/palette/query-management/domain/query-list/query-list-item/query-list-item.model.js +35 -0
  201. package/esm2015/lib/shared/components/palette/query-management/domain/query-list/query-list-response-status.enum.js +6 -0
  202. package/esm2015/lib/shared/components/palette/query-management/domain/query-list-column/query-list-column.model.js +2 -0
  203. package/esm2015/lib/shared/components/palette/query-management/index.js +6 -0
  204. package/esm2015/lib/shared/components/palette/query-management/read-query-management-field.component.js +53 -0
  205. package/esm2015/lib/shared/components/palette/query-management/utils/query-management.utils.js +12 -0
  206. package/esm2015/lib/shared/components/palette/query-management/write-query-management-field.component.js +20 -0
  207. package/esm2015/lib/shared/components/palette/text/read-text-field.component.js +7 -5
  208. package/esm2015/lib/shared/components/palette/text/write-text-field.component.js +16 -12
  209. package/esm2015/lib/shared/components/palette/text-area/read-text-area-field.component.js +7 -5
  210. package/esm2015/lib/shared/components/palette/text-area/write-text-area-field.component.js +17 -13
  211. package/esm2015/lib/shared/components/palette/utils/date.pipe.js +4 -4
  212. package/esm2015/lib/shared/components/palette/waystopay/waystopay-field.component.js +4 -4
  213. package/esm2015/lib/shared/components/palette/yes-no/read-yes-no-field.component.js +7 -5
  214. package/esm2015/lib/shared/components/palette/yes-no/write-yes-no-field.component.js +20 -15
  215. package/esm2015/lib/shared/components/palette/yes-no/yes-no.service.js +3 -1
  216. package/esm2015/lib/shared/components/search-filters/domain/search-input.model.js +1 -1
  217. package/esm2015/lib/shared/components/search-filters/search-filters.component.js +61 -36
  218. package/esm2015/lib/shared/components/search-filters/search-filters.module.js +14 -10
  219. package/esm2015/lib/shared/components/search-result/search-result.component.js +110 -92
  220. package/esm2015/lib/shared/components/search-result/search-result.module.js +16 -13
  221. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.component.js +92 -54
  222. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.module.js +13 -9
  223. package/esm2015/lib/shared/directives/conditional-show/conditional-show-form.directive.js +2 -2
  224. package/esm2015/lib/shared/directives/conditional-show/domain/conditional-show.model.js +104 -200
  225. package/esm2015/lib/shared/directives/conditional-show/services/condition-parser.service.js +197 -0
  226. package/esm2015/lib/shared/directives/conditional-show/services/condition.peg.js +103 -0
  227. package/esm2015/lib/shared/domain/addresses/address.model.js +2 -1
  228. package/esm2015/lib/shared/domain/alert/alert-status-params.model.js +2 -0
  229. package/esm2015/lib/shared/domain/case-details.model.js +2 -1
  230. package/esm2015/lib/shared/domain/case-event-data.model.js +2 -1
  231. package/esm2015/lib/shared/domain/case-file-view/case-file-view-category.model.js +1 -1
  232. package/esm2015/lib/shared/domain/case-file-view/case-file-view-document.model.js +2 -1
  233. package/esm2015/lib/shared/domain/case-file-view/categories-and-documents.model.js +1 -1
  234. package/esm2015/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.js +2 -1
  235. package/esm2015/lib/shared/domain/case-flag/flag-type.model.js +18 -2
  236. package/esm2015/lib/shared/domain/case-flag/hmcts-service-detail.model.js +2 -1
  237. package/esm2015/lib/shared/domain/case-view/case-event-trigger.model.js +2 -1
  238. package/esm2015/lib/shared/domain/case-view/case-tab.model.js +2 -1
  239. package/esm2015/lib/shared/domain/case-view/case-view-event.model.js +2 -1
  240. package/esm2015/lib/shared/domain/case-view/case-view.model.js +2 -1
  241. package/esm2015/lib/shared/domain/case-view/role-assignment-response.model.js +1 -1
  242. package/esm2015/lib/shared/domain/case-view/role-request.model.js +1 -1
  243. package/esm2015/lib/shared/domain/definition/case-event.model.js +1 -1
  244. package/esm2015/lib/shared/domain/definition/case-field.model.js +7 -3
  245. package/esm2015/lib/shared/domain/definition/case-type.model.js +2 -1
  246. package/esm2015/lib/shared/domain/definition/display-context-enum.model.js +3 -1
  247. package/esm2015/lib/shared/domain/definition/event-case-field.model.js +2 -1
  248. package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
  249. package/esm2015/lib/shared/domain/definition/field-type.model.js +2 -1
  250. package/esm2015/lib/shared/domain/document/document-data.model.js +2 -1
  251. package/esm2015/lib/shared/domain/organisation/organisation-converter.js +8 -8
  252. package/esm2015/lib/shared/domain/pagination-metadata.model.js +1 -1
  253. package/esm2015/lib/shared/domain/search/field.model.js +1 -1
  254. package/esm2015/lib/shared/domain/search/search-result-view-column.model.js +1 -1
  255. package/esm2015/lib/shared/domain/search/search-result-view-item.model.js +2 -1
  256. package/esm2015/lib/shared/domain/search/search-result-view.model.js +2 -1
  257. package/esm2015/lib/shared/domain/user/user-info.model.js +1 -1
  258. package/esm2015/lib/shared/domain/workbasket/workbasket-input.model.js +1 -8
  259. package/esm2015/lib/shared/fixture/case-field-builder.js +13 -13
  260. package/esm2015/lib/shared/fixture/shared.test.fixture.js +28 -27
  261. package/esm2015/lib/shared/pipes/complex/{cdd-page-fields.pipe.js → ccd-page-fields.pipe.js} +3 -3
  262. package/esm2015/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.js +14 -11
  263. package/esm2015/lib/shared/pipes/complex/index.js +2 -2
  264. package/esm2015/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.js +16 -0
  265. package/esm2015/lib/shared/pipes/generic/index.js +2 -0
  266. package/esm2015/lib/shared/pipes/index.js +5 -1
  267. package/esm2015/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.js +28 -0
  268. package/esm2015/lib/shared/pipes/link-cases-from-reason-code/index.js +2 -0
  269. package/esm2015/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.js +10 -5
  270. package/esm2015/lib/shared/pipes/pipes.module.js +13 -5
  271. package/esm2015/lib/shared/services/activity/activity.polling.service.js +2 -2
  272. package/esm2015/lib/shared/services/activity/activity.service.js +9 -18
  273. package/esm2015/lib/shared/services/addresses/address-parser.js +5 -5
  274. package/esm2015/lib/shared/services/alert/alert.service.js +28 -8
  275. package/esm2015/lib/shared/services/case-fields/format-translator.service.js +2 -2
  276. package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +35 -8
  277. package/esm2015/lib/shared/services/common-data-service/common-data-service.js +2 -2
  278. package/esm2015/lib/shared/services/definitions/definitions.service.js +3 -8
  279. package/esm2015/lib/shared/services/fields/fields.purger.js +15 -15
  280. package/esm2015/lib/shared/services/fields/fields.utils.js +12 -4
  281. package/esm2015/lib/shared/services/form/field-type-sanitiser.js +17 -1
  282. package/esm2015/lib/shared/services/form/form-value.service.js +1 -2
  283. package/esm2015/lib/shared/services/loading/loading.service.js +2 -7
  284. package/esm2015/lib/shared/services/request/request.options.builder.js +7 -1
  285. package/esm2015/lib/shared/services/search/search.service.js +5 -10
  286. package/esm2015/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.js +5 -5
  287. package/esm2015/lib/shared/services/window/window.service.js +1 -1
  288. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +7979 -4216
  289. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  290. package/lib/app.config.d.ts +2 -0
  291. package/lib/app.config.d.ts.map +1 -1
  292. package/lib/components/banners/alert/alert.module.d.ts +2 -1
  293. package/lib/components/banners/alert/alert.module.d.ts.map +1 -1
  294. package/lib/components/footer/footers.module.d.ts +2 -1
  295. package/lib/components/footer/footers.module.d.ts.map +1 -1
  296. package/lib/components/form/form.module.d.ts +2 -1
  297. package/lib/components/form/form.module.d.ts.map +1 -1
  298. package/lib/components/header/header-bar/header-bar.component.d.ts.map +1 -1
  299. package/lib/components/header/headers.module.d.ts +2 -1
  300. package/lib/components/header/headers.module.d.ts.map +1 -1
  301. package/lib/components/tabs/tabs.component.d.ts.map +1 -1
  302. package/lib/components/tabs/tabs.module.d.ts +2 -1
  303. package/lib/components/tabs/tabs.module.d.ts.map +1 -1
  304. package/lib/shared/commons/case-edit-data/case-edit-data.module.d.ts.map +1 -1
  305. package/lib/shared/commons/case-edit-data/case-edit-data.service.d.ts +3 -5
  306. package/lib/shared/commons/case-edit-data/case-edit-data.service.d.ts.map +1 -1
  307. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts.map +1 -1
  308. package/lib/shared/components/activity/activity.module.d.ts +2 -1
  309. package/lib/shared/components/activity/activity.module.d.ts.map +1 -1
  310. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +3 -3
  311. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
  312. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +2 -0
  313. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  314. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.d.ts +6 -0
  315. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.d.ts.map +1 -0
  316. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +1 -2
  317. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  318. package/lib/shared/components/case-editor/case-editor.module.d.ts +3 -2
  319. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  320. package/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.d.ts.map +1 -1
  321. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts +2 -2
  322. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  323. package/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.d.ts.map +1 -1
  324. package/lib/shared/components/case-editor/domain/wizard-page-field.model.d.ts.map +1 -1
  325. package/lib/shared/components/case-editor/domain/wizard-page.model.d.ts.map +1 -1
  326. package/lib/shared/components/case-editor/services/case-edit-wizard.guard.d.ts.map +1 -1
  327. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +11 -0
  328. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -0
  329. package/lib/shared/components/case-editor/services/cases.service.d.ts +1 -3
  330. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  331. package/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.d.ts.map +1 -1
  332. package/lib/shared/components/case-editor/services/work-allocation.service.d.ts.map +1 -1
  333. package/lib/shared/components/case-history/case-history.module.d.ts +2 -1
  334. package/lib/shared/components/case-history/case-history.module.d.ts.map +1 -1
  335. package/lib/shared/components/case-history/domain/case-history.model.d.ts.map +1 -1
  336. package/lib/shared/components/case-list/case-list.module.d.ts +2 -1
  337. package/lib/shared/components/case-list/case-list.module.d.ts.map +1 -1
  338. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts +2 -1
  339. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts.map +1 -1
  340. package/lib/shared/components/case-timeline/case-timeline.module.d.ts +2 -1
  341. package/lib/shared/components/case-timeline/case-timeline.module.d.ts.map +1 -1
  342. package/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.d.ts.map +1 -1
  343. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  344. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +9 -2
  345. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  346. package/lib/shared/components/case-viewer/case-viewer.component.d.ts +2 -2
  347. package/lib/shared/components/case-viewer/case-viewer.component.d.ts.map +1 -1
  348. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +6 -4
  349. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  350. package/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.d.ts.map +1 -1
  351. package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -1
  352. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts +2 -1
  353. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts.map +1 -1
  354. package/lib/shared/components/dialogs/dialogs.module.d.ts +2 -1
  355. package/lib/shared/components/dialogs/dialogs.module.d.ts.map +1 -1
  356. package/lib/shared/components/error/domain/error-context.d.ts +2 -2
  357. package/lib/shared/components/error/domain/error-context.d.ts.map +1 -1
  358. package/lib/shared/components/error/errors.module.d.ts +2 -1
  359. package/lib/shared/components/error/errors.module.d.ts.map +1 -1
  360. package/lib/shared/components/error-message/error-message.module.d.ts +2 -1
  361. package/lib/shared/components/error-message/error-message.module.d.ts.map +1 -1
  362. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +1 -1
  363. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  364. package/lib/shared/components/event-start/event-start.module.d.ts +2 -1
  365. package/lib/shared/components/event-start/event-start.module.d.ts.map +1 -1
  366. package/lib/shared/components/event-trigger/event-trigger.module.d.ts +2 -1
  367. package/lib/shared/components/event-trigger/event-trigger.module.d.ts.map +1 -1
  368. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts +2 -1
  369. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts.map +1 -1
  370. package/lib/shared/components/pagination/pagination.component.d.ts +3 -3
  371. package/lib/shared/components/pagination/pagination.module.d.ts +2 -1
  372. package/lib/shared/components/pagination/pagination.module.d.ts.map +1 -1
  373. package/lib/shared/components/palette/address/address-option.model.d.ts.map +1 -1
  374. package/lib/shared/components/palette/address/write-address-field.component.d.ts.map +1 -1
  375. package/lib/shared/components/palette/base-field/field-read.component.d.ts +1 -0
  376. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  377. package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
  378. package/lib/shared/components/palette/base-field/payment-field.component.d.ts +1 -0
  379. package/lib/shared/components/palette/base-field/payment-field.component.d.ts.map +1 -1
  380. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts +5 -3
  381. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts.map +1 -1
  382. package/lib/shared/components/palette/case-file-view/index.d.ts +0 -1
  383. package/lib/shared/components/palette/case-file-view/index.d.ts.map +1 -1
  384. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +2 -1
  385. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  386. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +20 -5
  387. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  388. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +2 -1
  389. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  390. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +28 -0
  391. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -0
  392. package/lib/shared/components/palette/case-flag/components/index.d.ts +2 -0
  393. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  394. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +4 -8
  395. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  396. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +5 -0
  397. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +1 -0
  398. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +10 -8
  399. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  400. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +2 -1
  401. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  402. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +14 -8
  403. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  404. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +27 -0
  405. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -0
  406. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +19 -9
  407. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  408. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +1 -10
  409. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  410. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +6 -0
  411. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  412. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +1 -0
  413. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  414. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +8 -0
  415. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +1 -0
  416. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +11 -0
  417. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +1 -0
  418. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +2 -1
  419. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  420. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +8 -3
  421. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  422. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +5 -0
  423. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +1 -0
  424. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +5 -0
  425. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +1 -0
  426. package/lib/shared/components/palette/case-flag/enums/index.d.ts +7 -1
  427. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  428. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +2 -1
  429. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  430. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +1 -0
  431. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  432. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +5 -0
  433. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +1 -0
  434. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +5 -0
  435. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +1 -0
  436. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +3 -1
  437. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  438. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +3 -2
  439. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  440. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +7 -3
  441. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  442. package/lib/shared/components/palette/case-flag/index.d.ts +1 -0
  443. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  444. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +19 -0
  445. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +1 -0
  446. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +5 -0
  447. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +1 -0
  448. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +18 -0
  449. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +1 -0
  450. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +25 -0
  451. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +1 -0
  452. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +21 -0
  453. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +1 -0
  454. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +11 -8
  455. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  456. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +25 -24
  457. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  458. package/lib/shared/components/palette/collection/collection-create-checker.service.d.ts.map +1 -1
  459. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +1 -0
  460. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  461. package/lib/shared/components/palette/complex/read-complex-field-collection-table.component.d.ts +1 -1
  462. package/lib/shared/components/palette/complex/read-complex-field-collection-table.component.d.ts.map +1 -1
  463. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts.map +1 -1
  464. package/lib/shared/components/palette/dynamic-multi-select-list/index.d.ts +3 -0
  465. package/lib/shared/components/palette/dynamic-multi-select-list/index.d.ts.map +1 -0
  466. package/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.d.ts +9 -0
  467. package/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.d.ts.map +1 -0
  468. package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts +17 -0
  469. package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts.map +1 -0
  470. package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts +1 -1
  471. package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts.map +1 -1
  472. package/lib/shared/components/palette/index.d.ts +2 -0
  473. package/lib/shared/components/palette/index.d.ts.map +1 -1
  474. package/lib/shared/components/palette/label/label-field.component.d.ts +2 -1
  475. package/lib/shared/components/palette/label/label-field.component.d.ts.map +1 -1
  476. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts.map +1 -1
  477. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts +4 -0
  478. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts.map +1 -1
  479. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts +4 -4
  480. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts.map +1 -1
  481. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.d.ts +2 -0
  482. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.d.ts.map +1 -1
  483. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -1
  484. package/lib/shared/components/palette/linked-cases/domain/linked-cases.model.d.ts +6 -3
  485. package/lib/shared/components/palette/linked-cases/domain/linked-cases.model.d.ts.map +1 -1
  486. package/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.d.ts +3 -1
  487. package/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.d.ts.map +1 -1
  488. package/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.d.ts.map +1 -1
  489. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -1
  490. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts +0 -4
  491. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -1
  492. package/lib/shared/components/palette/order-summary/fee.model.d.ts.map +1 -1
  493. package/lib/shared/components/palette/order-summary/order-summary.model.d.ts.map +1 -1
  494. package/lib/shared/components/palette/palette.module.d.ts +129 -116
  495. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  496. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  497. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +3 -0
  498. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +1 -0
  499. package/lib/shared/components/palette/query-management/components/index.d.ts +4 -0
  500. package/lib/shared/components/palette/query-management/components/index.d.ts.map +1 -0
  501. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts +9 -0
  502. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts.map +1 -0
  503. package/lib/shared/components/palette/query-management/components/query-detail/query-detail.component.d.ts +9 -0
  504. package/lib/shared/components/palette/query-management/components/query-detail/query-detail.component.d.ts.map +1 -0
  505. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +16 -0
  506. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +1 -0
  507. package/lib/shared/components/palette/query-management/domain/index.d.ts +7 -0
  508. package/lib/shared/components/palette/query-management/domain/index.d.ts.map +1 -0
  509. package/lib/shared/components/palette/query-management/domain/party-messages/party-message.model.d.ts +14 -0
  510. package/lib/shared/components/palette/query-management/domain/party-messages/party-message.model.d.ts.map +1 -0
  511. package/lib/shared/components/palette/query-management/domain/party-messages/party-messages-group.model.d.ts +7 -0
  512. package/lib/shared/components/palette/query-management/domain/party-messages/party-messages-group.model.d.ts.map +1 -0
  513. package/lib/shared/components/palette/query-management/domain/query-list/query-list-data/query-list-data.model.d.ts +10 -0
  514. package/lib/shared/components/palette/query-management/domain/query-list/query-list-data/query-list-data.model.d.ts.map +1 -0
  515. package/lib/shared/components/palette/query-management/domain/query-list/query-list-item/query-list-item.model.d.ts +21 -0
  516. package/lib/shared/components/palette/query-management/domain/query-list/query-list-item/query-list-item.model.d.ts.map +1 -0
  517. package/lib/shared/components/palette/query-management/domain/query-list/query-list-response-status.enum.d.ts +5 -0
  518. package/lib/shared/components/palette/query-management/domain/query-list/query-list-response-status.enum.d.ts.map +1 -0
  519. package/lib/shared/components/palette/query-management/domain/query-list-column/query-list-column.model.d.ts +7 -0
  520. package/lib/shared/components/palette/query-management/domain/query-list-column/query-list-column.model.d.ts.map +1 -0
  521. package/lib/shared/components/palette/query-management/index.d.ts +6 -0
  522. package/lib/shared/components/palette/query-management/index.d.ts.map +1 -0
  523. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +14 -0
  524. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -0
  525. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +7 -0
  526. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -0
  527. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts +10 -0
  528. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts.map +1 -0
  529. package/lib/shared/components/palette/text-area/write-text-area-field.component.d.ts.map +1 -1
  530. package/lib/shared/components/palette/utils/date.pipe.d.ts.map +1 -1
  531. package/lib/shared/components/palette/yes-no/yes-no.service.d.ts.map +1 -1
  532. package/lib/shared/components/search-filters/domain/search-input.model.d.ts.map +1 -1
  533. package/lib/shared/components/search-filters/search-filters.module.d.ts +2 -1
  534. package/lib/shared/components/search-filters/search-filters.module.d.ts.map +1 -1
  535. package/lib/shared/components/search-result/search-result.module.d.ts +3 -2
  536. package/lib/shared/components/search-result/search-result.module.d.ts.map +1 -1
  537. package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts.map +1 -1
  538. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts +2 -1
  539. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts.map +1 -1
  540. package/lib/shared/directives/conditional-show/domain/conditional-show.model.d.ts +13 -30
  541. package/lib/shared/directives/conditional-show/domain/conditional-show.model.d.ts.map +1 -1
  542. package/lib/shared/directives/conditional-show/services/condition-parser.service.d.ts +30 -0
  543. package/lib/shared/directives/conditional-show/services/condition-parser.service.d.ts.map +1 -0
  544. package/lib/shared/directives/conditional-show/services/condition.peg.d.ts +3 -0
  545. package/lib/shared/directives/conditional-show/services/condition.peg.d.ts.map +1 -0
  546. package/lib/shared/domain/addresses/address.model.d.ts.map +1 -1
  547. package/lib/shared/domain/alert/alert-status-params.model.d.ts +6 -0
  548. package/lib/shared/domain/alert/alert-status-params.model.d.ts.map +1 -0
  549. package/lib/shared/domain/case-details.model.d.ts.map +1 -1
  550. package/lib/shared/domain/case-event-data.model.d.ts.map +1 -1
  551. package/lib/shared/domain/case-file-view/case-file-view-category.model.d.ts.map +1 -1
  552. package/lib/shared/domain/case-file-view/case-file-view-document.model.d.ts.map +1 -1
  553. package/lib/shared/domain/case-file-view/categories-and-documents.model.d.ts.map +1 -1
  554. package/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.d.ts.map +1 -1
  555. package/lib/shared/domain/case-flag/flag-type.model.d.ts +6 -1
  556. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  557. package/lib/shared/domain/case-flag/hmcts-service-detail.model.d.ts.map +1 -1
  558. package/lib/shared/domain/case-view/case-event-trigger.model.d.ts.map +1 -1
  559. package/lib/shared/domain/case-view/case-tab.model.d.ts.map +1 -1
  560. package/lib/shared/domain/case-view/case-view-event.model.d.ts.map +1 -1
  561. package/lib/shared/domain/case-view/case-view.model.d.ts.map +1 -1
  562. package/lib/shared/domain/case-view/role-assignment-response.model.d.ts +1 -2
  563. package/lib/shared/domain/case-view/role-assignment-response.model.d.ts.map +1 -1
  564. package/lib/shared/domain/case-view/role-request.model.d.ts.map +1 -1
  565. package/lib/shared/domain/definition/case-event.model.d.ts.map +1 -1
  566. package/lib/shared/domain/definition/case-field.model.d.ts.map +1 -1
  567. package/lib/shared/domain/definition/case-type.model.d.ts.map +1 -1
  568. package/lib/shared/domain/definition/display-context-enum.model.d.ts +3 -1
  569. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  570. package/lib/shared/domain/definition/event-case-field.model.d.ts.map +1 -1
  571. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  572. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  573. package/lib/shared/domain/definition/field-type.model.d.ts.map +1 -1
  574. package/lib/shared/domain/document/document-data.model.d.ts.map +1 -1
  575. package/lib/shared/domain/organisation/organisation-converter.d.ts.map +1 -1
  576. package/lib/shared/domain/pagination-metadata.model.d.ts +2 -2
  577. package/lib/shared/domain/pagination-metadata.model.d.ts.map +1 -1
  578. package/lib/shared/domain/search/field.model.d.ts.map +1 -1
  579. package/lib/shared/domain/search/search-result-view-column.model.d.ts.map +1 -1
  580. package/lib/shared/domain/search/search-result-view-item.model.d.ts.map +1 -1
  581. package/lib/shared/domain/search/search-result-view.model.d.ts.map +1 -1
  582. package/lib/shared/domain/user/user-info.model.d.ts.map +1 -1
  583. package/lib/shared/domain/workbasket/workbasket-input.model.d.ts +0 -1
  584. package/lib/shared/domain/workbasket/workbasket-input.model.d.ts.map +1 -1
  585. package/lib/shared/fixture/case-field-builder.d.ts +6 -6
  586. package/lib/shared/fixture/case-field-builder.d.ts.map +1 -1
  587. package/lib/shared/fixture/shared.test.fixture.d.ts +6 -6
  588. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  589. package/lib/shared/pipes/complex/{cdd-page-fields.pipe.d.ts → ccd-page-fields.pipe.d.ts} +1 -1
  590. package/lib/shared/pipes/complex/ccd-page-fields.pipe.d.ts.map +1 -0
  591. package/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.d.ts.map +1 -1
  592. package/lib/shared/pipes/complex/index.d.ts +1 -1
  593. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +8 -0
  594. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +1 -0
  595. package/lib/shared/pipes/generic/index.d.ts +2 -0
  596. package/lib/shared/pipes/generic/index.d.ts.map +1 -0
  597. package/lib/shared/pipes/index.d.ts +4 -0
  598. package/lib/shared/pipes/index.d.ts.map +1 -1
  599. package/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.d.ts +12 -0
  600. package/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.d.ts.map +1 -0
  601. package/lib/shared/pipes/link-cases-from-reason-code/index.d.ts +2 -0
  602. package/lib/shared/pipes/link-cases-from-reason-code/index.d.ts.map +1 -0
  603. package/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.d.ts +2 -1
  604. package/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.d.ts.map +1 -1
  605. package/lib/shared/pipes/pipes.module.d.ts +5 -3
  606. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  607. package/lib/shared/services/activity/activity.polling.service.d.ts.map +1 -1
  608. package/lib/shared/services/activity/activity.service.d.ts.map +1 -1
  609. package/lib/shared/services/addresses/address-parser.d.ts.map +1 -1
  610. package/lib/shared/services/alert/alert.service.d.ts +8 -4
  611. package/lib/shared/services/alert/alert.service.d.ts.map +1 -1
  612. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +17 -5
  613. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  614. package/lib/shared/services/common-data-service/common-data-service.d.ts.map +1 -1
  615. package/lib/shared/services/definitions/definitions.service.d.ts.map +1 -1
  616. package/lib/shared/services/fields/fields.purger.d.ts.map +1 -1
  617. package/lib/shared/services/fields/fields.utils.d.ts +2 -1
  618. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  619. package/lib/shared/services/form/field-type-sanitiser.d.ts +2 -0
  620. package/lib/shared/services/form/field-type-sanitiser.d.ts.map +1 -1
  621. package/lib/shared/services/loading/loading.service.d.ts +1 -4
  622. package/lib/shared/services/loading/loading.service.d.ts.map +1 -1
  623. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  624. package/lib/shared/services/search/search.service.d.ts +0 -2
  625. package/lib/shared/services/search/search.service.d.ts.map +1 -1
  626. package/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.d.ts.map +1 -1
  627. package/lib/shared/services/window/window.service.d.ts.map +1 -1
  628. package/package.json +2 -2
  629. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.js +0 -85
  630. package/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.d.ts +0 -8
  631. package/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.d.ts.map +0 -1
  632. package/lib/shared/pipes/complex/cdd-page-fields.pipe.d.ts.map +0 -1
@@ -10,7 +10,7 @@ import * as i1 from "../../services";
10
10
  import * as i2 from "../../../app.config";
11
11
  import * as i3 from "../../pipes";
12
12
  import * as i4 from "../../directives";
13
- function SearchResultComponent_table_0_div_4_Template(rf, ctx) { if (rf & 1) {
13
+ function SearchResultComponent_table_0_div_5_Template(rf, ctx) { if (rf & 1) {
14
14
  i0.ɵɵelementStart(0, "div", 11);
15
15
  i0.ɵɵelementStart(1, "span", 12);
16
16
  i0.ɵɵtext(2, "!");
@@ -26,24 +26,27 @@ function SearchResultComponent_table_0_div_4_Template(rf, ctx) { if (rf & 1) {
26
26
  } if (rf & 2) {
27
27
  const ctx_r3 = i0.ɵɵnextContext(2);
28
28
  i0.ɵɵadvance(6);
29
- i0.ɵɵtextInterpolate1(" The total size of the result set is ", i0.ɵɵpipeBind1(7, 1, ctx_r3.paginationMetadata.total_results_count), ". Only the first 10,000 records are available for display. ");
29
+ i0.ɵɵtextInterpolate1(" The total size of the result set is ", i0.ɵɵpipeBind1(7, 1, ctx_r3.paginationMetadata.totalResultsCount), ". Only the first 10,000 records are available for display. ");
30
30
  } }
31
- function SearchResultComponent_table_0_div_5_Template(rf, ctx) { if (rf & 1) {
31
+ function SearchResultComponent_table_0_div_6_Template(rf, ctx) { if (rf & 1) {
32
32
  i0.ɵɵelementStart(0, "div", 15);
33
33
  i0.ɵɵelementStart(1, "span", 16);
34
34
  i0.ɵɵtext(2, "Showing ");
35
35
  i0.ɵɵelementStart(3, "span", 17);
36
36
  i0.ɵɵtext(4);
37
37
  i0.ɵɵelementEnd();
38
- i0.ɵɵtext(5, " to ");
39
- i0.ɵɵelementStart(6, "span", 17);
40
- i0.ɵɵtext(7);
38
+ i0.ɵɵtext(5);
39
+ i0.ɵɵpipe(6, "rpxTranslate");
40
+ i0.ɵɵelementStart(7, "span", 17);
41
+ i0.ɵɵtext(8);
41
42
  i0.ɵɵelementEnd();
42
- i0.ɵɵtext(8, " of ");
43
- i0.ɵɵelementStart(9, "span", 17);
44
- i0.ɵɵtext(10);
43
+ i0.ɵɵtext(9);
44
+ i0.ɵɵpipe(10, "rpxTranslate");
45
+ i0.ɵɵelementStart(11, "span", 17);
46
+ i0.ɵɵtext(12);
45
47
  i0.ɵɵelementEnd();
46
- i0.ɵɵtext(11, " results");
48
+ i0.ɵɵtext(13);
49
+ i0.ɵɵpipe(14, "rpxTranslate");
47
50
  i0.ɵɵelementEnd();
48
51
  i0.ɵɵelementEnd();
49
52
  } if (rf & 2) {
@@ -51,28 +54,40 @@ function SearchResultComponent_table_0_div_5_Template(rf, ctx) { if (rf & 1) {
51
54
  i0.ɵɵattributeInterpolate1("aria-label", "", ctx_r4.getTotalResults(), " results have been found");
52
55
  i0.ɵɵadvance(4);
53
56
  i0.ɵɵtextInterpolate(ctx_r4.getFirstResult());
57
+ i0.ɵɵadvance(1);
58
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 7, "to"), " ");
54
59
  i0.ɵɵadvance(3);
55
60
  i0.ɵɵtextInterpolate(ctx_r4.getLastResult());
61
+ i0.ɵɵadvance(1);
62
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 9, "of"), " ");
56
63
  i0.ɵɵadvance(3);
57
64
  i0.ɵɵtextInterpolate(ctx_r4.getTotalResults());
65
+ i0.ɵɵadvance(1);
66
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 11, "results"), "");
58
67
  } }
59
- function SearchResultComponent_table_0_div_6_Template(rf, ctx) { if (rf & 1) {
68
+ function SearchResultComponent_table_0_div_7_Template(rf, ctx) { if (rf & 1) {
60
69
  const _r12 = i0.ɵɵgetCurrentView();
61
70
  i0.ɵɵelementStart(0, "div", 18);
62
- i0.ɵɵelementStart(1, "span");
63
- i0.ɵɵelementStart(2, "a", 19);
64
- i0.ɵɵlistener("click", function SearchResultComponent_table_0_div_6_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(2); return ctx_r11.clearSelection(); });
65
- i0.ɵɵtext(3, "Reset case selection");
71
+ i0.ɵɵpipe(1, "rpxTranslate");
72
+ i0.ɵɵelementStart(2, "span");
73
+ i0.ɵɵelementStart(3, "a", 19);
74
+ i0.ɵɵlistener("click", function SearchResultComponent_table_0_div_7_Template_a_click_3_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(2); return ctx_r11.clearSelection(); });
75
+ i0.ɵɵtext(4);
76
+ i0.ɵɵpipe(5, "rpxTranslate");
66
77
  i0.ɵɵelementEnd();
67
78
  i0.ɵɵelementEnd();
68
79
  i0.ɵɵelementEnd();
80
+ } if (rf & 2) {
81
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(1, 2, "Reset selection"));
82
+ i0.ɵɵadvance(4);
83
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 4, "Reset case selection"));
69
84
  } }
70
- function SearchResultComponent_table_0_th_9_Template(rf, ctx) { if (rf & 1) {
85
+ function SearchResultComponent_table_0_th_10_Template(rf, ctx) { if (rf & 1) {
71
86
  const _r14 = i0.ɵɵgetCurrentView();
72
87
  i0.ɵɵelementStart(0, "th", 20);
73
88
  i0.ɵɵelementStart(1, "div", 21);
74
89
  i0.ɵɵelementStart(2, "input", 22);
75
- i0.ɵɵlistener("change", function SearchResultComponent_table_0_th_9_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return ctx_r13.selectAll(); });
90
+ i0.ɵɵlistener("change", function SearchResultComponent_table_0_th_10_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return ctx_r13.selectAll(); });
76
91
  i0.ɵɵelementEnd();
77
92
  i0.ɵɵelement(3, "label", 23);
78
93
  i0.ɵɵelementEnd();
@@ -82,11 +97,11 @@ function SearchResultComponent_table_0_th_9_Template(rf, ctx) { if (rf & 1) {
82
97
  i0.ɵɵadvance(2);
83
98
  i0.ɵɵproperty("checked", ctx_r6.allOnPageSelected())("disabled", !ctx_r6.canAnyBeShared());
84
99
  } }
85
- function SearchResultComponent_table_0_th_10_div_6_Template(rf, ctx) { if (rf & 1) {
100
+ function SearchResultComponent_table_0_th_11_div_4_Template(rf, ctx) { if (rf & 1) {
86
101
  const _r19 = i0.ɵɵgetCurrentView();
87
102
  i0.ɵɵelementStart(0, "div", 27);
88
103
  i0.ɵɵelementStart(1, "a", 28);
89
- i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_10_div_6_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r19); const col_r15 = i0.ɵɵnextContext().$implicit; const ctx_r17 = i0.ɵɵnextContext(2); return ctx_r17.sort(col_r15); });
104
+ i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_11_div_4_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r19); const col_r15 = i0.ɵɵnextContext().$implicit; const ctx_r17 = i0.ɵɵnextContext(2); return ctx_r17.sort(col_r15); });
90
105
  i0.ɵɵelementEnd();
91
106
  i0.ɵɵelementEnd();
92
107
  } if (rf & 2) {
@@ -95,19 +110,15 @@ function SearchResultComponent_table_0_th_10_div_6_Template(rf, ctx) { if (rf &
95
110
  i0.ɵɵadvance(1);
96
111
  i0.ɵɵproperty("innerHTML", ctx_r16.sortWidget(col_r15), i0.ɵɵsanitizeHtml);
97
112
  } }
98
- function SearchResultComponent_table_0_th_10_Template(rf, ctx) { if (rf & 1) {
113
+ function SearchResultComponent_table_0_th_11_Template(rf, ctx) { if (rf & 1) {
99
114
  const _r22 = i0.ɵɵgetCurrentView();
100
115
  i0.ɵɵelementStart(0, "th");
101
- i0.ɵɵelementStart(1, "table", 24);
102
- i0.ɵɵelementStart(2, "tr");
103
- i0.ɵɵelementStart(3, "th");
104
- i0.ɵɵelementStart(4, "div", 25);
105
- i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_10_Template_div_click_4_listener() { i0.ɵɵrestoreView(_r22); const col_r15 = ctx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return ctx_r21.sort(col_r15); });
106
- i0.ɵɵtext(5);
107
- i0.ɵɵelementEnd();
108
- i0.ɵɵtemplate(6, SearchResultComponent_table_0_th_10_div_6_Template, 2, 1, "div", 26);
109
- i0.ɵɵelementEnd();
116
+ i0.ɵɵelementStart(1, "div", 24);
117
+ i0.ɵɵelementStart(2, "div", 25);
118
+ i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_11_Template_div_click_2_listener() { i0.ɵɵrestoreView(_r22); const col_r15 = ctx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return ctx_r21.sort(col_r15); });
119
+ i0.ɵɵtext(3);
110
120
  i0.ɵɵelementEnd();
121
+ i0.ɵɵtemplate(4, SearchResultComponent_table_0_th_11_div_4_Template, 2, 1, "div", 26);
111
122
  i0.ɵɵelementEnd();
112
123
  i0.ɵɵelementEnd();
113
124
  } if (rf & 2) {
@@ -115,20 +126,20 @@ function SearchResultComponent_table_0_th_10_Template(rf, ctx) { if (rf & 1) {
115
126
  const ctx_r7 = i0.ɵɵnextContext(2);
116
127
  i0.ɵɵadvance(1);
117
128
  i0.ɵɵattribute("aria-label", "Sort by " + col_r15.label + " " + ctx_r7.isSortAscending(col_r15) ? "ascending" : "descending");
118
- i0.ɵɵadvance(4);
129
+ i0.ɵɵadvance(2);
119
130
  i0.ɵɵtextInterpolate(col_r15.label);
120
131
  i0.ɵɵadvance(1);
121
132
  i0.ɵɵproperty("ngIf", ctx_r7.comparator(col_r15));
122
133
  } }
123
- function SearchResultComponent_table_0_th_11_Template(rf, ctx) { if (rf & 1) {
134
+ function SearchResultComponent_table_0_th_12_Template(rf, ctx) { if (rf & 1) {
124
135
  i0.ɵɵelement(0, "th", 29);
125
136
  } }
126
- function SearchResultComponent_table_0_ng_container_13_tr_1_td_1_Template(rf, ctx) { if (rf & 1) {
137
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template(rf, ctx) { if (rf & 1) {
127
138
  const _r30 = i0.ɵɵgetCurrentView();
128
139
  i0.ɵɵelementStart(0, "td", 20);
129
140
  i0.ɵɵelementStart(1, "div", 21);
130
141
  i0.ɵɵelementStart(2, "input", 31);
131
- i0.ɵɵlistener("change", function SearchResultComponent_table_0_ng_container_13_tr_1_td_1_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r30); const result_r24 = i0.ɵɵnextContext().$implicit; const ctx_r28 = i0.ɵɵnextContext(3); return ctx_r28.changeSelection(result_r24); });
142
+ i0.ɵɵlistener("change", function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r30); const result_r24 = i0.ɵɵnextContext().$implicit; const ctx_r28 = i0.ɵɵnextContext(3); return ctx_r28.changeSelection(result_r24); });
132
143
  i0.ɵɵelementEnd();
133
144
  i0.ɵɵelement(3, "label", 32);
134
145
  i0.ɵɵelementEnd();
@@ -144,7 +155,7 @@ function SearchResultComponent_table_0_ng_container_13_tr_1_td_1_Template(rf, ct
144
155
  i0.ɵɵpropertyInterpolate1("for", "select-", result_r24.case_id, "");
145
156
  } }
146
157
  const _c0 = function () { return ["value"]; };
147
- function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template(rf, ctx) { if (rf & 1) {
158
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template(rf, ctx) { if (rf & 1) {
148
159
  i0.ɵɵelement(0, "ccd-field-read", 41);
149
160
  } if (rf & 2) {
150
161
  const col_r32 = i0.ɵɵnextContext(3).$implicit;
@@ -152,17 +163,17 @@ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_containe
152
163
  const ctx_r37 = i0.ɵɵnextContext(3);
153
164
  i0.ɵɵproperty("caseField", ctx_r37.getColumnsWithPrefix(result_r24.columns[col_r32.case_field_id], result_r24))("contextFields", result_r24.hydrated_case_fields)("elementsToSubstitute", i0.ɵɵpureFunction0(3, _c0));
154
165
  } }
155
- function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
166
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
156
167
  i0.ɵɵtext(0);
157
168
  i0.ɵɵpipe(1, "ccdCaseReference");
158
169
  } if (rf & 2) {
159
170
  const result_r24 = i0.ɵɵnextContext(4).$implicit;
160
171
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(1, 1, result_r24.case_id));
161
172
  } }
162
- function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
173
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
163
174
  i0.ɵɵelementContainerStart(0, 38);
164
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template, 1, 4, "ccd-field-read", 39);
165
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template, 2, 3, "ng-template", null, 40, i0.ɵɵtemplateRefExtractor);
175
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template, 1, 4, "ccd-field-read", 39);
176
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template, 2, 3, "ng-template", null, 40, i0.ɵɵtemplateRefExtractor);
166
177
  i0.ɵɵelementContainerEnd();
167
178
  } if (rf & 2) {
168
179
  const _r38 = i0.ɵɵreference(3);
@@ -172,10 +183,10 @@ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_containe
172
183
  i0.ɵɵadvance(1);
173
184
  i0.ɵɵproperty("ngIf", ctx_r36.draftPrefixOrGet(col_r32, result_r24))("ngIfElse", _r38);
174
185
  } }
175
- function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_Template(rf, ctx) { if (rf & 1) {
186
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_Template(rf, ctx) { if (rf & 1) {
176
187
  i0.ɵɵelementStart(0, "a", 36);
177
188
  i0.ɵɵpipe(1, "ccdCaseReference");
178
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_ng_container_2_Template, 4, 2, "ng-container", 37);
189
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_Template, 4, 2, "ng-container", 37);
179
190
  i0.ɵɵelementEnd();
180
191
  } if (rf & 2) {
181
192
  const result_r24 = i0.ɵɵnextContext(2).$implicit;
@@ -185,7 +196,7 @@ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_Template(rf
185
196
  i0.ɵɵadvance(2);
186
197
  i0.ɵɵproperty("ngIf", !ctx_r34.hideRows);
187
198
  } }
188
- function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_div_2_Template(rf, ctx) { if (rf & 1) {
199
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_div_2_Template(rf, ctx) { if (rf & 1) {
189
200
  i0.ɵɵelementStart(0, "div", 38);
190
201
  i0.ɵɵelement(1, "ccd-field-read", 41);
191
202
  i0.ɵɵelementEnd();
@@ -197,10 +208,10 @@ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_div_2_Template(
197
208
  i0.ɵɵadvance(1);
198
209
  i0.ɵɵproperty("caseField", result_r24.columns[col_r32.case_field_id])("contextFields", result_r24.hydrated_case_fields)("elementsToSubstitute", i0.ɵɵpureFunction0(5, _c0));
199
210
  } }
200
- function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_Template(rf, ctx) { if (rf & 1) {
211
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_Template(rf, ctx) { if (rf & 1) {
201
212
  i0.ɵɵelementStart(0, "td", 33);
202
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_a_1_Template, 3, 5, "a", 34);
203
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_div_2_Template, 2, 6, "div", 35);
213
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_Template, 3, 5, "a", 34);
214
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_div_2_Template, 2, 6, "div", 35);
204
215
  i0.ɵɵelementEnd();
205
216
  } if (rf & 2) {
206
217
  const colIndex_r33 = ctx.index;
@@ -209,7 +220,7 @@ function SearchResultComponent_table_0_ng_container_13_tr_1_td_2_Template(rf, ct
209
220
  i0.ɵɵadvance(1);
210
221
  i0.ɵɵproperty("ngIf", colIndex_r33 != 0);
211
222
  } }
212
- function SearchResultComponent_table_0_ng_container_13_tr_1_td_3_Template(rf, ctx) { if (rf & 1) {
223
+ function SearchResultComponent_table_0_ng_container_14_tr_1_td_3_Template(rf, ctx) { if (rf & 1) {
213
224
  i0.ɵɵelementStart(0, "td");
214
225
  i0.ɵɵelementStart(1, "div");
215
226
  i0.ɵɵelement(2, "ccd-activity", 42);
@@ -223,11 +234,11 @@ function SearchResultComponent_table_0_ng_container_13_tr_1_td_3_Template(rf, ct
223
234
  i0.ɵɵadvance(1);
224
235
  i0.ɵɵproperty("caseId", result_r24.case_id)("displayMode", ctx_r27.ICON);
225
236
  } }
226
- function SearchResultComponent_table_0_ng_container_13_tr_1_Template(rf, ctx) { if (rf & 1) {
237
+ function SearchResultComponent_table_0_ng_container_14_tr_1_Template(rf, ctx) { if (rf & 1) {
227
238
  i0.ɵɵelementStart(0, "tr");
228
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_13_tr_1_td_1_Template, 4, 5, "td", 8);
229
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_13_tr_1_td_2_Template, 3, 2, "td", 30);
230
- i0.ɵɵtemplate(3, SearchResultComponent_table_0_ng_container_13_tr_1_td_3_Template, 3, 4, "td", 0);
239
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template, 4, 5, "td", 8);
240
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_Template, 3, 2, "td", 30);
241
+ i0.ɵɵtemplate(3, SearchResultComponent_table_0_ng_container_14_tr_1_td_3_Template, 3, 4, "td", 0);
231
242
  i0.ɵɵelementEnd();
232
243
  } if (rf & 2) {
233
244
  const ctx_r23 = i0.ɵɵnextContext(3);
@@ -239,9 +250,9 @@ function SearchResultComponent_table_0_ng_container_13_tr_1_Template(rf, ctx) {
239
250
  i0.ɵɵproperty("ngIf", ctx_r23.activityEnabled());
240
251
  } }
241
252
  const _c1 = function (a0, a1, a2) { return { itemsPerPage: a0, currentPage: a1, totalItems: a2 }; };
242
- function SearchResultComponent_table_0_ng_container_13_Template(rf, ctx) { if (rf & 1) {
253
+ function SearchResultComponent_table_0_ng_container_14_Template(rf, ctx) { if (rf & 1) {
243
254
  i0.ɵɵelementContainerStart(0);
244
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_13_tr_1_Template, 4, 3, "tr", 9);
255
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_Template, 4, 3, "tr", 9);
245
256
  i0.ɵɵpipe(2, "paginate");
246
257
  i0.ɵɵelementContainerEnd();
247
258
  } if (rf & 2) {
@@ -249,12 +260,12 @@ function SearchResultComponent_table_0_ng_container_13_Template(rf, ctx) { if (r
249
260
  i0.ɵɵadvance(1);
250
261
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(2, 1, ctx_r9.resultView.results, i0.ɵɵpureFunction3(4, _c1, ctx_r9.paginationPageSize, ctx_r9.selected.page, ctx_r9.resultTotal)));
251
262
  } }
252
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template(rf, ctx) { if (rf & 1) {
263
+ function SearchResultComponent_table_0_ng_container_15_tr_1_td_1_Template(rf, ctx) { if (rf & 1) {
253
264
  const _r56 = i0.ɵɵgetCurrentView();
254
265
  i0.ɵɵelementStart(0, "td", 20);
255
266
  i0.ɵɵelementStart(1, "div", 21);
256
267
  i0.ɵɵelementStart(2, "input", 43);
257
- i0.ɵɵlistener("change", function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r56); const result_r50 = i0.ɵɵnextContext().$implicit; const ctx_r54 = i0.ɵɵnextContext(3); return ctx_r54.changeSelection(result_r50); })("keyup", function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template_input_keyup_2_listener($event) { i0.ɵɵrestoreView(_r56); const result_r50 = i0.ɵɵnextContext().$implicit; const ctx_r57 = i0.ɵɵnextContext(3); return ctx_r57.onKeyUp($event, result_r50); });
268
+ i0.ɵɵlistener("change", function SearchResultComponent_table_0_ng_container_15_tr_1_td_1_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r56); const result_r50 = i0.ɵɵnextContext().$implicit; const ctx_r54 = i0.ɵɵnextContext(3); return ctx_r54.changeSelection(result_r50); })("keyup", function SearchResultComponent_table_0_ng_container_15_tr_1_td_1_Template_input_keyup_2_listener($event) { i0.ɵɵrestoreView(_r56); const result_r50 = i0.ɵɵnextContext().$implicit; const ctx_r57 = i0.ɵɵnextContext(3); return ctx_r57.onKeyUp($event, result_r50); });
258
269
  i0.ɵɵelementEnd();
259
270
  i0.ɵɵelement(3, "label", 32);
260
271
  i0.ɵɵelementEnd();
@@ -269,7 +280,7 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template(rf, ct
269
280
  i0.ɵɵadvance(1);
270
281
  i0.ɵɵpropertyInterpolate1("for", "select-", result_r50.case_id, "");
271
282
  } }
272
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template(rf, ctx) { if (rf & 1) {
283
+ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template(rf, ctx) { if (rf & 1) {
273
284
  i0.ɵɵelement(0, "ccd-field-read", 41);
274
285
  } if (rf & 2) {
275
286
  const col_r60 = i0.ɵɵnextContext(3).$implicit;
@@ -277,17 +288,17 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_containe
277
288
  const ctx_r65 = i0.ɵɵnextContext(3);
278
289
  i0.ɵɵproperty("caseField", ctx_r65.getColumnsWithPrefix(result_r50.columns[col_r60.case_field_id], result_r50))("contextFields", result_r50.hydrated_case_fields)("elementsToSubstitute", i0.ɵɵpureFunction0(3, _c0));
279
290
  } }
280
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
291
+ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
281
292
  i0.ɵɵtext(0);
282
293
  i0.ɵɵpipe(1, "ccdCaseReference");
283
294
  } if (rf & 2) {
284
295
  const result_r50 = i0.ɵɵnextContext(4).$implicit;
285
296
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(1, 1, result_r50.case_id));
286
297
  } }
287
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
298
+ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
288
299
  i0.ɵɵelementContainerStart(0, 38);
289
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template, 1, 4, "ccd-field-read", 39);
290
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template, 2, 3, "ng-template", null, 40, i0.ɵɵtemplateRefExtractor);
300
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_ccd_field_read_1_Template, 1, 4, "ccd-field-read", 39);
301
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_ng_template_2_Template, 2, 3, "ng-template", null, 40, i0.ɵɵtemplateRefExtractor);
291
302
  i0.ɵɵelementContainerEnd();
292
303
  } if (rf & 2) {
293
304
  const _r66 = i0.ɵɵreference(3);
@@ -297,10 +308,10 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_containe
297
308
  i0.ɵɵadvance(1);
298
309
  i0.ɵɵproperty("ngIf", ctx_r64.draftPrefixOrGet(col_r60, result_r50))("ngIfElse", _r66);
299
310
  } }
300
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_Template(rf, ctx) { if (rf & 1) {
311
+ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_Template(rf, ctx) { if (rf & 1) {
301
312
  i0.ɵɵelementStart(0, "a", 36);
302
313
  i0.ɵɵpipe(1, "ccdCaseReference");
303
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_ng_container_2_Template, 4, 2, "ng-container", 37);
314
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_ng_container_2_Template, 4, 2, "ng-container", 37);
304
315
  i0.ɵɵelementEnd();
305
316
  } if (rf & 2) {
306
317
  const result_r50 = i0.ɵɵnextContext(2).$implicit;
@@ -310,7 +321,7 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_Template(rf
310
321
  i0.ɵɵadvance(2);
311
322
  i0.ɵɵproperty("ngIf", !ctx_r62.hideRows);
312
323
  } }
313
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_div_2_Template(rf, ctx) { if (rf & 1) {
324
+ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_div_2_Template(rf, ctx) { if (rf & 1) {
314
325
  i0.ɵɵelementStart(0, "div", 38);
315
326
  i0.ɵɵelement(1, "ccd-field-read", 41);
316
327
  i0.ɵɵelementEnd();
@@ -322,10 +333,10 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_div_2_Template(
322
333
  i0.ɵɵadvance(1);
323
334
  i0.ɵɵproperty("caseField", result_r50.columns[col_r60.case_field_id])("contextFields", result_r50.hydrated_case_fields)("elementsToSubstitute", i0.ɵɵpureFunction0(5, _c0));
324
335
  } }
325
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_Template(rf, ctx) { if (rf & 1) {
336
+ function SearchResultComponent_table_0_ng_container_15_tr_1_td_2_Template(rf, ctx) { if (rf & 1) {
326
337
  i0.ɵɵelementStart(0, "td", 33);
327
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_a_1_Template, 3, 5, "a", 34);
328
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_div_2_Template, 2, 6, "div", 35);
338
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_a_1_Template, 3, 5, "a", 34);
339
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_div_2_Template, 2, 6, "div", 35);
329
340
  i0.ɵɵelementEnd();
330
341
  } if (rf & 2) {
331
342
  const colIndex_r61 = ctx.index;
@@ -334,7 +345,7 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_2_Template(rf, ct
334
345
  i0.ɵɵadvance(1);
335
346
  i0.ɵɵproperty("ngIf", colIndex_r61 != 0);
336
347
  } }
337
- function SearchResultComponent_table_0_ng_container_14_tr_1_td_3_Template(rf, ctx) { if (rf & 1) {
348
+ function SearchResultComponent_table_0_ng_container_15_tr_1_td_3_Template(rf, ctx) { if (rf & 1) {
338
349
  i0.ɵɵelementStart(0, "td");
339
350
  i0.ɵɵelementStart(1, "div");
340
351
  i0.ɵɵelement(2, "ccd-activity", 42);
@@ -348,11 +359,11 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_td_3_Template(rf, ct
348
359
  i0.ɵɵadvance(1);
349
360
  i0.ɵɵproperty("caseId", result_r50.case_id)("displayMode", ctx_r53.ICON);
350
361
  } }
351
- function SearchResultComponent_table_0_ng_container_14_tr_1_Template(rf, ctx) { if (rf & 1) {
362
+ function SearchResultComponent_table_0_ng_container_15_tr_1_Template(rf, ctx) { if (rf & 1) {
352
363
  i0.ɵɵelementStart(0, "tr");
353
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_td_1_Template, 4, 5, "td", 8);
354
- i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_14_tr_1_td_2_Template, 3, 2, "td", 30);
355
- i0.ɵɵtemplate(3, SearchResultComponent_table_0_ng_container_14_tr_1_td_3_Template, 3, 4, "td", 0);
364
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_15_tr_1_td_1_Template, 4, 5, "td", 8);
365
+ i0.ɵɵtemplate(2, SearchResultComponent_table_0_ng_container_15_tr_1_td_2_Template, 3, 2, "td", 30);
366
+ i0.ɵɵtemplate(3, SearchResultComponent_table_0_ng_container_15_tr_1_td_3_Template, 3, 4, "td", 0);
356
367
  i0.ɵɵelementEnd();
357
368
  } if (rf & 2) {
358
369
  const ctx_r49 = i0.ɵɵnextContext(3);
@@ -363,9 +374,9 @@ function SearchResultComponent_table_0_ng_container_14_tr_1_Template(rf, ctx) {
363
374
  i0.ɵɵadvance(1);
364
375
  i0.ɵɵproperty("ngIf", ctx_r49.activityEnabled());
365
376
  } }
366
- function SearchResultComponent_table_0_ng_container_14_Template(rf, ctx) { if (rf & 1) {
377
+ function SearchResultComponent_table_0_ng_container_15_Template(rf, ctx) { if (rf & 1) {
367
378
  i0.ɵɵelementContainerStart(0);
368
- i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_14_tr_1_Template, 4, 3, "tr", 9);
379
+ i0.ɵɵtemplate(1, SearchResultComponent_table_0_ng_container_15_tr_1_Template, 4, 3, "tr", 9);
369
380
  i0.ɵɵpipe(2, "paginate");
370
381
  i0.ɵɵpipe(3, "ccdSortSearchResult");
371
382
  i0.ɵɵelementContainerEnd();
@@ -379,28 +390,29 @@ function SearchResultComponent_table_0_Template(rf, ctx) { if (rf & 1) {
379
390
  i0.ɵɵelementStart(1, "caption");
380
391
  i0.ɵɵelementStart(2, "h2", 3);
381
392
  i0.ɵɵtext(3);
393
+ i0.ɵɵpipe(4, "rpxTranslate");
382
394
  i0.ɵɵelementEnd();
383
- i0.ɵɵtemplate(4, SearchResultComponent_table_0_div_4_Template, 8, 3, "div", 4);
384
- i0.ɵɵtemplate(5, SearchResultComponent_table_0_div_5_Template, 12, 4, "div", 5);
385
- i0.ɵɵtemplate(6, SearchResultComponent_table_0_div_6_Template, 4, 0, "div", 6);
395
+ i0.ɵɵtemplate(5, SearchResultComponent_table_0_div_5_Template, 8, 3, "div", 4);
396
+ i0.ɵɵtemplate(6, SearchResultComponent_table_0_div_6_Template, 15, 13, "div", 5);
397
+ i0.ɵɵtemplate(7, SearchResultComponent_table_0_div_7_Template, 6, 6, "div", 6);
386
398
  i0.ɵɵelementEnd();
387
- i0.ɵɵelementStart(7, "thead");
388
- i0.ɵɵelementStart(8, "tr", 7);
389
- i0.ɵɵtemplate(9, SearchResultComponent_table_0_th_9_Template, 4, 2, "th", 8);
390
- i0.ɵɵtemplate(10, SearchResultComponent_table_0_th_10_Template, 7, 3, "th", 9);
391
- i0.ɵɵtemplate(11, SearchResultComponent_table_0_th_11_Template, 1, 0, "th", 10);
399
+ i0.ɵɵelementStart(8, "thead");
400
+ i0.ɵɵelementStart(9, "tr", 7);
401
+ i0.ɵɵtemplate(10, SearchResultComponent_table_0_th_10_Template, 4, 2, "th", 8);
402
+ i0.ɵɵtemplate(11, SearchResultComponent_table_0_th_11_Template, 5, 3, "th", 9);
403
+ i0.ɵɵtemplate(12, SearchResultComponent_table_0_th_12_Template, 1, 0, "th", 10);
392
404
  i0.ɵɵelementEnd();
393
405
  i0.ɵɵelementEnd();
394
- i0.ɵɵelementStart(12, "tbody");
395
- i0.ɵɵtemplate(13, SearchResultComponent_table_0_ng_container_13_Template, 3, 8, "ng-container", 0);
396
- i0.ɵɵtemplate(14, SearchResultComponent_table_0_ng_container_14_Template, 4, 11, "ng-container", 0);
406
+ i0.ɵɵelementStart(13, "tbody");
407
+ i0.ɵɵtemplate(14, SearchResultComponent_table_0_ng_container_14_Template, 3, 8, "ng-container", 0);
408
+ i0.ɵɵtemplate(15, SearchResultComponent_table_0_ng_container_15_Template, 4, 11, "ng-container", 0);
397
409
  i0.ɵɵelementEnd();
398
410
  i0.ɵɵelementEnd();
399
411
  } if (rf & 2) {
400
412
  const ctx_r0 = i0.ɵɵnextContext();
401
413
  i0.ɵɵadvance(3);
402
- i0.ɵɵtextInterpolate(ctx_r0.caseState ? "Your cases" : "Search result");
403
- i0.ɵɵadvance(1);
414
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 9, ctx_r0.caseState ? "Your cases" : "Search result"));
415
+ i0.ɵɵadvance(2);
404
416
  i0.ɵɵproperty("ngIf", ctx_r0.paginationLimitEnforced);
405
417
  i0.ɵɵadvance(1);
406
418
  i0.ɵɵproperty("ngIf", ctx_r0.hasResults() || ctx_r0.hasDrafts());
@@ -428,8 +440,14 @@ function SearchResultComponent_ccd_pagination_1_Template(rf, ctx) { if (rf & 1)
428
440
  } }
429
441
  function SearchResultComponent_div_2_Template(rf, ctx) { if (rf & 1) {
430
442
  i0.ɵɵelementStart(0, "div", 45);
431
- i0.ɵɵtext(1, " No cases found. Try using different filters.\n");
443
+ i0.ɵɵpipe(1, "rpxTranslate");
444
+ i0.ɵɵtext(2);
445
+ i0.ɵɵpipe(3, "rpxTranslate");
432
446
  i0.ɵɵelementEnd();
447
+ } if (rf & 2) {
448
+ i0.ɵɵattribute("aria-describedby", i0.ɵɵpipeBind1(1, 2, "No cases found. Try using different filters."));
449
+ i0.ɵɵadvance(2);
450
+ i0.ɵɵtextInterpolate1("\n", i0.ɵɵpipeBind1(3, 4, "No cases found. Try using different filters."), "\n");
433
451
  } }
434
452
  export class SearchResultComponent {
435
453
  constructor(searchResultViewItemComparatorFactory, appConfig, activityService, caseReferencePipe, placeholderService, browserService, sessionStorageService) {
@@ -488,7 +506,7 @@ export class SearchResultComponent {
488
506
  }
489
507
  }
490
508
  get resultTotal() {
491
- const total = this.paginationMetadata.total_results_count;
509
+ const total = this.paginationMetadata.totalResultsCount;
492
510
  const maximumResultReached = total >= this.PAGINATION_MAX_ITEM_RESULT;
493
511
  this.paginationLimitEnforced = maximumResultReached;
494
512
  return maximumResultReached ? this.PAGINATION_MAX_ITEM_RESULT : total;
@@ -633,7 +651,7 @@ export class SearchResultComponent {
633
651
  return col;
634
652
  }
635
653
  hasResults() {
636
- return this.resultView.results.length && this.paginationMetadata.total_pages_count;
654
+ return this.resultView.results.length && this.paginationMetadata.totalPagesCount;
637
655
  }
638
656
  hasDrafts() {
639
657
  return this.resultView.hasDrafts();
@@ -732,7 +750,7 @@ export class SearchResultComponent {
732
750
  return ((currentPage - 1) * this.paginationPageSize) + this.resultView.results.length + this.getDraftsCountIfNotPageOne(currentPage);
733
751
  }
734
752
  getTotalResults() {
735
- const total = this.paginationMetadata.total_results_count + this.draftsCount;
753
+ const total = this.paginationMetadata.totalResultsCount + this.draftsCount;
736
754
  return total >= this.PAGINATION_MAX_ITEM_RESULT ? this.PAGINATION_MAX_ITEM_RESULT : total;
737
755
  }
738
756
  prepareCaseLinkUrl(caseId) {
@@ -765,10 +783,10 @@ SearchResultComponent.PARAM_JURISDICTION = 'jurisdiction';
765
783
  SearchResultComponent.PARAM_CASE_TYPE = 'case-type';
766
784
  SearchResultComponent.PARAM_CASE_STATE = 'case-state';
767
785
  SearchResultComponent.ɵfac = function SearchResultComponent_Factory(t) { return new (t || SearchResultComponent)(i0.ɵɵdirectiveInject(i1.SearchResultViewItemComparatorFactory), i0.ɵɵdirectiveInject(i2.AbstractAppConfig), i0.ɵɵdirectiveInject(i1.ActivityService), i0.ɵɵdirectiveInject(i3.CaseReferencePipe), i0.ɵɵdirectiveInject(i4.PlaceholderService), i0.ɵɵdirectiveInject(i1.BrowserService), i0.ɵɵdirectiveInject(i1.SessionStorageService)); };
768
- SearchResultComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SearchResultComponent, selectors: [["ccd-search-result"]], inputs: { caseLinkUrlTemplate: "caseLinkUrlTemplate", jurisdiction: "jurisdiction", caseType: "caseType", caseState: "caseState", caseFilterFG: "caseFilterFG", resultView: "resultView", page: "page", paginationMetadata: "paginationMetadata", metadataFields: "metadataFields", selectionEnabled: "selectionEnabled", showOnlySelected: "showOnlySelected", preSelectedCases: "preSelectedCases", consumerSortingEnabled: "consumerSortingEnabled" }, outputs: { selection: "selection", changePage: "changePage", clickCase: "clickCase", sortHandler: "sortHandler" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [[4, "ngIf"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange", 4, "ngIf"], ["class", "notification", "aria-label", "No cases found. Try using different filters.", 4, "ngIf"], ["id", "search-result-heading__text", "tabindex", "-1", 1, "heading-h2"], ["class", "govuk-warning-text pagination-limit-warning", 4, "ngIf"], ["class", "pagination-top", "role", "status", 4, "ngIf"], ["class", "reset-selection", "attr.aria-label", "Reset selection", 4, "ngIf"], ["scope", "row"], ["class", "govuk-table__checkbox", "scope", "col", 4, "ngIf"], [4, "ngFor", "ngForOf"], ["style", "width: 110px;", 4, "ngIf"], [1, "govuk-warning-text", "pagination-limit-warning"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], ["role", "status", 1, "pagination-top"], ["id", "search-result-summary__text", 1, "text-16"], [1, "govuk-!-font-weight-bold"], ["attr.aria-label", "Reset selection", 1, "reset-selection"], ["href", "javascript:void(0)", 1, "search-result-reset-link", 3, "click"], ["scope", "col", 1, "govuk-table__checkbox"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "checked", "disabled", "change"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], [1, "search-result-column-header"], [1, "search-result-column-label", 3, "click"], ["class", "search-result-column-sort", 4, "ngIf"], [1, "search-result-column-sort"], ["href", "javascript:void(0)", 1, "sort-widget", 3, "innerHTML", "click"], [2, "width", "110px"], ["class", "search-result-column-cell", "scope", "row", 4, "ngFor", "ngForOf"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "id", "name", "checked", "disabled", "change"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["scope", "row", 1, "search-result-column-cell"], ["class", "govuk-link", 3, "routerLink", 4, "ngIf"], ["class", "text-16", 3, "visibility", 4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["class", "text-16", 4, "ngIf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute", 4, "ngIf", "ngIfElse"], ["case_reference", ""], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute"], [3, "caseId", "displayMode"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "id", "name", "checked", "disabled", "change", "keyup"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange"], ["aria-label", "No cases found. Try using different filters.", 1, "notification"]], template: function SearchResultComponent_Template(rf, ctx) { if (rf & 1) {
769
- i0.ɵɵtemplate(0, SearchResultComponent_table_0_Template, 15, 9, "table", 0);
786
+ SearchResultComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SearchResultComponent, selectors: [["ccd-search-result"]], inputs: { caseLinkUrlTemplate: "caseLinkUrlTemplate", jurisdiction: "jurisdiction", caseType: "caseType", caseState: "caseState", caseFilterFG: "caseFilterFG", resultView: "resultView", page: "page", paginationMetadata: "paginationMetadata", metadataFields: "metadataFields", selectionEnabled: "selectionEnabled", showOnlySelected: "showOnlySelected", preSelectedCases: "preSelectedCases", consumerSortingEnabled: "consumerSortingEnabled" }, outputs: { selection: "selection", changePage: "changePage", clickCase: "clickCase", sortHandler: "sortHandler" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [[4, "ngIf"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange", 4, "ngIf"], ["class", "notification", 4, "ngIf"], ["id", "search-result-heading__text", "tabindex", "-1", 1, "heading-h2"], ["class", "govuk-warning-text pagination-limit-warning", 4, "ngIf"], ["class", "pagination-top", "role", "status", 4, "ngIf"], ["class", "reset-selection", 4, "ngIf"], ["scope", "row"], ["class", "govuk-table__checkbox", "scope", "col", 4, "ngIf"], [4, "ngFor", "ngForOf"], ["style", "width: 110px;", 4, "ngIf"], [1, "govuk-warning-text", "pagination-limit-warning"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], ["role", "status", 1, "pagination-top"], ["id", "search-result-summary__text", 1, "text-16"], [1, "govuk-!-font-weight-bold"], [1, "reset-selection"], ["href", "javascript:void(0)", 1, "search-result-reset-link", 3, "click"], ["scope", "col", 1, "govuk-table__checkbox"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "checked", "disabled", "change"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], [1, "search-result-column-header"], [1, "search-result-column-label", 3, "click"], ["class", "search-result-column-sort", 4, "ngIf"], [1, "search-result-column-sort"], ["href", "javascript:void(0)", 1, "sort-widget", 3, "innerHTML", "click"], [2, "width", "110px"], ["class", "search-result-column-cell", "scope", "row", 4, "ngFor", "ngForOf"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "id", "name", "checked", "disabled", "change"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["scope", "row", 1, "search-result-column-cell"], ["class", "govuk-link", 3, "routerLink", 4, "ngIf"], ["class", "text-16", 3, "visibility", 4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["class", "text-16", 4, "ngIf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute", 4, "ngIf", "ngIfElse"], ["case_reference", ""], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute"], [3, "caseId", "displayMode"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "id", "name", "checked", "disabled", "change", "keyup"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange"], [1, "notification"]], template: function SearchResultComponent_Template(rf, ctx) { if (rf & 1) {
787
+ i0.ɵɵtemplate(0, SearchResultComponent_table_0_Template, 16, 11, "table", 0);
770
788
  i0.ɵɵtemplate(1, SearchResultComponent_ccd_pagination_1_Template, 1, 6, "ccd-pagination", 1);
771
- i0.ɵɵtemplate(2, SearchResultComponent_div_2_Template, 2, 0, "div", 2);
789
+ i0.ɵɵtemplate(2, SearchResultComponent_div_2_Template, 4, 6, "div", 2);
772
790
  } if (rf & 2) {
773
791
  i0.ɵɵproperty("ngIf", ctx.hasResults() || ctx.hasDrafts());
774
792
  i0.ɵɵadvance(1);
@@ -818,4 +836,4 @@ SearchResultComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SearchResultCompone
818
836
  }], sortHandler: [{
819
837
  type: Output
820
838
  }] }); })();
821
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0L3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUNsRCxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUNWLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLHFDQUFxQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7SUNKM0gsK0JBQXlGO0lBQ3ZGLGdDQUEwRDtJQUFBLGlCQUFDO0lBQUEsaUJBQU87SUFDbEUsa0NBQXlDO0lBQ3ZDLGdDQUE0QztJQUFBLHVCQUFPO0lBQUEsaUJB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O1lBSUMsa0JBQWtCO2tCQUR4QixLQUFLO1lBSUMsY0FBYztrQkFEcEIsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsS0FBSztZQUlDLHNCQUFzQjtrQkFENUIsS0FBSztZQUlDLFNBQVM7a0JBRGYsTUFBTTtZQUlBLFVBQVU7a0JBRGhCLE1BQU07WUFJQSxTQUFTO2tCQURmLE1BQU07WUFJQSxXQUFXO2tCQURqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgUGxhY2Vob2xkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBDYXNlRmllbGQsIENhc2VTdGF0ZSwgQ2FzZVR5cGUsIERpc3BsYXlNb2RlLFxuICBEUkFGVF9QUkVGSVgsIEp1cmlzZGljdGlvbiwgUGFnaW5hdGlvbk1ldGFkYXRhLCBTZWFyY2hSZXN1bHRWaWV3LCBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uLFxuICBTZWFyY2hSZXN1bHRWaWV3SXRlbSwgU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yLCBTb3J0T3JkZXIsIFNvcnRQYXJhbWV0ZXJzIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VSZWZlcmVuY2VQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgQWN0aXZpdHlTZXJ2aWNlLCBCcm93c2VyU2VydmljZSwgU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeSwgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtc2VhcmNoLXJlc3VsdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFJlc3VsdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0pVUklTRElDVElPTiA9ICdqdXJpc2RpY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfVFlQRSA9ICdjYXNlLXR5cGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfU1RBVEUgPSAnY2FzZS1zdGF0ZSc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBQQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVCA9IDEwMDAwO1xuXG4gIHB1YmxpYyBJQ09OID0gRGlzcGxheU1vZGUuSUNPTjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUxpbmtVcmxUZW1wbGF0ZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBqdXJpc2RpY3Rpb246IEp1cmlzZGljdGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZVR5cGU6IENhc2VUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlU3RhdGU6IENhc2VTdGF0ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpbHRlckZHOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3VsdFZpZXc6IFNlYXJjaFJlc3VsdFZpZXc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2U6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnaW5hdGlvbk1ldGFkYXRhOiBQYWdpbmF0aW9uTWV0YWRhdGE7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1ldGFkYXRhRmllbGRzOiBzdHJpbmdbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0aW9uRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93T25seVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHByZVNlbGVjdGVkQ2FzZXM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29uc3VtZXJTb3J0aW5nRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hSZXN1bHRWaWV3SXRlbVtdPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2hhbmdlUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjbGlja0Nhc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc29ydEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBwYWdpbmF0aW9uTGltaXRFbmZvcmNlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBwYWdpbmF0aW9uUGFnZVNpemU6IG51bWJlcjtcblxuICBwdWJsaWMgaGlkZVJvd3M6IGJvb2xlYW47XG5cbiAgcHVibGljIHNlbGVjdGVkOiB7XG4gICAgaW5pdD86IGJvb2xlYW4sXG4gICAganVyaXNkaWN0aW9uPzogSnVyaXNkaWN0aW9uLFxuICAgIGNhc2VUeXBlPzogQ2FzZVR5cGUsXG4gICAgY2FzZVN0YXRlPzogQ2FzZVN0YXRlLFxuICAgIGZvcm1Hcm91cD86IEZvcm1Hcm91cCxcbiAgICBtZXRhZGF0YUZpZWxkcz86IHN0cmluZ1tdLFxuICAgIHBhZ2U/OiBudW1iZXJcbiAgfSA9IHt9O1xuXG4gIHB1YmxpYyBzb3J0UGFyYW1ldGVyczogU29ydFBhcmFtZXRlcnM7XG4gIHB1YmxpYyBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5OiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5O1xuICBwdWJsaWMgZHJhZnRzQ291bnQ6IG51bWJlcjtcblxuICBwdWJsaWMgY29uc3VtZXJTb3J0UGFyYW1ldGVyczogeyBjb2x1bW46IHN0cmluZywgb3JkZXI6IFNvcnRPcmRlciwgdHlwZTogc3RyaW5nIH0gPSB7IGNvbHVtbjogbnVsbCwgb3JkZXI6IG51bGwsIHR5cGU6IG51bGwgfTtcblxuICBwdWJsaWMgc2VsZWN0ZWRDYXNlczogU2VhcmNoUmVzdWx0Vmlld0l0ZW1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3Rvcnk6IFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnksXG4gICAgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2aXR5U2VydmljZTogQWN0aXZpdHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZVJlZmVyZW5jZVBpcGU6IENhc2VSZWZlcmVuY2VQaXBlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJTZXJ2aWNlOiBQbGFjZWhvbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBicm93c2VyU2VydmljZTogQnJvd3NlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnkgPSBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5O1xuICAgIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplID0gYXBwQ29uZmlnLmdldFBhZ2luYXRpb25QYWdlU2l6ZSgpO1xuICAgIHRoaXMuaGlkZVJvd3MgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmVTZWxlY3RlZENhc2VzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByZVNlbGVjdGVkQ2FzZSBvZiB0aGlzLnByZVNlbGVjdGVkQ2FzZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXNlcyAmJiAhdGhpcy5zZWxlY3RlZENhc2VzLnNvbWUoYUNhc2UgPT4gYUNhc2UuY2FzZV9pZCA9PT0gcHJlU2VsZWN0ZWRDYXNlLmNhc2VfaWQpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2gocHJlU2VsZWN0ZWRDYXNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdldmVudFVybCcpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICBpZiAoY2hhbmdlc1sncmVzdWx0VmlldyddKSB7XG4gICAgICB0aGlzLmhpZGVSb3dzID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuc29ydFBhcmFtZXRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICAvLyBDbG9uZSBgcmVzdWx0Vmlld2AgdG8gcHJldmVudCBzb3J0aW5nIHRoZSBleHRlcm5hbCB2YXJpYWJsZVxuICAgICAgdGhpcy5yZXN1bHRWaWV3ID0ge1xuICAgICAgICBjb2x1bW5zOiB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5zbGljZSgwKSxcbiAgICAgICAgcmVzdWx0czogdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuc2xpY2UoMCksXG4gICAgICAgIGhhc0RyYWZ0czogdGhpcy5yZXN1bHRWaWV3Lmhhc0RyYWZ0c1xuICAgICAgfTtcblxuICAgICAgdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMgPSB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5zb3J0KChhOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uLCBiOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSA9PiB7XG4gICAgICAgIHJldHVybiBhLm9yZGVyIC0gYi5vcmRlcjtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmh5ZHJhdGVSZXN1bHRWaWV3KCk7XG4gICAgICB0aGlzLmRyYWZ0c0NvdW50ID0gdGhpcy5kcmFmdHNDb3VudCA/IHRoaXMuZHJhZnRzQ291bnQgOiB0aGlzLm51bWJlck9mRHJhZnRzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydwYWdlJ10pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQucGFnZSA9IChjaGFuZ2VzWydwYWdlJ10pLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlc3VsdFRvdGFsKCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnBhZ2luYXRpb25NZXRhZGF0YS50b3RhbF9yZXN1bHRzX2NvdW50O1xuICAgIGNvbnN0IG1heGltdW1SZXN1bHRSZWFjaGVkID0gdG90YWwgPj0gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVDtcbiAgICB0aGlzLnBhZ2luYXRpb25MaW1pdEVuZm9yY2VkID0gbWF4aW11bVJlc3VsdFJlYWNoZWQ7XG5cbiAgICByZXR1cm4gbWF4aW11bVJlc3VsdFJlYWNoZWQgPyB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUIDogdG90YWw7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENhc2VzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIGNhbkJlU2hhcmVkKGNhc2VWaWV3OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjYXNlVmlldy5zdXBwbGVtZW50YXJ5X2RhdGEgJiYgY2FzZVZpZXcuc3VwcGxlbWVudGFyeV9kYXRhLmhhc093blByb3BlcnR5KCdvcmdzX2Fzc2lnbmVkX3VzZXJzJyk7XG4gIH1cblxuICBwdWJsaWMgY2FuQW55QmVTaGFyZWQoKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxPblBhZ2VTZWxlY3RlZCgpKSB7XG4gICAgICAvLyBhbGwgY2FzZXMgYWxyZWFkeSBzZWxlY3RlZCwgc28gdW5zZWxlY3QgYWxsIG9uIHRoaXMgcGFnZVxuICAgICAgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgICAgICBpZiAoYy5jYXNlX2lkID09PSBzLmNhc2VfaWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChjKSAmJiB0aGlzLmNhbkJlU2hhcmVkKGMpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goYyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlU2VsZWN0aW9uKGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZChjKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gcy5jYXNlX2lkKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnNwbGljZShpLCAxKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKGMpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKGMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChjOiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5zZWxlY3RlZENhc2VzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gdGhpcy5zZWxlY3RlZENhc2VzW2ldLmNhc2VfaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxPblBhZ2VTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBsZXQgY2FuQmVTaGFyZWRDb3VudCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHIgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpXTtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKHIpKSB7XG4gICAgICAgIGNhbkJlU2hhcmVkQ291bnQgKys7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChyKSAmJiB0aGlzLmNhbkJlU2hhcmVkKHIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNhbkJlU2hhcmVkQ291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogSHlkcmF0ZXMgcmVzdWx0IHZpZXcgd2l0aCBjYXNlIGZpZWxkIGRlZmluaXRpb25zLlxuICAgKi9cbiAgLy8gQSBsb25nZXIgdGVybSByZXNvbHV0aW9uIGlzIHRvIG1vdmUgdGhpcyBwaWVjZSBvZiBsb2dpYyB0byB0aGUgYmFja2VuZFxuICBwdWJsaWMgaHlkcmF0ZVJlc3VsdFZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZm9yRWFjaChyZXN1bHQgPT4ge1xuICAgICAgY29uc3QgY2FzZUZpZWxkcyA9IFtdO1xuXG4gICAgICBPYmplY3Qua2V5cyhyZXN1bHQuY2FzZV9maWVsZHMpLmZvckVhY2goZmllbGRJZCA9PiB7XG5cbiAgICAgICAgY29uc3QgZmllbGQgPSByZXN1bHQuY2FzZV9maWVsZHNbZmllbGRJZF07XG5cbiAgICAgICAgY2FzZUZpZWxkcy5wdXNoKE9iamVjdC5hc3NpZ24obmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICAgICAgaWQ6IGZpZWxkSWQsXG4gICAgICAgICAgbGFiZWw6IG51bGwsXG4gICAgICAgICAgZmllbGRfdHlwZToge30sXG4gICAgICAgICAgdmFsdWU6IGZpZWxkLFxuICAgICAgICAgIGRpc3BsYXlfY29udGV4dDogbnVsbCxcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkcyA9IGNhc2VGaWVsZHM7XG4gICAgICByZXN1bHQuY29sdW1ucyA9IHt9O1xuXG4gICAgICB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICAgIHJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXSA9IHRoaXMuYnVpbGRDYXNlRmllbGQoY29sLCByZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGFnZShwYWdlKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlUm93cyA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZC5pbml0ID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPSB0aGlzLmp1cmlzZGljdGlvbjtcbiAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gdGhpcy5jYXNlVHlwZTtcbiAgICB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSA9IHRoaXMuY2FzZVN0YXRlO1xuICAgIHRoaXMuc2VsZWN0ZWQuZm9ybUdyb3VwID0gdGhpcy5jYXNlRmlsdGVyRkc7XG4gICAgdGhpcy5zZWxlY3RlZC5tZXRhZGF0YUZpZWxkcyA9IHRoaXMubWV0YWRhdGFGaWVsZHM7XG4gICAgdGhpcy5zZWxlY3RlZC5wYWdlID0gcGFnZTtcbiAgICAvLyBBcHBseSBmaWx0ZXJzXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fSlVSSVNESUNUSU9OXSA9IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID8gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uaWQgOiBudWxsO1xuICAgIHF1ZXJ5UGFyYW1zW1NlYXJjaFJlc3VsdENvbXBvbmVudC5QQVJBTV9DQVNFX1RZUEVdID0gdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSA/IHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUuaWQgOiBudWxsO1xuICAgIHF1ZXJ5UGFyYW1zW1NlYXJjaFJlc3VsdENvbXBvbmVudC5QQVJBTV9DQVNFX1NUQVRFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlID8gdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUuaWQgOiBudWxsO1xuICAgIHRoaXMuY2hhbmdlUGFnZS5lbWl0KHtcbiAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgcXVlcnlQYXJhbXNcbiAgICB9KTtcblxuICAgIGNvbnN0IHRvcENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AnKTtcbiAgICBpZiAodG9wQ29udGFpbmVyKSB7XG4gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgfVxuICAgICAgdG9wQ29udGFpbmVyLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkQ2FzZUZpZWxkKGNvbDogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbiwgcmVzdWx0OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IENhc2VGaWVsZCB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICBpZDogY29sLmNhc2VfZmllbGRfaWQsXG4gICAgICBsYWJlbDogY29sLmxhYmVsLFxuICAgICAgZmllbGRfdHlwZTogY29sLmNhc2VfZmllbGRfdHlwZSxcbiAgICAgIHZhbHVlOiByZXN1bHQuY2FzZV9maWVsZHNbY29sLmNhc2VfZmllbGRfaWRdLFxuICAgICAgZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcjogY29sLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIsXG4gICAgICBkaXNwbGF5X2NvbnRleHQ6IGNvbC5kaXNwbGF5X2NvbnRleHQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sdW1uc1dpdGhQcmVmaXgoY29sOiBDYXNlRmllbGQsIHJlc3VsdDogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiBDYXNlRmllbGQge1xuICAgIGNvbC52YWx1ZSA9IHRoaXMuZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk7XG4gICAgY29sLnZhbHVlID0gdGhpcy5wbGFjZWhvbGRlclNlcnZpY2UucmVzb2x2ZVBsYWNlaG9sZGVycyhyZXN1bHQuY2FzZV9maWVsZHMsIGNvbC52YWx1ZSk7XG4gICAgcmV0dXJuIGNvbDtcbiAgfVxuXG4gIHB1YmxpYyBoYXNSZXN1bHRzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aCAmJiB0aGlzLnBhZ2luYXRpb25NZXRhZGF0YS50b3RhbF9wYWdlc19jb3VudDtcbiAgfVxuXG4gIHB1YmxpYyBoYXNEcmFmdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5oYXNEcmFmdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wYXJhdG9yKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvciB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeS5jcmVhdGVTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3IoY29sdW1uKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0KGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikge1xuICAgIGlmICh0aGlzLmNvbnN1bWVyU29ydGluZ0VuYWJsZWQpIHtcbiAgICAgIGlmIChjb2x1bW4uY2FzZV9maWVsZF9pZCAhPT0gdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbikge1xuICAgICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPSBTb3J0T3JkZXIuREVTQ0VORElORztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkcgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0T3JkZXIuQVNDRU5ESU5HIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQ7XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMudHlwZSA9IGNvbHVtbi5jYXNlX2ZpZWxkX3R5cGUudHlwZTtcbiAgICAgIHRoaXMuc29ydEhhbmRsZXIuZW1pdCh0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jb21wYXJhdG9yKGNvbHVtbikgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTb3J0QXNjZW5kaW5nKGNvbHVtbikpIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IG5ldyBTb3J0UGFyYW1ldGVycyh0aGlzLmNvbXBhcmF0b3IoY29sdW1uKSwgU29ydE9yZGVyLkFTQ0VORElORyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvcnRQYXJhbWV0ZXJzID0gbmV3IFNvcnRQYXJhbWV0ZXJzKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pLCBTb3J0T3JkZXIuREVTQ0VORElORyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNvcnRXaWRnZXQoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSB7XG4gICAgbGV0IGNvbmRpdGlvbiA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmNvbnN1bWVyU29ydGluZ0VuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGlzQ29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQgPT09IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5jb2x1bW47XG4gICAgICBjb25zdCBpc0FzY2VuZGluZyA9IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9PT0gU29ydE9yZGVyLkFTQ0VORElORztcbiAgICAgIGNvbmRpdGlvbiA9ICFpc0NvbHVtbiB8fCAoaXNDb2x1bW4gJiYgaXNBc2NlbmRpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25kaXRpb24gPSB0aGlzLmlzU29ydEFzY2VuZGluZyhjb2x1bW4pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25kaXRpb24gPyAnJiM5NjYwOycgOiAnJiM5NjUwOyc7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZpdHlFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5U2VydmljZS5pc0VuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgaHlwaGVuYXRlSWZDYXNlUmVmZXJlbmNlT3JHZXQoY29sLCByZXN1bHQpOiBhbnkge1xuICAgIGlmIChjb2wuY2FzZV9maWVsZF9pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYXNlUmVmZXJlbmNlUGlwZS50cmFuc2Zvcm0ocmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjb2wuaWQpIHtcbiAgICAgICAgaWYgKGNvbC5pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuaWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5pZF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHQuY2FzZV9maWVsZHNbY29sLmNhc2VfZmllbGRfaWRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTogYW55IHtcbiAgICByZXR1cm4gcmVzdWx0LmNhc2VfaWQuc3RhcnRzV2l0aChEUkFGVF9QUkVGSVgpID8gRFJBRlRfUFJFRklYIDogdGhpcy5oeXBoZW5hdGVJZkNhc2VSZWZlcmVuY2VPckdldChjb2wsIHJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgaXNTb3J0QXNjZW5kaW5nKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGN1cnJlbnRTb3J0T3JkZXIgPSB0aGlzLmN1cnJlbnRTb3J0T3JkZXIoY29sdW1uKTtcblxuICAgIHJldHVybiBjdXJyZW50U29ydE9yZGVyID09PSBTb3J0T3JkZXIuVU5TT1JURUQgfHwgY3VycmVudFNvcnRPcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRTb3J0T3JkZXIoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKTogU29ydE9yZGVyIHtcblxuICAgIGxldCBpc0FzY2VuZGluZyA9IHRydWU7XG4gICAgbGV0IGlzRGVzY2VuZGluZyA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5jb21wYXJhdG9yKGNvbHVtbikgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFNvcnRPcmRlci5VTlNPUlRFRDtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbXBhcmlzb24gPSB0aGlzLmNvbXBhcmF0b3IoY29sdW1uKS5jb21wYXJlKHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldLCB0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpICsgMV0pO1xuICAgICAgaXNEZXNjZW5kaW5nID0gaXNEZXNjZW5kaW5nICYmIGNvbXBhcmlzb24gPD0gMDtcbiAgICAgIGlzQXNjZW5kaW5nID0gaXNBc2NlbmRpbmcgJiYgY29tcGFyaXNvbiA+PSAwO1xuICAgICAgaWYgKCFpc0FzY2VuZGluZyAmJiAhaXNEZXNjZW5kaW5nKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNBc2NlbmRpbmcgPyBTb3J0T3JkZXIuQVNDRU5ESU5HIDogaXNEZXNjZW5kaW5nID8gU29ydE9yZGVyLkRFU0NFTkRJTkcgOiBTb3J0T3JkZXIuVU5TT1JURUQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rmlyc3RSZXN1bHQoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9ICh0aGlzLnNlbGVjdGVkLnBhZ2UgPyB0aGlzLnNlbGVjdGVkLnBhZ2UgOiAxKTtcbiAgICByZXR1cm4gKChjdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUpICsgMSArIHRoaXMuZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldExhc3RSZXN1bHQoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9ICh0aGlzLnNlbGVjdGVkLnBhZ2UgPyB0aGlzLnNlbGVjdGVkLnBhZ2UgOiAxKTtcbiAgICByZXR1cm4gKChjdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUpICsgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMubGVuZ3RoICsgdGhpcy5nZXREcmFmdHNDb3VudElmTm90UGFnZU9uZShjdXJyZW50UGFnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VG90YWxSZXN1bHRzKCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnBhZ2luYXRpb25NZXRhZGF0YS50b3RhbF9yZXN1bHRzX2NvdW50ICsgdGhpcy5kcmFmdHNDb3VudDtcblxuICAgIHJldHVybiB0b3RhbCA+PSB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUID8gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVCA6IHRvdGFsO1xuICB9XG5cbiAgcHVibGljIHByZXBhcmVDYXNlTGlua1VybChjYXNlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHVybCA9IHRoaXMuY2FzZUxpbmtVcmxUZW1wbGF0ZTtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgnanVyaXNkaWN0aW9uX2lkJywgdGhpcy5qdXJpc2RpY3Rpb24uaWQpO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdjYXNlVHlwZV9pZCcsIHRoaXMuY2FzZVR5cGUuaWQpO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdjYXNlX2lkJywgY2FzZUlkKTtcblxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBwcml2YXRlIGdldERyYWZ0c0NvdW50SWZOb3RQYWdlT25lKGN1cnJlbnRQYWdlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY3VycmVudFBhZ2UgPiAxID8gdGhpcy5kcmFmdHNDb3VudCA6IDA7XG4gIH1cblxuICBwcml2YXRlIG51bWJlck9mRHJhZnRzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZpbHRlcihfID0+IF8uY2FzZV9pZC5zdGFydHNXaXRoKERSQUZUX1BSRUZJWCkpLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvQ2FzZShjYXNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuY2xpY2tDYXNlLmVtaXQoe1xuICAgICAgY2FzZUlkXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlVcCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogdm9pZCB7XG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdTcGFjZScpIHtcbiAgICAgIGlmICh0aGlzLmJyb3dzZXJTZXJ2aWNlLmlzRmlyZWZveCB8fCB0aGlzLmJyb3dzZXJTZXJ2aWNlLmlzU2FmYXJpIHx8IHRoaXMuYnJvd3NlclNlcnZpY2UuaXNJRU9yRWRnZSkge1xuICAgICAgICB0aGlzLmNoYW5nZVNlbGVjdGlvbihjKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjx0YWJsZSAqbmdJZj1cImhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKVwiPlxuICA8Y2FwdGlvbj5cbiAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyXCIgaWQ9XCJzZWFyY2gtcmVzdWx0LWhlYWRpbmdfX3RleHRcIiB0YWJpbmRleD1cIi0xXCI+e3sgY2FzZVN0YXRlID8gJ1lvdXIgY2FzZXMnIDogJ1NlYXJjaCByZXN1bHQnIH19PC9oMj5cblxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHQgcGFnaW5hdGlvbi1saW1pdC13YXJuaW5nXCIgKm5nSWY9XCJwYWdpbmF0aW9uTGltaXRFbmZvcmNlZFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgPHN0cm9uZyBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fYXNzaXN0aXZlXCI+V2FybmluZzwvc3Bhbj5cbiAgICAgICAgVGhlIHRvdGFsIHNpemUgb2YgdGhlIHJlc3VsdCBzZXQgaXMge3twYWdpbmF0aW9uTWV0YWRhdGEudG90YWxfcmVzdWx0c19jb3VudCB8IG51bWJlcn19LiBPbmx5IHRoZSBmaXJzdCAxMCwwMDAgcmVjb3JkcyBhcmUgYXZhaWxhYmxlIGZvciBkaXNwbGF5LlxuICAgICAgPC9zdHJvbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cInBhZ2luYXRpb24tdG9wXCJcbiAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGdldFRvdGFsUmVzdWx0cygpIH19IHJlc3VsdHMgaGF2ZSBiZWVuIGZvdW5kXCIgcm9sZT1cInN0YXR1c1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCIgaWQ9XCJzZWFyY2gtcmVzdWx0LXN1bW1hcnlfX3RleHRcIj5TaG93aW5nIFxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldEZpcnN0UmVzdWx0KCkgfX08L3NwYW4+XG4gICAgICAgIHRvXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgZ2V0TGFzdFJlc3VsdCgpIH19PC9zcGFuPlxuICAgICAgICBvZlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldFRvdGFsUmVzdWx0cygpIH19PC9zcGFuPiByZXN1bHRzPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIoaGFzUmVzdWx0cygpIHx8IGhhc0RyYWZ0cygpKSAmJiBzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJyZXNldC1zZWxlY3Rpb25cIlxuICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiUmVzZXQgc2VsZWN0aW9uXCI+XG4gICAgICA8c3Bhbj48YSBjbGFzcz1cInNlYXJjaC1yZXN1bHQtcmVzZXQtbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiY2xlYXJTZWxlY3Rpb24oKVwiPlJlc2V0IGNhc2Ugc2VsZWN0aW9uPC9hPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9jYXB0aW9uPlxuICA8dGhlYWQ+XG4gICAgPHRyIHNjb3BlPVwicm93XCI+XG4gICAgICA8dGggKm5nSWY9XCJzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2hlY2tib3hcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJzZWxlY3QtYWxsXCIgbmFtZT1cInNlbGVjdC1hbGxcIiB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cInNlbGVjdEFsbCgpXCIgW2NoZWNrZWRdPVwiYWxsT25QYWdlU2VsZWN0ZWQoKVwiIFtkaXNhYmxlZF09XCIhY2FuQW55QmVTaGFyZWQoKVwiIC8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJzZWxlY3QtYWxsXCI+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RoPlxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgcmVzdWx0Vmlldy5jb2x1bW5zXCI+XG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWhlYWRlclwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU29ydCBieSAnICsgY29sLmxhYmVsICsgJyAnICsgaXNTb3J0QXNjZW5kaW5nKGNvbCk/ICdhc2NlbmRpbmcnIDogJ2Rlc2NlbmRpbmcnXCI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tbGFiZWxcIiAoY2xpY2spPVwic29ydChjb2wpXCI+e3tjb2wubGFiZWx9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29tcGFyYXRvcihjb2wpXCIgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1zb3J0XCI+XG4gICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNvcnQoY29sKVwiIGNsYXNzPVwic29ydC13aWRnZXRcIiBbaW5uZXJIVE1MXT1cInNvcnRXaWRnZXQoY29sKVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj48L2E+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCIgc3R5bGU9XCJ3aWR0aDogMTEwcHg7XCI+PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHk+XG5cbiAgICA8IS0tIHNvcnRlZCBieSBjb25zdW1lciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uc3VtZXJTb3J0aW5nRW5hYmxlZFwiPlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCByZXN1bHQgb2YgcmVzdWx0Vmlldy5yZXN1bHRzIHwgcGFnaW5hdGU6IHsgaXRlbXNQZXJQYWdlOiBwYWdpbmF0aW9uUGFnZVNpemUsIGN1cnJlbnRQYWdlOiBzZWxlY3RlZC5wYWdlLCB0b3RhbEl0ZW1zOiByZXN1bHRUb3RhbCB9XCI+XG4gICAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19jaGVja2JveFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIiBuYW1lPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJjaGFuZ2VTZWxlY3Rpb24ocmVzdWx0KVwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQocmVzdWx0KVwiIFtkaXNhYmxlZF09XCIhY2FuQmVTaGFyZWQocmVzdWx0KVwiIC8+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tY2VsbFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgcmVzdWx0Vmlldy5jb2x1bW5zOyBsZXQgY29sSW5kZXggPSBpbmRleFwiIHNjb3BlPVwicm93XCI+XG4gICAgICAgICAgPGEgKm5nSWY9XCJjb2xJbmRleCA9PSAwXCIgW3JvdXRlckxpbmtdPVwicHJlcGFyZUNhc2VMaW5rVXJsKHJlc3VsdC5jYXNlX2lkKVwiXG4gICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJnbyB0byBjYXNlIHdpdGggQ2FzZSByZWZlcmVuY2U6e3sgcmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlIH19XCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwidGV4dC0xNlwiICpuZ0lmPVwiIWhpZGVSb3dzXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdJZj1cImRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpOyBlbHNlIGNhc2VfcmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJnZXRDb2x1bW5zV2l0aFByZWZpeChyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0sIHJlc3VsdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhc2VfcmVmZXJlbmNlPnt7cmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2xJbmRleCAhPSAwXCIgY2xhc3M9XCJ0ZXh0LTE2XCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIGNjZExhYmVsU3Vic3RpdHV0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIj5cbiAgICAgICAgICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJyZXN1bHQuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJJQ09OXCI+PC9jY2QtYWN0aXZpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gc29ydGVkIGJ5IHRvb2xraXQgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb25zdW1lclNvcnRpbmdFbmFibGVkXCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiByZXN1bHRWaWV3LnJlc3VsdHMgfCBjY2RTb3J0U2VhcmNoUmVzdWx0IDogc29ydFBhcmFtZXRlcnMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2luYXRpb25QYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHNlbGVjdGVkLnBhZ2UsIHRvdGFsSXRlbXM6IHJlc3VsdFRvdGFsIH1cIj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIG5hbWU9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihyZXN1bHQpXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyZXN1bHQpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChyZXN1bHQpXCIgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50LCByZXN1bHQpXCIgLz5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1jZWxsXCIgKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCIgc2NvcGU9XCJyb3dcIj5cblxuICAgICAgICAgIDxhICpuZ0lmPVwiY29sSW5kZXggPT0gMFwiIFtyb3V0ZXJMaW5rXT1cInByZXBhcmVDYXNlTGlua1VybChyZXN1bHQuY2FzZV9pZClcIlxuICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiZ28gdG8gY2FzZSB3aXRoIENhc2UgcmVmZXJlbmNlOnt7IHJlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZSB9fVwiIGNsYXNzPVwiZ292dWstbGlua1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInRleHQtMTZcIiAqbmdJZj1cIiFoaWRlUm93c1wiPlxuICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgKm5nSWY9XCJkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTsgZWxzZSBjYXNlX3JlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY2RMYWJlbFN1YnN0aXR1dG9yIFtjYXNlRmllbGRdPVwiZ2V0Q29sdW1uc1dpdGhQcmVmaXgocmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdLCByZXN1bHQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjYXNlX3JlZmVyZW5jZT57e3Jlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sSW5kZXggIT0gMFwiIGNsYXNzPVwidGV4dC0xNlwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCBjY2RMYWJlbFN1YnN0aXR1dG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRzVG9TdWJzdGl0dXRlXT1cIlsndmFsdWUnXVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCI+XG4gICAgICAgICAgPGRpdiBbc3R5bGUudmlzaWJpbGl0eV09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgICAgICAgICA8Y2NkLWFjdGl2aXR5IFtjYXNlSWRdPVwicmVzdWx0LmNhc2VfaWRcIiBbZGlzcGxheU1vZGVdPVwiSUNPTlwiPjwvY2NkLWFjdGl2aXR5PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPGNjZC1wYWdpbmF0aW9uXG4gICpuZ0lmPVwiaGFzUmVzdWx0cygpXCJcbiAgKHBhZ2VDaGFuZ2UpPVwiZ29Ub1BhZ2UoJGV2ZW50KVwiXG4gIFt2aXNpYmlsaXR5TGFiZWxdPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiXG4gIFthdXRvSGlkZV09XCJ0cnVlXCJcbiAgW21heFNpemVdPVwiOFwiXG4gIFtzY3JlZW5SZWFkZXJQYWdpbmF0aW9uTGFiZWxdPVwiJ1BhZ2luYXRpb24nXCJcbiAgW3NjcmVlblJlYWRlclBhZ2VMYWJlbF09XCJwYWdlXCJcbiAgW3NjcmVlblJlYWRlckN1cnJlbnRMYWJlbF09XCInWW91XFwncmUgb24gcGFnZSdcIj48L2NjZC1wYWdpbmF0aW9uPlxuXG48ZGl2ICpuZ0lmPVwiIShoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpXCIgY2xhc3M9XCJub3RpZmljYXRpb25cIlxuICBhcmlhLWxhYmVsPVwiTm8gY2FzZXMgZm91bmQuIFRyeSB1c2luZyBkaWZmZXJlbnQgZmlsdGVycy5cIj5cbiAgTm8gY2FzZXMgZm91bmQuIFRyeSB1c2luZyBkaWZmZXJlbnQgZmlsdGVycy5cbjwvZGl2PlxuIl19
839
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0L3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUNsRCxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUNWLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLHFDQUFxQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7SUNKM0gsK0JBQXlGO0lBQ3ZGLGdDQUEwRDtJQUFBLGlCQUFDO0lBQUEsaUJBQU87SUFDbEUsa0NBQXlDO0lBQ3ZDLGdDQUE0QztJQUFBLHVCQUFPO0lBQUEsaUJB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QUFRO2tCQURkLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFJQyxZQUFZO2tCQURsQixLQUFLO1lBSUMsVUFBVTtrQkFEaEIsS0FBSztZQUlDLElBQUk7a0JBRFYsS0FBSztZQUlDLGtCQUFrQjtrQkFEeEIsS0FBSztZQUlDLGNBQWM7a0JBRHBCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxzQkFBc0I7a0JBRDVCLEtBQUs7WUFJQyxTQUFTO2tCQURmLE1BQU07WUFJQSxVQUFVO2tCQURoQixNQUFNO1lBSUEsU0FBUztrQkFEZixNQUFNO1lBSUEsV0FBVztrQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IFBsYWNlaG9sZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBDYXNlU3RhdGUsIENhc2VUeXBlLCBEaXNwbGF5TW9kZSxcbiAgRFJBRlRfUFJFRklYLCBKdXJpc2RpY3Rpb24sIFBhZ2luYXRpb25NZXRhZGF0YSwgU2VhcmNoUmVzdWx0VmlldywgU2VhcmNoUmVzdWx0Vmlld0NvbHVtbixcbiAgU2VhcmNoUmVzdWx0Vmlld0l0ZW0sIFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvciwgU29ydE9yZGVyLCBTb3J0UGFyYW1ldGVycyB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlUmVmZXJlbmNlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IEFjdGl2aXR5U2VydmljZSwgQnJvd3NlclNlcnZpY2UsIFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnksIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlYXJjaC1yZXN1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1yZXN1bHQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hSZXN1bHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9KVVJJU0RJQ1RJT04gPSAnanVyaXNkaWN0aW9uJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9DQVNFX1RZUEUgPSAnY2FzZS10eXBlJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9DQVNFX1NUQVRFID0gJ2Nhc2Utc3RhdGUnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgPSAxMDAwMDtcblxuICBwdWJsaWMgSUNPTiA9IERpc3BsYXlNb2RlLklDT047XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VMaW5rVXJsVGVtcGxhdGU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMganVyaXNkaWN0aW9uOiBKdXJpc2RpY3Rpb247XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VUeXBlOiBDYXNlVHlwZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZVN0YXRlOiBDYXNlU3RhdGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWx0ZXJGRzogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN1bHRWaWV3OiBTZWFyY2hSZXN1bHRWaWV3O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2luYXRpb25NZXRhZGF0YTogUGFnaW5hdGlvbk1ldGFkYXRhO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXRhZGF0YUZpZWxkczogc3RyaW5nW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd09ubHlTZWxlY3RlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcmVTZWxlY3RlZENhc2VzOiBTZWFyY2hSZXN1bHRWaWV3SXRlbVtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbnN1bWVyU29ydGluZ0VuYWJsZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUmVzdWx0Vmlld0l0ZW1bXT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNoYW5nZVBhZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2xpY2tDYXNlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNvcnRIYW5kbGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgcGFnaW5hdGlvbkxpbWl0RW5mb3JjZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcGFnaW5hdGlvblBhZ2VTaXplOiBudW1iZXI7XG5cbiAgcHVibGljIGhpZGVSb3dzOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZWxlY3RlZDoge1xuICAgIGluaXQ/OiBib29sZWFuLFxuICAgIGp1cmlzZGljdGlvbj86IEp1cmlzZGljdGlvbixcbiAgICBjYXNlVHlwZT86IENhc2VUeXBlLFxuICAgIGNhc2VTdGF0ZT86IENhc2VTdGF0ZSxcbiAgICBmb3JtR3JvdXA/OiBGb3JtR3JvdXAsXG4gICAgbWV0YWRhdGFGaWVsZHM/OiBzdHJpbmdbXSxcbiAgICBwYWdlPzogbnVtYmVyXG4gIH0gPSB7fTtcblxuICBwdWJsaWMgc29ydFBhcmFtZXRlcnM6IFNvcnRQYXJhbWV0ZXJzO1xuICBwdWJsaWMgc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTtcbiAgcHVibGljIGRyYWZ0c0NvdW50OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN1bWVyU29ydFBhcmFtZXRlcnM6IHsgY29sdW1uOiBzdHJpbmcsIG9yZGVyOiBTb3J0T3JkZXIsIHR5cGU6IHN0cmluZyB9ID0geyBjb2x1bW46IG51bGwsIG9yZGVyOiBudWxsLCB0eXBlOiBudWxsIH07XG5cbiAgcHVibGljIHNlbGVjdGVkQ2FzZXM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5OiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LFxuICAgIGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVNlcnZpY2U6IEFjdGl2aXR5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VSZWZlcmVuY2VQaXBlOiBDYXNlUmVmZXJlbmNlUGlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlaG9sZGVyU2VydmljZTogUGxhY2Vob2xkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnJvd3NlclNlcnZpY2U6IEJyb3dzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5ID0gc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTtcbiAgICB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSA9IGFwcENvbmZpZy5nZXRQYWdpbmF0aW9uUGFnZVNpemUoKTtcbiAgICB0aGlzLmhpZGVSb3dzID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJlU2VsZWN0ZWRDYXNlcykge1xuICAgICAgZm9yIChjb25zdCBwcmVTZWxlY3RlZENhc2Ugb2YgdGhpcy5wcmVTZWxlY3RlZENhc2VzKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ2FzZXMgJiYgIXRoaXMuc2VsZWN0ZWRDYXNlcy5zb21lKGFDYXNlID0+IGFDYXNlLmNhc2VfaWQgPT09IHByZVNlbGVjdGVkQ2FzZS5jYXNlX2lkKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKHByZVNlbGVjdGVkQ2FzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnZXZlbnRVcmwnKTtcbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXG4gICAgaWYgKGNoYW5nZXNbJ3Jlc3VsdFZpZXcnXSkge1xuICAgICAgdGhpcy5oaWRlUm93cyA9IGZhbHNlO1xuXG4gICAgICB0aGlzLnNvcnRQYXJhbWV0ZXJzID0gdW5kZWZpbmVkO1xuICAgICAgLy8gQ2xvbmUgYHJlc3VsdFZpZXdgIHRvIHByZXZlbnQgc29ydGluZyB0aGUgZXh0ZXJuYWwgdmFyaWFibGVcbiAgICAgIHRoaXMucmVzdWx0VmlldyA9IHtcbiAgICAgICAgY29sdW1uczogdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuc2xpY2UoMCksXG4gICAgICAgIHJlc3VsdHM6IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLnNsaWNlKDApLFxuICAgICAgICBoYXNEcmFmdHM6IHRoaXMucmVzdWx0Vmlldy5oYXNEcmFmdHNcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucmVzdWx0Vmlldy5jb2x1bW5zID0gdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuc29ydCgoYTogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbiwgYjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikgPT4ge1xuICAgICAgICByZXR1cm4gYS5vcmRlciAtIGIub3JkZXI7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5oeWRyYXRlUmVzdWx0VmlldygpO1xuICAgICAgdGhpcy5kcmFmdHNDb3VudCA9IHRoaXMuZHJhZnRzQ291bnQgPyB0aGlzLmRyYWZ0c0NvdW50IDogdGhpcy5udW1iZXJPZkRyYWZ0cygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sncGFnZSddKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAoY2hhbmdlc1sncGFnZSddKS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCByZXN1bHRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQ7XG4gICAgY29uc3QgbWF4aW11bVJlc3VsdFJlYWNoZWQgPSB0b3RhbCA+PSB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUO1xuICAgIHRoaXMucGFnaW5hdGlvbkxpbWl0RW5mb3JjZWQgPSBtYXhpbXVtUmVzdWx0UmVhY2hlZDtcblxuICAgIHJldHVybiBtYXhpbXVtUmVzdWx0UmVhY2hlZCA/IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgOiB0b3RhbDtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2FzZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgY2FuQmVTaGFyZWQoY2FzZVZpZXc6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNhc2VWaWV3LnN1cHBsZW1lbnRhcnlfZGF0YSAmJiBjYXNlVmlldy5zdXBwbGVtZW50YXJ5X2RhdGEuaGFzT3duUHJvcGVydHkoJ29yZ3NfYXNzaWduZWRfdXNlcnMnKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5BbnlCZVNoYXJlZCgpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQodGhpcy5yZXN1bHRWaWV3LnJlc3VsdHNbaV0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsbE9uUGFnZVNlbGVjdGVkKCkpIHtcbiAgICAgIC8vIGFsbCBjYXNlcyBhbHJlYWR5IHNlbGVjdGVkLCBzbyB1bnNlbGVjdCBhbGwgb24gdGhpcyBwYWdlXG4gICAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgICAgIGlmIChjLmNhc2VfaWQgPT09IHMuY2FzZV9pZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc1NlbGVjdGVkKGMpICYmIHRoaXMuY2FuQmVTaGFyZWQoYykpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMucHVzaChjKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3Rpb24oYzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKGMpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgICBpZiAoYy5jYXNlX2lkID09PSBzLmNhc2VfaWQpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQoYykpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goYyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnNlbGVjdGVkQ2FzZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoYy5jYXNlX2lkID09PSB0aGlzLnNlbGVjdGVkQ2FzZXNbaV0uY2FzZV9pZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFsbE9uUGFnZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIGxldCBjYW5CZVNoYXJlZENvdW50ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3QgciA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldO1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQocikpIHtcbiAgICAgICAgY2FuQmVTaGFyZWRDb3VudCArKztcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc1NlbGVjdGVkKHIpICYmIHRoaXMuY2FuQmVTaGFyZWQocikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2FuQmVTaGFyZWRDb3VudCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIeWRyYXRlcyByZXN1bHQgdmlldyB3aXRoIGNhc2UgZmllbGQgZGVmaW5pdGlvbnMuXG4gICAqL1xuICAvLyBBIGxvbmdlciB0ZXJtIHJlc29sdXRpb24gaXMgdG8gbW92ZSB0aGlzIHBpZWNlIG9mIGxvZ2ljIHRvIHRoZSBiYWNrZW5kXG4gIHB1YmxpYyBoeWRyYXRlUmVzdWx0VmlldygpOiB2b2lkIHtcbiAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKHJlc3VsdCA9PiB7XG4gICAgICBjb25zdCBjYXNlRmllbGRzID0gW107XG5cbiAgICAgIE9iamVjdC5rZXlzKHJlc3VsdC5jYXNlX2ZpZWxkcykuZm9yRWFjaChmaWVsZElkID0+IHtcblxuICAgICAgICBjb25zdCBmaWVsZCA9IHJlc3VsdC5jYXNlX2ZpZWxkc1tmaWVsZElkXTtcblxuICAgICAgICBjYXNlRmllbGRzLnB1c2goT2JqZWN0LmFzc2lnbihuZXcgQ2FzZUZpZWxkKCksIHtcbiAgICAgICAgICBpZDogZmllbGRJZCxcbiAgICAgICAgICBsYWJlbDogbnVsbCxcbiAgICAgICAgICBmaWVsZF90eXBlOiB7fSxcbiAgICAgICAgICB2YWx1ZTogZmllbGQsXG4gICAgICAgICAgZGlzcGxheV9jb250ZXh0OiBudWxsLFxuICAgICAgICB9KSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzID0gY2FzZUZpZWxkcztcbiAgICAgIHJlc3VsdC5jb2x1bW5zID0ge307XG5cbiAgICAgIHRoaXMucmVzdWx0Vmlldy5jb2x1bW5zLmZvckVhY2goY29sID0+IHtcbiAgICAgICAgcmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdID0gdGhpcy5idWlsZENhc2VGaWVsZChjb2wsIHJlc3VsdCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICB9XG5cbiAgcHVibGljIGdvVG9QYWdlKHBhZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVSb3dzID0gdHJ1ZTtcbiAgICB0aGlzLnNlbGVjdGVkLmluaXQgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA9IHRoaXMuanVyaXNkaWN0aW9uO1xuICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSB0aGlzLmNhc2VUeXBlO1xuICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlID0gdGhpcy5jYXNlU3RhdGU7XG4gICAgdGhpcy5zZWxlY3RlZC5mb3JtR3JvdXAgPSB0aGlzLmNhc2VGaWx0ZXJGRztcbiAgICB0aGlzLnNlbGVjdGVkLm1ldGFkYXRhRmllbGRzID0gdGhpcy5tZXRhZGF0YUZpZWxkcztcbiAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSBwYWdlO1xuICAgIC8vIEFwcGx5IGZpbHRlcnNcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHF1ZXJ5UGFyYW1zW1NlYXJjaFJlc3VsdENvbXBvbmVudC5QQVJBTV9KVVJJU0RJQ1RJT05dID0gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPyB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5pZCA6IG51bGw7XG4gICAgcXVlcnlQYXJhbXNbU2VhcmNoUmVzdWx0Q29tcG9uZW50LlBBUkFNX0NBU0VfVFlQRV0gPSB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID8gdGhpcy5zZWxlY3RlZC5jYXNlVHlwZS5pZCA6IG51bGw7XG4gICAgcXVlcnlQYXJhbXNbU2VhcmNoUmVzdWx0Q29tcG9uZW50LlBBUkFNX0NBU0VfU1RBVEVdID0gdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUgPyB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZS5pZCA6IG51bGw7XG4gICAgdGhpcy5jaGFuZ2VQYWdlLmVtaXQoe1xuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBxdWVyeVBhcmFtc1xuICAgIH0pO1xuXG4gICAgY29uc3QgdG9wQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvcCcpO1xuICAgIGlmICh0b3BDb250YWluZXIpIHtcbiAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICB9XG4gICAgICB0b3BDb250YWluZXIuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDYXNlRmllbGQoY29sOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uLCByZXN1bHQ6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogQ2FzZUZpZWxkIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgQ2FzZUZpZWxkKCksIHtcbiAgICAgIGlkOiBjb2wuY2FzZV9maWVsZF9pZCxcbiAgICAgIGxhYmVsOiBjb2wubGFiZWwsXG4gICAgICBmaWVsZF90eXBlOiBjb2wuY2FzZV9maWVsZF90eXBlLFxuICAgICAgdmFsdWU6IHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuY2FzZV9maWVsZF9pZF0sXG4gICAgICBkaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyOiBjb2wuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcixcbiAgICAgIGRpc3BsYXlfY29udGV4dDogY29sLmRpc3BsYXlfY29udGV4dCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2x1bW5zV2l0aFByZWZpeChjb2w6IENhc2VGaWVsZCwgcmVzdWx0OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IENhc2VGaWVsZCB7XG4gICAgY29sLnZhbHVlID0gdGhpcy5kcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTtcbiAgICBjb2wudmFsdWUgPSB0aGlzLnBsYWNlaG9sZGVyU2VydmljZS5yZXNvbHZlUGxhY2Vob2xkZXJzKHJlc3VsdC5jYXNlX2ZpZWxkcywgY29sLnZhbHVlKTtcbiAgICByZXR1cm4gY29sO1xuICB9XG5cbiAgcHVibGljIGhhc1Jlc3VsdHMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMubGVuZ3RoICYmIHRoaXMucGFnaW5hdGlvbk1ldGFkYXRhLnRvdGFsUGFnZXNDb3VudDtcbiAgfVxuXG4gIHB1YmxpYyBoYXNEcmFmdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5oYXNEcmFmdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wYXJhdG9yKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvciB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeS5jcmVhdGVTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3IoY29sdW1uKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0KGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikge1xuICAgIGlmICh0aGlzLmNvbnN1bWVyU29ydGluZ0VuYWJsZWQpIHtcbiAgICAgIGlmIChjb2x1bW4uY2FzZV9maWVsZF9pZCAhPT0gdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbikge1xuICAgICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPSBTb3J0T3JkZXIuREVTQ0VORElORztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkcgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0T3JkZXIuQVNDRU5ESU5HIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQ7XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMudHlwZSA9IGNvbHVtbi5jYXNlX2ZpZWxkX3R5cGUudHlwZTtcbiAgICAgIHRoaXMuc29ydEhhbmRsZXIuZW1pdCh0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jb21wYXJhdG9yKGNvbHVtbikgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTb3J0QXNjZW5kaW5nKGNvbHVtbikpIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IG5ldyBTb3J0UGFyYW1ldGVycyh0aGlzLmNvbXBhcmF0b3IoY29sdW1uKSwgU29ydE9yZGVyLkFTQ0VORElORyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvcnRQYXJhbWV0ZXJzID0gbmV3IFNvcnRQYXJhbWV0ZXJzKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pLCBTb3J0T3JkZXIuREVTQ0VORElORyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNvcnRXaWRnZXQoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSB7XG4gICAgbGV0IGNvbmRpdGlvbiA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmNvbnN1bWVyU29ydGluZ0VuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGlzQ29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQgPT09IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5jb2x1bW47XG4gICAgICBjb25zdCBpc0FzY2VuZGluZyA9IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9PT0gU29ydE9yZGVyLkFTQ0VORElORztcbiAgICAgIGNvbmRpdGlvbiA9ICFpc0NvbHVtbiB8fCAoaXNDb2x1bW4gJiYgaXNBc2NlbmRpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25kaXRpb24gPSB0aGlzLmlzU29ydEFzY2VuZGluZyhjb2x1bW4pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25kaXRpb24gPyAnJiM5NjYwOycgOiAnJiM5NjUwOyc7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZpdHlFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5U2VydmljZS5pc0VuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgaHlwaGVuYXRlSWZDYXNlUmVmZXJlbmNlT3JHZXQoY29sLCByZXN1bHQpOiBhbnkge1xuICAgIGlmIChjb2wuY2FzZV9maWVsZF9pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYXNlUmVmZXJlbmNlUGlwZS50cmFuc2Zvcm0ocmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjb2wuaWQpIHtcbiAgICAgICAgaWYgKGNvbC5pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuaWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5pZF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHQuY2FzZV9maWVsZHNbY29sLmNhc2VfZmllbGRfaWRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTogYW55IHtcbiAgICByZXR1cm4gcmVzdWx0LmNhc2VfaWQuc3RhcnRzV2l0aChEUkFGVF9QUkVGSVgpID8gRFJBRlRfUFJFRklYIDogdGhpcy5oeXBoZW5hdGVJZkNhc2VSZWZlcmVuY2VPckdldChjb2wsIHJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgaXNTb3J0QXNjZW5kaW5nKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGN1cnJlbnRTb3J0T3JkZXIgPSB0aGlzLmN1cnJlbnRTb3J0T3JkZXIoY29sdW1uKTtcblxuICAgIHJldHVybiBjdXJyZW50U29ydE9yZGVyID09PSBTb3J0T3JkZXIuVU5TT1JURUQgfHwgY3VycmVudFNvcnRPcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRTb3J0T3JkZXIoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKTogU29ydE9yZGVyIHtcblxuICAgIGxldCBpc0FzY2VuZGluZyA9IHRydWU7XG4gICAgbGV0IGlzRGVzY2VuZGluZyA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5jb21wYXJhdG9yKGNvbHVtbikgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFNvcnRPcmRlci5VTlNPUlRFRDtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbXBhcmlzb24gPSB0aGlzLmNvbXBhcmF0b3IoY29sdW1uKS5jb21wYXJlKHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldLCB0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpICsgMV0pO1xuICAgICAgaXNEZXNjZW5kaW5nID0gaXNEZXNjZW5kaW5nICYmIGNvbXBhcmlzb24gPD0gMDtcbiAgICAgIGlzQXNjZW5kaW5nID0gaXNBc2NlbmRpbmcgJiYgY29tcGFyaXNvbiA+PSAwO1xuICAgICAgaWYgKCFpc0FzY2VuZGluZyAmJiAhaXNEZXNjZW5kaW5nKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNBc2NlbmRpbmcgPyBTb3J0T3JkZXIuQVNDRU5ESU5HIDogaXNEZXNjZW5kaW5nID8gU29ydE9yZGVyLkRFU0NFTkRJTkcgOiBTb3J0T3JkZXIuVU5TT1JURUQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rmlyc3RSZXN1bHQoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9ICh0aGlzLnNlbGVjdGVkLnBhZ2UgPyB0aGlzLnNlbGVjdGVkLnBhZ2UgOiAxKTtcbiAgICByZXR1cm4gKChjdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUpICsgMSArIHRoaXMuZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldExhc3RSZXN1bHQoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9ICh0aGlzLnNlbGVjdGVkLnBhZ2UgPyB0aGlzLnNlbGVjdGVkLnBhZ2UgOiAxKTtcbiAgICByZXR1cm4gKChjdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUpICsgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMubGVuZ3RoICsgdGhpcy5nZXREcmFmdHNDb3VudElmTm90UGFnZU9uZShjdXJyZW50UGFnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VG90YWxSZXN1bHRzKCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnBhZ2luYXRpb25NZXRhZGF0YS50b3RhbFJlc3VsdHNDb3VudCArIHRoaXMuZHJhZnRzQ291bnQ7XG5cbiAgICByZXR1cm4gdG90YWwgPj0gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVCA/IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgOiB0b3RhbDtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlQ2FzZUxpbmtVcmwoY2FzZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCB1cmwgPSB0aGlzLmNhc2VMaW5rVXJsVGVtcGxhdGU7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2p1cmlzZGljdGlvbl9pZCcsIHRoaXMuanVyaXNkaWN0aW9uLmlkKTtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgnY2FzZVR5cGVfaWQnLCB0aGlzLmNhc2VUeXBlLmlkKTtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgnY2FzZV9pZCcsIGNhc2VJZCk7XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcmFmdHNDb3VudElmTm90UGFnZU9uZShjdXJyZW50UGFnZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGN1cnJlbnRQYWdlID4gMSA/IHRoaXMuZHJhZnRzQ291bnQgOiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBudW1iZXJPZkRyYWZ0cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5maWx0ZXIoXyA9PiBfLmNhc2VfaWQuc3RhcnRzV2l0aChEUkFGVF9QUkVGSVgpKS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgZ29Ub0Nhc2UoY2FzZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsaWNrQ2FzZS5lbWl0KHtcbiAgICAgIGNhc2VJZFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uS2V5VXAoJGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjOiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IHZvaWQge1xuICAgIGlmICgkZXZlbnQua2V5ID09PSAnU3BhY2UnKSB7XG4gICAgICBpZiAodGhpcy5icm93c2VyU2VydmljZS5pc0ZpcmVmb3ggfHwgdGhpcy5icm93c2VyU2VydmljZS5pc1NhZmFyaSB8fCB0aGlzLmJyb3dzZXJTZXJ2aWNlLmlzSUVPckVkZ2UpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VTZWxlY3Rpb24oYyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8dGFibGUgKm5nSWY9XCJoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKClcIj5cbiAgPGNhcHRpb24+XG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMlwiIGlkPVwic2VhcmNoLXJlc3VsdC1oZWFkaW5nX190ZXh0XCIgdGFiaW5kZXg9XCItMVwiPnt7IChjYXNlU3RhdGUgPyAnWW91ciBjYXNlcycgOiAnU2VhcmNoIHJlc3VsdCcpIHwgcnB4VHJhbnNsYXRlfX08L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dCBwYWdpbmF0aW9uLWxpbWl0LXdhcm5pbmdcIiAqbmdJZj1cInBhZ2luYXRpb25MaW1pdEVuZm9yY2VkXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiE8L3NwYW4+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X190ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19hc3Npc3RpdmVcIj5XYXJuaW5nPC9zcGFuPlxuICAgICAgICBUaGUgdG90YWwgc2l6ZSBvZiB0aGUgcmVzdWx0IHNldCBpcyB7e3BhZ2luYXRpb25NZXRhZGF0YS50b3RhbFJlc3VsdHNDb3VudCB8IG51bWJlcn19LiBPbmx5IHRoZSBmaXJzdCAxMCwwMDAgcmVjb3JkcyBhcmUgYXZhaWxhYmxlIGZvciBkaXNwbGF5LlxuICAgICAgPC9zdHJvbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cInBhZ2luYXRpb24tdG9wXCJcbiAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGdldFRvdGFsUmVzdWx0cygpIH19IHJlc3VsdHMgaGF2ZSBiZWVuIGZvdW5kXCIgcm9sZT1cInN0YXR1c1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCIgaWQ9XCJzZWFyY2gtcmVzdWx0LXN1bW1hcnlfX3RleHRcIj5TaG93aW5nXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgZ2V0Rmlyc3RSZXN1bHQoKSB9fTwvc3Bhbj5cbiAgICAgICAge3sndG8nIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBnZXRMYXN0UmVzdWx0KCkgfX08L3NwYW4+XG4gICAgICAgIHt7J29mJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgZ2V0VG90YWxSZXN1bHRzKCkgfX08L3NwYW4+IHt7J3Jlc3VsdHMnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIihoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpICYmIHNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cInJlc2V0LXNlbGVjdGlvblwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVzZXQgc2VsZWN0aW9uJyB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgPHNwYW4+PGEgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LXJlc2V0LWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cImNsZWFyU2VsZWN0aW9uKClcIj57eydSZXNldCBjYXNlIHNlbGVjdGlvbicgfCBycHhUcmFuc2xhdGV9fTwvYT48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvY2FwdGlvbj5cbiAgPHRoZWFkPlxuICAgIDx0ciBzY29wZT1cInJvd1wiPlxuICAgICAgPHRoICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwic2VsZWN0LWFsbFwiIG5hbWU9XCJzZWxlY3QtYWxsXCIgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJzZWxlY3RBbGwoKVwiIFtjaGVja2VkXT1cImFsbE9uUGFnZVNlbGVjdGVkKClcIiBbZGlzYWJsZWRdPVwiIWNhbkFueUJlU2hhcmVkKClcIiAvPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LWFsbFwiPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIHJlc3VsdFZpZXcuY29sdW1uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4taGVhZGVyXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTb3J0IGJ5ICcgKyBjb2wubGFiZWwgKyAnICcgKyBpc1NvcnRBc2NlbmRpbmcoY29sKT8gJ2FzY2VuZGluZycgOiAnZGVzY2VuZGluZydcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1sYWJlbFwiIChjbGljayk9XCJzb3J0KGNvbClcIj57e2NvbC5sYWJlbH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29tcGFyYXRvcihjb2wpXCIgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1zb3J0XCI+XG4gICAgICAgICAgICAgIDxhIChjbGljayk9XCJzb3J0KGNvbClcIiBjbGFzcz1cInNvcnQtd2lkZ2V0XCIgW2lubmVySFRNTF09XCJzb3J0V2lkZ2V0KGNvbClcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+PC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L3RoPlxuICAgICAgPHRoICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIiBzdHlsZT1cIndpZHRoOiAxMTBweDtcIj48L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5PlxuICAgIDwhLS0gc29ydGVkIGJ5IGNvbnN1bWVyIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25zdW1lclNvcnRpbmdFbmFibGVkXCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiByZXN1bHRWaWV3LnJlc3VsdHMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2luYXRpb25QYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHNlbGVjdGVkLnBhZ2UsIHRvdGFsSXRlbXM6IHJlc3VsdFRvdGFsIH1cIj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIG5hbWU9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihyZXN1bHQpXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyZXN1bHQpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChyZXN1bHQpXCIgLz5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1jZWxsXCIgKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCIgc2NvcGU9XCJyb3dcIj5cbiAgICAgICAgICA8YSAqbmdJZj1cImNvbEluZGV4ID09IDBcIiBbcm91dGVyTGlua109XCJwcmVwYXJlQ2FzZUxpbmtVcmwocmVzdWx0LmNhc2VfaWQpXCJcbiAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cImdvIHRvIGNhc2Ugd2l0aCBDYXNlIHJlZmVyZW5jZTp7eyByZXN1bHQuY2FzZV9pZCB8IGNjZENhc2VSZWZlcmVuY2UgfX1cIiBjbGFzcz1cImdvdnVrLWxpbmtcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJ0ZXh0LTE2XCIgKm5nSWY9XCIhaGlkZVJvd3NcIj5cbiAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkICpuZ0lmPVwiZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk7IGVsc2UgY2FzZV9yZWZlcmVuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2NkTGFiZWxTdWJzdGl0dXRvciBbY2FzZUZpZWxkXT1cImdldENvbHVtbnNXaXRoUHJlZml4KHJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXSwgcmVzdWx0KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dEZpZWxkc109XCJyZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRzVG9TdWJzdGl0dXRlXT1cIlsndmFsdWUnXVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FzZV9yZWZlcmVuY2U+e3tyZXN1bHQuY2FzZV9pZCB8IGNjZENhc2VSZWZlcmVuY2V9fTwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbEluZGV4ICE9IDBcIiBjbGFzcz1cInRleHQtMTZcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgY2NkTGFiZWxTdWJzdGl0dXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXNlRmllbGRdPVwicmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dEZpZWxkc109XCJyZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm5nSWY9XCJhY3Rpdml0eUVuYWJsZWQoKVwiPlxuICAgICAgICAgIDxkaXYgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1hY3Rpdml0eSBbY2FzZUlkXT1cInJlc3VsdC5jYXNlX2lkXCIgW2Rpc3BsYXlNb2RlXT1cIklDT05cIj48L2NjZC1hY3Rpdml0eT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBzb3J0ZWQgYnkgdG9vbGtpdCAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbnN1bWVyU29ydGluZ0VuYWJsZWRcIj5cbiAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcmVzdWx0IG9mIHJlc3VsdFZpZXcucmVzdWx0cyB8IGNjZFNvcnRTZWFyY2hSZXN1bHQgOiBzb3J0UGFyYW1ldGVycyB8IHBhZ2luYXRlOiB7IGl0ZW1zUGVyUGFnZTogcGFnaW5hdGlvblBhZ2VTaXplLCBjdXJyZW50UGFnZTogc2VsZWN0ZWQucGFnZSwgdG90YWxJdGVtczogcmVzdWx0VG90YWwgfVwiPlxuICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2hlY2tib3hcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCIgbmFtZT1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwiY2hhbmdlU2VsZWN0aW9uKHJlc3VsdClcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkKHJlc3VsdClcIiBbZGlzYWJsZWRdPVwiIWNhbkJlU2hhcmVkKHJlc3VsdClcIiAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQsIHJlc3VsdClcIiAvPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWNlbGxcIiAqbmdGb3I9XCJsZXQgY29sIG9mIHJlc3VsdFZpZXcuY29sdW1uczsgbGV0IGNvbEluZGV4ID0gaW5kZXhcIiBzY29wZT1cInJvd1wiPlxuXG4gICAgICAgICAgPGEgKm5nSWY9XCJjb2xJbmRleCA9PSAwXCIgW3JvdXRlckxpbmtdPVwicHJlcGFyZUNhc2VMaW5rVXJsKHJlc3VsdC5jYXNlX2lkKVwiXG4gICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJnbyB0byBjYXNlIHdpdGggQ2FzZSByZWZlcmVuY2U6e3sgcmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlIH19XCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwidGV4dC0xNlwiICpuZ0lmPVwiIWhpZGVSb3dzXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdJZj1cImRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpOyBlbHNlIGNhc2VfcmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJnZXRDb2x1bW5zV2l0aFByZWZpeChyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0sIHJlc3VsdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhc2VfcmVmZXJlbmNlPnt7cmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2xJbmRleCAhPSAwXCIgY2xhc3M9XCJ0ZXh0LTE2XCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIGNjZExhYmVsU3Vic3RpdHV0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIj5cbiAgICAgICAgICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJyZXN1bHQuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJJQ09OXCI+PC9jY2QtYWN0aXZpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48Y2NkLXBhZ2luYXRpb25cbiAgKm5nSWY9XCJoYXNSZXN1bHRzKClcIlxuICAocGFnZUNoYW5nZSk9XCJnb1RvUGFnZSgkZXZlbnQpXCJcbiAgW3Zpc2liaWxpdHlMYWJlbF09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCJcbiAgW2F1dG9IaWRlXT1cInRydWVcIlxuICBbbWF4U2l6ZV09XCI4XCJcbiAgW3NjcmVlblJlYWRlclBhZ2luYXRpb25MYWJlbF09XCInUGFnaW5hdGlvbidcIlxuICBbc2NyZWVuUmVhZGVyUGFnZUxhYmVsXT1cInBhZ2VcIlxuICBbc2NyZWVuUmVhZGVyQ3VycmVudExhYmVsXT1cIidZb3VcXCdyZSBvbiBwYWdlJ1wiPjwvY2NkLXBhZ2luYXRpb24+XG5cbjxkaXYgKm5nSWY9XCIhKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cIm5vdGlmaWNhdGlvblwiXG5bYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIidObyBjYXNlcyBmb3VuZC4gVHJ5IHVzaW5nIGRpZmZlcmVudCBmaWx0ZXJzLicgfCBycHhUcmFuc2xhdGVcIj5cbnt7J05vIGNhc2VzIGZvdW5kLiBUcnkgdXNpbmcgZGlmZmVyZW50IGZpbHRlcnMuJyB8IHJweFRyYW5zbGF0ZX19XG48L2Rpdj5cbiJdfQ==