nuxeo-development-framework 3.8.9 → 3.9.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 (276) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +961 -1111
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +4 -4
  4. package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +4 -4
  5. package/esm2015/lib/components/activities-log/activities-log.module.js +5 -5
  6. package/esm2015/lib/components/activity/activity/activity.component.js +4 -4
  7. package/esm2015/lib/components/activity/activity.module.js +5 -5
  8. package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +4 -4
  9. package/esm2015/lib/components/attachment-item/attachment-item.module.js +5 -5
  10. package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +5 -5
  11. package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +4 -4
  12. package/esm2015/lib/components/avatar/avatar/avatar.component.js +4 -4
  13. package/esm2015/lib/components/avatar/avatar.module.js +5 -5
  14. package/esm2015/lib/components/card/card.component.js +4 -4
  15. package/esm2015/lib/components/card/card.module.js +5 -5
  16. package/esm2015/lib/components/comments/comments.module.js +5 -5
  17. package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +4 -4
  18. package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +4 -4
  19. package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +4 -4
  20. package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +4 -4
  21. package/esm2015/lib/components/comments/services/comment-api.service.js +4 -4
  22. package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +4 -4
  23. package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +5 -5
  24. package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +4 -4
  25. package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +4 -4
  26. package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +5 -5
  27. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +4 -4
  28. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +4 -4
  29. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +4 -4
  30. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +4 -4
  31. package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +4 -4
  32. package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +5 -5
  33. package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +4 -4
  34. package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +4 -4
  35. package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +4 -4
  36. package/esm2015/lib/components/create-entity/create-entity.module.js +5 -5
  37. package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +4 -4
  38. package/esm2015/lib/components/cts-tags/cts-tags.module.js +5 -5
  39. package/esm2015/lib/components/cts-tags/services/tags-api.service.js +4 -4
  40. package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +4 -4
  41. package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +5 -5
  42. package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +4 -4
  43. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +4 -4
  44. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +4 -4
  45. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +5 -5
  46. package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +4 -4
  47. package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +4 -4
  48. package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +4 -4
  49. package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +4 -4
  50. package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +4 -4
  51. package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +4 -4
  52. package/esm2015/lib/components/documents/components/documents/documents.component.js +4 -4
  53. package/esm2015/lib/components/documents/documents.module.js +5 -5
  54. package/esm2015/lib/components/documents/services/document-templates.service.js +4 -4
  55. package/esm2015/lib/components/documents/services/documents.service.js +4 -4
  56. package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +4 -4
  57. package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +5 -5
  58. package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +4 -4
  59. package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +4 -4
  60. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +4 -4
  61. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +5 -5
  62. package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +4 -4
  63. package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +5 -5
  64. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +4 -4
  65. package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +4 -4
  66. package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +4 -4
  67. package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +4 -4
  68. package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +4 -4
  69. package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +4 -4
  70. package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +4 -4
  71. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +4 -4
  72. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +4 -4
  73. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +4 -4
  74. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +4 -4
  75. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +4 -4
  76. package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +4 -4
  77. package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +4 -4
  78. package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +4 -4
  79. package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +4 -4
  80. package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +4 -4
  81. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +4 -4
  82. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +4 -4
  83. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +16 -5
  84. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +4 -4
  85. package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +4 -4
  86. package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +4 -4
  87. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +4 -4
  88. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +4 -4
  89. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +4 -4
  90. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +4 -4
  91. package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +4 -4
  92. package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +4 -4
  93. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +4 -4
  94. package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +4 -4
  95. package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +4 -4
  96. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +4 -4
  97. package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +4 -4
  98. package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +5 -5
  99. package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +4 -4
  100. package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +4 -4
  101. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +9 -6
  102. package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +5 -5
  103. package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +4 -4
  104. package/esm2015/lib/components/dynamic-table/dynamic-table.module.js +5 -5
  105. package/esm2015/lib/components/dynamic-table/services/dynamic-table.service.js +4 -4
  106. package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +4 -4
  107. package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +5 -5
  108. package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +4 -4
  109. package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +4 -4
  110. package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +4 -4
  111. package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +4 -4
  112. package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +4 -4
  113. package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +4 -4
  114. package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +4 -4
  115. package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +4 -4
  116. package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +5 -5
  117. package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +4 -4
  118. package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +4 -4
  119. package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +4 -4
  120. package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +4 -4
  121. package/esm2015/lib/components/file-manger/components/copy/copy.component.js +4 -4
  122. package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +4 -4
  123. package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +4 -4
  124. package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +4 -4
  125. package/esm2015/lib/components/file-manger/components/delete/delete.component.js +4 -4
  126. package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +4 -4
  127. package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +4 -4
  128. package/esm2015/lib/components/file-manger/components/move/move.component.js +4 -4
  129. package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +4 -4
  130. package/esm2015/lib/components/file-manger/components/rename/rename.component.js +4 -4
  131. package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +4 -4
  132. package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +4 -4
  133. package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +4 -4
  134. package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +4 -4
  135. package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +4 -4
  136. package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +4 -4
  137. package/esm2015/lib/components/file-manger/directives/file-grid-infinite-scroll.directive.js +4 -4
  138. package/esm2015/lib/components/file-manger/file-manager.abstract.js +4 -4
  139. package/esm2015/lib/components/file-manger/file-manger.module.js +5 -5
  140. package/esm2015/lib/components/filter/filter/filter.component.js +4 -4
  141. package/esm2015/lib/components/filter/filter.module.js +5 -5
  142. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +4 -4
  143. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +4 -4
  144. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +4 -4
  145. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +4 -4
  146. package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +5 -5
  147. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +4 -4
  148. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +4 -4
  149. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +4 -4
  150. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +4 -4
  151. package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +10 -17
  152. package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +6 -4
  153. package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +8 -4
  154. package/esm2015/lib/components/latest-activity/latest-activity.module.js +5 -5
  155. package/esm2015/lib/components/latest-activity/services/activity-log.service.js +4 -4
  156. package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +4 -4
  157. package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +5 -5
  158. package/esm2015/lib/components/notifications/components/base-list-notfications.component.js +4 -4
  159. package/esm2015/lib/components/notifications/components/base-notifications.component.js +7 -7
  160. package/esm2015/lib/components/notifications/components/notification-item/get-icon.pipe.js +4 -4
  161. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +4 -4
  162. package/esm2015/lib/components/notifications/components/notification-source-select/notification-source-select.component.js +4 -4
  163. package/esm2015/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.js +4 -4
  164. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +4 -4
  165. package/esm2015/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.js +4 -4
  166. package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +4 -4
  167. package/esm2015/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.js +4 -4
  168. package/esm2015/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.js +4 -4
  169. package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.component.js +4 -4
  170. package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.js +4 -4
  171. package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.js +4 -4
  172. package/esm2015/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.js +4 -4
  173. package/esm2015/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.js +4 -4
  174. package/esm2015/lib/components/notifications/directives/button.directive.js +4 -4
  175. package/esm2015/lib/components/notifications/directives/notification.directive.js +4 -4
  176. package/esm2015/lib/components/notifications/notifications.module.js +5 -5
  177. package/esm2015/lib/components/notifications/services/listener.service.js +4 -4
  178. package/esm2015/lib/components/notifications/services/notifications.service.js +4 -4
  179. package/esm2015/lib/components/notifications/services/params.service.js +4 -4
  180. package/esm2015/lib/components/notifications/services/response.service.js +4 -4
  181. package/esm2015/lib/components/pagination/pagination/pagination.component.js +4 -4
  182. package/esm2015/lib/components/pagination/pagination.module.js +5 -5
  183. package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +5 -5
  184. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +4 -4
  185. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +4 -4
  186. package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +4 -4
  187. package/esm2015/lib/components/permissions/permission.service.js +4 -4
  188. package/esm2015/lib/components/permissions/permissions/permissions.component.js +4 -4
  189. package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +4 -4
  190. package/esm2015/lib/components/permissions/permissions.module.js +5 -5
  191. package/esm2015/lib/components/select/select/select.component.js +4 -4
  192. package/esm2015/lib/components/select/select.module.js +5 -5
  193. package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +5 -5
  194. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +4 -4
  195. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +4 -4
  196. package/esm2015/lib/components/table/dynamic-column/dynamic-column.component.js +4 -4
  197. package/esm2015/lib/components/table/table/table.component.js +4 -4
  198. package/esm2015/lib/components/table/table.module.js +5 -5
  199. package/esm2015/lib/components/toasts/components/notification-toast/notification-toast.component.js +4 -4
  200. package/esm2015/lib/components/toasts/toasts.module.js +5 -5
  201. package/esm2015/lib/components/user/user/user.component.js +4 -4
  202. package/esm2015/lib/components/user/user.module.js +5 -5
  203. package/esm2015/lib/components/users-card/users-card.component.js +4 -4
  204. package/esm2015/lib/components/users-card/users-card.module.js +5 -5
  205. package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +6 -4
  206. package/esm2015/lib/components/viewer-log/viewer-log.module.js +5 -5
  207. package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +4 -4
  208. package/esm2015/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.js +4 -4
  209. package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +4 -4
  210. package/esm2015/lib/components/vocabulary/vocabulary.module.js +5 -5
  211. package/esm2015/lib/configuration/app-config.service.js +4 -4
  212. package/esm2015/lib/core/adapters/adapter.service.js +4 -4
  213. package/esm2015/lib/core/core.module.js +5 -5
  214. package/esm2015/lib/core/services/callApi/call-api.service.js +4 -4
  215. package/esm2015/lib/core/services/extension/component-register.service.js +4 -4
  216. package/esm2015/lib/core/services/extension/extension-loader.service.js +4 -4
  217. package/esm2015/lib/core/services/extension/extension.service.js +4 -4
  218. package/esm2015/lib/core/services/initialization/initialization.service.js +4 -4
  219. package/esm2015/lib/core/services/localStorag/local-storag.service.js +4 -4
  220. package/esm2015/lib/core/services/nuxeo/nuxeo.service.js +4 -4
  221. package/esm2015/lib/core/services/roles/roles.service.js +4 -4
  222. package/esm2015/lib/core/services/translation/translate-loader.service.js +4 -4
  223. package/esm2015/lib/core/services/translation/translation.service.js +4 -4
  224. package/esm2015/lib/core/services/user/user-preferences.service.js +4 -4
  225. package/esm2015/lib/core/utilities/moment-date-adapter.js +4 -4
  226. package/esm2015/lib/core/utilities/utility.service.js +4 -4
  227. package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +4 -4
  228. package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +4 -4
  229. package/esm2015/lib/directive/directive.module.js +5 -5
  230. package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +4 -4
  231. package/esm2015/lib/directive/permissions/evaluators.service.js +4 -4
  232. package/esm2015/lib/directive/permissions/permissions.directive.js +4 -4
  233. package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +4 -4
  234. package/esm2015/lib/directive/rtl/set-rtl.directive.js +4 -4
  235. package/esm2015/lib/nuxeo-development-framework.component.js +4 -4
  236. package/esm2015/lib/nuxeo-development-framework.module.js +5 -5
  237. package/esm2015/lib/nuxeo-development-framework.service.js +4 -4
  238. package/esm2015/lib/pipes/file-size.pipe.js +4 -4
  239. package/esm2015/lib/pipes/hijri-date.pipe.js +4 -4
  240. package/esm2015/lib/pipes/localized-date.pipe.js +4 -4
  241. package/esm2015/lib/pipes/multi-value.pipe.js +4 -4
  242. package/esm2015/lib/pipes/pipes.module.js +5 -5
  243. package/esm2015/lib/pipes/secure-html.pipe.js +4 -4
  244. package/esm2015/lib/pipes/secure.pipe.js +4 -4
  245. package/esm2015/lib/pipes/time-ago.pipe.js +4 -4
  246. package/esm2015/lib/shared/components/button/button.component.js +4 -4
  247. package/esm2015/lib/shared/components/item-list/item-list.component.js +4 -4
  248. package/esm2015/lib/shared/components/no-data/no-data.component.js +4 -4
  249. package/esm2015/lib/shared/components/read-more/read-more.component.js +4 -4
  250. package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +4 -4
  251. package/esm2015/lib/shared/components/spinner/spinner.component.js +4 -4
  252. package/esm2015/lib/shared/components/user-card/user-card.component.js +4 -4
  253. package/esm2015/lib/shared/libraryShared.module.js +5 -5
  254. package/esm2015/lib/shared-services/dialog-mangment.service.js +4 -4
  255. package/esm2015/lib/shared-services/dynamic-form.service.js +4 -4
  256. package/esm2015/lib/shared-services/file-manager.adapter.js +4 -4
  257. package/esm2015/lib/shared-services/file-manager.service.js +4 -4
  258. package/esm2015/lib/shared-services/global-admin.service.js +4 -4
  259. package/esm2015/lib/shared-services/global-pdftron.service.js +4 -4
  260. package/esm2015/lib/shared-services/mainfolder.service.js +4 -4
  261. package/esm2015/lib/shared-services/publishing-document.service.js +4 -4
  262. package/esm2015/lib/shared-services/recently-viewed.service.js +4 -4
  263. package/esm2015/lib/shared-services/shared-docs.service.js +4 -4
  264. package/esm2015/lib/shared-services/shared-services.module.js +5 -5
  265. package/esm2015/lib/shared-services/upload-file.service.js +4 -4
  266. package/esm2015/lib/shared-services/upload-managment.service.js +4 -4
  267. package/esm2015/lib/shared-services/user.service.js +4 -4
  268. package/fesm2015/nuxeo-development-framework.js +872 -856
  269. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  270. package/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.d.ts +5 -1
  271. package/lib/components/dynamic-search/dynamic-search/dynamic-search.component.d.ts +2 -0
  272. package/lib/components/latest-activity/components/activity-line/activity-line.component.d.ts +5 -12
  273. package/lib/components/latest-activity/components/latest-activity/latest-activity.component.d.ts +2 -1
  274. package/lib/components/latest-activity/components/single-activity/single-activity.component.d.ts +3 -1
  275. package/lib/components/viewer-log/components/viewer-log/viewer-log.component.d.ts +2 -1
  276. package/package.json +1 -1
@@ -238,9 +238,9 @@ export class ClipboardComponent {
238
238
  console.log(this.documentSelectedInClipboard);
239
239
  }
240
240
  }
241
- ClipboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ClipboardComponent, deps: [{ token: i1.FileManagerService }, { token: i2.UserService }, { token: i3.CustomToastrService }, { token: i4.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Component });
242
- ClipboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ClipboardComponent, selector: "lib-clipboard", inputs: { clipboardItems: "clipboardItems", myCurrecntFolderData: "myCurrecntFolderData", preventedGroups: "preventedGroups", directory: "directory" }, outputs: { onClipboardClose: "onClipboardClose", onRefreshFolderTree: "onRefreshFolderTree" }, ngImport: i0, template: "<div class=\"clipboard-side-section relative\">\r\n\r\n <div class=\"p-3 h-full\">\r\n <div class=\"clipboard-header flex justify-between items-center border-b-2\">\r\n <span class=\"flex text-gray-500 font-bold items-center\">\r\n <span class=\"text-4xl bi bi-clipboard\"></span>\r\n <span class=\"mx-2 text-xl\">{{'clipboard' | translate}}</span>\r\n </span>\r\n <mat-icon class=\"close-icon text-gray-500 cursor-pointer\" (click)=\"closeClipboard()\"\r\n [matTooltip]=\"'BUTTONS.CLOSE' | translate\">close</mat-icon>\r\n </div>\r\n <!-- <div class=\"h-full font-bold d-flex justify-center items-center\" *ngIf=\"clipboardLoading\">\r\n {{ \"loading\" | translate }}\r\n </div> -->\r\n <div class=\"w-full h-px bg-gray-200 mb-3\" *ngIf=\"clipboardLoading\">\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n <div class=\"clipboard-content flex flex-col justify-between items-between\">\r\n <div class=\"h-full flex justify-center items-center text-gray-500\"\r\n *ngIf=\"clipboardDocments.length === 0\">{{'no_clipboard_items' | translate}}</div>\r\n\r\n <div class=\"px-2 h-5/6 overflow-y-auto\" *ngIf=\"clipboardDocments.length > 0\">\r\n <div class=\"border-b-2\" *ngFor=\"let document of clipboardDocments\">\r\n <div class=\"py-1 w-82 flex items-center justify-between\">\r\n <div class=\"flex items-center w-5/6\">\r\n <mat-checkbox [(ngModel)]=\"document.isSelected\" (change)=\"checking()\"> </mat-checkbox>\r\n <div class=\"flex w-full\">\r\n <!-- <title-with-icon class=\"w-1/6 -my-1.5\" [context]=\"document\"\r\n [showTitle]=\"false\"></title-with-icon> -->\r\n <app-display-suitable-icon class=\"mx-1\" [data]=\"document\" [size]=\"'40px'\"></app-display-suitable-icon>\r\n\r\n <!-- -->\r\n <div *ngIf=\"document.isFile === 'File'\"\r\n class=\"justify-center flex flex-col flex-1 flex-grow-0 w-5/6\">\r\n <div class=\"text-base text-gray-500 font-bold truncate\"\r\n [title]=\"document.properties?.['file:content']?.['name']\"\r\n [alt]=\"document.properties?.['file:content']?.['name']\">\r\n {{document['title']}}\r\n </div>\r\n <div class=\"text-gray-500 text-sm text-nowrap\">\r\n {{((document.properties?.['file:content']?.['length']) / (1024 *\r\n 1024)).toFixed(2) }}\r\n MB\r\n </div>\r\n </div>\r\n <div class=\"\r\n d-flex\r\n items-center\r\n text-base text-gray-500\r\n font-bold\r\n \" *ngIf=\"document.isFile === 'Folder'\">\r\n {{ document?.title }}\r\n </div>\r\n </div>\r\n </div>\r\n <span [matTooltip]=\"'BUTTONS.REMOVE_CLIPBOARD' | translate\"\r\n class=\"cursor-pointer w-5 h-5 rounded-full border-2 flex justify-center items-center border-gray-500 \"\r\n (click)=\"deletefromClipboard(document)\">\r\n <span class=\"text-gray-500 bi bi-x text-lg flex items-center\"></span>\r\n </span>\r\n </div>\r\n <div class=\"text-md text-gray-500 text-center my-2\">\r\n <span *ngIf=\"document.canCopyToTarget && !document.canMoveToTarget\">{{'can_copy_only' |\r\n translate}}</span>\r\n <span *ngIf=\"!document.canCopyToTarget && document.canMoveToTarget\">{{'can_move_only' |\r\n translate}}</span>\r\n <span *ngIf=\"document.canCopyToTarget && document.canMoveToTarget\">{{'can_copy_and_move' |\r\n translate}}</span>\r\n <span\r\n *ngIf=\"!document.canCopyToTarget && !document.canMoveToTarget\">{{'can_not_copy_and_move'\r\n | translate}}</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"h-1/6 flex w-full justify-center items-center\">\r\n <button class=\"submission-button mx-2\" [disabled]=\"!enableCopy\"\r\n (click)=\"copyFromInsideClipboard()\">{{'BUTTONS.COPY' | translate}}</button>\r\n <button class=\"submission-button mx-2\" [disabled]=\"!enableMove\"\r\n (click)=\"moveFromInsideClipboard()\">{{'BUTTONS.MOVE' | translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"bg-transparent absolute top-0 bottom-0 left-0 right-0 \" *ngIf=\"clipboardLoading\">\r\n\r\n </div>\r\n</div>", styles: [".clipboard-side-section{width:0px;overflow-x:hidden;height:91vh;background-color:#fff;overflow:hidden;border:1px solid lightgray;z-index:999;transition:.1s ease-in-out;border-bottom:none}.clipboard-side-section .clipboard-header{height:60px}.clipboard-side-section .clipboard-content{height:calc(100% - 60px)}\n"], components: [{ type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i8.DisplaySuitableIconComponent, selector: "app-display-suitable-icon", inputs: ["data", "size", "dataType", "archive"] }], directives: [{ type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i12.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
243
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ClipboardComponent, decorators: [{
241
+ ClipboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: ClipboardComponent, deps: [{ token: i1.FileManagerService }, { token: i2.UserService }, { token: i3.CustomToastrService }, { token: i4.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Component });
242
+ ClipboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: ClipboardComponent, selector: "lib-clipboard", inputs: { clipboardItems: "clipboardItems", myCurrecntFolderData: "myCurrecntFolderData", preventedGroups: "preventedGroups", directory: "directory" }, outputs: { onClipboardClose: "onClipboardClose", onRefreshFolderTree: "onRefreshFolderTree" }, ngImport: i0, template: "<div class=\"clipboard-side-section relative\">\r\n\r\n <div class=\"p-3 h-full\">\r\n <div class=\"clipboard-header flex justify-between items-center border-b-2\">\r\n <span class=\"flex text-gray-500 font-bold items-center\">\r\n <span class=\"text-4xl bi bi-clipboard\"></span>\r\n <span class=\"mx-2 text-xl\">{{'clipboard' | translate}}</span>\r\n </span>\r\n <mat-icon class=\"close-icon text-gray-500 cursor-pointer\" (click)=\"closeClipboard()\"\r\n [matTooltip]=\"'BUTTONS.CLOSE' | translate\">close</mat-icon>\r\n </div>\r\n <!-- <div class=\"h-full font-bold d-flex justify-center items-center\" *ngIf=\"clipboardLoading\">\r\n {{ \"loading\" | translate }}\r\n </div> -->\r\n <div class=\"w-full h-px bg-gray-200 mb-3\" *ngIf=\"clipboardLoading\">\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n <div class=\"clipboard-content flex flex-col justify-between items-between\">\r\n <div class=\"h-full flex justify-center items-center text-gray-500\"\r\n *ngIf=\"clipboardDocments.length === 0\">{{'no_clipboard_items' | translate}}</div>\r\n\r\n <div class=\"px-2 h-5/6 overflow-y-auto\" *ngIf=\"clipboardDocments.length > 0\">\r\n <div class=\"border-b-2\" *ngFor=\"let document of clipboardDocments\">\r\n <div class=\"py-1 w-82 flex items-center justify-between\">\r\n <div class=\"flex items-center w-5/6\">\r\n <mat-checkbox [(ngModel)]=\"document.isSelected\" (change)=\"checking()\"> </mat-checkbox>\r\n <div class=\"flex w-full\">\r\n <!-- <title-with-icon class=\"w-1/6 -my-1.5\" [context]=\"document\"\r\n [showTitle]=\"false\"></title-with-icon> -->\r\n <app-display-suitable-icon class=\"mx-1\" [data]=\"document\" [size]=\"'40px'\"></app-display-suitable-icon>\r\n\r\n <!-- -->\r\n <div *ngIf=\"document.isFile === 'File'\"\r\n class=\"justify-center flex flex-col flex-1 flex-grow-0 w-5/6\">\r\n <div class=\"text-base text-gray-500 font-bold truncate\"\r\n [title]=\"document.properties?.['file:content']?.['name']\"\r\n [alt]=\"document.properties?.['file:content']?.['name']\">\r\n {{document['title']}}\r\n </div>\r\n <div class=\"text-gray-500 text-sm text-nowrap\">\r\n {{((document.properties?.['file:content']?.['length']) / (1024 *\r\n 1024)).toFixed(2) }}\r\n MB\r\n </div>\r\n </div>\r\n <div class=\"\r\n d-flex\r\n items-center\r\n text-base text-gray-500\r\n font-bold\r\n \" *ngIf=\"document.isFile === 'Folder'\">\r\n {{ document?.title }}\r\n </div>\r\n </div>\r\n </div>\r\n <span [matTooltip]=\"'BUTTONS.REMOVE_CLIPBOARD' | translate\"\r\n class=\"cursor-pointer w-5 h-5 rounded-full border-2 flex justify-center items-center border-gray-500 \"\r\n (click)=\"deletefromClipboard(document)\">\r\n <span class=\"text-gray-500 bi bi-x text-lg flex items-center\"></span>\r\n </span>\r\n </div>\r\n <div class=\"text-md text-gray-500 text-center my-2\">\r\n <span *ngIf=\"document.canCopyToTarget && !document.canMoveToTarget\">{{'can_copy_only' |\r\n translate}}</span>\r\n <span *ngIf=\"!document.canCopyToTarget && document.canMoveToTarget\">{{'can_move_only' |\r\n translate}}</span>\r\n <span *ngIf=\"document.canCopyToTarget && document.canMoveToTarget\">{{'can_copy_and_move' |\r\n translate}}</span>\r\n <span\r\n *ngIf=\"!document.canCopyToTarget && !document.canMoveToTarget\">{{'can_not_copy_and_move'\r\n | translate}}</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"h-1/6 flex w-full justify-center items-center\">\r\n <button class=\"submission-button mx-2\" [disabled]=\"!enableCopy\"\r\n (click)=\"copyFromInsideClipboard()\">{{'BUTTONS.COPY' | translate}}</button>\r\n <button class=\"submission-button mx-2\" [disabled]=\"!enableMove\"\r\n (click)=\"moveFromInsideClipboard()\">{{'BUTTONS.MOVE' | translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"bg-transparent absolute top-0 bottom-0 left-0 right-0 \" *ngIf=\"clipboardLoading\">\r\n\r\n </div>\r\n</div>", styles: [".clipboard-side-section{width:0px;overflow-x:hidden;height:91vh;background-color:#fff;overflow:hidden;border:1px solid lightgray;z-index:999;transition:.1s ease-in-out;border-bottom:none}.clipboard-side-section .clipboard-header{height:60px}.clipboard-side-section .clipboard-content{height:calc(100% - 60px)}\n"], components: [{ type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i8.DisplaySuitableIconComponent, selector: "app-display-suitable-icon", inputs: ["data", "size", "dataType", "archive"] }], directives: [{ type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i12.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: ClipboardComponent, decorators: [{
244
244
  type: Component,
245
245
  args: [{
246
246
  selector: 'lib-clipboard',
@@ -261,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
261
261
  }], directory: [{
262
262
  type: Input
263
263
  }] } });
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jbGlwYm9hcmQvY2xpcGJvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jbGlwYm9hcmQvY2xpcGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQWE3RyxNQUFNLE9BQU8sa0JBQWtCO0lBaUI3QixZQUFvQixrQkFBc0MsRUFDaEQsV0FBd0IsRUFDeEIsbUJBQXdDLEVBQ3hDLHFCQUE2QztRQUhuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQWxCN0MscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFDLG1CQUFjLEdBQUcsRUFBRSxDQUFDLENBQUMsb0NBQW9DO1FBRXpELG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRzlCLHNCQUFpQixHQUFHLEVBQUUsQ0FBQyxDQUFDLDZEQUE2RDtRQUNyRixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxL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QUNuRyxrR0FBa0c7Z0JBQ2xHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7YUFDaEQ7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksSUFBSSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFBO1NBQ0g7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO0lBQy9DLENBQUM7O2dIQXhRVSxrQkFBa0I7b0dBQWxCLGtCQUFrQiw0U0NiL0IsK2dMQXVGTTs0RkQxRU8sa0JBQWtCO2tCQU45QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDekMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzBNQUdXLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBRUUsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWxlTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvZmlsZS1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21Ub2FzdHJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY3VzdG9tLXRvYXN0ci9zZXJ2aWNlcy9jdXN0b20tdG9hc3RyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy91c2VyL3VzZXItcHJlZmVyZW5jZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2xpcGJvYXJkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2xpcGJvYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jbGlwYm9hcmQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNsaXBib2FyZENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblJlZnJlc2hGb2xkZXJUcmVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSBjbGlwYm9hcmRJdGVtcyA9IFtdOyAvLyBhcnJheSBvZiBpZCB0byBpdGVtcyBpbiBjbGlwYm9hcmRcclxuICBASW5wdXQoKSBteUN1cnJlY250Rm9sZGVyRGF0YTtcclxuICBASW5wdXQoKSBwcmV2ZW50ZWRHcm91cHMgPSBbXTtcclxuICBASW5wdXQoKSBkaXJlY3Rvcnk7XHJcblxyXG4gIGNsaXBib2FyZERvY21lbnRzID0gW107IC8vIGFycmF5IG9mIGRvY3VtZW50cyB3aXRoIGZ1bGwgZGV0YWlscyBvZiBpdGVtcyBpbiBjbGlwYm9hcmRcclxuICBlbmFibGVDb3B5ID0gZmFsc2U7XHJcbiAgZW5hYmxlTW92ZSA9IGZhbHNlO1xyXG4gIGNsaXBib2FyZExvYWRpbmcgPSBmYWxzZTtcclxuICBkb2N1bWVudFNlbGVjdGVkSW5DbGlwYm9hcmQgPSBbXTtcclxuICBteVRhcmdldEZvbGRlckFjY2VwdGVkQ2hpbGRyZW5zO1xyXG4gIHJlZnJlc2hDbGlwU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaWxlTWFuYWdlclNlcnZpY2U6IEZpbGVNYW5hZ2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjdXN0b21Ub2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyUHJlZmVyZW5jZVNlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVmcmVzaENsaXBTdWJzY3JpcHRpb24gPSB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5vblJlZnJlc2hDbGlwYm9hcmQuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMub3BlbkNsaXBib2FyZCgpO1xyXG4gICAgfSlcclxuICAgIHRoaXMub3BlbkNsaXBib2FyZCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZnJlc2hDbGlwU3Vic2NyaXB0aW9uID8gdGhpcy5yZWZyZXNoQ2xpcFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogbnVsbDtcclxuICB9XHJcbiAgY2xvc2VDbGlwYm9hcmQoKSB7XHJcbiAgICB0aGlzLm9uQ2xpcGJvYXJkQ2xvc2UuZW1pdCgpO1xyXG4gICAgdGhpcy5jbGlwYm9hcmREb2NtZW50cyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNsaXBib2FyZCgpIHtcclxuICAgIHRoaXMuZW5hYmxlQ29weSA9IGZhbHNlO1xyXG4gICAgdGhpcy5lbmFibGVNb3ZlID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsaXBib2FyZExvYWRpbmcgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMubXlDdXJyZWNudEZvbGRlckRhdGEuZW50aXR5LnByb3BlcnRpZXNbJ2Rtc2ZvbGRlcjpkb2N1bWVudFR5cGVDb2RlJ10gJiYgdGhpcy5teUN1cnJlY250Rm9sZGVyRGF0YS5lbnRpdHkucHJvcGVydGllc1snZG1zZm9sZGVyOmRvY3VtZW50VHlwZUNvZGUnXSAhPT0gJzA4MTEyMDIxJykge1xyXG4gICAgICAvLyBnZXQgYWNjZXB0ZWQgY2hpbGRlcm5zIGZvciBteSBjdXJyZW50IGZvbGRlclxyXG4gICAgICAvLyBpZiAodGhpcy5zdWJ0eXBlc1NlcnZpY2Uuc3RvcmVkU3VidHlwZXNbdGhpcy5teUN1cnJlY250Rm9sZGVyRGF0YS5lbnRpdHkudWlkXSkge1xyXG4gICAgICAvLyAgICAgdGhpcy5teVRhcmdldEZvbGRlckFjY2VwdGVkQ2hpbGRyZW5zID0gdGhpcy5zdWJ0eXBlc1NlcnZpY2Uuc3RvcmVkU3VidHlwZXNbdGhpcy5teUN1cnJlY250Rm9sZGVyRGF0YS5lbnRpdHkudWlkXTtcclxuICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgdGhpcy5maWxlTWFuYWdlclNlcnZpY2UuZ2V0Q2xpcGJvYXJkQWNjZXB0ZWRUeXBlcyh0aGlzLm15Q3VycmVjbnRGb2xkZXJEYXRhLmVudGl0eS51aWQpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucyA9IHJlcztcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xpcGJvYXJkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2xpcGJvYXJkRG9jbWVudHMgPSBbXTtcclxuICAgICAgfSlcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5nZXRDbGlwYm9hcmREb2N1bWVudHModGhpcy5jbGlwYm9hcmRJdGVtcykuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgcmVzLm1hcChkb2N1bWVudCA9PiB7XHJcbiAgICAgICAgICBkb2N1bWVudFsnY2FuQ29weVRvVGFyZ2V0J10gPSAodGhpcy5jYW5QZXJmb3JtQWN0aW9uSW5zaWRlVGFyZ2V0KGRvY3VtZW50KSAmJiB0aGlzLmNoZWNrSWZOb3RUaGVTYW1lUGFyZW50KGRvY3VtZW50KSAmJiBkb2N1bWVudC5jYW5Db3B5KTtcclxuICAgICAgICAgIGRvY3VtZW50WydjYW5Nb3ZlVG9UYXJnZXQnXSA9ICh0aGlzLmNhblBlcmZvcm1BY3Rpb25JbnNpZGVUYXJnZXQoZG9jdW1lbnQpICYmIHRoaXMuY2hlY2tJZk5vdFRoZVNhbWVQYXJlbnQoZG9jdW1lbnQpICYmIGRvY3VtZW50LmNhbk1vdmUpXHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLmNsaXBib2FyZERvY21lbnRzID0gcmVzO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2xpcGJvYXJkRG9jbWVudHMpO1xyXG4gICAgICAgIHRoaXMuY2xpcGJvYXJkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jbGlwYm9hcmREb2NtZW50cyA9IFtdO1xyXG4gICAgICB0aGlzLmNsaXBib2FyZExvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHByZXZlbnQgY29weWluZyBvciBtb3ZpbmcgdGhlIGZpbGUgdG8gaXRzIHNhbWUgcGxhY2Ugc2luY2UgaXQgaXMgcHJldmVudGVkIFxyXG4gIC8vIHByZXZlbnQgY29weWluZyBvciBtb3ZpbmcgdGhlIGZvbGRlciBpbnNpZGUgaXQgc2VsZlxyXG4gIGNoZWNrSWZOb3RUaGVTYW1lUGFyZW50KGRvY3VtZW50KSB7XHJcbiAgICAvLyBsZXQgZGlyZWN0b3J5ID0gdGhpcy5nZXRDdXJyZW50RGlyZWN0b3J5KCk7XHJcbiAgICBpZiAoZG9jdW1lbnQucGFyZW50UmVmICE9PSB0aGlzLmRpcmVjdG9yeS5kYXRhSXRlbS5pZCAmJiBkb2N1bWVudC51aWQgIT09IHRoaXMuZGlyZWN0b3J5LmRhdGFJdGVtLmlkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGV0ZWZyb21DbGlwYm9hcmQoZG9jdW1lbnQpIHtcclxuICAgIGxldCBteWluZGV4ID0gLTE7XHJcbiAgICB0aGlzLmNsaXBib2FyZEl0ZW1zLm1hcCgoaWQsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChkb2N1bWVudC51aWQgPT09IGlkKSB7XHJcbiAgICAgICAgbXlpbmRleCA9IGluZGV4XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLmNsaXBib2FyZEl0ZW1zLnNwbGljZShteWluZGV4LCAxKTtcclxuICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5yZW1vdmVkX2Zyb21fY2xpcGJvYXJkXCIpO1xyXG4gICAgLy8gbGV0IGRpcmVjdG9yeSA9IHRoaXMuZ2V0Q3VycmVudERpcmVjdG9yeSgpO1xyXG4gICAgLy8gbGV0IGlkID1cclxuICAgIC8vICAgICBkaXJlY3RvcnkuZGF0YUl0ZW0gPT09IHVuZGVmaW5lZFxyXG4gICAgLy8gICAgICAgICA/IHRoaXMubWFpbkZvbGRlclxyXG4gICAgLy8gICAgICAgICA6IHRoaXMuZ2V0Q3VycmVudEZvbGRlcklkKGRpcmVjdG9yeSk7XHJcbiAgICAvLyB0aGlzLnJlaW5pdGlhbGl6ZUZvbGRlclRyZWUoaWQsIGRpcmVjdG9yeSk7XHJcbiAgICB0aGlzLm9uUmVmcmVzaEZvbGRlclRyZWUuZW1pdCgpO1xyXG4gICAgdGhpcy5vcGVuQ2xpcGJvYXJkKCk7XHJcbiAgICB0aGlzLnVzZXJQcmVmZXJlbmNlU2VydmljZS5zZXQoJ2NsaXBib2FyZEl0ZW1zJywgSlNPTi5zdHJpbmdpZnkodGhpcy5jbGlwYm9hcmRJdGVtcykpO1xyXG4gIH1cclxuXHJcbiAgLy8gZnVuY3Rpb24gdG8gY2hlY2sgaWYgaSBjYW4gcGVyZm9ybSBhY3Rpb24gb24gdGhhdCB0YXJnZXQgZm9sZGVyIG9yIG5vdCBcclxuICBjYW5QZXJmb3JtQWN0aW9uSW5zaWRlVGFyZ2V0KGRvY3VtZW50KSB7XHJcbiAgICAvL2NoZWNrIGlmIHRhcmdldCBpcyAnb3RoZXInIHR5cGUgZm9sZGVyIG9yIGRtcyBmb2xkZXJcclxuICAgIGlmICh0aGlzLm15Q3VycmVjbnRGb2xkZXJEYXRhLmVudGl0eS5wcm9wZXJ0aWVzWydkbXNmb2xkZXI6ZG9jdW1lbnRUeXBlQ29kZSddID09PSAnMDgxMTIwMjEnICYmICF0aGlzLmNoZWNrSWZJblByZXZlbnRlZEdyb3Vwcyh0aGlzLm15Q3VycmVjbnRGb2xkZXJEYXRhLmVudGl0eS5wYXRoKSkge1xyXG4gICAgICAvLyBpZiBteSBmb2xkZXIgaXMgZnJvbSB0eXBlIG90aGVycyBhbmQgbm90IGluIHByZXZlbnRlZCBncm91cHNcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH0gZWxzZSBpZiAodGhpcy5teUN1cnJlY250Rm9sZGVyRGF0YS5lbnRpdHkucHJvcGVydGllc1snZG1zZm9sZGVyOmRvY3VtZW50VHlwZUNvZGUnXSAmJiB0aGlzLm15Q3VycmVjbnRGb2xkZXJEYXRhLmVudGl0eS5wcm9wZXJ0aWVzWydkbXNmb2xkZXI6ZG9jdW1lbnRUeXBlQ29kZSddICE9PSAnMDgxMTIwMjEnKSB7XHJcbiAgICAgIC8vaWYgbXkgZm9sZGVyIGhhcyBjb2RlIGFuZCB3YXMgbm90IG90aGVyIHR5cGUgZm9sZGVyIHRoZW4gY2hlY2sgZm9yIGFjY2VwdGVkIGNoaWxyZHJuIGZvciB0aGF0IGZvbGRlciB0byBjb250YWluIHRoaXMgZmlsZSB0eXBlXHJcbiAgICAgIGlmIChkb2N1bWVudC5pc0ZpbGUgPT09ICdGaWxlJykge1xyXG4gICAgICAgIGlmICh0aGlzLm15VGFyZ2V0Rm9sZGVyQWNjZXB0ZWRDaGlsZHJlbnMuY29udGV4dFBhcmFtZXRlcnMgJiZcclxuICAgICAgICAgIHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycy5hY2NlcHRlZF9jaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycy5hY2NlcHRlZF9jaGlsZHJlbikgJiZcclxuICAgICAgICAgIHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycy5hY2NlcHRlZF9jaGlsZHJlbi5pbmRleE9mKGRvY3VtZW50LnByb3BlcnRpZXNbJ2dkb2M6ZG9jdW1lbnRUeXBlQ29kZSddKSA+IC0xKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLm15VGFyZ2V0Rm9sZGVyQWNjZXB0ZWRDaGlsZHJlbnMuY29udGV4dFBhcmFtZXRlcnMgJiZcclxuICAgICAgICAgIHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycy5hY2NlcHRlZF9jaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycy5hY2NlcHRlZF9jaGlsZHJlbikgJiZcclxuICAgICAgICAgIHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycz8uYWNjZXB0ZWRfY2hpbGRyZW4uaW5kZXhPZihkb2N1bWVudC5wcm9wZXJ0aWVzWydkbXNmb2xkZXI6ZG9jdW1lbnRUeXBlQ29kZSddKSA+IC0xKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBwcmV2ZW50IGFjdGlvbiB0byB0aGlzIHRhcmdldCBcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLy8gZnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhpcyBwYXRoIG5vdCBiZWxvbmcgdG8gZ3JvdXAgdGhhdCBpcyBwcmV2ZW50ZWQgZnJvbSBjcmVhdGluZyBmb2xkZXIgb2YgdHlwZSBvdGhlcnNcclxuICBjaGVja0lmSW5QcmV2ZW50ZWRHcm91cHMocGF0aCkge1xyXG4gICAgLy8gaWYgaW4gcHJldmVudGVkIGZyb3VwIHJ0dXJuIHRydWUgZWxzZSByZXR1cm4gZmFsc2VcclxuICAgIGNvbnNvbGUubG9nKHBhdGgpO1xyXG4gICAgbGV0IG15RGVwYXJ0bWVudCA9IHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlckRlcGFydG1lbnRGcm9tUGF0aChwYXRoKTtcclxuICAgIGxldCBleGlzdCA9IHRoaXMucHJldmVudGVkR3JvdXBzLmluZGV4T2YobXlEZXBhcnRtZW50KSA+IC0xID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgcmV0dXJuIGV4aXN0O1xyXG4gIH1cclxuXHJcbiAgY29weUZyb21JbnNpZGVDbGlwYm9hcmQoKSB7XHJcbiAgICBsZXQgY2xpcGJvYXJkU2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgbGV0IGNsaXBib2FyZFNlbGVjdGVkSXRlbXNMZW5ndGggPSAwO1xyXG4gICAgLy8gc2VwZXJhdGUgc2VsZWN0ZWQgaXRlbXMgaW4gc2VwZXJhdGUgYXJyYXkgXHJcbiAgICB0aGlzLmNsaXBib2FyZERvY21lbnRzLm1hcCgoZG9jLCBpbmRleCkgPT4ge1xyXG4gICAgICAvLyBjYW4ndCBjb3B5IGZpbGUgaW4gdGhlIHNhbWUgcGxhY2UgaXQgZXhpc3QgYW5kIGNhbid0IGNvcHkgZm9sZGVyIGluc2lkZSBpdCBzZWxmIFxyXG4gICAgICBpZiAoZG9jLmlzU2VsZWN0ZWQgJiYgZG9jLnBhcmVudFJlZiAhPT0gdGhpcy5kaXJlY3RvcnkuZGF0YUl0ZW0uaWQgJiYgZG9jLnVpZCAhPT0gdGhpcy5kaXJlY3RvcnkuZGF0YUl0ZW0uaWQpIHtcclxuICAgICAgICBjbGlwYm9hcmRTZWxlY3RlZEl0ZW1zLnB1c2goZG9jLnVpZClcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICBpZiAoY2xpcGJvYXJkU2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY2xpcGJvYXJkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIC8vICAgIHRoaXMuY3VycmVudFBhdGggPSAnJztcclxuICAgICAgdGhpcy5maWxlTWFuYWdlclNlcnZpY2VcclxuICAgICAgICAuY29weVRvKHsgaWQ6IHRoaXMuZGlyZWN0b3J5LmRhdGFJdGVtLmlkLCBuYW1lOiB0aGlzLmRpcmVjdG9yeS5kYXRhSXRlbS5uYW1lIH0sIGNsaXBib2FyZFNlbGVjdGVkSXRlbXMudG9TdHJpbmcoKSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAvLyByZW1vdmUgc2VsZWN0ZWQgaXRlbXMgZnJvbSBjbGlwYm9hcmQgYWZ0ZXIgYWN0aW9uIGlzIGRvbmVcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVJdGVtc0FmdGVyQWN0aW9uRG9uZShjbGlwYm9hcmRTZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgICAgICAgdGhpcy5jbGlwYm9hcmRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub25DbGlwYm9hcmRDbG9zZS5lbWl0KCk7XHJcbiAgICAgICAgICAgIHRoaXMub25SZWZyZXNoRm9sZGVyVHJlZS5lbWl0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgICAgICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAnVE9BU1RFUi5TVUNDRVNTJyxcclxuICAgICAgICAgICAgICAnVE9BU1RFUi5ET0NVTUVOVF9DT1BJRUQnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfQ09QSUVEX0VSUk9SJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICdUT0FTVEVSLkVSUk9SJyxcclxuICAgICAgICAnVE9BU1RFUi5ET0NVTUVOVF9DT1BJRURfREVTVElOQVRJT05fRVJST1InXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbW92ZUZyb21JbnNpZGVDbGlwYm9hcmQoKSB7XHJcbiAgICBsZXQgY2xpcGJvYXJkU2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgbGV0IGNsaXBib2FyZFNlbGVjdGVkSXRlbXNMZW5ndGggPSAwO1xyXG4gICAgLy8gc2VwZXJhdGUgc2VsZWN0ZWQgaXRlbXMgaW4gc2VwZXJhdGUgYXJyYXkgXHJcbiAgICB0aGlzLmNsaXBib2FyZERvY21lbnRzLm1hcCgoZG9jLCBpbmRleCkgPT4ge1xyXG4gICAgICAvLyBjYW4ndCBtb3ZlIGZpbGUgaW4gdGhlIHNhbWUgcGxhY2UgaXQgZXhpc3QgYW5kIGNhbid0IG1vdmUgZm9sZGVyIGluc2lkZSBpdCBzZWxmIFxyXG4gICAgICBpZiAoZG9jLmlzU2VsZWN0ZWQgJiYgZG9jLnBhcmVudFJlZiAhPT0gdGhpcy5kaXJlY3RvcnkuZGF0YUl0ZW0uaWQgJiYgZG9jLnVpZCAhPT0gdGhpcy5kaXJlY3RvcnkuZGF0YUl0ZW0uaWQpIHtcclxuICAgICAgICBjbGlwYm9hcmRTZWxlY3RlZEl0ZW1zLnB1c2goZG9jLnVpZClcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICBpZiAoY2xpcGJvYXJkU2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY2xpcGJvYXJkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlXHJcbiAgICAgICAgLm1vdmVUbyh7IGlkOiB0aGlzLmRpcmVjdG9yeS5kYXRhSXRlbS5pZCwgbmFtZTogdGhpcy5kaXJlY3RvcnkuZGF0YUl0ZW0ubmFtZSB9LCBjbGlwYm9hcmRTZWxlY3RlZEl0ZW1zLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgLy8gcmVtb3ZlIHNlbGVjdGVkIGl0ZW1zIGZyb20gY2xpcGJvYXJkIGFmdGVyIGFjdGlvbiBpcyBkb25lXHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlSXRlbXNBZnRlckFjdGlvbkRvbmUoY2xpcGJvYXJkU2VsZWN0ZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpcGJvYXJkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2xpcGJvYXJkQ2xvc2UuZW1pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLm9uUmVmcmVzaEZvbGRlclRyZWUuZW1pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAgICAgICAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgICAgJ1RPQVNURVIuU1VDQ0VTUycsXHJcbiAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfTU9WRUQnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfTU9WRURfRVJST1InXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZVxyXG4gICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICdUT0FTVEVSLkVSUk9SJyxcclxuICAgICAgICAnVE9BU1RFUi5ET0NVTUVOVF9NT1ZFRF9ERVNUSU5BVElPTl9FUlJPUidcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUl0ZW1zQWZ0ZXJBY3Rpb25Eb25lKHNlbGVjdGVkSXRlbXMpIHtcclxuICAgIHRoaXMuY2xpcGJvYXJkSXRlbXMgPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmZpbHRlcihmdW5jdGlvbiAoZWwpIHtcclxuICAgICAgcmV0dXJuICFzZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKGVsKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2Uuc2V0KCdjbGlwYm9hcmRJdGVtcycsIEpTT04uc3RyaW5naWZ5KHRoaXMuY2xpcGJvYXJkSXRlbXMpKTtcclxuICB9XHJcblxyXG4gIGNoZWNraW5nKCkge1xyXG4gICAgdGhpcy5lbmFibGVDb3B5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmVuYWJsZU1vdmUgPSBmYWxzZTtcclxuICAgIHRoaXMuZG9jdW1lbnRTZWxlY3RlZEluQ2xpcGJvYXJkID0gW107XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNsaXBib2FyZERvY21lbnRzKTtcclxuICAgIHRoaXMuY2xpcGJvYXJkRG9jbWVudHMubWFwKGRvY3VtZW50ID0+IHtcclxuICAgICAgLy8gd29rcmluZyB3aXRoIG9ubHkgc2VsZWN0ZWQgZG9jdW1lbnRzIFxyXG4gICAgICBpZiAoZG9jdW1lbnQuaXNTZWxlY3RlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIC8vIGRvY3VtZW50WydjYW5Db3B5VG9UYXJnZXQnXSA9ICh0aGlzLmNhblBlcmZvcm1BY3Rpb25JbnNpZGVUYXJnZXQoZG9jdW1lbnQpICYmIGRvY3VtZW50LmNhbkNvcHkpO1xyXG4gICAgICAgIC8vIGRvY3VtZW50WydjYW5Nb3ZlVG9UYXJnZXQnXSA9ICh0aGlzLmNhblBlcmZvcm1BY3Rpb25JbnNpZGVUYXJnZXQoZG9jdW1lbnQpICYmIGRvY3VtZW50LmNhbk1vdmUpXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlbGVjdGVkSW5DbGlwYm9hcmQucHVzaChkb2N1bWVudClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIGlmICh0aGlzLmRvY3VtZW50U2VsZWN0ZWRJbkNsaXBib2FyZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZW5hYmxlQ29weSA9IHRoaXMuZG9jdW1lbnRTZWxlY3RlZEluQ2xpcGJvYXJkLmV2ZXJ5KGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmNhbkNvcHlUb1RhcmdldCA9PT0gdHJ1ZTtcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5lbmFibGVNb3ZlID0gdGhpcy5kb2N1bWVudFNlbGVjdGVkSW5DbGlwYm9hcmQuZXZlcnkoaXRlbSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uY2FuTW92ZVRvVGFyZ2V0ID09PSB0cnVlO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2codGhpcy5kb2N1bWVudFNlbGVjdGVkSW5DbGlwYm9hcmQpXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjbGlwYm9hcmQtc2lkZS1zZWN0aW9uIHJlbGF0aXZlXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInAtMyBoLWZ1bGxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xpcGJvYXJkLWhlYWRlciBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgYm9yZGVyLWItMlwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXggdGV4dC1ncmF5LTUwMCBmb250LWJvbGQgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtNHhsIGJpIGJpLWNsaXBib2FyZFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMiB0ZXh0LXhsXCI+e3snY2xpcGJvYXJkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNsb3NlLWljb24gdGV4dC1ncmF5LTUwMCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZUNsaXBib2FyZCgpXCJcclxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidCVVRUT05TLkNMT1NFJyB8IHRyYW5zbGF0ZVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJoLWZ1bGwgZm9udC1ib2xkIGQtZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIiAqbmdJZj1cImNsaXBib2FyZExvYWRpbmdcIj5cclxuICAgICAgICAgICAge3sgXCJsb2FkaW5nXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBoLXB4IGJnLWdyYXktMjAwIG1iLTNcIiAqbmdJZj1cImNsaXBib2FyZExvYWRpbmdcIj5cclxuICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsaXBib2FyZC1jb250ZW50IGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWJldHdlZW5cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbCBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciB0ZXh0LWdyYXktNTAwXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2xpcGJvYXJkRG9jbWVudHMubGVuZ3RoID09PSAwXCI+e3snbm9fY2xpcGJvYXJkX2l0ZW1zJyB8IHRyYW5zbGF0ZX19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMiBoLTUvNiBvdmVyZmxvdy15LWF1dG9cIiAqbmdJZj1cImNsaXBib2FyZERvY21lbnRzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItYi0yXCIgKm5nRm9yPVwibGV0IGRvY3VtZW50IG9mIGNsaXBib2FyZERvY21lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTEgdy04MiBmbGV4ICBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB3LTUvNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBbKG5nTW9kZWwpXT1cImRvY3VtZW50LmlzU2VsZWN0ZWRcIiAoY2hhbmdlKT1cImNoZWNraW5nKClcIj4gPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx0aXRsZS13aXRoLWljb24gY2xhc3M9XCJ3LTEvNiAtbXktMS41XCIgW2NvbnRleHRdPVwiZG9jdW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1RpdGxlXT1cImZhbHNlXCI+PC90aXRsZS13aXRoLWljb24+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1kaXNwbGF5LXN1aXRhYmxlLWljb24gY2xhc3M9XCJteC0xXCIgW2RhdGFdPVwiZG9jdW1lbnRcIiBbc2l6ZV09XCInNDBweCdcIj48L2FwcC1kaXNwbGF5LXN1aXRhYmxlLWljb24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkb2N1bWVudC5pc0ZpbGUgPT09ICdGaWxlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwianVzdGlmeS1jZW50ZXIgZmxleCBmbGV4LWNvbCBmbGV4LTEgZmxleC1ncm93LTAgdy01LzZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSB0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0cnVuY2F0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZG9jdW1lbnQucHJvcGVydGllcz8uWydmaWxlOmNvbnRlbnQnXT8uWyduYW1lJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJkb2N1bWVudC5wcm9wZXJ0aWVzPy5bJ2ZpbGU6Y29udGVudCddPy5bJ25hbWUnXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkb2N1bWVudFsndGl0bGUnXX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCB0ZXh0LXNtIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eygoZG9jdW1lbnQucHJvcGVydGllcz8uWydmaWxlOmNvbnRlbnQnXT8uWydsZW5ndGgnXSkgLyAoMTAyNCAqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDI0KSkudG9GaXhlZCgyKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC1mbGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy1jZW50ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYmFzZSB0ZXh0LWdyYXktNTAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWJvbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgKm5nSWY9XCJkb2N1bWVudC5pc0ZpbGUgPT09ICdGb2xkZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRvY3VtZW50Py50aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbbWF0VG9vbHRpcF09XCInQlVUVE9OUy5SRU1PVkVfQ0xJUEJPQVJEJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHctNSBoLTUgcm91bmRlZC1mdWxsIGJvcmRlci0yIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGJvcmRlci1ncmF5LTUwMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZWZyb21DbGlwYm9hcmQoZG9jdW1lbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS01MDAgYmkgYmkteCB0ZXh0LWxnIGZsZXggaXRlbXMtY2VudGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgdGV4dC1ncmF5LTUwMCB0ZXh0LWNlbnRlciBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZG9jdW1lbnQuY2FuQ29weVRvVGFyZ2V0ICYmICFkb2N1bWVudC5jYW5Nb3ZlVG9UYXJnZXRcIj57eydjYW5fY29weV9vbmx5JyB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZG9jdW1lbnQuY2FuQ29weVRvVGFyZ2V0ICYmIGRvY3VtZW50LmNhbk1vdmVUb1RhcmdldFwiPnt7J2Nhbl9tb3ZlX29ubHknIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRvY3VtZW50LmNhbkNvcHlUb1RhcmdldCAmJiBkb2N1bWVudC5jYW5Nb3ZlVG9UYXJnZXRcIj57eydjYW5fY29weV9hbmRfbW92ZScgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkb2N1bWVudC5jYW5Db3B5VG9UYXJnZXQgJiYgIWRvY3VtZW50LmNhbk1vdmVUb1RhcmdldFwiPnt7J2Nhbl9ub3RfY29weV9hbmRfbW92ZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xLzYgZmxleCB3LWZ1bGwganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWlzc2lvbi1idXR0b24gbXgtMlwiIFtkaXNhYmxlZF09XCIhZW5hYmxlQ29weVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlGcm9tSW5zaWRlQ2xpcGJvYXJkKClcIj57eydCVVRUT05TLkNPUFknIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXNzaW9uLWJ1dHRvbiBteC0yXCIgW2Rpc2FibGVkXT1cIiFlbmFibGVNb3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW92ZUZyb21JbnNpZGVDbGlwYm9hcmQoKVwiPnt7J0JVVFRPTlMuTU9WRScgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJiZy10cmFuc3BhcmVudCBhYnNvbHV0ZSB0b3AtMCBib3R0b20tMCBsZWZ0LTAgcmlnaHQtMCBcIiAqbmdJZj1cImNsaXBib2FyZExvYWRpbmdcIj5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jbGlwYm9hcmQvY2xpcGJvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jbGlwYm9hcmQvY2xpcGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQWE3RyxNQUFNLE9BQU8sa0JBQWtCO0lBaUI3QixZQUFvQixrQkFBc0MsRUFDaEQsV0FBd0IsRUFDeEIsbUJBQXdDLEVBQ3hDLHFCQUE2QztRQUhuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQWxCN0MscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFDLG1CQUFjLEdBQUcsRUFBRSxDQUFDLENBQUMsb0NBQW9DO1FBRXpELG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRzlCLHNCQUFpQixHQUFHLEVBQUUsQ0FBQyxDQUFDLDZEQUE2RDtRQUNyRixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxL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QUNuRyxrR0FBa0c7Z0JBQ2xHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7YUFDaEQ7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksSUFBSSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFBO1NBQ0g7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO0lBQy9DLENBQUM7OytHQXhRVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw0U0NiL0IsK2dMQXVGTTsyRkQxRU8sa0JBQWtCO2tCQU45QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDekMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzBNQUdXLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBRUUsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWxlTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvZmlsZS1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21Ub2FzdHJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY3VzdG9tLXRvYXN0ci9zZXJ2aWNlcy9jdXN0b20tdG9hc3RyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy91c2VyL3VzZXItcHJlZmVyZW5jZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2xpcGJvYXJkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2xpcGJvYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jbGlwYm9hcmQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNsaXBib2FyZENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblJlZnJlc2hGb2xkZXJUcmVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSBjbGlwYm9hcmRJdGVtcyA9IFtdOyAvLyBhcnJheSBvZiBpZCB0byBpdGVtcyBpbiBjbGlwYm9hcmRcclxuICBASW5wdXQoKSBteUN1cnJlY250Rm9sZGVyRGF0YTtcclxuICBASW5wdXQoKSBwcmV2ZW50ZWRHcm91cHMgPSBbXTtcclxuICBASW5wdXQoKSBkaXJlY3Rvcnk7XHJcblxyXG4gIGNsaXBib2FyZERvY21lbnRzID0gW107IC8vIGFycmF5IG9mIGRvY3VtZW50cyB3aXRoIGZ1bGwgZGV0YWlscyBvZiBpdGVtcyBpbiBjbGlwYm9hcmRcclxuICBlbmFibGVDb3B5ID0gZmFsc2U7XHJcbiAgZW5hYmxlTW92ZSA9IGZhbHNlO1xyXG4gIGNsaXBib2FyZExvYWRpbmcgPSBmYWxzZTtcclxuICBkb2N1bWVudFNlbGVjdGVkSW5DbGlwYm9hcmQgPSBbXTtcclxuICBteVRhcmdldEZvbGRlckFjY2VwdGVkQ2hpbGRyZW5zO1xyXG4gIHJlZnJlc2hDbGlwU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaWxlTWFuYWdlclNlcnZpY2U6IEZpbGVNYW5hZ2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjdXN0b21Ub2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyUHJlZmVyZW5jZVNlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVmcmVzaENsaXBTdWJzY3JpcHRpb24gPSB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5vblJlZnJlc2hDbGlwYm9hcmQuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMub3BlbkNsaXBib2FyZCgpO1xyXG4gICAgfSlcclxuICAgIHRoaXMub3BlbkNsaXBib2FyZCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZnJlc2hDbGlwU3Vic2NyaXB0aW9uID8gdGhpcy5yZWZyZXNoQ2xpcFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogbnVsbDtcclxuICB9XHJcbiAgY2xvc2VDbGlwYm9hcmQoKSB7XHJcbiAgICB0aGlzLm9uQ2xpcGJvYXJkQ2xvc2UuZW1pdCgpO1xyXG4gICAgdGhpcy5jbGlwYm9hcmREb2NtZW50cyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNsaXBib2FyZCgpIHtcclxuICAgIHRoaXMuZW5hYmxlQ29weSA9IGZhbHNlO1xyXG4gICAgdGhpcy5lbmFibGVNb3ZlID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsaXBib2FyZExvYWRpbmcgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMubXlDdXJyZWNudEZvbGRlckRhdGEuZW50aXR5LnByb3BlcnRpZXNbJ2Rtc2ZvbGRlcjpkb2N1bWVudFR5cGVDb2RlJ10gJiYgdGhpcy5teUN1cnJlY250Rm9sZGVyRGF0YS5lbnRpdHkucHJvcGVydGllc1snZG1zZm9sZGVyOmRvY3VtZW50VHlwZUNvZGUnXSAhPT0gJzA4MTEyMDIxJykge1xyXG4gICAgICAvLyBnZXQgYWNjZXB0ZWQgY2hpbGRlcm5zIGZvciBteSBjdXJyZW50IGZvbGRlclxyXG4gICAgICAvLyBpZiAodGhpcy5zdWJ0eXBlc1NlcnZpY2Uuc3RvcmVkU3VidHlwZXNbdGhpcy5teUN1cnJlY250Rm9sZGVyRGF0YS5lbnRpdHkudWlkXSkge1xyXG4gICAgICAvLyAgICAgdGhpcy5teVRhcmdldEZvbGRlckFjY2VwdGVkQ2hpbGRyZW5zID0gdGhpcy5zdWJ0eXBlc1NlcnZpY2Uuc3RvcmVkU3VidHlwZXNbdGhpcy5teUN1cnJlY250Rm9sZGVyRGF0YS5lbnRpdHkudWlkXTtcclxuICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgdGhpcy5maWxlTWFuYWdlclNlcnZpY2UuZ2V0Q2xpcGJvYXJkQWNjZXB0ZWRUeXBlcyh0aGlzLm15Q3VycmVjbnRGb2xkZXJEYXRhLmVudGl0eS51aWQpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucyA9IHJlcztcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xpcGJvYXJkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2xpcGJvYXJkRG9jbWVudHMgPSBbXTtcclxuICAgICAgfSlcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY2xpcGJvYXJkSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5nZXRDbGlwYm9hcmREb2N1bWVudHModGhpcy5jbGlwYm9hcmRJdGVtcykuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgcmVzLm1hcChkb2N1bWVudCA9PiB7XHJcbiAgICAgICAgICBkb2N1bWVudFsnY2FuQ29weVRvVGFyZ2V0J10gPSAodGhpcy5jYW5QZXJmb3JtQWN0aW9uSW5zaWRlVGFyZ2V0KGRvY3VtZW50KSAmJiB0aGlzLmNoZWNrSWZOb3RUaGVTYW1lUGFyZW50KGRvY3VtZW50KSAmJiBkb2N1bWVudC5jYW5Db3B5KTtcclxuICAgICAgICAgIGRvY3VtZW50WydjYW5Nb3ZlVG9UYXJnZXQnXSA9ICh0aGlzLmNhblBlcmZvcm1BY3Rpb25JbnNpZGVUYXJnZXQoZG9jdW1lbnQpICYmIHRoaXMuY2hlY2tJZk5vdFRoZVNhbWVQYXJlbnQoZG9jdW1lbnQpICYmIGRvY3VtZW50LmNhbk1vdmUpXHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLmNsaXBib2FyZERvY21lbnRzID0gcmVzO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2xpcGJvYXJkRG9jbWVudHMpO1xyXG4gICAgICAgIHRoaXMuY2xpcGJvYXJkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jbGlwYm9hcmREb2NtZW50cyA9IFtdO1xyXG4gICAgICB0aGlzLmNsaXBib2FyZExvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHByZXZlbnQgY29weWluZyBvciBtb3ZpbmcgdGhlIGZpbGUgdG8gaXRzIHNhbWUgcGxhY2Ugc2luY2UgaXQgaXMgcHJldmVudGVkIFxyXG4gIC8vIHByZXZlbnQgY29weWluZyBvciBtb3ZpbmcgdGhlIGZvbGRlciBpbnNpZGUgaXQgc2VsZlxyXG4gIGNoZWNrSWZOb3RUaGVTYW1lUGFyZW50KGRvY3VtZW50KSB7XHJcbiAgICAvLyBsZXQgZGlyZWN0b3J5ID0gdGhpcy5nZXRDdXJyZW50RGlyZWN0b3J5KCk7XHJcbiAgICBpZiAoZG9jdW1lbnQucGFyZW50UmVmICE9PSB0aGlzLmRpcmVjdG9yeS5kYXRhSXRlbS5pZCAmJiBkb2N1bWVudC51aWQgIT09IHRoaXMuZGlyZWN0b3J5LmRhdGFJdGVtLmlkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGV0ZWZyb21DbGlwYm9hcmQoZG9jdW1lbnQpIHtcclxuICAgIGxldCBteWluZGV4ID0gLTE7XHJcbiAgICB0aGlzLmNsaXBib2FyZEl0ZW1zLm1hcCgoaWQsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChkb2N1bWVudC51aWQgPT09IGlkKSB7XHJcbiAgICAgICAgbXlpbmRleCA9IGluZGV4XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLmNsaXBib2FyZEl0ZW1zLnNwbGljZShteWluZGV4LCAxKTtcclxuICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5yZW1vdmVkX2Zyb21fY2xpcGJvYXJkXCIpO1xyXG4gICAgLy8gbGV0IGRpcmVjdG9yeSA9IHRoaXMuZ2V0Q3VycmVudERpcmVjdG9yeSgpO1xyXG4gICAgLy8gbGV0IGlkID1cclxuICAgIC8vICAgICBkaXJlY3RvcnkuZGF0YUl0ZW0gPT09IHVuZGVmaW5lZFxyXG4gICAgLy8gICAgICAgICA/IHRoaXMubWFpbkZvbGRlclxyXG4gICAgLy8gICAgICAgICA6IHRoaXMuZ2V0Q3VycmVudEZvbGRlcklkKGRpcmVjdG9yeSk7XHJcbiAgICAvLyB0aGlzLnJlaW5pdGlhbGl6ZUZvbGRlclRyZWUoaWQsIGRpcmVjdG9yeSk7XHJcbiAgICB0aGlzLm9uUmVmcmVzaEZvbGRlclRyZWUuZW1pdCgpO1xyXG4gICAgdGhpcy5vcGVuQ2xpcGJvYXJkKCk7XHJcbiAgICB0aGlzLnVzZXJQcmVmZXJlbmNlU2VydmljZS5zZXQoJ2NsaXBib2FyZEl0ZW1zJywgSlNPTi5zdHJpbmdpZnkodGhpcy5jbGlwYm9hcmRJdGVtcykpO1xyXG4gIH1cclxuXHJcbiAgLy8gZnVuY3Rpb24gdG8gY2hlY2sgaWYgaSBjYW4gcGVyZm9ybSBhY3Rpb24gb24gdGhhdCB0YXJnZXQgZm9sZGVyIG9yIG5vdCBcclxuICBjYW5QZXJmb3JtQWN0aW9uSW5zaWRlVGFyZ2V0KGRvY3VtZW50KSB7XHJcbiAgICAvL2NoZWNrIGlmIHRhcmdldCBpcyAnb3RoZXInIHR5cGUgZm9sZGVyIG9yIGRtcyBmb2xkZXJcclxuICAgIGlmICh0aGlzLm15Q3VycmVjbnRGb2xkZXJEYXRhLmVudGl0eS5wcm9wZXJ0aWVzWydkbXNmb2xkZXI6ZG9jdW1lbnRUeXBlQ29kZSddID09PSAnMDgxMTIwMjEnICYmICF0aGlzLmNoZWNrSWZJblByZXZlbnRlZEdyb3Vwcyh0aGlzLm15Q3VycmVjbnRGb2xkZXJEYXRhLmVudGl0eS5wYXRoKSkge1xyXG4gICAgICAvLyBpZiBteSBmb2xkZXIgaXMgZnJvbSB0eXBlIG90aGVycyBhbmQgbm90IGluIHByZXZlbnRlZCBncm91cHNcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH0gZWxzZSBpZiAodGhpcy5teUN1cnJlY250Rm9sZGVyRGF0YS5lbnRpdHkucHJvcGVydGllc1snZG1zZm9sZGVyOmRvY3VtZW50VHlwZUNvZGUnXSAmJiB0aGlzLm15Q3VycmVjbnRGb2xkZXJEYXRhLmVudGl0eS5wcm9wZXJ0aWVzWydkbXNmb2xkZXI6ZG9jdW1lbnRUeXBlQ29kZSddICE9PSAnMDgxMTIwMjEnKSB7XHJcbiAgICAgIC8vaWYgbXkgZm9sZGVyIGhhcyBjb2RlIGFuZCB3YXMgbm90IG90aGVyIHR5cGUgZm9sZGVyIHRoZW4gY2hlY2sgZm9yIGFjY2VwdGVkIGNoaWxyZHJuIGZvciB0aGF0IGZvbGRlciB0byBjb250YWluIHRoaXMgZmlsZSB0eXBlXHJcbiAgICAgIGlmIChkb2N1bWVudC5pc0ZpbGUgPT09ICdGaWxlJykge1xyXG4gICAgICAgIGlmICh0aGlzLm15VGFyZ2V0Rm9sZGVyQWNjZXB0ZWRDaGlsZHJlbnMuY29udGV4dFBhcmFtZXRlcnMgJiZcclxuICAgICAgICAgIHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycy5hY2NlcHRlZF9jaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycy5hY2NlcHRlZF9jaGlsZHJlbikgJiZcclxuICAgICAgICAgIHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycy5hY2NlcHRlZF9jaGlsZHJlbi5pbmRleE9mKGRvY3VtZW50LnByb3BlcnRpZXNbJ2dkb2M6ZG9jdW1lbnRUeXBlQ29kZSddKSA+IC0xKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLm15VGFyZ2V0Rm9sZGVyQWNjZXB0ZWRDaGlsZHJlbnMuY29udGV4dFBhcmFtZXRlcnMgJiZcclxuICAgICAgICAgIHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycy5hY2NlcHRlZF9jaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycy5hY2NlcHRlZF9jaGlsZHJlbikgJiZcclxuICAgICAgICAgIHRoaXMubXlUYXJnZXRGb2xkZXJBY2NlcHRlZENoaWxkcmVucy5jb250ZXh0UGFyYW1ldGVycz8uYWNjZXB0ZWRfY2hpbGRyZW4uaW5kZXhPZihkb2N1bWVudC5wcm9wZXJ0aWVzWydkbXNmb2xkZXI6ZG9jdW1lbnRUeXBlQ29kZSddKSA+IC0xKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBwcmV2ZW50IGFjdGlvbiB0byB0aGlzIHRhcmdldCBcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLy8gZnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhpcyBwYXRoIG5vdCBiZWxvbmcgdG8gZ3JvdXAgdGhhdCBpcyBwcmV2ZW50ZWQgZnJvbSBjcmVhdGluZyBmb2xkZXIgb2YgdHlwZSBvdGhlcnNcclxuICBjaGVja0lmSW5QcmV2ZW50ZWRHcm91cHMocGF0aCkge1xyXG4gICAgLy8gaWYgaW4gcHJldmVudGVkIGZyb3VwIHJ0dXJuIHRydWUgZWxzZSByZXR1cm4gZmFsc2VcclxuICAgIGNvbnNvbGUubG9nKHBhdGgpO1xyXG4gICAgbGV0IG15RGVwYXJ0bWVudCA9IHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlckRlcGFydG1lbnRGcm9tUGF0aChwYXRoKTtcclxuICAgIGxldCBleGlzdCA9IHRoaXMucHJldmVudGVkR3JvdXBzLmluZGV4T2YobXlEZXBhcnRtZW50KSA+IC0xID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgcmV0dXJuIGV4aXN0O1xyXG4gIH1cclxuXHJcbiAgY29weUZyb21JbnNpZGVDbGlwYm9hcmQoKSB7XHJcbiAgICBsZXQgY2xpcGJvYXJkU2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgbGV0IGNsaXBib2FyZFNlbGVjdGVkSXRlbXNMZW5ndGggPSAwO1xyXG4gICAgLy8gc2VwZXJhdGUgc2VsZWN0ZWQgaXRlbXMgaW4gc2VwZXJhdGUgYXJyYXkgXHJcbiAgICB0aGlzLmNsaXBib2FyZERvY21lbnRzLm1hcCgoZG9jLCBpbmRleCkgPT4ge1xyXG4gICAgICAvLyBjYW4ndCBjb3B5IGZpbGUgaW4gdGhlIHNhbWUgcGxhY2UgaXQgZXhpc3QgYW5kIGNhbid0IGNvcHkgZm9sZGVyIGluc2lkZSBpdCBzZWxmIFxyXG4gICAgICBpZiAoZG9jLmlzU2VsZWN0ZWQgJiYgZG9jLnBhcmVudFJlZiAhPT0gdGhpcy5kaXJlY3RvcnkuZGF0YUl0ZW0uaWQgJiYgZG9jLnVpZCAhPT0gdGhpcy5kaXJlY3RvcnkuZGF0YUl0ZW0uaWQpIHtcclxuICAgICAgICBjbGlwYm9hcmRTZWxlY3RlZEl0ZW1zLnB1c2goZG9jLnVpZClcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICBpZiAoY2xpcGJvYXJkU2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY2xpcGJvYXJkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIC8vICAgIHRoaXMuY3VycmVudFBhdGggPSAnJztcclxuICAgICAgdGhpcy5maWxlTWFuYWdlclNlcnZpY2VcclxuICAgICAgICAuY29weVRvKHsgaWQ6IHRoaXMuZGlyZWN0b3J5LmRhdGFJdGVtLmlkLCBuYW1lOiB0aGlzLmRpcmVjdG9yeS5kYXRhSXRlbS5uYW1lIH0sIGNsaXBib2FyZFNlbGVjdGVkSXRlbXMudG9TdHJpbmcoKSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAvLyByZW1vdmUgc2VsZWN0ZWQgaXRlbXMgZnJvbSBjbGlwYm9hcmQgYWZ0ZXIgYWN0aW9uIGlzIGRvbmVcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVJdGVtc0FmdGVyQWN0aW9uRG9uZShjbGlwYm9hcmRTZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgICAgICAgdGhpcy5jbGlwYm9hcmRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub25DbGlwYm9hcmRDbG9zZS5lbWl0KCk7XHJcbiAgICAgICAgICAgIHRoaXMub25SZWZyZXNoRm9sZGVyVHJlZS5lbWl0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgICAgICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAnVE9BU1RFUi5TVUNDRVNTJyxcclxuICAgICAgICAgICAgICAnVE9BU1RFUi5ET0NVTUVOVF9DT1BJRUQnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfQ09QSUVEX0VSUk9SJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICdUT0FTVEVSLkVSUk9SJyxcclxuICAgICAgICAnVE9BU1RFUi5ET0NVTUVOVF9DT1BJRURfREVTVElOQVRJT05fRVJST1InXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbW92ZUZyb21JbnNpZGVDbGlwYm9hcmQoKSB7XHJcbiAgICBsZXQgY2xpcGJvYXJkU2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgbGV0IGNsaXBib2FyZFNlbGVjdGVkSXRlbXNMZW5ndGggPSAwO1xyXG4gICAgLy8gc2VwZXJhdGUgc2VsZWN0ZWQgaXRlbXMgaW4gc2VwZXJhdGUgYXJyYXkgXHJcbiAgICB0aGlzLmNsaXBib2FyZERvY21lbnRzLm1hcCgoZG9jLCBpbmRleCkgPT4ge1xyXG4gICAgICAvLyBjYW4ndCBtb3ZlIGZpbGUgaW4gdGhlIHNhbWUgcGxhY2UgaXQgZXhpc3QgYW5kIGNhbid0IG1vdmUgZm9sZGVyIGluc2lkZSBpdCBzZWxmIFxyXG4gICAgICBpZiAoZG9jLmlzU2VsZWN0ZWQgJiYgZG9jLnBhcmVudFJlZiAhPT0gdGhpcy5kaXJlY3RvcnkuZGF0YUl0ZW0uaWQgJiYgZG9jLnVpZCAhPT0gdGhpcy5kaXJlY3RvcnkuZGF0YUl0ZW0uaWQpIHtcclxuICAgICAgICBjbGlwYm9hcmRTZWxlY3RlZEl0ZW1zLnB1c2goZG9jLnVpZClcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICBpZiAoY2xpcGJvYXJkU2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY2xpcGJvYXJkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlXHJcbiAgICAgICAgLm1vdmVUbyh7IGlkOiB0aGlzLmRpcmVjdG9yeS5kYXRhSXRlbS5pZCwgbmFtZTogdGhpcy5kaXJlY3RvcnkuZGF0YUl0ZW0ubmFtZSB9LCBjbGlwYm9hcmRTZWxlY3RlZEl0ZW1zLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgLy8gcmVtb3ZlIHNlbGVjdGVkIGl0ZW1zIGZyb20gY2xpcGJvYXJkIGFmdGVyIGFjdGlvbiBpcyBkb25lXHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlSXRlbXNBZnRlckFjdGlvbkRvbmUoY2xpcGJvYXJkU2VsZWN0ZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpcGJvYXJkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2xpcGJvYXJkQ2xvc2UuZW1pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLm9uUmVmcmVzaEZvbGRlclRyZWUuZW1pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAgICAgICAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgICAgJ1RPQVNURVIuU1VDQ0VTUycsXHJcbiAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfTU9WRUQnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfTU9WRURfRVJST1InXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZVxyXG4gICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICdUT0FTVEVSLkVSUk9SJyxcclxuICAgICAgICAnVE9BU1RFUi5ET0NVTUVOVF9NT1ZFRF9ERVNUSU5BVElPTl9FUlJPUidcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUl0ZW1zQWZ0ZXJBY3Rpb25Eb25lKHNlbGVjdGVkSXRlbXMpIHtcclxuICAgIHRoaXMuY2xpcGJvYXJkSXRlbXMgPSB0aGlzLmNsaXBib2FyZEl0ZW1zLmZpbHRlcihmdW5jdGlvbiAoZWwpIHtcclxuICAgICAgcmV0dXJuICFzZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKGVsKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2Uuc2V0KCdjbGlwYm9hcmRJdGVtcycsIEpTT04uc3RyaW5naWZ5KHRoaXMuY2xpcGJvYXJkSXRlbXMpKTtcclxuICB9XHJcblxyXG4gIGNoZWNraW5nKCkge1xyXG4gICAgdGhpcy5lbmFibGVDb3B5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmVuYWJsZU1vdmUgPSBmYWxzZTtcclxuICAgIHRoaXMuZG9jdW1lbnRTZWxlY3RlZEluQ2xpcGJvYXJkID0gW107XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNsaXBib2FyZERvY21lbnRzKTtcclxuICAgIHRoaXMuY2xpcGJvYXJkRG9jbWVudHMubWFwKGRvY3VtZW50ID0+IHtcclxuICAgICAgLy8gd29rcmluZyB3aXRoIG9ubHkgc2VsZWN0ZWQgZG9jdW1lbnRzIFxyXG4gICAgICBpZiAoZG9jdW1lbnQuaXNTZWxlY3RlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIC8vIGRvY3VtZW50WydjYW5Db3B5VG9UYXJnZXQnXSA9ICh0aGlzLmNhblBlcmZvcm1BY3Rpb25JbnNpZGVUYXJnZXQoZG9jdW1lbnQpICYmIGRvY3VtZW50LmNhbkNvcHkpO1xyXG4gICAgICAgIC8vIGRvY3VtZW50WydjYW5Nb3ZlVG9UYXJnZXQnXSA9ICh0aGlzLmNhblBlcmZvcm1BY3Rpb25JbnNpZGVUYXJnZXQoZG9jdW1lbnQpICYmIGRvY3VtZW50LmNhbk1vdmUpXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlbGVjdGVkSW5DbGlwYm9hcmQucHVzaChkb2N1bWVudClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIGlmICh0aGlzLmRvY3VtZW50U2VsZWN0ZWRJbkNsaXBib2FyZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZW5hYmxlQ29weSA9IHRoaXMuZG9jdW1lbnRTZWxlY3RlZEluQ2xpcGJvYXJkLmV2ZXJ5KGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmNhbkNvcHlUb1RhcmdldCA9PT0gdHJ1ZTtcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5lbmFibGVNb3ZlID0gdGhpcy5kb2N1bWVudFNlbGVjdGVkSW5DbGlwYm9hcmQuZXZlcnkoaXRlbSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uY2FuTW92ZVRvVGFyZ2V0ID09PSB0cnVlO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2codGhpcy5kb2N1bWVudFNlbGVjdGVkSW5DbGlwYm9hcmQpXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjbGlwYm9hcmQtc2lkZS1zZWN0aW9uIHJlbGF0aXZlXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInAtMyBoLWZ1bGxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xpcGJvYXJkLWhlYWRlciBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgYm9yZGVyLWItMlwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXggdGV4dC1ncmF5LTUwMCBmb250LWJvbGQgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtNHhsIGJpIGJpLWNsaXBib2FyZFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMiB0ZXh0LXhsXCI+e3snY2xpcGJvYXJkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNsb3NlLWljb24gdGV4dC1ncmF5LTUwMCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZUNsaXBib2FyZCgpXCJcclxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidCVVRUT05TLkNMT1NFJyB8IHRyYW5zbGF0ZVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJoLWZ1bGwgZm9udC1ib2xkIGQtZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIiAqbmdJZj1cImNsaXBib2FyZExvYWRpbmdcIj5cclxuICAgICAgICAgICAge3sgXCJsb2FkaW5nXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBoLXB4IGJnLWdyYXktMjAwIG1iLTNcIiAqbmdJZj1cImNsaXBib2FyZExvYWRpbmdcIj5cclxuICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsaXBib2FyZC1jb250ZW50IGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWJldHdlZW5cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbCBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciB0ZXh0LWdyYXktNTAwXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2xpcGJvYXJkRG9jbWVudHMubGVuZ3RoID09PSAwXCI+e3snbm9fY2xpcGJvYXJkX2l0ZW1zJyB8IHRyYW5zbGF0ZX19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMiBoLTUvNiBvdmVyZmxvdy15LWF1dG9cIiAqbmdJZj1cImNsaXBib2FyZERvY21lbnRzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItYi0yXCIgKm5nRm9yPVwibGV0IGRvY3VtZW50IG9mIGNsaXBib2FyZERvY21lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTEgdy04MiBmbGV4ICBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB3LTUvNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBbKG5nTW9kZWwpXT1cImRvY3VtZW50LmlzU2VsZWN0ZWRcIiAoY2hhbmdlKT1cImNoZWNraW5nKClcIj4gPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx0aXRsZS13aXRoLWljb24gY2xhc3M9XCJ3LTEvNiAtbXktMS41XCIgW2NvbnRleHRdPVwiZG9jdW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1RpdGxlXT1cImZhbHNlXCI+PC90aXRsZS13aXRoLWljb24+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1kaXNwbGF5LXN1aXRhYmxlLWljb24gY2xhc3M9XCJteC0xXCIgW2RhdGFdPVwiZG9jdW1lbnRcIiBbc2l6ZV09XCInNDBweCdcIj48L2FwcC1kaXNwbGF5LXN1aXRhYmxlLWljb24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkb2N1bWVudC5pc0ZpbGUgPT09ICdGaWxlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwianVzdGlmeS1jZW50ZXIgZmxleCBmbGV4LWNvbCBmbGV4LTEgZmxleC1ncm93LTAgdy01LzZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSB0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0cnVuY2F0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZG9jdW1lbnQucHJvcGVydGllcz8uWydmaWxlOmNvbnRlbnQnXT8uWyduYW1lJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJkb2N1bWVudC5wcm9wZXJ0aWVzPy5bJ2ZpbGU6Y29udGVudCddPy5bJ25hbWUnXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkb2N1bWVudFsndGl0bGUnXX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCB0ZXh0LXNtIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eygoZG9jdW1lbnQucHJvcGVydGllcz8uWydmaWxlOmNvbnRlbnQnXT8uWydsZW5ndGgnXSkgLyAoMTAyNCAqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDI0KSkudG9GaXhlZCgyKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC1mbGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy1jZW50ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYmFzZSB0ZXh0LWdyYXktNTAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWJvbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgKm5nSWY9XCJkb2N1bWVudC5pc0ZpbGUgPT09ICdGb2xkZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRvY3VtZW50Py50aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbbWF0VG9vbHRpcF09XCInQlVUVE9OUy5SRU1PVkVfQ0xJUEJPQVJEJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHctNSBoLTUgcm91bmRlZC1mdWxsIGJvcmRlci0yIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGJvcmRlci1ncmF5LTUwMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZWZyb21DbGlwYm9hcmQoZG9jdW1lbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS01MDAgYmkgYmkteCB0ZXh0LWxnIGZsZXggaXRlbXMtY2VudGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgdGV4dC1ncmF5LTUwMCB0ZXh0LWNlbnRlciBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZG9jdW1lbnQuY2FuQ29weVRvVGFyZ2V0ICYmICFkb2N1bWVudC5jYW5Nb3ZlVG9UYXJnZXRcIj57eydjYW5fY29weV9vbmx5JyB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZG9jdW1lbnQuY2FuQ29weVRvVGFyZ2V0ICYmIGRvY3VtZW50LmNhbk1vdmVUb1RhcmdldFwiPnt7J2Nhbl9tb3ZlX29ubHknIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRvY3VtZW50LmNhbkNvcHlUb1RhcmdldCAmJiBkb2N1bWVudC5jYW5Nb3ZlVG9UYXJnZXRcIj57eydjYW5fY29weV9hbmRfbW92ZScgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkb2N1bWVudC5jYW5Db3B5VG9UYXJnZXQgJiYgIWRvY3VtZW50LmNhbk1vdmVUb1RhcmdldFwiPnt7J2Nhbl9ub3RfY29weV9hbmRfbW92ZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xLzYgZmxleCB3LWZ1bGwganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWlzc2lvbi1idXR0b24gbXgtMlwiIFtkaXNhYmxlZF09XCIhZW5hYmxlQ29weVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlGcm9tSW5zaWRlQ2xpcGJvYXJkKClcIj57eydCVVRUT05TLkNPUFknIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXNzaW9uLWJ1dHRvbiBteC0yXCIgW2Rpc2FibGVkXT1cIiFlbmFibGVNb3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW92ZUZyb21JbnNpZGVDbGlwYm9hcmQoKVwiPnt7J0JVVFRPTlMuTU9WRScgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJiZy10cmFuc3BhcmVudCBhYnNvbHV0ZSB0b3AtMCBib3R0b20tMCBsZWZ0LTAgcmlnaHQtMCBcIiAqbmdJZj1cImNsaXBib2FyZExvYWRpbmdcIj5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -85,9 +85,9 @@ export class CopyComponent {
85
85
  }
86
86
  }
87
87
  }
88
- CopyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CopyComponent, deps: [{ token: i1.FileManagerService }, { token: i2.CustomToastrService }], target: i0.ɵɵFactoryTarget.Component });
89
- CopyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CopyComponent, selector: "app-copy", inputs: { visible: "visible", rtlEnabled: "rtlEnabled", selectedItem: "selectedItem", rootFolder: "rootFolder", rootEntries: "rootEntries", selectedItems: "selectedItems", directory: "directory", pageConfigurations: "pageConfigurations" }, outputs: { visibleChange: "visibleChange", getSelectedFolder: "getSelectedFolder" }, viewQueries: [{ propertyName: "form", first: true, predicate: DxFormComponent, descendants: true }], ngImport: i0, template: "<dx-popup class=\"popUpParent\" [rtlEnabled]=\"rtlEnabled\" id=\"photo-popup\" [width]=\"500\" [height]=\"500\"\r\n title=\"{{ 'FILE_MANAGER.COPY_OR_MOVE' | translate }}\" [(visible)]=\"visible\" [showTitle]=\"true\"\r\n [closeOnOutsideClick]=\"true\">\r\n <div class=\"p-4\" *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view width=\"100%\" height=\"100%\">\r\n <div class=\"form\">\r\n <dx-tree-view [rtlEnabled]=\"rtlEnabled\" id=\"treeList\" [rootValue]=\"rootFolder\" keyExpr=\"id\"\r\n displayExpr=\"name\" hasItemsExpr=\"isExpanded\" dataStructure=\"plain\"\r\n [createChildren]=\"createTreeNodeChildren\" [width]=\"465\" (onItemClick)=\"selectItem($event)\">\r\n </dx-tree-view>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n <dxi-toolbar-item toolbar=\"bottom\" [disabled]=\"disable\">\r\n <button class=\"submission-button px-5\" (click)=\"copy(false)\">\r\n {{ \"BUTTONS.COPY\" | translate }}\r\n </button>\r\n </dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\">\r\n <button class=\"cancelation-button px-5\" (click)=\"cancel()\">\r\n {{ \"BUTTONS.CANCEL\" | translate }}\r\n </button>\r\n </dxi-toolbar-item>\r\n</dx-popup>", styles: [""], components: [{ type: i3.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }, { type: i3.DxTreeViewComponent, selector: "dx-tree-view", inputs: ["accessKey", "activeStateEnabled", "animationEnabled", "collapseIcon", "createChildren", "dataSource", "dataStructure", "disabled", "disabledExpr", "displayExpr", "elementAttr", "expandAllEnabled", "expandedExpr", "expandEvent", "expandIcon", "expandNodesRecursive", "focusStateEnabled", "hasItemsExpr", "height", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemsExpr", "itemTemplate", "keyExpr", "noDataText", "parentIdExpr", "rootValue", "rtlEnabled", "scrollDirection", "searchEditorOptions", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "searchValue", "selectAllText", "selectByClick", "selectedExpr", "selectionMode", "selectNodesRecursive", "showCheckBoxesMode", "tabIndex", "useNativeScrolling", "virtualModeEnabled", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemCollapsed", "onItemContextMenu", "onItemExpanded", "onItemHold", "onItemRendered", "onItemSelectionChanged", "onOptionChanged", "onSelectAllValueChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "animationEnabledChange", "collapseIconChange", "createChildrenChange", "dataSourceChange", "dataStructureChange", "disabledChange", "disabledExprChange", "displayExprChange", "elementAttrChange", "expandAllEnabledChange", "expandedExprChange", "expandEventChange", "expandIconChange", "expandNodesRecursiveChange", "focusStateEnabledChange", "hasItemsExprChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemsExprChange", "itemTemplateChange", "keyExprChange", "noDataTextChange", "parentIdExprChange", "rootValueChange", "rtlEnabledChange", "scrollDirectionChange", "searchEditorOptionsChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "searchValueChange", "selectAllTextChange", "selectByClickChange", "selectedExprChange", "selectionModeChange", "selectNodesRecursiveChange", "showCheckBoxesModeChange", "tabIndexChange", "useNativeScrollingChange", "virtualModeEnabledChange", "visibleChange", "widthChange"] }, { type: i4.DxiToolbarItemComponent, selector: "dxi-toolbar-item", inputs: ["cssClass", "disabled", "html", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "template", "text", "toolbar", "visible", "widget"] }], directives: [{ type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }], pipes: { "translate": i6.TranslatePipe } });
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CopyComponent, decorators: [{
88
+ CopyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: CopyComponent, deps: [{ token: i1.FileManagerService }, { token: i2.CustomToastrService }], target: i0.ɵɵFactoryTarget.Component });
89
+ CopyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: CopyComponent, selector: "app-copy", inputs: { visible: "visible", rtlEnabled: "rtlEnabled", selectedItem: "selectedItem", rootFolder: "rootFolder", rootEntries: "rootEntries", selectedItems: "selectedItems", directory: "directory", pageConfigurations: "pageConfigurations" }, outputs: { visibleChange: "visibleChange", getSelectedFolder: "getSelectedFolder" }, viewQueries: [{ propertyName: "form", first: true, predicate: DxFormComponent, descendants: true }], ngImport: i0, template: "<dx-popup class=\"popUpParent\" [rtlEnabled]=\"rtlEnabled\" id=\"photo-popup\" [width]=\"500\" [height]=\"500\"\r\n title=\"{{ 'FILE_MANAGER.COPY_OR_MOVE' | translate }}\" [(visible)]=\"visible\" [showTitle]=\"true\"\r\n [closeOnOutsideClick]=\"true\">\r\n <div class=\"p-4\" *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view width=\"100%\" height=\"100%\">\r\n <div class=\"form\">\r\n <dx-tree-view [rtlEnabled]=\"rtlEnabled\" id=\"treeList\" [rootValue]=\"rootFolder\" keyExpr=\"id\"\r\n displayExpr=\"name\" hasItemsExpr=\"isExpanded\" dataStructure=\"plain\"\r\n [createChildren]=\"createTreeNodeChildren\" [width]=\"465\" (onItemClick)=\"selectItem($event)\">\r\n </dx-tree-view>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n <dxi-toolbar-item toolbar=\"bottom\" [disabled]=\"disable\">\r\n <button class=\"submission-button px-5\" (click)=\"copy(false)\">\r\n {{ \"BUTTONS.COPY\" | translate }}\r\n </button>\r\n </dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\">\r\n <button class=\"cancelation-button px-5\" (click)=\"cancel()\">\r\n {{ \"BUTTONS.CANCEL\" | translate }}\r\n </button>\r\n </dxi-toolbar-item>\r\n</dx-popup>", styles: [""], components: [{ type: i3.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }, { type: i3.DxTreeViewComponent, selector: "dx-tree-view", inputs: ["accessKey", "activeStateEnabled", "animationEnabled", "collapseIcon", "createChildren", "dataSource", "dataStructure", "disabled", "disabledExpr", "displayExpr", "elementAttr", "expandAllEnabled", "expandedExpr", "expandEvent", "expandIcon", "expandNodesRecursive", "focusStateEnabled", "hasItemsExpr", "height", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemsExpr", "itemTemplate", "keyExpr", "noDataText", "parentIdExpr", "rootValue", "rtlEnabled", "scrollDirection", "searchEditorOptions", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "searchValue", "selectAllText", "selectByClick", "selectedExpr", "selectionMode", "selectNodesRecursive", "showCheckBoxesMode", "tabIndex", "useNativeScrolling", "virtualModeEnabled", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemCollapsed", "onItemContextMenu", "onItemExpanded", "onItemHold", "onItemRendered", "onItemSelectionChanged", "onOptionChanged", "onSelectAllValueChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "animationEnabledChange", "collapseIconChange", "createChildrenChange", "dataSourceChange", "dataStructureChange", "disabledChange", "disabledExprChange", "displayExprChange", "elementAttrChange", "expandAllEnabledChange", "expandedExprChange", "expandEventChange", "expandIconChange", "expandNodesRecursiveChange", "focusStateEnabledChange", "hasItemsExprChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemsExprChange", "itemTemplateChange", "keyExprChange", "noDataTextChange", "parentIdExprChange", "rootValueChange", "rtlEnabledChange", "scrollDirectionChange", "searchEditorOptionsChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "searchValueChange", "selectAllTextChange", "selectByClickChange", "selectedExprChange", "selectionModeChange", "selectNodesRecursiveChange", "showCheckBoxesModeChange", "tabIndexChange", "useNativeScrollingChange", "virtualModeEnabledChange", "visibleChange", "widthChange"] }, { type: i4.DxiToolbarItemComponent, selector: "dxi-toolbar-item", inputs: ["cssClass", "disabled", "html", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "template", "text", "toolbar", "visible", "widget"] }], directives: [{ type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }], pipes: { "translate": i6.TranslatePipe } });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: CopyComponent, decorators: [{
91
91
  type: Component,
92
92
  args: [{
93
93
  selector: 'app-copy',
@@ -118,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
118
118
  }], pageConfigurations: [{
119
119
  type: Input
120
120
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvY29weS9jb3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jb3B5L2NvcHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBUzFCLE1BQU0sT0FBTyxhQUFhO0lBa0N4QixZQUNVLGtCQUFzQyxFQUNwQyxtQkFBd0M7UUFEMUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBdEJwRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBWW5CLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFvQmpCLDJCQUFzQixHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFN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QUFDLElBQUksQ0FDM0IsT0FBTyxFQUNQLGVBQWUsRUFDZix1QkFBdUIsQ0FDeEIsQ0FBQztTQUNIO0lBQ0gsQ0FBQzs7MkdBcEhVLGFBQWE7K0ZBQWIsYUFBYSwyWkFDYixlQUFlLGdEQ1o1QixzekNBdUJXOzRGRFpFLGFBQWE7a0JBTHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFdBQVcsRUFBRSx1QkFBdUI7b0JBQ3BDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNyQzsySUFFZ0QsSUFBSTtzQkFBbEQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUV6QyxPQUFPO3NCQURWLEtBQUs7Z0JBWU4sYUFBYTtzQkFEWixNQUFNO2dCQUdQLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFHUCxVQUFVO3NCQURULEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhGb3JtQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL2ZpbGUtbWFuYWdlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvcHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3B5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3B5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoRHhGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogRHhGb3JtQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZpc2libGUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuX3Zpc2libGUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Zpc2libGUpO1xyXG4gIH1cclxuICBnZXQgdmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gIH1cclxuICBAT3V0cHV0KClcclxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgZ2V0U2VsZWN0ZWRGb2xkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKVxyXG4gIHJ0bEVuYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkSXRlbTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcm9vdEZvbGRlcjogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcm9vdEVudHJpZXM6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkSXRlbXM6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGRpcmVjdG9yeTogYW55O1xyXG4gIEBJbnB1dCgpIHBhZ2VDb25maWd1cmF0aW9ucztcclxuICBmb3JtRGF0YTogYW55ID0ge307XHJcbiAgZGlzYWJsZSA9IHRydWU7XHJcbiAgX3Zpc2libGUgPSBmYWxzZTtcclxuICBjdXJyZW50SXRlbTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmlsZU1hbmFnZXJTZXJ2aWNlOiBGaWxlTWFuYWdlclNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY3VzdG9tVG9hc3RyU2VydmljZTogQ3VzdG9tVG9hc3RyU2VydmljZVxyXG5cclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICB9XHJcbiAgc2VsZWN0SXRlbShlKSB7XHJcbiAgICB0aGlzLmRpc2FibGUgPSBmYWxzZTtcclxuICAgIHRoaXMuY3VycmVudEl0ZW0gPSBlLml0ZW1EYXRhO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlVHJlZU5vZGVDaGlsZHJlbiA9IChwYXJlbnQpID0+IHtcclxuICAgIGxldCBteXBhcmVudCA9IHBhcmVudCA/IHBhcmVudC5rZXkgOiB0aGlzLnJvb3RGb2xkZXI7XHJcbiAgICBsZXQgbXlvYnM7XHJcbiAgICBpZiAobXlwYXJlbnQgPT09IHRoaXMucGFnZUNvbmZpZ3VyYXRpb25zLnJvb3ROYW1lKSB7XHJcbiAgICAgIC8vIHdoZW4gaXQgaXMgcm9vdCBvZiBmaWxlIGxpc3QgdGhlbiB1c2VkIHBhc3NlZCByb290IGVudHJpZXMgYW5kIGZvciByb290IG9mIFxyXG4gICAgICAvLyBteSBmaWxlcyBvciBhbnkgb3RoZXIgZm9sZGVyIHVzZSBnZXR0aW5nIGNoaWxkcyBmb3IgdGhhdCBmb2xkZXIgd2l0aCBpdHMgaWRcclxuICAgICAgbXlvYnMgPSB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5wYXJzZU5vZGVDaGlsZHJlbihvZih0aGlzLnJvb3RFbnRyaWVzKSwgdGhpcy5wYWdlQ29uZmlndXJhdGlvbnMgLCBwYXJlbnQpO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG15b2JzID0gdGhpcy5maWxlTWFuYWdlclNlcnZpY2UuY3JlYXRlVHJlZU5vZGVDaGlsZHJlbihteXBhcmVudClcclxuICAgIH1cclxuICAgIHJldHVybiBteW9icztcclxuICAgIC8vIGNvbnNvbGUubG9nKHBhcmVudCk7XHJcbiAgICAvLyBsZXQgb2JzID0gKFxyXG4gICAgLy8gICBwYXJlbnRcclxuICAgIC8vICAgICA/IHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLmdldFRyZWVOb2RlQ2hpbGRyZW4ocGFyZW50KVxyXG4gICAgLy8gICAgIDogb2YoXHJcbiAgICAvLyAgICAgICB0aGlzLnJvb3RFbnRyaWVzXHJcbiAgICAvLyAgICAgKVxyXG4gICAgLy8gKVxyXG4gICAgLy8gcmV0dXJuIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLnBhcnNlTm9kZUNoaWxkcmVuKG9icywgcGFyZW50KTtcclxuICB9XHJcblxyXG4gIGNvcHkoYW5zd2VyKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50SXRlbS5jYW5Db3B5VG9EZXN0aW5hdGlvbikge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5kaXJlY3Rvcnk/LmRhdGFJdGVtPy5pZCAhPT0gdGhpcy5jdXJyZW50SXRlbS5pZCAmJlxyXG4gICAgICAgICF0aGlzLmN1cnJlbnRJdGVtLmVudGl0eS5wYXRoLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRJdGVtLm5hbWUpXHJcbiAgICAgICkge1xyXG4gICAgICAgIC8vIHRoaXMuY3VycmVudFBhdGggPSAnJztcclxuICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZVxyXG4gICAgICAgICAgLmNvcHlUbyh0aGlzLmN1cnJlbnRJdGVtLCB0aGlzLnNlbGVjdGVkSXRlbXMpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gYW5zd2VyO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRGb2xkZXIubmV4dCh0aGlzLmN1cnJlbnRJdGVtLmlkKTtcclxuICAgICAgICAgICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgICdUT0FTVEVSLlNVQ0NFU1MnLFxyXG4gICAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfQ09QSUVEJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICdUT0FTVEVSLkVSUk9SJyxcclxuICAgICAgICAgICAgICAgICdUT0FTVEVSLkRPQ1VNRU5UX0NPUElFRF9FUlJPUidcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9IGVsc2VcclxuICAgICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgICAnVE9BU1RFUi5GQUlMRURfVE9fQ09QWSdcclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgJ1RPQVNURVIuTk9fUEVSTUlTU0lPTidcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGR4LXBvcHVwIGNsYXNzPVwicG9wVXBQYXJlbnRcIiBbcnRsRW5hYmxlZF09XCJydGxFbmFibGVkXCIgaWQ9XCJwaG90by1wb3B1cFwiIFt3aWR0aF09XCI1MDBcIiBbaGVpZ2h0XT1cIjUwMFwiXHJcbiAgICB0aXRsZT1cInt7ICdGSUxFX01BTkFHRVIuQ09QWV9PUl9NT1ZFJyB8IHRyYW5zbGF0ZSB9fVwiIFsodmlzaWJsZSldPVwidmlzaWJsZVwiIFtzaG93VGl0bGVdPVwidHJ1ZVwiXHJcbiAgICBbY2xvc2VPbk91dHNpZGVDbGlja109XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC00XCIgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY29udGVudCdcIj5cclxuICAgICAgICA8ZHgtc2Nyb2xsLXZpZXcgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRyZWUtdmlldyBbcnRsRW5hYmxlZF09XCJydGxFbmFibGVkXCIgaWQ9XCJ0cmVlTGlzdFwiIFtyb290VmFsdWVdPVwicm9vdEZvbGRlclwiIGtleUV4cHI9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUV4cHI9XCJuYW1lXCIgaGFzSXRlbXNFeHByPVwiaXNFeHBhbmRlZFwiIGRhdGFTdHJ1Y3R1cmU9XCJwbGFpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NyZWF0ZUNoaWxkcmVuXT1cImNyZWF0ZVRyZWVOb2RlQ2hpbGRyZW5cIiBbd2lkdGhdPVwiNDY1XCIgKG9uSXRlbUNsaWNrKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9keC10cmVlLXZpZXc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHgtc2Nyb2xsLXZpZXc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkeGktdG9vbGJhci1pdGVtIHRvb2xiYXI9XCJib3R0b21cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXNzaW9uLWJ1dHRvbiBweC01XCIgKGNsaWNrKT1cImNvcHkoZmFsc2UpXCI+XHJcbiAgICAgICAgICAgIHt7IFwiQlVUVE9OUy5DT1BZXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZHhpLXRvb2xiYXItaXRlbT5cclxuICAgIDxkeGktdG9vbGJhci1pdGVtIHRvb2xiYXI9XCJib3R0b21cIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2FuY2VsYXRpb24tYnV0dG9uIHB4LTVcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAgICAgICAge3sgXCJCVVRUT05TLkNBTkNFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2R4aS10b29sYmFyLWl0ZW0+XHJcbjwvZHgtcG9wdXA+Il19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvY29weS9jb3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jb3B5L2NvcHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBUzFCLE1BQU0sT0FBTyxhQUFhO0lBa0N4QixZQUNVLGtCQUFzQyxFQUNwQyxtQkFBd0M7UUFEMUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBdEJwRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBWW5CLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFvQmpCLDJCQUFzQixHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFN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QUFDLElBQUksQ0FDM0IsT0FBTyxFQUNQLGVBQWUsRUFDZix1QkFBdUIsQ0FDeEIsQ0FBQztTQUNIO0lBQ0gsQ0FBQzs7MEdBcEhVLGFBQWE7OEZBQWIsYUFBYSwyWkFDYixlQUFlLGdEQ1o1QixzekNBdUJXOzJGRFpFLGFBQWE7a0JBTHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFdBQVcsRUFBRSx1QkFBdUI7b0JBQ3BDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNyQzsySUFFZ0QsSUFBSTtzQkFBbEQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUV6QyxPQUFPO3NCQURWLEtBQUs7Z0JBWU4sYUFBYTtzQkFEWixNQUFNO2dCQUdQLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFHUCxVQUFVO3NCQURULEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhGb3JtQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL2ZpbGUtbWFuYWdlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvcHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3B5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3B5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoRHhGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogRHhGb3JtQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZpc2libGUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuX3Zpc2libGUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Zpc2libGUpO1xyXG4gIH1cclxuICBnZXQgdmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gIH1cclxuICBAT3V0cHV0KClcclxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgZ2V0U2VsZWN0ZWRGb2xkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKVxyXG4gIHJ0bEVuYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkSXRlbTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcm9vdEZvbGRlcjogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcm9vdEVudHJpZXM6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkSXRlbXM6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGRpcmVjdG9yeTogYW55O1xyXG4gIEBJbnB1dCgpIHBhZ2VDb25maWd1cmF0aW9ucztcclxuICBmb3JtRGF0YTogYW55ID0ge307XHJcbiAgZGlzYWJsZSA9IHRydWU7XHJcbiAgX3Zpc2libGUgPSBmYWxzZTtcclxuICBjdXJyZW50SXRlbTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmlsZU1hbmFnZXJTZXJ2aWNlOiBGaWxlTWFuYWdlclNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY3VzdG9tVG9hc3RyU2VydmljZTogQ3VzdG9tVG9hc3RyU2VydmljZVxyXG5cclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICB9XHJcbiAgc2VsZWN0SXRlbShlKSB7XHJcbiAgICB0aGlzLmRpc2FibGUgPSBmYWxzZTtcclxuICAgIHRoaXMuY3VycmVudEl0ZW0gPSBlLml0ZW1EYXRhO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlVHJlZU5vZGVDaGlsZHJlbiA9IChwYXJlbnQpID0+IHtcclxuICAgIGxldCBteXBhcmVudCA9IHBhcmVudCA/IHBhcmVudC5rZXkgOiB0aGlzLnJvb3RGb2xkZXI7XHJcbiAgICBsZXQgbXlvYnM7XHJcbiAgICBpZiAobXlwYXJlbnQgPT09IHRoaXMucGFnZUNvbmZpZ3VyYXRpb25zLnJvb3ROYW1lKSB7XHJcbiAgICAgIC8vIHdoZW4gaXQgaXMgcm9vdCBvZiBmaWxlIGxpc3QgdGhlbiB1c2VkIHBhc3NlZCByb290IGVudHJpZXMgYW5kIGZvciByb290IG9mIFxyXG4gICAgICAvLyBteSBmaWxlcyBvciBhbnkgb3RoZXIgZm9sZGVyIHVzZSBnZXR0aW5nIGNoaWxkcyBmb3IgdGhhdCBmb2xkZXIgd2l0aCBpdHMgaWRcclxuICAgICAgbXlvYnMgPSB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5wYXJzZU5vZGVDaGlsZHJlbihvZih0aGlzLnJvb3RFbnRyaWVzKSwgdGhpcy5wYWdlQ29uZmlndXJhdGlvbnMgLCBwYXJlbnQpO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG15b2JzID0gdGhpcy5maWxlTWFuYWdlclNlcnZpY2UuY3JlYXRlVHJlZU5vZGVDaGlsZHJlbihteXBhcmVudClcclxuICAgIH1cclxuICAgIHJldHVybiBteW9icztcclxuICAgIC8vIGNvbnNvbGUubG9nKHBhcmVudCk7XHJcbiAgICAvLyBsZXQgb2JzID0gKFxyXG4gICAgLy8gICBwYXJlbnRcclxuICAgIC8vICAgICA/IHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLmdldFRyZWVOb2RlQ2hpbGRyZW4ocGFyZW50KVxyXG4gICAgLy8gICAgIDogb2YoXHJcbiAgICAvLyAgICAgICB0aGlzLnJvb3RFbnRyaWVzXHJcbiAgICAvLyAgICAgKVxyXG4gICAgLy8gKVxyXG4gICAgLy8gcmV0dXJuIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLnBhcnNlTm9kZUNoaWxkcmVuKG9icywgcGFyZW50KTtcclxuICB9XHJcblxyXG4gIGNvcHkoYW5zd2VyKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50SXRlbS5jYW5Db3B5VG9EZXN0aW5hdGlvbikge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5kaXJlY3Rvcnk/LmRhdGFJdGVtPy5pZCAhPT0gdGhpcy5jdXJyZW50SXRlbS5pZCAmJlxyXG4gICAgICAgICF0aGlzLmN1cnJlbnRJdGVtLmVudGl0eS5wYXRoLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRJdGVtLm5hbWUpXHJcbiAgICAgICkge1xyXG4gICAgICAgIC8vIHRoaXMuY3VycmVudFBhdGggPSAnJztcclxuICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZVxyXG4gICAgICAgICAgLmNvcHlUbyh0aGlzLmN1cnJlbnRJdGVtLCB0aGlzLnNlbGVjdGVkSXRlbXMpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gYW5zd2VyO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRGb2xkZXIubmV4dCh0aGlzLmN1cnJlbnRJdGVtLmlkKTtcclxuICAgICAgICAgICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgICdUT0FTVEVSLlNVQ0NFU1MnLFxyXG4gICAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfQ09QSUVEJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICdUT0FTVEVSLkVSUk9SJyxcclxuICAgICAgICAgICAgICAgICdUT0FTVEVSLkRPQ1VNRU5UX0NPUElFRF9FUlJPUidcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9IGVsc2VcclxuICAgICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgICAnVE9BU1RFUi5GQUlMRURfVE9fQ09QWSdcclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgJ1RPQVNURVIuTk9fUEVSTUlTU0lPTidcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGR4LXBvcHVwIGNsYXNzPVwicG9wVXBQYXJlbnRcIiBbcnRsRW5hYmxlZF09XCJydGxFbmFibGVkXCIgaWQ9XCJwaG90by1wb3B1cFwiIFt3aWR0aF09XCI1MDBcIiBbaGVpZ2h0XT1cIjUwMFwiXHJcbiAgICB0aXRsZT1cInt7ICdGSUxFX01BTkFHRVIuQ09QWV9PUl9NT1ZFJyB8IHRyYW5zbGF0ZSB9fVwiIFsodmlzaWJsZSldPVwidmlzaWJsZVwiIFtzaG93VGl0bGVdPVwidHJ1ZVwiXHJcbiAgICBbY2xvc2VPbk91dHNpZGVDbGlja109XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC00XCIgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY29udGVudCdcIj5cclxuICAgICAgICA8ZHgtc2Nyb2xsLXZpZXcgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRyZWUtdmlldyBbcnRsRW5hYmxlZF09XCJydGxFbmFibGVkXCIgaWQ9XCJ0cmVlTGlzdFwiIFtyb290VmFsdWVdPVwicm9vdEZvbGRlclwiIGtleUV4cHI9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUV4cHI9XCJuYW1lXCIgaGFzSXRlbXNFeHByPVwiaXNFeHBhbmRlZFwiIGRhdGFTdHJ1Y3R1cmU9XCJwbGFpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NyZWF0ZUNoaWxkcmVuXT1cImNyZWF0ZVRyZWVOb2RlQ2hpbGRyZW5cIiBbd2lkdGhdPVwiNDY1XCIgKG9uSXRlbUNsaWNrKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9keC10cmVlLXZpZXc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHgtc2Nyb2xsLXZpZXc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkeGktdG9vbGJhci1pdGVtIHRvb2xiYXI9XCJib3R0b21cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXNzaW9uLWJ1dHRvbiBweC01XCIgKGNsaWNrKT1cImNvcHkoZmFsc2UpXCI+XHJcbiAgICAgICAgICAgIHt7IFwiQlVUVE9OUy5DT1BZXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZHhpLXRvb2xiYXItaXRlbT5cclxuICAgIDxkeGktdG9vbGJhci1pdGVtIHRvb2xiYXI9XCJib3R0b21cIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2FuY2VsYXRpb24tYnV0dG9uIHB4LTVcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAgICAgICAge3sgXCJCVVRUT05TLkNBTkNFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2R4aS10b29sYmFyLWl0ZW0+XHJcbjwvZHgtcG9wdXA+Il19
@@ -65,9 +65,9 @@ export class CreateDirectoryComponent {
65
65
  });
66
66
  }
67
67
  }
68
- CreateDirectoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreateDirectoryComponent, deps: [{ token: i1.FileManagerService }, { token: i2.CustomToastrService }], target: i0.ɵɵFactoryTarget.Component });
69
- CreateDirectoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreateDirectoryComponent, selector: "app-create-directory", inputs: { visible: "visible", rtlEnabled: "rtlEnabled", selectedItem: "selectedItem" }, outputs: { visibleChange: "visibleChange", refresh: "refresh" }, viewQueries: [{ propertyName: "form", first: true, predicate: DxFormComponent, descendants: true }], ngImport: i0, template: "<dx-popup class=\"popUpParent\" [rtlEnabled]=\"rtlEnabled\" [width]=\"500\" [height]=\"230\" [dragEnabled]=\"false\"\r\n[closeOnOutsideClick]=\"true\" [(visible)]=\"visible\"\r\ntitle=\"{{ 'FILE_MANAGER.NEW_DIRECTORY' | translate }}\">\r\n<div *dxTemplate=\"let data of 'content'\">\r\n <form (submit)=\"onSubmit($event)\">\r\n <dx-form class=\"form-wrapper\" #form [formData]=\"formData\" [disabled]=\"loading\">\r\n <dxi-item dataField=\"title\" editorType=\"dxTextBox\">\r\n <dxo-label text=\"{{ 'CREATE.TITLE' | translate }}\"></dxo-label>\r\n <dxi-validation-rule type=\"required\" message=\"Title is required\"></dxi-validation-rule>\r\n </dxi-item>\r\n <dxi-item name=\"description\" editorType=\"dxTextBox\">\r\n <dxo-label text=\"{{ 'CREATE.DESCRIPTION' | translate }}\"></dxo-label>\r\n </dxi-item>\r\n <dxi-item itemType=\"button\">\r\n <dxo-button-options width=\"30%\" type=\"danger\" [useSubmitBehavior]=\"true\"\r\n [template]=\"'createTemplate'\">\r\n </dxo-button-options>\r\n </dxi-item>\r\n <ng-container *dxTemplate=\"let item of 'createTemplate'\">\r\n <span class=\"dx-button-text\">\r\n <ng-container *ngIf=\"loading; else notLoading\">\r\n <dx-load-indicator width=\"24px\" height=\"24px\" [visible]=\"true\"></dx-load-indicator>\r\n </ng-container>\r\n <ng-template #notLoading>{{\r\n \"FILE_MANAGER.CREATE\" | translate\r\n }}</ng-template>\r\n </span>\r\n </ng-container>\r\n </dx-form>\r\n </form>\r\n</div>\r\n</dx-popup>", styles: [""], components: [{ type: i3.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxFormComponent, selector: "dx-form", inputs: ["accessKey", "activeStateEnabled", "alignItemLabels", "alignItemLabelsInAllGroups", "colCount", "colCountByScreen", "customizeItem", "disabled", "elementAttr", "focusStateEnabled", "formData", "height", "hint", "hoverStateEnabled", "items", "labelLocation", "labelMode", "minColWidth", "optionalMark", "readOnly", "requiredMark", "requiredMessage", "rtlEnabled", "screenByWidth", "scrollingEnabled", "showColonAfterLabel", "showOptionalMark", "showRequiredMark", "showValidationSummary", "tabIndex", "validationGroup", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onEditorEnterKey", "onFieldDataChanged", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "alignItemLabelsChange", "alignItemLabelsInAllGroupsChange", "colCountChange", "colCountByScreenChange", "customizeItemChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formDataChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemsChange", "labelLocationChange", "labelModeChange", "minColWidthChange", "optionalMarkChange", "readOnlyChange", "requiredMarkChange", "requiredMessageChange", "rtlEnabledChange", "screenByWidthChange", "scrollingEnabledChange", "showColonAfterLabelChange", "showOptionalMarkChange", "showRequiredMarkChange", "showValidationSummaryChange", "tabIndexChange", "validationGroupChange", "visibleChange", "widthChange"] }, { type: i4.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { type: i4.DxoLabelComponent, selector: "dxo-label", inputs: ["connectorColor", "connectorWidth", "customizeText", "font", "format", "indent", "visible", "horizontalAlignment", "position", "text", "verticalAlignment", "alignment", "customizeHint", "displayMode", "indentFromAxis", "overlappingBehavior", "rotationAngle", "staggeringSpacing", "template", "textOverflow", "wordWrap", "argumentFormat", "backgroundColor", "border", "connector", "displayFormat", "horizontalOffset", "showForZeroValues", "verticalOffset", "hideFirstOrLast", "indentFromTick", "useRangeColors", "location", "showColon", "radialOffset", "topIndent", "shadow", "useNodeColors", "dataField", "enabled"] }, { type: i4.DxiValidationRuleComponent, selector: "dxi-validation-rule", inputs: ["message", "trim", "type", "ignoreEmptyValue", "max", "min", "reevaluate", "validationCallback", "comparisonTarget", "comparisonType", "pattern"] }, { type: i4.DxoButtonOptionsComponent, selector: "dxo-button-options", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"] }], directives: [{ type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i8.TranslatePipe } });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreateDirectoryComponent, decorators: [{
68
+ CreateDirectoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: CreateDirectoryComponent, deps: [{ token: i1.FileManagerService }, { token: i2.CustomToastrService }], target: i0.ɵɵFactoryTarget.Component });
69
+ CreateDirectoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: CreateDirectoryComponent, selector: "app-create-directory", inputs: { visible: "visible", rtlEnabled: "rtlEnabled", selectedItem: "selectedItem" }, outputs: { visibleChange: "visibleChange", refresh: "refresh" }, viewQueries: [{ propertyName: "form", first: true, predicate: DxFormComponent, descendants: true }], ngImport: i0, template: "<dx-popup class=\"popUpParent\" [rtlEnabled]=\"rtlEnabled\" [width]=\"500\" [height]=\"230\" [dragEnabled]=\"false\"\r\n[closeOnOutsideClick]=\"true\" [(visible)]=\"visible\"\r\ntitle=\"{{ 'FILE_MANAGER.NEW_DIRECTORY' | translate }}\">\r\n<div *dxTemplate=\"let data of 'content'\">\r\n <form (submit)=\"onSubmit($event)\">\r\n <dx-form class=\"form-wrapper\" #form [formData]=\"formData\" [disabled]=\"loading\">\r\n <dxi-item dataField=\"title\" editorType=\"dxTextBox\">\r\n <dxo-label text=\"{{ 'CREATE.TITLE' | translate }}\"></dxo-label>\r\n <dxi-validation-rule type=\"required\" message=\"Title is required\"></dxi-validation-rule>\r\n </dxi-item>\r\n <dxi-item name=\"description\" editorType=\"dxTextBox\">\r\n <dxo-label text=\"{{ 'CREATE.DESCRIPTION' | translate }}\"></dxo-label>\r\n </dxi-item>\r\n <dxi-item itemType=\"button\">\r\n <dxo-button-options width=\"30%\" type=\"danger\" [useSubmitBehavior]=\"true\"\r\n [template]=\"'createTemplate'\">\r\n </dxo-button-options>\r\n </dxi-item>\r\n <ng-container *dxTemplate=\"let item of 'createTemplate'\">\r\n <span class=\"dx-button-text\">\r\n <ng-container *ngIf=\"loading; else notLoading\">\r\n <dx-load-indicator width=\"24px\" height=\"24px\" [visible]=\"true\"></dx-load-indicator>\r\n </ng-container>\r\n <ng-template #notLoading>{{\r\n \"FILE_MANAGER.CREATE\" | translate\r\n }}</ng-template>\r\n </span>\r\n </ng-container>\r\n </dx-form>\r\n </form>\r\n</div>\r\n</dx-popup>", styles: [""], components: [{ type: i3.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxFormComponent, selector: "dx-form", inputs: ["accessKey", "activeStateEnabled", "alignItemLabels", "alignItemLabelsInAllGroups", "colCount", "colCountByScreen", "customizeItem", "disabled", "elementAttr", "focusStateEnabled", "formData", "height", "hint", "hoverStateEnabled", "items", "labelLocation", "labelMode", "minColWidth", "optionalMark", "readOnly", "requiredMark", "requiredMessage", "rtlEnabled", "screenByWidth", "scrollingEnabled", "showColonAfterLabel", "showOptionalMark", "showRequiredMark", "showValidationSummary", "tabIndex", "validationGroup", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onEditorEnterKey", "onFieldDataChanged", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "alignItemLabelsChange", "alignItemLabelsInAllGroupsChange", "colCountChange", "colCountByScreenChange", "customizeItemChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formDataChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemsChange", "labelLocationChange", "labelModeChange", "minColWidthChange", "optionalMarkChange", "readOnlyChange", "requiredMarkChange", "requiredMessageChange", "rtlEnabledChange", "screenByWidthChange", "scrollingEnabledChange", "showColonAfterLabelChange", "showOptionalMarkChange", "showRequiredMarkChange", "showValidationSummaryChange", "tabIndexChange", "validationGroupChange", "visibleChange", "widthChange"] }, { type: i4.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { type: i4.DxoLabelComponent, selector: "dxo-label", inputs: ["connectorColor", "connectorWidth", "customizeText", "font", "format", "indent", "visible", "horizontalAlignment", "position", "text", "verticalAlignment", "alignment", "customizeHint", "displayMode", "indentFromAxis", "overlappingBehavior", "rotationAngle", "staggeringSpacing", "template", "textOverflow", "wordWrap", "argumentFormat", "backgroundColor", "border", "connector", "displayFormat", "horizontalOffset", "showForZeroValues", "verticalOffset", "hideFirstOrLast", "indentFromTick", "useRangeColors", "location", "showColon", "radialOffset", "topIndent", "shadow", "useNodeColors", "dataField", "enabled"] }, { type: i4.DxiValidationRuleComponent, selector: "dxi-validation-rule", inputs: ["message", "trim", "type", "ignoreEmptyValue", "max", "min", "reevaluate", "validationCallback", "comparisonTarget", "comparisonType", "pattern"] }, { type: i4.DxoButtonOptionsComponent, selector: "dxo-button-options", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"] }], directives: [{ type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i8.TranslatePipe } });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: CreateDirectoryComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{
73
73
  selector: 'app-create-directory',
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
88
88
  }], selectedItem: [{
89
89
  type: Input
90
90
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRpcmVjdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvY3JlYXRlLWRpcmVjdG9yeS9jcmVhdGUtZGlyZWN0b3J5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jcmVhdGUtZGlyZWN0b3J5L2NyZWF0ZS1kaXJlY3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7O0FBUXJELE1BQU0sT0FBTyx3QkFBd0I7SUF5Qm5DLFlBQW9CLGtCQUF1QyxFQUNqRCxtQkFBeUM7UUFEL0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFxQjtRQUNqRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO1FBWm5ELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV4QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVsQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBSW5CLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO0lBRXVDLENBQUM7SUF4QnhELElBQ0ksT0FBTyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBZ0JELFFBQVE7SUFDUixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsOENBQThDO1FBQzlDLFdBQVc7UUFDWCx1Q0FBdUM7UUFDdkMsNEJBQTRCO1FBQzVCLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsa0JBQWtCO2FBQ2xCLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDakQsU0FBUyxDQUNOLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQiw2QkFBNkI7WUFDN0IseUJBQXlCO1lBQ3pCLHdEQUF3RDtZQUN4RCx5QkFBeUI7WUFDekIsa0RBQWtEO1lBQ2xELCtDQUErQztZQUMvQyxhQUFhO1lBQ2IsbUNBQW1DO1lBQ25DLDhCQUE4QjtZQUM5QixJQUFJO1lBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDekIsU0FBUyxFQUNULGlCQUFpQixFQUNqQiwwQkFBMEIsQ0FDN0IsQ0FBQztRQUNOLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDekIsT0FBTyxFQUNQLGVBQWUsRUFDZixnQ0FBZ0MsQ0FDbkMsQ0FBQztRQUNOLENBQUMsQ0FDSixDQUFDO0lBQ1YsQ0FBQzs7c0hBekVZLHdCQUF3QjswR0FBeEIsd0JBQXdCLDJQQUN4QixlQUFlLGdEQ1g1QixreERBK0JXOzRGRHJCRSx3QkFBd0I7a0JBTHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsV0FBVyxFQUFFLG1DQUFtQztvQkFDaEQsU0FBUyxFQUFFLENBQUMsbUNBQW1DLENBQUM7aUJBQ2pEOzJJQUVnRCxJQUFJO3NCQUFsRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRXpDLE9BQU87c0JBRFYsS0FBSztnQkFZTixhQUFhO3NCQURaLE1BQU07Z0JBR1AsT0FBTztzQkFETixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsS0FBSztnQkFHTixZQUFZO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL2ZpbGUtbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRHhGb3JtQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNyZWF0ZS1kaXJlY3RvcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtZGlyZWN0b3J5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtZGlyZWN0b3J5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZURpcmVjdG9yeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChEeEZvcm1Db21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBmb3JtOiBEeEZvcm1Db21wb25lbnQ7XHJcbiAgQElucHV0KClcclxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5fdmlzaWJsZSA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xyXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fdmlzaWJsZSk7XHJcbiAgfVxyXG4gIGdldCB2aXNpYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKVxyXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICByZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KClcclxuICBydGxFbmFibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZEl0ZW06IGFueTtcclxuXHJcbiAgZm9ybURhdGE6IGFueSA9IHt9O1xyXG4gIF92aXNpYmxlID0gZmFsc2U7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsZU1hbmFnZXJTZXJ2aWNlIDogRmlsZU1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjdXN0b21Ub2FzdHJTZXJ2aWNlIDogQ3VzdG9tVG9hc3RyU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoZSkge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIC8vIGxldCBkaXJlY3RvcnkgPSB0aGlzLmdldEN1cnJlbnREaXJlY3RvcnkoKTtcclxuICAgIC8vIGxldCBpZCA9XHJcbiAgICAvLyAgICAgZGlyZWN0b3J5LmRhdGFJdGVtID09PSB1bmRlZmluZWRcclxuICAgIC8vICAgICAgICAgPyB0aGlzLm1haW5Gb2xkZXJcclxuICAgIC8vICAgICAgICAgOiB0aGlzLmdldEN1cnJlbnRGb2xkZXJJZChkaXJlY3RvcnkpO1xyXG4gICAgdGhpcy5maWxlTWFuYWdlclNlcnZpY2VcclxuICAgICAgICAuY3JlYXRlRGlyZWN0b3J5KHRoaXMuZm9ybURhdGEsIHRoaXMuc2VsZWN0ZWRJdGVtKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAvLyBpZiAodGhpcy5pc0l0ZW1TZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIGxldCBzZWxlY3RlZEl0ZW0gPVxyXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyLmluc3RhbmNlLmdldFNlbGVjdGVkSXRlbXMoKTtcclxuICAgICAgICAgICAgICAgIC8vICAgICB0aGlzLmN1cnJlbnRQYXRoID1cclxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5zZWxlY3RlZE9iamVjdC5lbnRpdHkucGF0aC5zdWJzdHIoXHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyT2JqPy5wYXRoLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIGRpcmVjdG9yeSA9IHNlbGVjdGVkSXRlbVswXTtcclxuICAgICAgICAgICAgICAgIC8vICAgICBpZCA9IHRoaXMuc2VsZWN0ZWRJdGVtO1xyXG4gICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uaW5zdGFuY2UucmVzZXRWYWx1ZXMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgICAgICAnVE9BU1RFUi5TVUNDRVNTJyxcclxuICAgICAgICAgICAgICAgICAgICAnVE9BU1RFUi5ET0NVTUVOVF9DUkVBVEVEJ1xyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfQ1JFQVRFRF9FUlJPUidcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG59XHJcbn1cclxuIiwiPGR4LXBvcHVwIGNsYXNzPVwicG9wVXBQYXJlbnRcIiBbcnRsRW5hYmxlZF09XCJydGxFbmFibGVkXCIgW3dpZHRoXT1cIjUwMFwiIFtoZWlnaHRdPVwiMjMwXCIgW2RyYWdFbmFibGVkXT1cImZhbHNlXCJcclxuW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiIFsodmlzaWJsZSldPVwidmlzaWJsZVwiXHJcbnRpdGxlPVwie3sgJ0ZJTEVfTUFOQUdFUi5ORVdfRElSRUNUT1JZJyB8IHRyYW5zbGF0ZSB9fVwiPlxyXG48ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NvbnRlbnQnXCI+XHJcbiAgICA8Zm9ybSAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIj5cclxuICAgICAgICA8ZHgtZm9ybSBjbGFzcz1cImZvcm0td3JhcHBlclwiICNmb3JtIFtmb3JtRGF0YV09XCJmb3JtRGF0YVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxkeGktaXRlbSBkYXRhRmllbGQ9XCJ0aXRsZVwiIGVkaXRvclR5cGU9XCJkeFRleHRCb3hcIj5cclxuICAgICAgICAgICAgICAgIDxkeG8tbGFiZWwgdGV4dD1cInt7ICdDUkVBVEUuVElUTEUnIHwgdHJhbnNsYXRlIH19XCI+PC9keG8tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZHhpLXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIiBtZXNzYWdlPVwiVGl0bGUgaXMgcmVxdWlyZWRcIj48L2R4aS12YWxpZGF0aW9uLXJ1bGU+XHJcbiAgICAgICAgICAgIDwvZHhpLWl0ZW0+XHJcbiAgICAgICAgICAgIDxkeGktaXRlbSBuYW1lPVwiZGVzY3JpcHRpb25cIiBlZGl0b3JUeXBlPVwiZHhUZXh0Qm94XCI+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWxhYmVsIHRleHQ9XCJ7eyAnQ1JFQVRFLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZSB9fVwiPjwvZHhvLWxhYmVsPlxyXG4gICAgICAgICAgICA8L2R4aS1pdGVtPlxyXG4gICAgICAgICAgICA8ZHhpLWl0ZW0gaXRlbVR5cGU9XCJidXR0b25cIj5cclxuICAgICAgICAgICAgICAgIDxkeG8tYnV0dG9uLW9wdGlvbnMgd2lkdGg9XCIzMCVcIiB0eXBlPVwiZGFuZ2VyXCIgW3VzZVN1Ym1pdEJlaGF2aW9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCInY3JlYXRlVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICA8L2R4by1idXR0b24tb3B0aW9ucz5cclxuICAgICAgICAgICAgPC9keGktaXRlbT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZHhUZW1wbGF0ZT1cImxldCBpdGVtIG9mICdjcmVhdGVUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHgtYnV0dG9uLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZzsgZWxzZSBub3RMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1sb2FkLWluZGljYXRvciB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHgtbG9hZC1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRklMRV9NQU5BR0VSLkNSRUFURVwiIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9keC1mb3JtPlxyXG4gICAgPC9mb3JtPlxyXG48L2Rpdj5cclxuPC9keC1wb3B1cD4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRpcmVjdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvY3JlYXRlLWRpcmVjdG9yeS9jcmVhdGUtZGlyZWN0b3J5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jcmVhdGUtZGlyZWN0b3J5L2NyZWF0ZS1kaXJlY3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7O0FBUXJELE1BQU0sT0FBTyx3QkFBd0I7SUF5Qm5DLFlBQW9CLGtCQUF1QyxFQUNqRCxtQkFBeUM7UUFEL0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFxQjtRQUNqRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO1FBWm5ELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV4QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVsQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBSW5CLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO0lBRXVDLENBQUM7SUF4QnhELElBQ0ksT0FBTyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBZ0JELFFBQVE7SUFDUixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsOENBQThDO1FBQzlDLFdBQVc7UUFDWCx1Q0FBdUM7UUFDdkMsNEJBQTRCO1FBQzVCLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsa0JBQWtCO2FBQ2xCLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDakQsU0FBUyxDQUNOLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQiw2QkFBNkI7WUFDN0IseUJBQXlCO1lBQ3pCLHdEQUF3RDtZQUN4RCx5QkFBeUI7WUFDekIsa0RBQWtEO1lBQ2xELCtDQUErQztZQUMvQyxhQUFhO1lBQ2IsbUNBQW1DO1lBQ25DLDhCQUE4QjtZQUM5QixJQUFJO1lBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDekIsU0FBUyxFQUNULGlCQUFpQixFQUNqQiwwQkFBMEIsQ0FDN0IsQ0FBQztRQUNOLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDekIsT0FBTyxFQUNQLGVBQWUsRUFDZixnQ0FBZ0MsQ0FDbkMsQ0FBQztRQUNOLENBQUMsQ0FDSixDQUFDO0lBQ1YsQ0FBQzs7cUhBekVZLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDJQQUN4QixlQUFlLGdEQ1g1QixreERBK0JXOzJGRHJCRSx3QkFBd0I7a0JBTHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsV0FBVyxFQUFFLG1DQUFtQztvQkFDaEQsU0FBUyxFQUFFLENBQUMsbUNBQW1DLENBQUM7aUJBQ2pEOzJJQUVnRCxJQUFJO3NCQUFsRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRXpDLE9BQU87c0JBRFYsS0FBSztnQkFZTixhQUFhO3NCQURaLE1BQU07Z0JBR1AsT0FBTztzQkFETixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsS0FBSztnQkFHTixZQUFZO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL2ZpbGUtbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRHhGb3JtQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNyZWF0ZS1kaXJlY3RvcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtZGlyZWN0b3J5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtZGlyZWN0b3J5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZURpcmVjdG9yeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChEeEZvcm1Db21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBmb3JtOiBEeEZvcm1Db21wb25lbnQ7XHJcbiAgQElucHV0KClcclxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5fdmlzaWJsZSA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xyXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fdmlzaWJsZSk7XHJcbiAgfVxyXG4gIGdldCB2aXNpYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKVxyXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICByZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KClcclxuICBydGxFbmFibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZEl0ZW06IGFueTtcclxuXHJcbiAgZm9ybURhdGE6IGFueSA9IHt9O1xyXG4gIF92aXNpYmxlID0gZmFsc2U7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsZU1hbmFnZXJTZXJ2aWNlIDogRmlsZU1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjdXN0b21Ub2FzdHJTZXJ2aWNlIDogQ3VzdG9tVG9hc3RyU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoZSkge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIC8vIGxldCBkaXJlY3RvcnkgPSB0aGlzLmdldEN1cnJlbnREaXJlY3RvcnkoKTtcclxuICAgIC8vIGxldCBpZCA9XHJcbiAgICAvLyAgICAgZGlyZWN0b3J5LmRhdGFJdGVtID09PSB1bmRlZmluZWRcclxuICAgIC8vICAgICAgICAgPyB0aGlzLm1haW5Gb2xkZXJcclxuICAgIC8vICAgICAgICAgOiB0aGlzLmdldEN1cnJlbnRGb2xkZXJJZChkaXJlY3RvcnkpO1xyXG4gICAgdGhpcy5maWxlTWFuYWdlclNlcnZpY2VcclxuICAgICAgICAuY3JlYXRlRGlyZWN0b3J5KHRoaXMuZm9ybURhdGEsIHRoaXMuc2VsZWN0ZWRJdGVtKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAvLyBpZiAodGhpcy5pc0l0ZW1TZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIGxldCBzZWxlY3RlZEl0ZW0gPVxyXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyLmluc3RhbmNlLmdldFNlbGVjdGVkSXRlbXMoKTtcclxuICAgICAgICAgICAgICAgIC8vICAgICB0aGlzLmN1cnJlbnRQYXRoID1cclxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5zZWxlY3RlZE9iamVjdC5lbnRpdHkucGF0aC5zdWJzdHIoXHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyT2JqPy5wYXRoLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIGRpcmVjdG9yeSA9IHNlbGVjdGVkSXRlbVswXTtcclxuICAgICAgICAgICAgICAgIC8vICAgICBpZCA9IHRoaXMuc2VsZWN0ZWRJdGVtO1xyXG4gICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uaW5zdGFuY2UucmVzZXRWYWx1ZXMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgICAgICAnVE9BU1RFUi5TVUNDRVNTJyxcclxuICAgICAgICAgICAgICAgICAgICAnVE9BU1RFUi5ET0NVTUVOVF9DUkVBVEVEJ1xyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfQ1JFQVRFRF9FUlJPUidcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG59XHJcbn1cclxuIiwiPGR4LXBvcHVwIGNsYXNzPVwicG9wVXBQYXJlbnRcIiBbcnRsRW5hYmxlZF09XCJydGxFbmFibGVkXCIgW3dpZHRoXT1cIjUwMFwiIFtoZWlnaHRdPVwiMjMwXCIgW2RyYWdFbmFibGVkXT1cImZhbHNlXCJcclxuW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiIFsodmlzaWJsZSldPVwidmlzaWJsZVwiXHJcbnRpdGxlPVwie3sgJ0ZJTEVfTUFOQUdFUi5ORVdfRElSRUNUT1JZJyB8IHRyYW5zbGF0ZSB9fVwiPlxyXG48ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NvbnRlbnQnXCI+XHJcbiAgICA8Zm9ybSAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIj5cclxuICAgICAgICA8ZHgtZm9ybSBjbGFzcz1cImZvcm0td3JhcHBlclwiICNmb3JtIFtmb3JtRGF0YV09XCJmb3JtRGF0YVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxkeGktaXRlbSBkYXRhRmllbGQ9XCJ0aXRsZVwiIGVkaXRvclR5cGU9XCJkeFRleHRCb3hcIj5cclxuICAgICAgICAgICAgICAgIDxkeG8tbGFiZWwgdGV4dD1cInt7ICdDUkVBVEUuVElUTEUnIHwgdHJhbnNsYXRlIH19XCI+PC9keG8tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZHhpLXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIiBtZXNzYWdlPVwiVGl0bGUgaXMgcmVxdWlyZWRcIj48L2R4aS12YWxpZGF0aW9uLXJ1bGU+XHJcbiAgICAgICAgICAgIDwvZHhpLWl0ZW0+XHJcbiAgICAgICAgICAgIDxkeGktaXRlbSBuYW1lPVwiZGVzY3JpcHRpb25cIiBlZGl0b3JUeXBlPVwiZHhUZXh0Qm94XCI+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWxhYmVsIHRleHQ9XCJ7eyAnQ1JFQVRFLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZSB9fVwiPjwvZHhvLWxhYmVsPlxyXG4gICAgICAgICAgICA8L2R4aS1pdGVtPlxyXG4gICAgICAgICAgICA8ZHhpLWl0ZW0gaXRlbVR5cGU9XCJidXR0b25cIj5cclxuICAgICAgICAgICAgICAgIDxkeG8tYnV0dG9uLW9wdGlvbnMgd2lkdGg9XCIzMCVcIiB0eXBlPVwiZGFuZ2VyXCIgW3VzZVN1Ym1pdEJlaGF2aW9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCInY3JlYXRlVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICA8L2R4by1idXR0b24tb3B0aW9ucz5cclxuICAgICAgICAgICAgPC9keGktaXRlbT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZHhUZW1wbGF0ZT1cImxldCBpdGVtIG9mICdjcmVhdGVUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHgtYnV0dG9uLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZzsgZWxzZSBub3RMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1sb2FkLWluZGljYXRvciB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHgtbG9hZC1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRklMRV9NQU5BR0VSLkNSRUFURVwiIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9keC1mb3JtPlxyXG4gICAgPC9mb3JtPlxyXG48L2Rpdj5cclxuPC9keC1wb3B1cD4iXX0=