@sunbird-cb/toc 0.0.7 → 0.0.9

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 (331) hide show
  1. package/esm2022/lib/_collection/_common/attendance-card/attendance-card.component.mjs +55 -55
  2. package/esm2022/lib/_collection/_common/attendance-card/attendance-card.module.mjs +126 -126
  3. package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.component.mjs +32 -32
  4. package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.module.mjs +85 -85
  5. package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.component.mjs +100 -100
  6. package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.module.mjs +48 -48
  7. package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +120 -120
  8. package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +92 -92
  9. package/esm2022/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.mjs +48 -48
  10. package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.component.mjs +25 -25
  11. package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.module.mjs +41 -41
  12. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover-card.component.mjs +89 -89
  13. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.module.mjs +42 -42
  14. package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.servive.mjs +41 -41
  15. package/esm2022/lib/_collection/_common/connection-name/connection-name.component.mjs +78 -78
  16. package/esm2022/lib/_collection/_common/connection-name/connection-name.module.mjs +45 -45
  17. package/esm2022/lib/_collection/_common/connection-name/profile-v2.model.mjs +2 -2
  18. package/esm2022/lib/_collection/_common/content-progress/content-progress.component.mjs +70 -70
  19. package/esm2022/lib/_collection/_common/content-progress/content-progress.module.mjs +28 -28
  20. package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.mjs +187 -187
  21. package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.mjs +86 -86
  22. package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +31 -31
  23. package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +941 -941
  24. package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.mjs +183 -183
  25. package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.mjs +327 -327
  26. package/esm2022/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.mjs +297 -297
  27. package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +248 -225
  28. package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +1148 -1030
  29. package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.mjs +16 -16
  30. package/esm2022/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.mjs +43 -43
  31. package/esm2022/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.mjs +133 -133
  32. package/esm2022/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.mjs +66 -66
  33. package/esm2022/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.mjs +278 -278
  34. package/esm2022/lib/_collection/_common/content-toc/content-services/handle-claim.service.mjs +21 -21
  35. package/esm2022/lib/_collection/_common/content-toc/content-services/review-component-data.service.mjs +21 -21
  36. package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +847 -847
  37. package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +219 -219
  38. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +209 -209
  39. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.module.mjs +26 -26
  40. package/esm2022/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.mjs +19 -19
  41. package/esm2022/lib/_collection/_common/content-toc/pipes/truncate.pipe.mjs +23 -23
  42. package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs +113 -113
  43. package/esm2022/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.mjs +110 -110
  44. package/esm2022/lib/_collection/_common/display-content-type/display-content-type.component.mjs +26 -26
  45. package/esm2022/lib/_collection/_common/display-content-type/display-content-type.module.mjs +19 -19
  46. package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.mjs +67 -67
  47. package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.mjs +28 -28
  48. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.component.mjs +77 -77
  49. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.model.mjs +2 -2
  50. package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.module.mjs +61 -61
  51. package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.module.mjs +20 -20
  52. package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +67 -67
  53. package/esm2022/lib/_collection/_common/player-brief/player-brief.component.mjs +139 -139
  54. package/esm2022/lib/_collection/_common/player-brief/player-brief.module.mjs +71 -71
  55. package/esm2022/lib/_collection/_common/rating-summary/rating-summary.component.mjs +34 -34
  56. package/esm2022/lib/_collection/_common/rating-summary/rating-summary.module.mjs +56 -56
  57. package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.component.mjs +25 -25
  58. package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.module.mjs +37 -37
  59. package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.mjs +32 -32
  60. package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner.module.mjs +30 -30
  61. package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +38 -38
  62. package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.mjs +51 -51
  63. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.component.mjs +115 -115
  64. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.model.mjs +12 -12
  65. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.module.mjs +51 -51
  66. package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.service.mjs +61 -61
  67. package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.component.mjs +87 -87
  68. package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.module.mjs +36 -36
  69. package/esm2022/lib/_collection/_common/user-image/user-image.component.mjs +62 -62
  70. package/esm2022/lib/_collection/_common/user-image/user-image.module.mjs +24 -24
  71. package/esm2022/lib/_collection/btn-page-back/btn-page-back.component.mjs +192 -192
  72. package/esm2022/lib/_collection/btn-page-back/btn-page-back.module.mjs +44 -44
  73. package/esm2022/lib/_collection/btn-page-back/btn-page-back.service.mjs +99 -99
  74. package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.component.mjs +58 -58
  75. package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.module.mjs +67 -67
  76. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +112 -112
  77. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.model.mjs +2 -2
  78. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.module.mjs +69 -69
  79. package/esm2022/lib/_collection-api.mjs +57 -57
  80. package/esm2022/lib/_constants/widget-content.constants.mjs +19 -19
  81. package/esm2022/lib/_directives/tooltip.directive.mjs +68 -68
  82. package/esm2022/lib/_models/common.model.mjs +2 -2
  83. package/esm2022/lib/_models/error.model.mjs +2 -2
  84. package/esm2022/lib/_pipes/highlight.pipe.mjs +24 -24
  85. package/esm2022/lib/_services/rating.service.mjs +89 -89
  86. package/esm2022/lib/_services/samuhik-charcha.service.mjs +29 -29
  87. package/esm2022/lib/_services/viewer-route-util.mjs +103 -103
  88. package/esm2022/lib/_services/widget-content.model.mjs +247 -247
  89. package/esm2022/lib/_services/widget-content.service.mjs +594 -594
  90. package/esm2022/lib/_shared/translate-loader.factory.mjs +9 -9
  91. package/esm2022/lib/app-toc-lib.module.mjs +499 -499
  92. package/esm2022/lib/collection.config.mjs +161 -161
  93. package/esm2022/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.mjs +37 -37
  94. package/esm2022/lib/components/app-toc-banner/app-toc-banner.component.mjs +1436 -1436
  95. package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +475 -475
  96. package/esm2022/lib/components/app-toc-cios-home/consent-dialog.component.mjs +119 -119
  97. package/esm2022/lib/components/app-toc-cohorts/app-toc-cohorts.component.mjs +80 -80
  98. package/esm2022/lib/components/app-toc-content-card/app-toc-content-card.component.mjs +249 -249
  99. package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +39 -39
  100. package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +58 -58
  101. package/esm2022/lib/components/app-toc-home/app-toc-home.component.mjs +2229 -2229
  102. package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +2907 -2905
  103. package/esm2022/lib/components/app-toc-overview/app-toc-overview.component.mjs +157 -157
  104. package/esm2022/lib/components/app-toc-session-card/app-toc-session-card.component.mjs +48 -48
  105. package/esm2022/lib/components/app-toc-sessions/app-toc-sessions.component.mjs +47 -47
  106. package/esm2022/lib/components/app-toc-single-page/app-toc-single-page.component.mjs +766 -766
  107. package/esm2022/lib/components/completion-survey-form/completion-survey-form.component.mjs +243 -243
  108. package/esm2022/lib/components/create-batch-dialog/create-batch-dialog.component.mjs +116 -116
  109. package/esm2022/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.mjs +44 -44
  110. package/esm2022/lib/components/enroll-profile-form/enroll-profile-form.component.mjs +1838 -1838
  111. package/esm2022/lib/components/enroll-questionnaire/enroll-questionnaire.component.mjs +236 -236
  112. package/esm2022/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.mjs +213 -213
  113. package/esm2022/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.mjs +36 -36
  114. package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +256 -256
  115. package/esm2022/lib/components/survey-form-question/survey-form-question.component.mjs +133 -133
  116. package/esm2022/lib/components/survey-form-section/survey-form-section.component.mjs +36 -36
  117. package/esm2022/lib/models/app-toc-analytics.model.mjs +2 -2
  118. package/esm2022/lib/models/app-toc.model.mjs +38 -38
  119. package/esm2022/lib/models/auto-complete.model.mjs +2 -2
  120. package/esm2022/lib/models/card-content.model.mjs +13 -13
  121. package/esm2022/lib/models/content-strip-with-tabs.model.mjs +2 -2
  122. package/esm2022/lib/models/discussion-forum.model.mjs +14 -14
  123. package/esm2022/lib/models/goal.model.mjs +2 -2
  124. package/esm2022/lib/models/meta-tag.model.mjs +8 -8
  125. package/esm2022/lib/models/playlist.model.mjs +2 -2
  126. package/esm2022/lib/models/profile-revamp.model.mjs +2 -2
  127. package/esm2022/lib/models/rating.model.mjs +2 -2
  128. package/esm2022/lib/models/user-profile.model.mjs +21 -21
  129. package/esm2022/lib/resolvers/app-toc-cios-resolver.service.mjs +24 -24
  130. package/esm2022/lib/resolvers/app-toc-cios-user-enroll-resolver.service.mjs +24 -24
  131. package/esm2022/lib/resolvers/app-toc-content-read-resolver.service.mjs +60 -60
  132. package/esm2022/lib/resolvers/app-toc-ext-public-resolver.service.mjs +25 -25
  133. package/esm2022/lib/resolvers/app-toc-resolver.service.mjs +106 -106
  134. package/esm2022/lib/resolvers/config-resolver.service.mjs +25 -25
  135. package/esm2022/lib/resolvers/profile-resolver.service.mjs +25 -25
  136. package/esm2022/lib/resolvers/restricted-features-resolver.service.mjs +25 -25
  137. package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +51 -51
  138. package/esm2022/lib/routes/app-toc-home/app-toc-home.directive.mjs +16 -16
  139. package/esm2022/lib/routes/app-toc-home/app-toc-home.service.mjs +18 -18
  140. package/esm2022/lib/services/access-control.service.mjs +56 -56
  141. package/esm2022/lib/services/action.service.mjs +23 -23
  142. package/esm2022/lib/services/app-toc-v2.service.mjs +313 -243
  143. package/esm2022/lib/services/app-toc.service.mjs +1613 -1387
  144. package/esm2022/lib/services/certificate.service.mjs +69 -69
  145. package/esm2022/lib/services/discuss-utils.service.mjs +58 -58
  146. package/esm2022/lib/services/editor.service.mjs +34 -34
  147. package/esm2022/lib/services/load-check.service.mjs +21 -21
  148. package/esm2022/lib/services/loader.service.mjs +33 -33
  149. package/esm2022/lib/services/mobile-apps.service.mjs +67 -67
  150. package/esm2022/lib/services/netcore.service.mjs +56 -56
  151. package/esm2022/lib/services/nps-grid.service.mjs +31 -31
  152. package/esm2022/lib/services/otp.service.mjs +43 -43
  153. package/esm2022/lib/services/profile-v2.service.mjs +43 -43
  154. package/esm2022/lib/services/reset-ratings.service.mjs +19 -19
  155. package/esm2022/lib/services/resource-download-helper.service.mjs +64 -64
  156. package/esm2022/lib/services/timer.service.mjs +23 -23
  157. package/esm2022/lib/services/title-tag.service.mjs +71 -71
  158. package/esm2022/lib/services/user-profile.service.mjs +55 -55
  159. package/esm2022/lib/services/viewer-data.service.mjs +64 -64
  160. package/esm2022/lib/services/viewer-util.service.mjs +590 -500
  161. package/esm2022/lib/share-toc/share-toc/share-toc.component.mjs +291 -291
  162. package/esm2022/lib/share-toc/share-toc.module.mjs +119 -119
  163. package/esm2022/public-api.mjs +71 -70
  164. package/esm2022/sunbird-cb-toc.mjs +4 -4
  165. package/fesm2022/sunbird-cb-toc.mjs +24777 -24250
  166. package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
  167. package/index.d.ts +5 -5
  168. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +16 -16
  169. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +31 -31
  170. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +15 -15
  171. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +20 -20
  172. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +22 -22
  173. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +15 -15
  174. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +22 -22
  175. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +22 -22
  176. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +9 -9
  177. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +11 -11
  178. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +12 -12
  179. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +18 -18
  180. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +14 -14
  181. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +11 -11
  182. package/lib/_collection/_common/connection-name/connection-name.component.d.ts +17 -17
  183. package/lib/_collection/_common/connection-name/connection-name.module.d.ts +14 -14
  184. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +199 -199
  185. package/lib/_collection/_common/content-progress/content-progress.component.d.ts +16 -16
  186. package/lib/_collection/_common/content-progress/content-progress.module.d.ts +10 -10
  187. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +38 -38
  188. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +19 -19
  189. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +11 -11
  190. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +183 -183
  191. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +41 -41
  192. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +54 -54
  193. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +47 -47
  194. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +49 -48
  195. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +171 -154
  196. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +8 -8
  197. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +16 -16
  198. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +40 -40
  199. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +21 -21
  200. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +45 -45
  201. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +10 -10
  202. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +10 -10
  203. package/lib/_collection/_common/content-toc/content-toc.component.d.ts +128 -128
  204. package/lib/_collection/_common/content-toc/content-toc.module.d.ts +51 -51
  205. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +29 -29
  206. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +9 -9
  207. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +7 -7
  208. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +7 -7
  209. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +28 -28
  210. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +24 -24
  211. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +14 -14
  212. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +9 -9
  213. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +12 -12
  214. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +10 -10
  215. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +22 -22
  216. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +8 -8
  217. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +18 -18
  218. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +8 -8
  219. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +15 -15
  220. package/lib/_collection/_common/player-brief/player-brief.component.d.ts +35 -35
  221. package/lib/_collection/_common/player-brief/player-brief.module.d.ts +19 -19
  222. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +14 -14
  223. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +13 -13
  224. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +11 -11
  225. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +11 -11
  226. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +15 -15
  227. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +10 -10
  228. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +16 -16
  229. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +11 -11
  230. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +34 -34
  231. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +17 -17
  232. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +15 -15
  233. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +15 -15
  234. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +21 -21
  235. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +12 -12
  236. package/lib/_collection/_common/user-image/user-image.component.d.ts +21 -21
  237. package/lib/_collection/_common/user-image/user-image.module.d.ts +9 -9
  238. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +47 -47
  239. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +14 -14
  240. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +22 -22
  241. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +19 -19
  242. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +15 -15
  243. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +25 -25
  244. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +21 -21
  245. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +18 -18
  246. package/lib/_collection-api.d.ts +34 -34
  247. package/lib/_constants/widget-content.constants.d.ts +7 -7
  248. package/lib/_directives/tooltip.directive.d.ts +17 -17
  249. package/lib/_models/common.model.d.ts +3 -3
  250. package/lib/_models/error.model.d.ts +5 -5
  251. package/lib/_pipes/highlight.pipe.d.ts +10 -10
  252. package/lib/_services/rating.service.d.ts +18 -18
  253. package/lib/_services/samuhik-charcha.service.d.ts +13 -13
  254. package/lib/_services/viewer-route-util.d.ts +8 -8
  255. package/lib/_services/widget-content.model.d.ts +515 -515
  256. package/lib/_services/widget-content.service.d.ts +101 -101
  257. package/lib/_shared/translate-loader.factory.d.ts +7 -7
  258. package/lib/app-toc-lib.module.d.ts +88 -88
  259. package/lib/collection.config.d.ts +159 -159
  260. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +17 -17
  261. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +225 -225
  262. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +78 -78
  263. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +22 -22
  264. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +31 -31
  265. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +47 -47
  266. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +14 -14
  267. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +21 -21
  268. package/lib/components/app-toc-home/app-toc-home.component.d.ts +314 -314
  269. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +408 -408
  270. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +47 -47
  271. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +22 -22
  272. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +14 -14
  273. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +149 -149
  274. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +42 -42
  275. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +27 -27
  276. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +15 -15
  277. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +195 -195
  278. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +44 -44
  279. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +54 -54
  280. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +18 -18
  281. package/lib/components/public-survey-form/public-survey-form.component.d.ts +43 -43
  282. package/lib/components/survey-form-question/survey-form-question.component.d.ts +20 -20
  283. package/lib/components/survey-form-section/survey-form-section.component.d.ts +13 -13
  284. package/lib/models/app-toc-analytics.model.d.ts +152 -152
  285. package/lib/models/app-toc.model.d.ts +84 -84
  286. package/lib/models/auto-complete.model.d.ts +27 -27
  287. package/lib/models/card-content.model.d.ts +19 -19
  288. package/lib/models/content-strip-with-tabs.model.d.ts +44 -44
  289. package/lib/models/discussion-forum.model.d.ts +40 -40
  290. package/lib/models/goal.model.d.ts +22 -22
  291. package/lib/models/meta-tag.model.d.ts +6 -6
  292. package/lib/models/playlist.model.d.ts +23 -23
  293. package/lib/models/profile-revamp.model.d.ts +14 -14
  294. package/lib/models/rating.model.d.ts +17 -17
  295. package/lib/models/user-profile.model.d.ts +37 -37
  296. package/lib/resolvers/app-toc-cios-resolver.service.d.ts +12 -12
  297. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +12 -12
  298. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +16 -16
  299. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +12 -12
  300. package/lib/resolvers/app-toc-resolver.service.d.ts +16 -16
  301. package/lib/resolvers/config-resolver.service.d.ts +11 -11
  302. package/lib/resolvers/profile-resolver.service.d.ts +11 -11
  303. package/lib/resolvers/restricted-features-resolver.service.d.ts +11 -11
  304. package/lib/routes/app-toc-home/app-toc-home.component.d.ts +19 -19
  305. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +8 -8
  306. package/lib/routes/app-toc-home/app-toc-home.service.d.ts +8 -8
  307. package/lib/services/access-control.service.d.ts +29 -29
  308. package/lib/services/action.service.d.ts +9 -9
  309. package/lib/services/app-toc-v2.service.d.ts +16 -14
  310. package/lib/services/app-toc.service.d.ts +235 -177
  311. package/lib/services/certificate.service.d.ts +42 -42
  312. package/lib/services/discuss-utils.service.d.ts +33 -33
  313. package/lib/services/editor.service.d.ts +17 -17
  314. package/lib/services/load-check.service.d.ts +8 -8
  315. package/lib/services/loader.service.d.ts +16 -16
  316. package/lib/services/mobile-apps.service.d.ts +38 -38
  317. package/lib/services/netcore.service.d.ts +33 -33
  318. package/lib/services/nps-grid.service.d.ts +15 -15
  319. package/lib/services/otp.service.d.ts +20 -20
  320. package/lib/services/profile-v2.service.d.ts +20 -20
  321. package/lib/services/reset-ratings.service.d.ts +8 -8
  322. package/lib/services/resource-download-helper.service.d.ts +29 -29
  323. package/lib/services/timer.service.d.ts +9 -9
  324. package/lib/services/title-tag.service.d.ts +21 -21
  325. package/lib/services/user-profile.service.d.ts +24 -24
  326. package/lib/services/viewer-data.service.d.ts +58 -58
  327. package/lib/services/viewer-util.service.d.ts +76 -62
  328. package/lib/share-toc/share-toc/share-toc.component.d.ts +56 -56
  329. package/lib/share-toc/share-toc.module.d.ts +32 -32
  330. package/package.json +1 -1
  331. package/public-api.d.ts +56 -55
@@ -1,291 +1,291 @@
1
- import { Component, Input, ViewChild, EventEmitter, Output } from '@angular/core';
2
- import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
3
- import { ENTER } from '@angular/cdk/keycodes';
4
- import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
- import { WsEvents } from '@sunbird-cb/utils-v2';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../_collection/_common/user-autocomplete/user-autocomplete.service";
8
- import * as i2 from "@sunbird-cb/utils-v2";
9
- import * as i3 from "@ngx-translate/core";
10
- import * as i4 from "@angular/material/legacy-snack-bar";
11
- import * as i5 from "../../services/app-toc.service";
12
- import * as i6 from "@angular/common";
13
- import * as i7 from "@angular/material/icon";
14
- import * as i8 from "@angular/material/legacy-button";
15
- import * as i9 from "@angular/material/legacy-chips";
16
- import * as i10 from "@angular/material/legacy-progress-spinner";
17
- import * as i11 from "@angular/material/legacy-form-field";
18
- import * as i12 from "@angular/material/legacy-core";
19
- import * as i13 from "@angular/material/legacy-autocomplete";
20
- import * as i14 from "@angular/forms";
21
- export class ShareTocComponent {
22
- constructor(userAutoComplete, langtranslations, translate, snackBar, configSvc, tocSvc, events) {
23
- this.userAutoComplete = userAutoComplete;
24
- this.langtranslations = langtranslations;
25
- this.translate = translate;
26
- this.snackBar = snackBar;
27
- this.configSvc = configSvc;
28
- this.tocSvc = tocSvc;
29
- this.events = events;
30
- this.selectable = true;
31
- this.removable = true;
32
- this.addOnBlur = true;
33
- this.separatorKeysCodes = [ENTER];
34
- this.userCtrl = new UntypedFormControl('');
35
- this.users = [];
36
- this.allUsers = [];
37
- this.maxEmailsLimit = 30;
38
- this.showLoader = false;
39
- this.contentLink = '';
40
- this.resetEnableShare = new EventEmitter();
41
- this.langtranslations.languageSelectedObservable.subscribe(() => {
42
- if (localStorage.getItem('websiteLanguage')) {
43
- this.translate.setDefaultLang('en');
44
- const lang = localStorage.getItem('websiteLanguage');
45
- this.translate.use(lang);
46
- }
47
- });
48
- this.shareForm = new UntypedFormGroup({
49
- review: new UntypedFormControl(null, [Validators.minLength(1), Validators.maxLength(2000)]),
50
- });
51
- this.userCtrl.valueChanges.pipe(debounceTime(200), distinctUntilChanged()).subscribe((res) => {
52
- this.filteredUsers = [];
53
- if (res) {
54
- this.getUsersToShare(res);
55
- }
56
- });
57
- }
58
- ngOnInit() {
59
- }
60
- getUsersToShare(queryStr) {
61
- this.showLoader = true;
62
- this.userAutoComplete.searchUser(queryStr, this.rootOrgId).subscribe(data => {
63
- if (data.result && data.result.response) {
64
- this.apiResponse = data.result.response.content;
65
- let name = '';
66
- let pEmail = '';
67
- this.apiResponse.forEach((apiData) => {
68
- apiData.firstName.split(' ').forEach((d) => {
69
- name = name + d.substr(0, 1).toUpperCase();
70
- });
71
- if (apiData.profileDetails && apiData.profileDetails.personalDetails) {
72
- pEmail = apiData.profileDetails.personalDetails.primaryEmail;
73
- if (!this.allUsers.filter(user => user.email.toLowerCase().includes(pEmail.toLowerCase())).length) {
74
- this.allUsers.push({
75
- maskedEmail: apiData.maskedEmail,
76
- id: apiData.identifier,
77
- name: apiData.firstName,
78
- iconText: name,
79
- email: pEmail,
80
- });
81
- }
82
- }
83
- });
84
- this.showLoader = false;
85
- }
86
- if (this.allUsers.length === 0) {
87
- this.filteredUsers = [];
88
- }
89
- this.filteredUsers = this.filterSharedUsers(queryStr);
90
- });
91
- }
92
- translateLabels(label, type, subtype) {
93
- return this.langtranslations.translateActualLabel(label, type, subtype);
94
- }
95
- add(event) {
96
- if (event.value && this.matAutocomplete && !this.matAutocomplete.isOpen) {
97
- const input = event.input;
98
- const value = event.value;
99
- if (this.users.length === this.maxEmailsLimit) {
100
- this.openSnackbar(this.translateLabels('maxLimit', 'contentSharing', ''));
101
- return;
102
- }
103
- if (this.users.includes(value.trim())) {
104
- this.openSnackbar(this.translateLabels('dulicateEmail', 'contentSharing', ''));
105
- return;
106
- }
107
- // tslint:disable-next-line: max-line-length
108
- const ePattern = new RegExp(/^(?!.*\.\.)(?!.*\._)(?!.*\._\.)(?!.*\.\.$)(?!.*\.$)[a-zA-Z0-9_]+(?:\.[a-zA-Z0-9_]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/);
109
- if (ePattern.test(value)) {
110
- if ((value || '').trim()) {
111
- this.users.push(value.trim());
112
- }
113
- if (input) {
114
- input.value = '';
115
- }
116
- this.userCtrl.setValue('');
117
- const el = document.getElementsByClassName('mat-chip-list-wrapper');
118
- if (el != null) {
119
- setTimeout(() => {
120
- el[0].scrollTop = el[0].scrollHeight;
121
- }, 200);
122
- }
123
- }
124
- else {
125
- this.openSnackbar(this.translateLabels('invalidEmail', 'contentSharing', ''));
126
- return;
127
- }
128
- }
129
- }
130
- remove(user) {
131
- const index = this.users.indexOf(user);
132
- if (index >= 0) {
133
- this.users.splice(index, 1);
134
- }
135
- }
136
- selected(event) {
137
- if (this.users.length === this.maxEmailsLimit) {
138
- this.openSnackbar(this.translateLabels('maxLimit', 'contentSharing', ''));
139
- return;
140
- }
141
- if (this.users.includes(event.option.value)) {
142
- this.openSnackbar(this.translateLabels('dulicateUser', 'contentSharing', ''));
143
- return;
144
- }
145
- this.users.push(event.option.value);
146
- if (this.userInput) {
147
- this.userInput.nativeElement.value = '';
148
- }
149
- this.userCtrl.setValue('');
150
- const el = document.getElementsByClassName('mat-chip-list-wrapper');
151
- if (el != null) {
152
- setTimeout(() => {
153
- el[0].scrollTop = el[0].scrollHeight;
154
- }, 200);
155
- }
156
- }
157
- filterSharedUsers(value) {
158
- if (value) {
159
- const filterValue = value.toLowerCase();
160
- return this.allUsers.filter(user => user.name.toLowerCase().includes(filterValue));
161
- }
162
- return [];
163
- }
164
- submitSharing() {
165
- let courseId = '';
166
- let courseName = '';
167
- let coursePosterImageUrl = '';
168
- let courseProvider = '';
169
- let primaryCategory = '';
170
- let courseLink = '';
171
- if (this.content) {
172
- courseProvider = this.content.organisation && this.content.organisation[0]
173
- || this.content.contentPartner && this.content.contentPartner.partnerCode
174
- || this.content.source;
175
- courseId = this.baseContentReadData ? this.baseContentReadData.identifier : this.content.identifier || this.content.contentId,
176
- courseName = this.content.name,
177
- coursePosterImageUrl = this.content.posterImage ||
178
- this.content.appIcon || 'assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg',
179
- primaryCategory = this.content.primaryCategory || this.content.contentId ? 'External Course' : '',
180
- courseLink = this.contentLink || '';
181
- }
182
- let language = '';
183
- const urlParams = new URLSearchParams(window.location.search);
184
- if (urlParams.has('ML')) {
185
- language = urlParams.get('ML') || '';
186
- }
187
- const obj = {
188
- request: {
189
- courseId,
190
- courseName,
191
- coursePosterImageUrl,
192
- courseProvider,
193
- primaryCategory,
194
- courseLink,
195
- recipients: '',
196
- ...(language && { language }),
197
- },
198
- };
199
- const recipients = [];
200
- this.users.forEach((selectedUser) => {
201
- if (selectedUser.includes('@') && selectedUser.includes('.')) {
202
- recipients.push({ email: selectedUser });
203
- }
204
- else {
205
- const selectedUserObj = this.allUsers.filter(user => user.name === selectedUser);
206
- if (selectedUserObj.length) {
207
- recipients.push({ userId: selectedUserObj[0].id, email: selectedUserObj[0].email });
208
- }
209
- }
210
- });
211
- if (recipients.length) {
212
- obj.request.recipients = recipients;
213
- this.tocSvc.shareContent(obj).subscribe(result => {
214
- if (result.responseCode === 'OK') {
215
- this.openSnackbar(this.translateLabels('success', 'contentSharing', ''));
216
- }
217
- this.users = [];
218
- this.resetEnableShareFlag();
219
- this.filteredUsers = [];
220
- this.allUsers = [];
221
- this.userCtrl.setValue('');
222
- }, error => {
223
- // tslint:disable
224
- console.log(error);
225
- this.openSnackbar(this.translateLabels('error', 'contentSharing', ''));
226
- });
227
- }
228
- }
229
- onClose() {
230
- this.resetEnableShareFlag();
231
- this.users = [];
232
- this.filteredUsers = [];
233
- this.allUsers = [];
234
- this.userCtrl.setValue('');
235
- this.raiseTelemetry('shareClose');
236
- }
237
- copyToClipboard() {
238
- const textArea = document.createElement('textarea');
239
- textArea.value = window.location.href;
240
- document.body.appendChild(textArea);
241
- textArea.select();
242
- document.execCommand('copy');
243
- document.body.removeChild(textArea);
244
- this.openSnackbar(this.translateLabels('linkCopied', 'contentSharing', ''));
245
- this.raiseTelemetry('copyToClipboard');
246
- }
247
- raiseTelemetry(subType) {
248
- this.events.raiseInteractTelemetry({
249
- type: 'click',
250
- subType: subType,
251
- id: this.content ? this.content.identifier : '',
252
- }, {
253
- id: this.content ? this.content.identifier : '',
254
- type: this.content ? this.content.primaryCategory : '',
255
- }, {
256
- pageIdExt: `btn-${subType}`,
257
- module: WsEvents.EnumTelemetrymodules.CONTENT,
258
- });
259
- }
260
- openSnackbar(primaryMsg, duration = 5000) {
261
- this.snackBar.open(primaryMsg, 'X', {
262
- duration,
263
- });
264
- }
265
- resetEnableShareFlag() {
266
- this.resetEnableShare.emit(false);
267
- }
268
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShareTocComponent, deps: [{ token: i1.UserAutocompleteService }, { token: i2.MultilingualTranslationsService }, { token: i3.TranslateService }, { token: i4.MatLegacySnackBar }, { token: i2.ConfigurationsService }, { token: i5.AppTocService }, { token: i2.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
269
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ShareTocComponent, selector: "ws-app-share-toc", inputs: { rootOrgId: "rootOrgId", content: "content", contentLink: "contentLink", baseContentReadData: "baseContentReadData" }, outputs: { resetEnableShare: "resetEnableShare" }, viewQueries: [{ propertyName: "userInput", first: true, predicate: ["userInput"], descendants: true }, { propertyName: "matAutocomplete", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<div class=\"share-container\">\n <div *ngIf=\"showLoader\" class=\"text-center my-2 loader\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n <div class=\"cursor-pointer close-share-dialog\"><mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon></div>\n <div class=\"share-modal\">\n <div class=\"karmasahayogi-icon\"><img alt=\"karmasahayogi-icon\" src=\"/assets/icons/KarmaSahayogi.svg\"></div>\n <div class=\"content-div\">\n <div class=\"triangle-left hidden md:block\"></div>\n <div class=\"contnet\">\n <section class=\"w-full flex align-center justify-between \">\n <div class=\"mb-2\">\n <h2 class=\"mat-headline margin-remove-bottom ws-mat-black-text\">{{'contentSharing.header' | translate}}</h2>\n </div>\n </section>\n <form [formGroup]=\"shareForm\">\n <div class=\"mat-body-2\">\n <div class=\"md-5\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-chip-list #chipList aria-label=\"user selection\" appearance=\"outline\">\n <mat-chip\n *ngFor=\"let user of users\"\n [selectable]=\"selectable\"\n [removable]=\"removable\"\n (removed)=\"remove(user)\">\n {{user}}\n <mat-icon matChipRemove *ngIf=\"removable\">close</mat-icon>\n </mat-chip>\n <input\n tabindex=\"-1\"\n class=\"inputTextBox\"\n placeholder=\"{{users.length === 0 ? translateLabels('placehoderText', 'contentSharing') : ''}}\"\n #userInput\n formControlName=\"review\"\n [formControl]=\"userCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"add($event)\">\n </mat-chip-list>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let user of filteredUsers\" [value]=\"user.name\">\n <div class=\"flex\">\n <div class=\"iconDiv\">\n <span class=\"iconText\">{{user.iconText.substring(0,2)}}</span>\n </div>\n <div>\n <div>{{user.name}}</div>\n <div class=\"emailText\">{{user.maskedEmail}}</div>\n </div>\n </div>\n </mat-option>\n </mat-autocomplete>\n <mat-hint align=\"start\" class=\"left-over-emails\">{{'contentSharing.note' | translate}}</mat-hint>\n <mat-hint align=\"end\" class=\"left-over-emails\">{{ users.length }} /{{maxEmailsLimit}} {{'contentSharing.remaingEmails' | translate}}</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"flex mt-5\">\n <div class=\"flex flex-1 flex-end\">\n <span class=\"copy-link-btn cursor-pointer\" (click)=\"copyToClipboard()\">{{'contentSharing.copyLink' | translate}} &nbsp;&nbsp;<mat-icon >link</mat-icon></span>\n <button mat-stroked-button type=\"submit\"\n class=\"text-white flex-auto-display send-btn\"\n [ngClass]=\"(userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit) ? 'gray-background' : 'active-background' \"\n [disabled]=\"userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit\"\n (click)=\"submitSharing()\">\n {{'contentSharing.send' | translate}} &nbsp; <mat-icon>send</mat-icon>\n </button>\n </div>\n </div>\n\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n", styles: [".share-container{position:fixed;height:100vh;background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.share-modal{display:flex;align-items:center;justify-content:center;height:inherit;width:inherit}.karmasahayogi-icon{position:absolute;bottom:-5px;left:calc(50% - 464px)}.triangle-left{transform:translateY(100%);position:absolute;bottom:28%;left:-23px;width:0;height:0;border-top:25px solid transparent;border-right:50px solid #ffffff;border-bottom:25px solid transparent}.contnet{background-color:#fff;width:613px;border-radius:10px;padding:15px}.content-div{position:relative}.copy-link-btn{display:flex;align-items:center;margin-right:20px;color:red;color:#0074b6!important;font-weight:600}.copy-link-btn:hover{background-color:none!important}.send-btn{border-radius:20px}.send-btn .mat-icon{margin-bottom:2.5px}::ng-deep .mat-chip-list-wrapper{height:100px;overflow:auto;display:block!important;scroll-behavior:smooth}.iconText{border-radius:50%;background-color:#000;color:#fff;width:30px;display:inline-block;text-align:center;height:30px;display:flex;align-items:center;justify-content:center}.iconDiv{margin-right:7px}.emailText{opacity:.6}button:disabled{pointer-events:none;opacity:.5;color:#000}::ng-deep .mat-autocomplete-panel{z-index:99999}::ng-deep .cdk-overlay-pane{z-index:9999!important}::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:5px 2px!important}::ng-deep .close-icon{background-color:#000;color:#fff;border-radius:15px;padding:3px}::ng-deep .mat-chip-input{padding-bottom:9px!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip{color:#0074b6!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip mat-icon{color:#0074b6!important}::ng-deep .inputTextBox{width:95%!important;overflow-x:hidden}.close-share-dialog{position:absolute;right:30px;top:30px}.left-over-emails{font-weight:600}.loader{position:absolute;top:42%;left:45%;z-index:1000}@media (max-width: 768px){.content-div{width:100%}.contnet{width:unset;margin-bottom:18%}.left-over-emails{display:none}.karmasahayogi-icon{left:8%;bottom:20%}.share-modal{align-items:self-end}}@media only screen and (min-device-width: 820px) and (max-device-width: 1180px){.karmasahayogi-icon{left:calc(50% - 387px)}.content{width:500px}}@media only screen and (min-device-width: 768px) and (max-device-width: 819px){.triangle-left{display:none}}.gray-background{background-color:#000!important;color:#fff!important}.gray-background[disabled]{pointer-events:none;opacity:.5}.active-background{background-color:#1b4ca1!important;color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i9.MatLegacyChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i9.MatLegacyChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i9.MatLegacyChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i10.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLegacyHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i12.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i13.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i13.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i14.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i14.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i14.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i14.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i14.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
270
- }
271
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShareTocComponent, decorators: [{
272
- type: Component,
273
- args: [{ selector: 'ws-app-share-toc', template: "<div class=\"share-container\">\n <div *ngIf=\"showLoader\" class=\"text-center my-2 loader\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n <div class=\"cursor-pointer close-share-dialog\"><mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon></div>\n <div class=\"share-modal\">\n <div class=\"karmasahayogi-icon\"><img alt=\"karmasahayogi-icon\" src=\"/assets/icons/KarmaSahayogi.svg\"></div>\n <div class=\"content-div\">\n <div class=\"triangle-left hidden md:block\"></div>\n <div class=\"contnet\">\n <section class=\"w-full flex align-center justify-between \">\n <div class=\"mb-2\">\n <h2 class=\"mat-headline margin-remove-bottom ws-mat-black-text\">{{'contentSharing.header' | translate}}</h2>\n </div>\n </section>\n <form [formGroup]=\"shareForm\">\n <div class=\"mat-body-2\">\n <div class=\"md-5\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-chip-list #chipList aria-label=\"user selection\" appearance=\"outline\">\n <mat-chip\n *ngFor=\"let user of users\"\n [selectable]=\"selectable\"\n [removable]=\"removable\"\n (removed)=\"remove(user)\">\n {{user}}\n <mat-icon matChipRemove *ngIf=\"removable\">close</mat-icon>\n </mat-chip>\n <input\n tabindex=\"-1\"\n class=\"inputTextBox\"\n placeholder=\"{{users.length === 0 ? translateLabels('placehoderText', 'contentSharing') : ''}}\"\n #userInput\n formControlName=\"review\"\n [formControl]=\"userCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"add($event)\">\n </mat-chip-list>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let user of filteredUsers\" [value]=\"user.name\">\n <div class=\"flex\">\n <div class=\"iconDiv\">\n <span class=\"iconText\">{{user.iconText.substring(0,2)}}</span>\n </div>\n <div>\n <div>{{user.name}}</div>\n <div class=\"emailText\">{{user.maskedEmail}}</div>\n </div>\n </div>\n </mat-option>\n </mat-autocomplete>\n <mat-hint align=\"start\" class=\"left-over-emails\">{{'contentSharing.note' | translate}}</mat-hint>\n <mat-hint align=\"end\" class=\"left-over-emails\">{{ users.length }} /{{maxEmailsLimit}} {{'contentSharing.remaingEmails' | translate}}</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"flex mt-5\">\n <div class=\"flex flex-1 flex-end\">\n <span class=\"copy-link-btn cursor-pointer\" (click)=\"copyToClipboard()\">{{'contentSharing.copyLink' | translate}} &nbsp;&nbsp;<mat-icon >link</mat-icon></span>\n <button mat-stroked-button type=\"submit\"\n class=\"text-white flex-auto-display send-btn\"\n [ngClass]=\"(userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit) ? 'gray-background' : 'active-background' \"\n [disabled]=\"userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit\"\n (click)=\"submitSharing()\">\n {{'contentSharing.send' | translate}} &nbsp; <mat-icon>send</mat-icon>\n </button>\n </div>\n </div>\n\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n", styles: [".share-container{position:fixed;height:100vh;background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.share-modal{display:flex;align-items:center;justify-content:center;height:inherit;width:inherit}.karmasahayogi-icon{position:absolute;bottom:-5px;left:calc(50% - 464px)}.triangle-left{transform:translateY(100%);position:absolute;bottom:28%;left:-23px;width:0;height:0;border-top:25px solid transparent;border-right:50px solid #ffffff;border-bottom:25px solid transparent}.contnet{background-color:#fff;width:613px;border-radius:10px;padding:15px}.content-div{position:relative}.copy-link-btn{display:flex;align-items:center;margin-right:20px;color:red;color:#0074b6!important;font-weight:600}.copy-link-btn:hover{background-color:none!important}.send-btn{border-radius:20px}.send-btn .mat-icon{margin-bottom:2.5px}::ng-deep .mat-chip-list-wrapper{height:100px;overflow:auto;display:block!important;scroll-behavior:smooth}.iconText{border-radius:50%;background-color:#000;color:#fff;width:30px;display:inline-block;text-align:center;height:30px;display:flex;align-items:center;justify-content:center}.iconDiv{margin-right:7px}.emailText{opacity:.6}button:disabled{pointer-events:none;opacity:.5;color:#000}::ng-deep .mat-autocomplete-panel{z-index:99999}::ng-deep .cdk-overlay-pane{z-index:9999!important}::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:5px 2px!important}::ng-deep .close-icon{background-color:#000;color:#fff;border-radius:15px;padding:3px}::ng-deep .mat-chip-input{padding-bottom:9px!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip{color:#0074b6!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip mat-icon{color:#0074b6!important}::ng-deep .inputTextBox{width:95%!important;overflow-x:hidden}.close-share-dialog{position:absolute;right:30px;top:30px}.left-over-emails{font-weight:600}.loader{position:absolute;top:42%;left:45%;z-index:1000}@media (max-width: 768px){.content-div{width:100%}.contnet{width:unset;margin-bottom:18%}.left-over-emails{display:none}.karmasahayogi-icon{left:8%;bottom:20%}.share-modal{align-items:self-end}}@media only screen and (min-device-width: 820px) and (max-device-width: 1180px){.karmasahayogi-icon{left:calc(50% - 387px)}.content{width:500px}}@media only screen and (min-device-width: 768px) and (max-device-width: 819px){.triangle-left{display:none}}.gray-background{background-color:#000!important;color:#fff!important}.gray-background[disabled]{pointer-events:none;opacity:.5}.active-background{background-color:#1b4ca1!important;color:#fff!important}\n"] }]
274
- }], ctorParameters: function () { return [{ type: i1.UserAutocompleteService }, { type: i2.MultilingualTranslationsService }, { type: i3.TranslateService }, { type: i4.MatLegacySnackBar }, { type: i2.ConfigurationsService }, { type: i5.AppTocService }, { type: i2.EventService }]; }, propDecorators: { rootOrgId: [{
275
- type: Input
276
- }], content: [{
277
- type: Input
278
- }], contentLink: [{
279
- type: Input
280
- }], userInput: [{
281
- type: ViewChild,
282
- args: ['userInput']
283
- }], matAutocomplete: [{
284
- type: ViewChild,
285
- args: ['auto']
286
- }], resetEnableShare: [{
287
- type: Output
288
- }], baseContentReadData: [{
289
- type: Input
290
- }] } });
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtdG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9zaGFyZS10b2Mvc2hhcmUtdG9jL3NoYXJlLXRvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvc2hhcmUtdG9jL3NoYXJlLXRvYy9zaGFyZS10b2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkUsT0FBTyxFQUFpRCxRQUFRLEVBQXlCLE1BQU0sc0JBQXNCLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjckgsTUFBTSxPQUFPLGlCQUFpQjtJQXNCNUIsWUFBb0IsZ0JBQXlDLEVBQ3pDLGdCQUFpRCxFQUNqRCxTQUEyQixFQUMzQixRQUFxQixFQUN0QixTQUFnQyxFQUMvQixNQUFxQixFQUNyQixNQUFvQjtRQU5wQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFDakQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQWM7UUExQnZDLGVBQVUsR0FBRyxJQUFJLENBQUE7UUFDakIsY0FBUyxHQUFHLElBQUksQ0FBQTtRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLHVCQUFrQixHQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEMsYUFBUSxHQUFHLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUE7UUFFckMsVUFBSyxHQUFVLEVBQUUsQ0FBQTtRQUNqQixhQUFRLEdBQVUsRUFBRSxDQUFBO1FBSXBCLG1CQUFjLEdBQUcsRUFBRSxDQUFBO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUE7UUFHVCxnQkFBVyxHQUFRLEVBQUUsQ0FBQTtRQUdwQixxQkFBZ0IsR0FBUSxJQUFJLFlBQVksRUFBRSxDQUFBO1FBU25ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlELElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDbkMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBRSxDQUFBO2dCQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ3BDLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzVGLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDN0IsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxDQUN2QixDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFBO1lBQ3ZCLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFnQjtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQTtRQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFFLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUE7Z0JBQy9DLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQTtnQkFDYixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtvQkFDeEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7d0JBQzlDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7b0JBQzVDLENBQUMsQ0FBQyxDQUFBO29CQUNGLElBQUksT0FBTyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRTt3QkFDcEUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQTt3QkFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7NEJBQ2pHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQjtnQ0FDRSxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0NBQ2hDLEVBQUUsRUFBRSxPQUFPLENBQUMsVUFBVTtnQ0FDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxTQUFTO2dDQUN2QixRQUFRLEVBQUUsSUFBSTtnQ0FDZCxLQUFLLEVBQUUsTUFBTTs2QkFDZCxDQUNGLENBQUE7eUJBQ0Y7cUJBQ0Y7Z0JBQ0gsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7YUFDeEI7WUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUE7YUFDeEI7WUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYSxFQUFFLElBQVMsRUFBRSxPQUFhO1FBQ3JELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDekUsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUF3QjtRQUMxQixJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQ3ZFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUE7WUFDekIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQTtZQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtnQkFDekUsT0FBTTthQUNQO1lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO2dCQUM5RSxPQUFNO2FBQ1A7WUFDRCw0Q0FBNEM7WUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsK0tBQStLLENBQUMsQ0FBQTtZQUM1TSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2lCQUM5QjtnQkFDRCxJQUFJLEtBQUssRUFBRTtvQkFDVCxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQTtpQkFDakI7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQzFCLE1BQU0sRUFBRSxHQUFRLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO2dCQUN4RSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7b0JBQ2QsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUE7b0JBQ3RDLENBQUMsRUFBVSxHQUFHLENBQUMsQ0FBQTtpQkFDaEI7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBQzdFLE9BQU07YUFDUDtTQUNGO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFZO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXRDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtTQUM1QjtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBbUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUN6RSxPQUFNO1NBQ1A7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzdFLE9BQU07U0FDUDtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbkMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7U0FDeEM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMxQixNQUFNLEVBQUUsR0FBUSxRQUFRLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUN4RSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDZCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQTtZQUN0QyxDQUFDLEVBQVUsR0FBRyxDQUFDLENBQUE7U0FDaEI7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYTtRQUM3QixJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUN2QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtTQUNuRjtRQUNELE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDakIsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ25CLElBQUksb0JBQW9CLEdBQUcsRUFBRSxDQUFBO1FBQzdCLElBQUksY0FBYyxHQUFHLEVBQUUsQ0FBQTtRQUN2QixJQUFJLGVBQWUsR0FBRyxFQUFFLENBQUE7UUFDeEIsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7bUJBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFdBQVc7bUJBQ3RFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFBO1lBQ3RCLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDN0gsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDOUIsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO29CQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSywyREFBMkQ7Z0JBQ3JGLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pHLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQTtTQUN0QztRQUNELElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNqQixNQUFNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzdELElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QixRQUFRLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7U0FDckM7UUFDRCxNQUFNLEdBQUcsR0FBRztZQUNWLE9BQU8sRUFBRTtnQkFDUCxRQUFRO2dCQUNSLFVBQVU7Z0JBQ1Ysb0JBQW9CO2dCQUNwQixjQUFjO2dCQUNkLGVBQWU7Z0JBQ2YsVUFBVTtnQkFDVixVQUFVLEVBQUUsRUFBRTtnQkFDZCxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUU7YUFDL0I7U0FDRixDQUFBO1FBQ0QsTUFBTSxVQUFVLEdBQVEsRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBaUIsRUFBRSxFQUFFO1lBQ3ZDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM1RCxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7YUFDekM7aUJBQU07Z0JBQ0wsTUFBTSxlQUFlLEdBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFBO2dCQUNyRixJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUU7b0JBQzFCLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7aUJBQ3BGO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNyQixHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMvQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO29CQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7aUJBQ3pFO2dCQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFBO2dCQUNmLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO2dCQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQTtnQkFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7Z0JBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQzVCLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDVCxpQkFBaUI7Z0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUN0RSxDQUFDLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQTtRQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ25ELFFBQVEsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUE7UUFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDbkMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ2pCLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDNUIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBQyxnQkFBZ0IsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3pFLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQVk7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDaEM7WUFDRSxJQUFJLEVBQUUsT0FBTztZQUNiLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUNoRCxFQUNEO1lBQ0UsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9DLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN2RCxFQUNEO1lBQ0UsU0FBUyxFQUFFLE9BQU8sT0FBTyxFQUFFO1lBQzNCLE1BQU0sRUFBRSxRQUFRLENBQUMsb0JBQW9CLENBQUMsT0FBTztTQUM5QyxDQUNGLENBQUE7SUFDSCxDQUFDO0lBQ08sWUFBWSxDQUFDLFVBQWtCLEVBQUUsV0FBbUIsSUFBSTtRQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ2xDLFFBQVE7U0FDVCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0FuUlUsaUJBQWlCO21HQUFqQixpQkFBaUIsNmFDbEI5Qiw2MkpBNkVBOzs0RkQzRGEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGtCQUFrQjtzVEFtQmxCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ2tCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSCxlQUFlO3NCQUFqQyxTQUFTO3VCQUFDLE1BQU07Z0JBQ1AsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJ1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSwgRXZlbnRTZXJ2aWNlLCBXc0V2ZW50cywgQ29uZmlndXJhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQHN1bmJpcmQtY2IvdXRpbHMtdjInXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFwcFRvY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtdG9jLnNlcnZpY2UnXG5cblxuaW1wb3J0IHsgTWF0TGVnYWN5QXV0b2NvbXBsZXRlIGFzIE1hdEF1dG9jb21wbGV0ZSwgTWF0TGVnYWN5QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCBhcyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWF1dG9jb21wbGV0ZSdcbmltcG9ydCB7IE1hdExlZ2FjeUNoaXBJbnB1dEV2ZW50IGFzIE1hdENoaXBJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWNoaXBzJ1xuaW1wb3J0IHsgTWF0TGVnYWN5U25hY2tCYXIgYXMgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktc25hY2stYmFyJ1xuaW1wb3J0IHsgVXNlckF1dG9jb21wbGV0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fY29sbGVjdGlvbi9fY29tbW9uL3VzZXItYXV0b2NvbXBsZXRlL3VzZXItYXV0b2NvbXBsZXRlLnNlcnZpY2UnXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy1hcHAtc2hhcmUtdG9jJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLXRvYy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLXRvYy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZVRvY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICBzaGFyZUZvcm06IFVudHlwZWRGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgIHNlbGVjdGFibGUgPSB0cnVlXG4gICByZW1vdmFibGUgPSB0cnVlXG4gICBhZGRPbkJsdXIgPSB0cnVlXG4gICBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSXVxuICAgdXNlckN0cmwgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKVxuICAgZmlsdGVyZWRVc2VyczogYW55IFtdfCB1bmRlZmluZWRcbiAgIHVzZXJzOiBhbnlbXSA9IFtdXG4gICBhbGxVc2VyczogYW55W10gPSBbXVxuICAgYXBpUmVzcG9uc2U6IGFueVxuICAgY291cnNlRGV0YWlsczogYW55XG4gICB1c2VyUHJvZmlsZTogYW55XG4gICBtYXhFbWFpbHNMaW1pdCA9IDMwXG4gICBzaG93TG9hZGVyID0gZmFsc2VcbiAgIEBJbnB1dCgpIHJvb3RPcmdJZDogYW55XG4gICBASW5wdXQoKSBjb250ZW50OiBhbnlcbiAgIEBJbnB1dCgpIGNvbnRlbnRMaW5rOiBhbnkgPSAnJ1xuICAgQFZpZXdDaGlsZCgndXNlcklucHV0JykgdXNlcklucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkXG4gICBAVmlld0NoaWxkKCdhdXRvJykgbWF0QXV0b2NvbXBsZXRlOiBNYXRBdXRvY29tcGxldGUgfCB1bmRlZmluZWRcbiAgIEBPdXRwdXQoKSByZXNldEVuYWJsZVNoYXJlOiBhbnkgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgIEBJbnB1dCgpIGJhc2VDb250ZW50UmVhZERhdGE6IGFueSBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyQXV0b0NvbXBsZXRlOiBVc2VyQXV0b2NvbXBsZXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsYW5ndHJhbnNsYXRpb25zOiBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgICAgICAgICAgIHB1YmxpYyBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0b2NTdmM6IEFwcFRvY1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRzOiBFdmVudFNlcnZpY2UpIHtcbiAgICB0aGlzLmxhbmd0cmFuc2xhdGlvbnMubGFuZ3VhZ2VTZWxlY3RlZE9ic2VydmFibGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykpIHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcoJ2VuJylcbiAgICAgICAgY29uc3QgbGFuZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSFcbiAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLnNoYXJlRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICAgIHJldmlldzogbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwMDApXSksXG4gICAgfSlcbiAgICB0aGlzLnVzZXJDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSBbXVxuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLmdldFVzZXJzVG9TaGFyZShyZXMpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgZ2V0VXNlcnNUb1NoYXJlKHF1ZXJ5U3RyOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlXG4gICAgdGhpcy51c2VyQXV0b0NvbXBsZXRlLnNlYXJjaFVzZXIocXVlcnlTdHIsIHRoaXMucm9vdE9yZ0lkKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICBpZiAoZGF0YS5yZXN1bHQgJiYgZGF0YS5yZXN1bHQucmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy5hcGlSZXNwb25zZSA9IGRhdGEucmVzdWx0LnJlc3BvbnNlLmNvbnRlbnRcbiAgICAgICAgbGV0IG5hbWUgPSAnJ1xuICAgICAgICBsZXQgcEVtYWlsID0gJydcbiAgICAgICAgdGhpcy5hcGlSZXNwb25zZS5mb3JFYWNoKChhcGlEYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBhcGlEYXRhLmZpcnN0TmFtZS5zcGxpdCgnICcpLmZvckVhY2goKGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgbmFtZSA9IG5hbWUgKyBkLnN1YnN0cigwLCAxKS50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgfSlcbiAgICAgICAgICBpZiAoYXBpRGF0YS5wcm9maWxlRGV0YWlscyAmJiBhcGlEYXRhLnByb2ZpbGVEZXRhaWxzLnBlcnNvbmFsRGV0YWlscykge1xuICAgICAgICAgICAgcEVtYWlsID0gYXBpRGF0YS5wcm9maWxlRGV0YWlscy5wZXJzb25hbERldGFpbHMucHJpbWFyeUVtYWlsXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWxsVXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci5lbWFpbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHBFbWFpbC50b0xvd2VyQ2FzZSgpKSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuYWxsVXNlcnMucHVzaChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBtYXNrZWRFbWFpbDogYXBpRGF0YS5tYXNrZWRFbWFpbCxcbiAgICAgICAgICAgICAgICAgIGlkOiBhcGlEYXRhLmlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICBuYW1lOiBhcGlEYXRhLmZpcnN0TmFtZSxcbiAgICAgICAgICAgICAgICAgIGljb25UZXh0OiBuYW1lLFxuICAgICAgICAgICAgICAgICAgZW1haWw6IHBFbWFpbCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlXG4gICAgICB9XG4gICAgICBpZiAodGhpcy5hbGxVc2Vycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZFVzZXJzID0gW11cbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsdGVyZWRVc2VycyA9IHRoaXMuZmlsdGVyU2hhcmVkVXNlcnMocXVlcnlTdHIpXG4gICAgfSlcbiAgfVxuXG4gIHRyYW5zbGF0ZUxhYmVscyhsYWJlbDogc3RyaW5nLCB0eXBlOiBhbnksIHN1YnR5cGU/OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5sYW5ndHJhbnNsYXRpb25zLnRyYW5zbGF0ZUFjdHVhbExhYmVsKGxhYmVsLCB0eXBlLCBzdWJ0eXBlKVxuICB9XG5cbiAgYWRkKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC52YWx1ZSAmJiB0aGlzLm1hdEF1dG9jb21wbGV0ZSAmJiAhdGhpcy5tYXRBdXRvY29tcGxldGUuaXNPcGVuKSB7XG4gICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LmlucHV0XG4gICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlXG4gICAgICBpZiAodGhpcy51c2Vycy5sZW5ndGggPT09IHRoaXMubWF4RW1haWxzTGltaXQpIHtcbiAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ21heExpbWl0JywgJ2NvbnRlbnRTaGFyaW5nJywgJycpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnVzZXJzLmluY2x1ZGVzKHZhbHVlLnRyaW0oKSkpIHtcbiAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ2R1bGljYXRlRW1haWwnLCAnY29udGVudFNoYXJpbmcnLCAnJykpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgICAgIGNvbnN0IGVQYXR0ZXJuID0gbmV3IFJlZ0V4cCgvXig/IS4qXFwuXFwuKSg/IS4qXFwuXykoPyEuKlxcLl9cXC4pKD8hLipcXC5cXC4kKSg/IS4qXFwuJClbYS16QS1aMC05X10rKD86XFwuW2EtekEtWjAtOV9dKykqQCg/OlthLXpBLVowLTldKD86W2EtekEtWjAtOS1dKlthLXpBLVowLTldKT9cXC4pK1thLXpBLVowLTldKD86W2EtekEtWjAtOS1dKlthLXpBLVowLTldKT8kLylcbiAgICAgIGlmIChlUGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgICBpZiAoKHZhbHVlIHx8ICcnKS50cmltKCkpIHtcbiAgICAgICAgICB0aGlzLnVzZXJzLnB1c2godmFsdWUudHJpbSgpKVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgIGlucHV0LnZhbHVlID0gJydcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVzZXJDdHJsLnNldFZhbHVlKCcnKVxuICAgICAgICBjb25zdCBlbDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWF0LWNoaXAtbGlzdC13cmFwcGVyJylcbiAgICAgICAgaWYgKGVsICE9IG51bGwpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGVsWzBdLnNjcm9sbFRvcCA9IGVsWzBdLnNjcm9sbEhlaWdodFxuICAgICAgICAgIH0sICAgICAgICAgMjAwKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9wZW5TbmFja2Jhcih0aGlzLnRyYW5zbGF0ZUxhYmVscygnaW52YWxpZEVtYWlsJywgJ2NvbnRlbnRTaGFyaW5nJywgJycpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW1vdmUodXNlcjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnVzZXJzLmluZGV4T2YodXNlcilcblxuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLnVzZXJzLnNwbGljZShpbmRleCwgMSlcbiAgICB9XG4gIH1cblxuICBzZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVzZXJzLmxlbmd0aCA9PT0gdGhpcy5tYXhFbWFpbHNMaW1pdCkge1xuICAgICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ21heExpbWl0JywgJ2NvbnRlbnRTaGFyaW5nJywgJycpKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmICh0aGlzLnVzZXJzLmluY2x1ZGVzKGV2ZW50Lm9wdGlvbi52YWx1ZSkpIHtcbiAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdkdWxpY2F0ZVVzZXInLCAnY29udGVudFNoYXJpbmcnLCAnJykpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy51c2Vycy5wdXNoKGV2ZW50Lm9wdGlvbi52YWx1ZSlcbiAgICBpZiAodGhpcy51c2VySW5wdXQpIHtcbiAgICAgIHRoaXMudXNlcklucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xuICAgIH1cbiAgICB0aGlzLnVzZXJDdHJsLnNldFZhbHVlKCcnKVxuICAgIGNvbnN0IGVsOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtYXQtY2hpcC1saXN0LXdyYXBwZXInKVxuICAgIGlmIChlbCAhPSBudWxsKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZWxbMF0uc2Nyb2xsVG9wID0gZWxbMF0uc2Nyb2xsSGVpZ2h0XG4gICAgICB9LCAgICAgICAgIDIwMClcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJTaGFyZWRVc2Vycyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpXG4gICAgICByZXR1cm4gdGhpcy5hbGxVc2Vycy5maWx0ZXIodXNlciA9PiB1c2VyLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpXG4gICAgfVxuICAgIHJldHVybiBbXVxuICB9XG5cbiAgc3VibWl0U2hhcmluZygpIHtcbiAgICBsZXQgY291cnNlSWQgPSAnJ1xuICAgIGxldCBjb3Vyc2VOYW1lID0gJydcbiAgICBsZXQgY291cnNlUG9zdGVySW1hZ2VVcmwgPSAnJ1xuICAgIGxldCBjb3Vyc2VQcm92aWRlciA9ICcnXG4gICAgbGV0IHByaW1hcnlDYXRlZ29yeSA9ICcnXG4gICAgbGV0IGNvdXJzZUxpbmsgPSAnJ1xuICAgIGlmICh0aGlzLmNvbnRlbnQpIHtcbiAgICAgICAgY291cnNlUHJvdmlkZXIgPSB0aGlzLmNvbnRlbnQub3JnYW5pc2F0aW9uICYmIHRoaXMuY29udGVudC5vcmdhbmlzYXRpb25bMF1cbiAgICAgICAgfHwgdGhpcy5jb250ZW50LmNvbnRlbnRQYXJ0bmVyICYmIHRoaXMuY29udGVudC5jb250ZW50UGFydG5lci5wYXJ0bmVyQ29kZVxuICAgICAgICB8fCB0aGlzLmNvbnRlbnQuc291cmNlXG4gICAgICAgIGNvdXJzZUlkID0gdGhpcy5iYXNlQ29udGVudFJlYWREYXRhID8gdGhpcy5iYXNlQ29udGVudFJlYWREYXRhLmlkZW50aWZpZXIgOiB0aGlzLmNvbnRlbnQuaWRlbnRpZmllciB8fCB0aGlzLmNvbnRlbnQuY29udGVudElkLFxuICAgICAgICBjb3Vyc2VOYW1lID0gdGhpcy5jb250ZW50Lm5hbWUsXG4gICAgICAgIGNvdXJzZVBvc3RlckltYWdlVXJsID0gdGhpcy5jb250ZW50LnBvc3RlckltYWdlIHx8XG4gICAgICAgICB0aGlzLmNvbnRlbnQuYXBwSWNvbiB8fCAgJ2Fzc2V0cy9pbnN0YW5jZXMvZWFnbGUvYXBwX2xvZ29zL0thcm1heW9naUJoYXJhdF9Mb2dvLnN2ZycsXG4gICAgICAgIHByaW1hcnlDYXRlZ29yeSA9IHRoaXMuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgfHwgdGhpcy5jb250ZW50LmNvbnRlbnRJZCA/ICdFeHRlcm5hbCBDb3Vyc2UnIDogJycsXG4gICAgICAgIGNvdXJzZUxpbmsgPSB0aGlzLmNvbnRlbnRMaW5rIHx8ICcnXG4gICAgfVxuICAgIGxldCBsYW5ndWFnZSA9ICcnXG4gICAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKVxuICAgIGlmICh1cmxQYXJhbXMuaGFzKCdNTCcpKSB7XG4gICAgICBsYW5ndWFnZSA9IHVybFBhcmFtcy5nZXQoJ01MJykgfHwgJydcbiAgICB9XG4gICAgY29uc3Qgb2JqID0ge1xuICAgICAgcmVxdWVzdDoge1xuICAgICAgICBjb3Vyc2VJZCxcbiAgICAgICAgY291cnNlTmFtZSxcbiAgICAgICAgY291cnNlUG9zdGVySW1hZ2VVcmwsXG4gICAgICAgIGNvdXJzZVByb3ZpZGVyLFxuICAgICAgICBwcmltYXJ5Q2F0ZWdvcnksXG4gICAgICAgIGNvdXJzZUxpbmssXG4gICAgICAgIHJlY2lwaWVudHM6ICcnLFxuICAgICAgICAuLi4obGFuZ3VhZ2UgJiYgeyBsYW5ndWFnZSB9ICksXG4gICAgICB9LFxuICAgIH1cbiAgICBjb25zdCByZWNpcGllbnRzOiBhbnkgPSBbXVxuICAgIHRoaXMudXNlcnMuZm9yRWFjaCgoc2VsZWN0ZWRVc2VyOiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZFVzZXIuaW5jbHVkZXMoJ0AnKSAmJiBzZWxlY3RlZFVzZXIuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICByZWNpcGllbnRzLnB1c2goeyBlbWFpbDogc2VsZWN0ZWRVc2VyIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFVzZXJPYmo6IGFueSA9IHRoaXMuYWxsVXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci5uYW1lID09PSBzZWxlY3RlZFVzZXIpXG4gICAgICAgIGlmIChzZWxlY3RlZFVzZXJPYmoubGVuZ3RoKSB7XG4gICAgICAgICAgcmVjaXBpZW50cy5wdXNoKHsgdXNlcklkOiBzZWxlY3RlZFVzZXJPYmpbMF0uaWQsIGVtYWlsOiBzZWxlY3RlZFVzZXJPYmpbMF0uZW1haWwgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgaWYgKHJlY2lwaWVudHMubGVuZ3RoKSB7XG4gICAgICBvYmoucmVxdWVzdC5yZWNpcGllbnRzID0gcmVjaXBpZW50c1xuICAgICAgdGhpcy50b2NTdmMuc2hhcmVDb250ZW50KG9iaikuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQucmVzcG9uc2VDb2RlID09PSAnT0snKSB7XG4gICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ3N1Y2Nlc3MnLCAnY29udGVudFNoYXJpbmcnLCAnJykpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51c2VycyA9IFtdXG4gICAgICAgIHRoaXMucmVzZXRFbmFibGVTaGFyZUZsYWcoKVxuICAgICAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSBbXVxuICAgICAgICB0aGlzLmFsbFVzZXJzID0gW11cbiAgICAgICAgdGhpcy51c2VyQ3RybC5zZXRWYWx1ZSgnJylcbiAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGVcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdlcnJvcicsJ2NvbnRlbnRTaGFyaW5nJywnJykpXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5yZXNldEVuYWJsZVNoYXJlRmxhZygpXG4gICAgdGhpcy51c2VycyA9IFtdXG4gICAgdGhpcy5maWx0ZXJlZFVzZXJzID0gW11cbiAgICB0aGlzLmFsbFVzZXJzID0gW11cbiAgICB0aGlzLnVzZXJDdHJsLnNldFZhbHVlKCcnKVxuICAgIHRoaXMucmFpc2VUZWxlbWV0cnkoJ3NoYXJlQ2xvc2UnKVxuICB9XG5cbiAgY29weVRvQ2xpcGJvYXJkKCkge1xuICAgIGNvbnN0IHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKVxuICAgIHRleHRBcmVhLnZhbHVlID0gd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRBcmVhKVxuICAgIHRleHRBcmVhLnNlbGVjdCgpXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKVxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dEFyZWEpXG4gICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ2xpbmtDb3BpZWQnLCdjb250ZW50U2hhcmluZycsJycpKVxuICAgIHRoaXMucmFpc2VUZWxlbWV0cnkoJ2NvcHlUb0NsaXBib2FyZCcpXG4gIH1cblxuICByYWlzZVRlbGVtZXRyeShzdWJUeXBlOiBhbnkpIHtcbiAgICB0aGlzLmV2ZW50cy5yYWlzZUludGVyYWN0VGVsZW1ldHJ5KFxuICAgICAge1xuICAgICAgICB0eXBlOiAnY2xpY2snLFxuICAgICAgICBzdWJUeXBlOiBzdWJUeXBlLFxuICAgICAgICBpZDogdGhpcy5jb250ZW50ID8gdGhpcy5jb250ZW50LmlkZW50aWZpZXIgOiAnJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiB0aGlzLmNvbnRlbnQgPyB0aGlzLmNvbnRlbnQuaWRlbnRpZmllciA6ICcnLFxuICAgICAgICB0eXBlOiB0aGlzLmNvbnRlbnQgPyB0aGlzLmNvbnRlbnQucHJpbWFyeUNhdGVnb3J5IDogJycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYWdlSWRFeHQ6IGBidG4tJHtzdWJUeXBlfWAsXG4gICAgICAgIG1vZHVsZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeW1vZHVsZXMuQ09OVEVOVCxcbiAgICAgIH1cbiAgICApXG4gIH1cbiAgcHJpdmF0ZSBvcGVuU25hY2tiYXIocHJpbWFyeU1zZzogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gNTAwMCkge1xuICAgIHRoaXMuc25hY2tCYXIub3BlbihwcmltYXJ5TXNnLCAnWCcsIHtcbiAgICAgIGR1cmF0aW9uLFxuICAgIH0pXG4gIH1cblxuICByZXNldEVuYWJsZVNoYXJlRmxhZygpIHtcbiAgICB0aGlzLnJlc2V0RW5hYmxlU2hhcmUuZW1pdChmYWxzZSk7XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGNsYXNzPVwic2hhcmUtY29udGFpbmVyXCI+XG4gICAgPGRpdiAqbmdJZj1cInNob3dMb2FkZXJcIiBjbGFzcz1cInRleHQtY2VudGVyIG15LTIgbG9hZGVyXCI+XG4gICAgICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImlubGluZS1ibG9ja1wiPjwvbWF0LXNwaW5uZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyIGNsb3NlLXNoYXJlLWRpYWxvZ1wiPjxtYXQtaWNvbiAoY2xpY2spPVwib25DbG9zZSgpXCIgY2xhc3M9XCJjbG9zZS1pY29uXCI+Y2xvc2U8L21hdC1pY29uPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzaGFyZS1tb2RhbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwia2FybWFzYWhheW9naS1pY29uXCI+PGltZyBhbHQ9XCJrYXJtYXNhaGF5b2dpLWljb25cIiBzcmM9XCIvYXNzZXRzL2ljb25zL0thcm1hU2FoYXlvZ2kuc3ZnXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgIGNsYXNzPVwiY29udGVudC1kaXZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRyaWFuZ2xlLWxlZnQgaGlkZGVuIG1kOmJsb2NrXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250bmV0XCI+XG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInctZnVsbCBmbGV4IGFsaWduLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwibWF0LWhlYWRsaW5lIG1hcmdpbi1yZW1vdmUtYm90dG9tIHdzLW1hdC1ibGFjay10ZXh0XCI+e3snY29udGVudFNoYXJpbmcuaGVhZGVyJyB8IHRyYW5zbGF0ZX19PC9oMj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic2hhcmVGb3JtXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1ib2R5LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1kLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGlwLWxpc3QgI2NoaXBMaXN0IGFyaWEtbGFiZWw9XCJ1c2VyIHNlbGVjdGlvblwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVzZXIgb2YgdXNlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInJlbW92YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmUodXNlcilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dXNlcn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZSAqbmdJZj1cInJlbW92YWJsZVwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXRUZXh0Qm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3t1c2Vycy5sZW5ndGggPT09IDAgPyB0cmFuc2xhdGVMYWJlbHMoJ3BsYWNlaG9kZXJUZXh0JywgJ2NvbnRlbnRTaGFyaW5nJykgOiAnJ319XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN1c2VySW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJldmlld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidXNlckN0cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0QWRkT25CbHVyXT1cImFkZE9uQmx1clwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGlwLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwic2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdXNlciBvZiBmaWx0ZXJlZFVzZXJzXCIgW3ZhbHVlXT1cInVzZXIubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbkRpdlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb25UZXh0XCI+e3t1c2VyLmljb25UZXh0LnN1YnN0cmluZygwLDIpfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57e3VzZXIubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbFRleHRcIj57e3VzZXIubWFza2VkRW1haWx9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oaW50IGFsaWduPVwic3RhcnRcIiBjbGFzcz1cImxlZnQtb3Zlci1lbWFpbHNcIj57eydjb250ZW50U2hhcmluZy5ub3RlJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhpbnQgYWxpZ249XCJlbmRcIiBjbGFzcz1cImxlZnQtb3Zlci1lbWFpbHNcIj57eyB1c2Vycy5sZW5ndGggfX0gL3t7bWF4RW1haWxzTGltaXR9fSB7eydjb250ZW50U2hhcmluZy5yZW1haW5nRW1haWxzJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtdC01XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgZmxleC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvcHktbGluay1idG4gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKClcIj57eydjb250ZW50U2hhcmluZy5jb3B5TGluaycgfCB0cmFuc2xhdGV9fSAmbmJzcDsmbmJzcDs8bWF0LWljb24gPmxpbms8L21hdC1pY29uPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXdoaXRlIGZsZXgtYXV0by1kaXNwbGF5IHNlbmQtYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKHVzZXJDdHJsLnZhbHVlLmxlbmd0aCB8fCB1c2Vycy5sZW5ndGggPT09IDAgfHwgdXNlcnMubGVuZ3RoID4gbWF4RW1haWxzTGltaXQpID8gJ2dyYXktYmFja2dyb3VuZCcgOiAnYWN0aXZlLWJhY2tncm91bmQnIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ1c2VyQ3RybC52YWx1ZS5sZW5ndGggfHwgdXNlcnMubGVuZ3RoID09PSAwIHx8IHVzZXJzLmxlbmd0aCA+IG1heEVtYWlsc0xpbWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdFNoYXJpbmcoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydjb250ZW50U2hhcmluZy5zZW5kJyB8IHRyYW5zbGF0ZX19ICZuYnNwOyA8bWF0LWljb24+c2VuZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
1
+ import { Component, Input, ViewChild, EventEmitter, Output } from '@angular/core';
2
+ import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
3
+ import { ENTER } from '@angular/cdk/keycodes';
4
+ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
+ import { WsEvents } from '@sunbird-cb/utils-v2';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../_collection/_common/user-autocomplete/user-autocomplete.service";
8
+ import * as i2 from "@sunbird-cb/utils-v2";
9
+ import * as i3 from "@ngx-translate/core";
10
+ import * as i4 from "@angular/material/legacy-snack-bar";
11
+ import * as i5 from "../../services/app-toc.service";
12
+ import * as i6 from "@angular/common";
13
+ import * as i7 from "@angular/material/icon";
14
+ import * as i8 from "@angular/material/legacy-button";
15
+ import * as i9 from "@angular/material/legacy-chips";
16
+ import * as i10 from "@angular/material/legacy-progress-spinner";
17
+ import * as i11 from "@angular/material/legacy-form-field";
18
+ import * as i12 from "@angular/material/legacy-core";
19
+ import * as i13 from "@angular/material/legacy-autocomplete";
20
+ import * as i14 from "@angular/forms";
21
+ export class ShareTocComponent {
22
+ constructor(userAutoComplete, langtranslations, translate, snackBar, configSvc, tocSvc, events) {
23
+ this.userAutoComplete = userAutoComplete;
24
+ this.langtranslations = langtranslations;
25
+ this.translate = translate;
26
+ this.snackBar = snackBar;
27
+ this.configSvc = configSvc;
28
+ this.tocSvc = tocSvc;
29
+ this.events = events;
30
+ this.selectable = true;
31
+ this.removable = true;
32
+ this.addOnBlur = true;
33
+ this.separatorKeysCodes = [ENTER];
34
+ this.userCtrl = new UntypedFormControl('');
35
+ this.users = [];
36
+ this.allUsers = [];
37
+ this.maxEmailsLimit = 30;
38
+ this.showLoader = false;
39
+ this.contentLink = '';
40
+ this.resetEnableShare = new EventEmitter();
41
+ this.langtranslations.languageSelectedObservable.subscribe(() => {
42
+ if (localStorage.getItem('websiteLanguage')) {
43
+ this.translate.setDefaultLang('en');
44
+ const lang = localStorage.getItem('websiteLanguage');
45
+ this.translate.use(lang);
46
+ }
47
+ });
48
+ this.shareForm = new UntypedFormGroup({
49
+ review: new UntypedFormControl(null, [Validators.minLength(1), Validators.maxLength(2000)]),
50
+ });
51
+ this.userCtrl.valueChanges.pipe(debounceTime(200), distinctUntilChanged()).subscribe((res) => {
52
+ this.filteredUsers = [];
53
+ if (res) {
54
+ this.getUsersToShare(res);
55
+ }
56
+ });
57
+ }
58
+ ngOnInit() {
59
+ }
60
+ getUsersToShare(queryStr) {
61
+ this.showLoader = true;
62
+ this.userAutoComplete.searchUser(queryStr, this.rootOrgId).subscribe(data => {
63
+ if (data.result && data.result.response) {
64
+ this.apiResponse = data.result.response.content;
65
+ let name = '';
66
+ let pEmail = '';
67
+ this.apiResponse.forEach((apiData) => {
68
+ apiData.firstName.split(' ').forEach((d) => {
69
+ name = name + d.substr(0, 1).toUpperCase();
70
+ });
71
+ if (apiData.profileDetails && apiData.profileDetails.personalDetails) {
72
+ pEmail = apiData.profileDetails.personalDetails.primaryEmail;
73
+ if (!this.allUsers.filter(user => user.email.toLowerCase().includes(pEmail.toLowerCase())).length) {
74
+ this.allUsers.push({
75
+ maskedEmail: apiData.maskedEmail,
76
+ id: apiData.identifier,
77
+ name: apiData.firstName,
78
+ iconText: name,
79
+ email: pEmail,
80
+ });
81
+ }
82
+ }
83
+ });
84
+ this.showLoader = false;
85
+ }
86
+ if (this.allUsers.length === 0) {
87
+ this.filteredUsers = [];
88
+ }
89
+ this.filteredUsers = this.filterSharedUsers(queryStr);
90
+ });
91
+ }
92
+ translateLabels(label, type, subtype) {
93
+ return this.langtranslations.translateActualLabel(label, type, subtype);
94
+ }
95
+ add(event) {
96
+ if (event.value && this.matAutocomplete && !this.matAutocomplete.isOpen) {
97
+ const input = event.input;
98
+ const value = event.value;
99
+ if (this.users.length === this.maxEmailsLimit) {
100
+ this.openSnackbar(this.translateLabels('maxLimit', 'contentSharing', ''));
101
+ return;
102
+ }
103
+ if (this.users.includes(value.trim())) {
104
+ this.openSnackbar(this.translateLabels('dulicateEmail', 'contentSharing', ''));
105
+ return;
106
+ }
107
+ // tslint:disable-next-line: max-line-length
108
+ const ePattern = new RegExp(/^(?!.*\.\.)(?!.*\._)(?!.*\._\.)(?!.*\.\.$)(?!.*\.$)[a-zA-Z0-9_]+(?:\.[a-zA-Z0-9_]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/);
109
+ if (ePattern.test(value)) {
110
+ if ((value || '').trim()) {
111
+ this.users.push(value.trim());
112
+ }
113
+ if (input) {
114
+ input.value = '';
115
+ }
116
+ this.userCtrl.setValue('');
117
+ const el = document.getElementsByClassName('mat-chip-list-wrapper');
118
+ if (el != null) {
119
+ setTimeout(() => {
120
+ el[0].scrollTop = el[0].scrollHeight;
121
+ }, 200);
122
+ }
123
+ }
124
+ else {
125
+ this.openSnackbar(this.translateLabels('invalidEmail', 'contentSharing', ''));
126
+ return;
127
+ }
128
+ }
129
+ }
130
+ remove(user) {
131
+ const index = this.users.indexOf(user);
132
+ if (index >= 0) {
133
+ this.users.splice(index, 1);
134
+ }
135
+ }
136
+ selected(event) {
137
+ if (this.users.length === this.maxEmailsLimit) {
138
+ this.openSnackbar(this.translateLabels('maxLimit', 'contentSharing', ''));
139
+ return;
140
+ }
141
+ if (this.users.includes(event.option.value)) {
142
+ this.openSnackbar(this.translateLabels('dulicateUser', 'contentSharing', ''));
143
+ return;
144
+ }
145
+ this.users.push(event.option.value);
146
+ if (this.userInput) {
147
+ this.userInput.nativeElement.value = '';
148
+ }
149
+ this.userCtrl.setValue('');
150
+ const el = document.getElementsByClassName('mat-chip-list-wrapper');
151
+ if (el != null) {
152
+ setTimeout(() => {
153
+ el[0].scrollTop = el[0].scrollHeight;
154
+ }, 200);
155
+ }
156
+ }
157
+ filterSharedUsers(value) {
158
+ if (value) {
159
+ const filterValue = value.toLowerCase();
160
+ return this.allUsers.filter(user => user.name.toLowerCase().includes(filterValue));
161
+ }
162
+ return [];
163
+ }
164
+ submitSharing() {
165
+ let courseId = '';
166
+ let courseName = '';
167
+ let coursePosterImageUrl = '';
168
+ let courseProvider = '';
169
+ let primaryCategory = '';
170
+ let courseLink = '';
171
+ if (this.content) {
172
+ courseProvider = this.content.organisation && this.content.organisation[0]
173
+ || this.content.contentPartner && this.content.contentPartner.partnerCode
174
+ || this.content.source;
175
+ courseId = this.baseContentReadData ? this.baseContentReadData.identifier : this.content.identifier || this.content.contentId,
176
+ courseName = this.content.name,
177
+ coursePosterImageUrl = this.content.posterImage ||
178
+ this.content.appIcon || 'assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg',
179
+ primaryCategory = this.content.primaryCategory || this.content.contentId ? 'External Course' : '',
180
+ courseLink = this.contentLink || '';
181
+ }
182
+ let language = '';
183
+ const urlParams = new URLSearchParams(window.location.search);
184
+ if (urlParams.has('ML')) {
185
+ language = urlParams.get('ML') || '';
186
+ }
187
+ const obj = {
188
+ request: {
189
+ courseId,
190
+ courseName,
191
+ coursePosterImageUrl,
192
+ courseProvider,
193
+ primaryCategory,
194
+ courseLink,
195
+ recipients: '',
196
+ ...(language && { language }),
197
+ },
198
+ };
199
+ const recipients = [];
200
+ this.users.forEach((selectedUser) => {
201
+ if (selectedUser.includes('@') && selectedUser.includes('.')) {
202
+ recipients.push({ email: selectedUser });
203
+ }
204
+ else {
205
+ const selectedUserObj = this.allUsers.filter(user => user.name === selectedUser);
206
+ if (selectedUserObj.length) {
207
+ recipients.push({ userId: selectedUserObj[0].id, email: selectedUserObj[0].email });
208
+ }
209
+ }
210
+ });
211
+ if (recipients.length) {
212
+ obj.request.recipients = recipients;
213
+ this.tocSvc.shareContent(obj).subscribe(result => {
214
+ if (result.responseCode === 'OK') {
215
+ this.openSnackbar(this.translateLabels('success', 'contentSharing', ''));
216
+ }
217
+ this.users = [];
218
+ this.resetEnableShareFlag();
219
+ this.filteredUsers = [];
220
+ this.allUsers = [];
221
+ this.userCtrl.setValue('');
222
+ }, error => {
223
+ // tslint:disable
224
+ console.log(error);
225
+ this.openSnackbar(this.translateLabels('error', 'contentSharing', ''));
226
+ });
227
+ }
228
+ }
229
+ onClose() {
230
+ this.resetEnableShareFlag();
231
+ this.users = [];
232
+ this.filteredUsers = [];
233
+ this.allUsers = [];
234
+ this.userCtrl.setValue('');
235
+ this.raiseTelemetry('shareClose');
236
+ }
237
+ copyToClipboard() {
238
+ const textArea = document.createElement('textarea');
239
+ textArea.value = window.location.href;
240
+ document.body.appendChild(textArea);
241
+ textArea.select();
242
+ document.execCommand('copy');
243
+ document.body.removeChild(textArea);
244
+ this.openSnackbar(this.translateLabels('linkCopied', 'contentSharing', ''));
245
+ this.raiseTelemetry('copyToClipboard');
246
+ }
247
+ raiseTelemetry(subType) {
248
+ this.events.raiseInteractTelemetry({
249
+ type: 'click',
250
+ subType: subType,
251
+ id: this.content ? this.content.identifier : '',
252
+ }, {
253
+ id: this.content ? this.content.identifier : '',
254
+ type: this.content ? this.content.primaryCategory : '',
255
+ }, {
256
+ pageIdExt: `btn-${subType}`,
257
+ module: WsEvents.EnumTelemetrymodules.CONTENT,
258
+ });
259
+ }
260
+ openSnackbar(primaryMsg, duration = 5000) {
261
+ this.snackBar.open(primaryMsg, 'X', {
262
+ duration,
263
+ });
264
+ }
265
+ resetEnableShareFlag() {
266
+ this.resetEnableShare.emit(false);
267
+ }
268
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShareTocComponent, deps: [{ token: i1.UserAutocompleteService }, { token: i2.MultilingualTranslationsService }, { token: i3.TranslateService }, { token: i4.MatLegacySnackBar }, { token: i2.ConfigurationsService }, { token: i5.AppTocService }, { token: i2.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
269
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ShareTocComponent, selector: "ws-app-share-toc", inputs: { rootOrgId: "rootOrgId", content: "content", contentLink: "contentLink", baseContentReadData: "baseContentReadData" }, outputs: { resetEnableShare: "resetEnableShare" }, viewQueries: [{ propertyName: "userInput", first: true, predicate: ["userInput"], descendants: true }, { propertyName: "matAutocomplete", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<div class=\"share-container\">\r\n <div *ngIf=\"showLoader\" class=\"text-center my-2 loader\">\r\n <mat-spinner class=\"inline-block\"></mat-spinner>\r\n </div>\r\n <div class=\"cursor-pointer close-share-dialog\"><mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon></div>\r\n <div class=\"share-modal\">\r\n <div class=\"karmasahayogi-icon\"><img alt=\"karmasahayogi-icon\" src=\"/assets/icons/KarmaSahayogi.svg\"></div>\r\n <div class=\"content-div\">\r\n <div class=\"triangle-left hidden md:block\"></div>\r\n <div class=\"contnet\">\r\n <section class=\"w-full flex align-center justify-between \">\r\n <div class=\"mb-2\">\r\n <h2 class=\"mat-headline margin-remove-bottom ws-mat-black-text\">{{'contentSharing.header' | translate}}</h2>\r\n </div>\r\n </section>\r\n <form [formGroup]=\"shareForm\">\r\n <div class=\"mat-body-2\">\r\n <div class=\"md-5\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <mat-chip-list #chipList aria-label=\"user selection\" appearance=\"outline\">\r\n <mat-chip\r\n *ngFor=\"let user of users\"\r\n [selectable]=\"selectable\"\r\n [removable]=\"removable\"\r\n (removed)=\"remove(user)\">\r\n {{user}}\r\n <mat-icon matChipRemove *ngIf=\"removable\">close</mat-icon>\r\n </mat-chip>\r\n <input\r\n tabindex=\"-1\"\r\n class=\"inputTextBox\"\r\n placeholder=\"{{users.length === 0 ? translateLabels('placehoderText', 'contentSharing') : ''}}\"\r\n #userInput\r\n formControlName=\"review\"\r\n [formControl]=\"userCtrl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"addOnBlur\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n </mat-chip-list>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n <mat-option *ngFor=\"let user of filteredUsers\" [value]=\"user.name\">\r\n <div class=\"flex\">\r\n <div class=\"iconDiv\">\r\n <span class=\"iconText\">{{user.iconText.substring(0,2)}}</span>\r\n </div>\r\n <div>\r\n <div>{{user.name}}</div>\r\n <div class=\"emailText\">{{user.maskedEmail}}</div>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint align=\"start\" class=\"left-over-emails\">{{'contentSharing.note' | translate}}</mat-hint>\r\n <mat-hint align=\"end\" class=\"left-over-emails\">{{ users.length }} /{{maxEmailsLimit}} {{'contentSharing.remaingEmails' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex mt-5\">\r\n <div class=\"flex flex-1 flex-end\">\r\n <span class=\"copy-link-btn cursor-pointer\" (click)=\"copyToClipboard()\">{{'contentSharing.copyLink' | translate}} &nbsp;&nbsp;<mat-icon >link</mat-icon></span>\r\n <button mat-stroked-button type=\"submit\"\r\n class=\"text-white flex-auto-display send-btn\"\r\n [ngClass]=\"(userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit) ? 'gray-background' : 'active-background' \"\r\n [disabled]=\"userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit\"\r\n (click)=\"submitSharing()\">\r\n {{'contentSharing.send' | translate}} &nbsp; <mat-icon>send</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".share-container{position:fixed;height:100vh;background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.share-modal{display:flex;align-items:center;justify-content:center;height:inherit;width:inherit}.karmasahayogi-icon{position:absolute;bottom:-5px;left:calc(50% - 464px)}.triangle-left{transform:translateY(100%);position:absolute;bottom:28%;left:-23px;width:0;height:0;border-top:25px solid transparent;border-right:50px solid #ffffff;border-bottom:25px solid transparent}.contnet{background-color:#fff;width:613px;border-radius:10px;padding:15px}.content-div{position:relative}.copy-link-btn{display:flex;align-items:center;margin-right:20px;color:red;color:#0074b6!important;font-weight:600}.copy-link-btn:hover{background-color:none!important}.send-btn{border-radius:20px}.send-btn .mat-icon{margin-bottom:2.5px}::ng-deep .mat-chip-list-wrapper{height:100px;overflow:auto;display:block!important;scroll-behavior:smooth}.iconText{border-radius:50%;background-color:#000;color:#fff;width:30px;display:inline-block;text-align:center;height:30px;display:flex;align-items:center;justify-content:center}.iconDiv{margin-right:7px}.emailText{opacity:.6}button:disabled{pointer-events:none;opacity:.5;color:#000}::ng-deep .mat-autocomplete-panel{z-index:99999}::ng-deep .cdk-overlay-pane{z-index:9999!important}::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:5px 2px!important}::ng-deep .close-icon{background-color:#000;color:#fff;border-radius:15px;padding:3px}::ng-deep .mat-chip-input{padding-bottom:9px!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip{color:#0074b6!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip mat-icon{color:#0074b6!important}::ng-deep .inputTextBox{width:95%!important;overflow-x:hidden}.close-share-dialog{position:absolute;right:30px;top:30px}.left-over-emails{font-weight:600}.loader{position:absolute;top:42%;left:45%;z-index:1000}@media (max-width: 768px){.content-div{width:100%}.contnet{width:unset;margin-bottom:18%}.left-over-emails{display:none}.karmasahayogi-icon{left:8%;bottom:20%}.share-modal{align-items:self-end}}@media only screen and (min-device-width: 820px) and (max-device-width: 1180px){.karmasahayogi-icon{left:calc(50% - 387px)}.content{width:500px}}@media only screen and (min-device-width: 768px) and (max-device-width: 819px){.triangle-left{display:none}}.gray-background{background-color:#000!important;color:#fff!important}.gray-background[disabled]{pointer-events:none;opacity:.5}.active-background{background-color:#1b4ca1!important;color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i9.MatLegacyChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i9.MatLegacyChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i9.MatLegacyChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i10.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLegacyHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i12.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i13.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i13.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i14.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i14.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i14.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i14.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i14.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
270
+ }
271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShareTocComponent, decorators: [{
272
+ type: Component,
273
+ args: [{ selector: 'ws-app-share-toc', template: "<div class=\"share-container\">\r\n <div *ngIf=\"showLoader\" class=\"text-center my-2 loader\">\r\n <mat-spinner class=\"inline-block\"></mat-spinner>\r\n </div>\r\n <div class=\"cursor-pointer close-share-dialog\"><mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon></div>\r\n <div class=\"share-modal\">\r\n <div class=\"karmasahayogi-icon\"><img alt=\"karmasahayogi-icon\" src=\"/assets/icons/KarmaSahayogi.svg\"></div>\r\n <div class=\"content-div\">\r\n <div class=\"triangle-left hidden md:block\"></div>\r\n <div class=\"contnet\">\r\n <section class=\"w-full flex align-center justify-between \">\r\n <div class=\"mb-2\">\r\n <h2 class=\"mat-headline margin-remove-bottom ws-mat-black-text\">{{'contentSharing.header' | translate}}</h2>\r\n </div>\r\n </section>\r\n <form [formGroup]=\"shareForm\">\r\n <div class=\"mat-body-2\">\r\n <div class=\"md-5\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <mat-chip-list #chipList aria-label=\"user selection\" appearance=\"outline\">\r\n <mat-chip\r\n *ngFor=\"let user of users\"\r\n [selectable]=\"selectable\"\r\n [removable]=\"removable\"\r\n (removed)=\"remove(user)\">\r\n {{user}}\r\n <mat-icon matChipRemove *ngIf=\"removable\">close</mat-icon>\r\n </mat-chip>\r\n <input\r\n tabindex=\"-1\"\r\n class=\"inputTextBox\"\r\n placeholder=\"{{users.length === 0 ? translateLabels('placehoderText', 'contentSharing') : ''}}\"\r\n #userInput\r\n formControlName=\"review\"\r\n [formControl]=\"userCtrl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"addOnBlur\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n </mat-chip-list>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n <mat-option *ngFor=\"let user of filteredUsers\" [value]=\"user.name\">\r\n <div class=\"flex\">\r\n <div class=\"iconDiv\">\r\n <span class=\"iconText\">{{user.iconText.substring(0,2)}}</span>\r\n </div>\r\n <div>\r\n <div>{{user.name}}</div>\r\n <div class=\"emailText\">{{user.maskedEmail}}</div>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint align=\"start\" class=\"left-over-emails\">{{'contentSharing.note' | translate}}</mat-hint>\r\n <mat-hint align=\"end\" class=\"left-over-emails\">{{ users.length }} /{{maxEmailsLimit}} {{'contentSharing.remaingEmails' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex mt-5\">\r\n <div class=\"flex flex-1 flex-end\">\r\n <span class=\"copy-link-btn cursor-pointer\" (click)=\"copyToClipboard()\">{{'contentSharing.copyLink' | translate}} &nbsp;&nbsp;<mat-icon >link</mat-icon></span>\r\n <button mat-stroked-button type=\"submit\"\r\n class=\"text-white flex-auto-display send-btn\"\r\n [ngClass]=\"(userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit) ? 'gray-background' : 'active-background' \"\r\n [disabled]=\"userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit\"\r\n (click)=\"submitSharing()\">\r\n {{'contentSharing.send' | translate}} &nbsp; <mat-icon>send</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".share-container{position:fixed;height:100vh;background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.share-modal{display:flex;align-items:center;justify-content:center;height:inherit;width:inherit}.karmasahayogi-icon{position:absolute;bottom:-5px;left:calc(50% - 464px)}.triangle-left{transform:translateY(100%);position:absolute;bottom:28%;left:-23px;width:0;height:0;border-top:25px solid transparent;border-right:50px solid #ffffff;border-bottom:25px solid transparent}.contnet{background-color:#fff;width:613px;border-radius:10px;padding:15px}.content-div{position:relative}.copy-link-btn{display:flex;align-items:center;margin-right:20px;color:red;color:#0074b6!important;font-weight:600}.copy-link-btn:hover{background-color:none!important}.send-btn{border-radius:20px}.send-btn .mat-icon{margin-bottom:2.5px}::ng-deep .mat-chip-list-wrapper{height:100px;overflow:auto;display:block!important;scroll-behavior:smooth}.iconText{border-radius:50%;background-color:#000;color:#fff;width:30px;display:inline-block;text-align:center;height:30px;display:flex;align-items:center;justify-content:center}.iconDiv{margin-right:7px}.emailText{opacity:.6}button:disabled{pointer-events:none;opacity:.5;color:#000}::ng-deep .mat-autocomplete-panel{z-index:99999}::ng-deep .cdk-overlay-pane{z-index:9999!important}::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:5px 2px!important}::ng-deep .close-icon{background-color:#000;color:#fff;border-radius:15px;padding:3px}::ng-deep .mat-chip-input{padding-bottom:9px!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip{color:#0074b6!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip mat-icon{color:#0074b6!important}::ng-deep .inputTextBox{width:95%!important;overflow-x:hidden}.close-share-dialog{position:absolute;right:30px;top:30px}.left-over-emails{font-weight:600}.loader{position:absolute;top:42%;left:45%;z-index:1000}@media (max-width: 768px){.content-div{width:100%}.contnet{width:unset;margin-bottom:18%}.left-over-emails{display:none}.karmasahayogi-icon{left:8%;bottom:20%}.share-modal{align-items:self-end}}@media only screen and (min-device-width: 820px) and (max-device-width: 1180px){.karmasahayogi-icon{left:calc(50% - 387px)}.content{width:500px}}@media only screen and (min-device-width: 768px) and (max-device-width: 819px){.triangle-left{display:none}}.gray-background{background-color:#000!important;color:#fff!important}.gray-background[disabled]{pointer-events:none;opacity:.5}.active-background{background-color:#1b4ca1!important;color:#fff!important}\n"] }]
274
+ }], ctorParameters: function () { return [{ type: i1.UserAutocompleteService }, { type: i2.MultilingualTranslationsService }, { type: i3.TranslateService }, { type: i4.MatLegacySnackBar }, { type: i2.ConfigurationsService }, { type: i5.AppTocService }, { type: i2.EventService }]; }, propDecorators: { rootOrgId: [{
275
+ type: Input
276
+ }], content: [{
277
+ type: Input
278
+ }], contentLink: [{
279
+ type: Input
280
+ }], userInput: [{
281
+ type: ViewChild,
282
+ args: ['userInput']
283
+ }], matAutocomplete: [{
284
+ type: ViewChild,
285
+ args: ['auto']
286
+ }], resetEnableShare: [{
287
+ type: Output
288
+ }], baseContentReadData: [{
289
+ type: Input
290
+ }] } });
291
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtdG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9zaGFyZS10b2Mvc2hhcmUtdG9jL3NoYXJlLXRvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvc2hhcmUtdG9jL3NoYXJlLXRvYy9zaGFyZS10b2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkUsT0FBTyxFQUFpRCxRQUFRLEVBQXlCLE1BQU0sc0JBQXNCLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjckgsTUFBTSxPQUFPLGlCQUFpQjtJQXNCNUIsWUFBb0IsZ0JBQXlDLEVBQ3pDLGdCQUFpRCxFQUNqRCxTQUEyQixFQUMzQixRQUFxQixFQUN0QixTQUFnQyxFQUMvQixNQUFxQixFQUNyQixNQUFvQjtRQU5wQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFDakQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixN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Ozs0RkQzRGEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGtCQUFrQjtzVEFtQmxCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ2tCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSCxlQUFlO3NCQUFqQyxTQUFTO3VCQUFDLE1BQU07Z0JBQ1AsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xyXG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2RlcydcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlLCBFdmVudFNlcnZpY2UsIFdzRXZlbnRzLCBDb25maWd1cmF0aW9uc1NlcnZpY2UgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12MidcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXHJcbmltcG9ydCB7IEFwcFRvY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtdG9jLnNlcnZpY2UnXHJcblxyXG5cclxuaW1wb3J0IHsgTWF0TGVnYWN5QXV0b2NvbXBsZXRlIGFzIE1hdEF1dG9jb21wbGV0ZSwgTWF0TGVnYWN5QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCBhcyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWF1dG9jb21wbGV0ZSdcclxuaW1wb3J0IHsgTWF0TGVnYWN5Q2hpcElucHV0RXZlbnQgYXMgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktY2hpcHMnXHJcbmltcG9ydCB7IE1hdExlZ2FjeVNuYWNrQmFyIGFzIE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXNuYWNrLWJhcidcclxuaW1wb3J0IHsgVXNlckF1dG9jb21wbGV0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fY29sbGVjdGlvbi9fY29tbW9uL3VzZXItYXV0b2NvbXBsZXRlL3VzZXItYXV0b2NvbXBsZXRlLnNlcnZpY2UnXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd3MtYXBwLXNoYXJlLXRvYycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLXRvYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2hhcmUtdG9jLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZVRvY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgIHNoYXJlRm9ybTogVW50eXBlZEZvcm1Hcm91cCB8IHVuZGVmaW5lZFxyXG4gICBzZWxlY3RhYmxlID0gdHJ1ZVxyXG4gICByZW1vdmFibGUgPSB0cnVlXHJcbiAgIGFkZE9uQmx1ciA9IHRydWVcclxuICAgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUl1cclxuICAgdXNlckN0cmwgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKVxyXG4gICBmaWx0ZXJlZFVzZXJzOiBhbnkgW118IHVuZGVmaW5lZFxyXG4gICB1c2VyczogYW55W10gPSBbXVxyXG4gICBhbGxVc2VyczogYW55W10gPSBbXVxyXG4gICBhcGlSZXNwb25zZTogYW55XHJcbiAgIGNvdXJzZURldGFpbHM6IGFueVxyXG4gICB1c2VyUHJvZmlsZTogYW55XHJcbiAgIG1heEVtYWlsc0xpbWl0ID0gMzBcclxuICAgc2hvd0xvYWRlciA9IGZhbHNlXHJcbiAgIEBJbnB1dCgpIHJvb3RPcmdJZDogYW55XHJcbiAgIEBJbnB1dCgpIGNvbnRlbnQ6IGFueVxyXG4gICBASW5wdXQoKSBjb250ZW50TGluazogYW55ID0gJydcclxuICAgQFZpZXdDaGlsZCgndXNlcklucHV0JykgdXNlcklucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkXHJcbiAgIEBWaWV3Q2hpbGQoJ2F1dG8nKSBtYXRBdXRvY29tcGxldGU6IE1hdEF1dG9jb21wbGV0ZSB8IHVuZGVmaW5lZFxyXG4gICBAT3V0cHV0KCkgcmVzZXRFbmFibGVTaGFyZTogYW55ID0gbmV3IEV2ZW50RW1pdHRlcigpXHJcbiAgIEBJbnB1dCgpIGJhc2VDb250ZW50UmVhZERhdGE6IGFueSBcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXJBdXRvQ29tcGxldGU6IFVzZXJBdXRvY29tcGxldGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgbGFuZ3RyYW5zbGF0aW9uczogTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgICAgICAgICAgICBwdWJsaWMgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0b2NTdmM6IEFwcFRvY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBldmVudHM6IEV2ZW50U2VydmljZSkge1xyXG4gICAgdGhpcy5sYW5ndHJhbnNsYXRpb25zLmxhbmd1YWdlU2VsZWN0ZWRPYnNlcnZhYmxlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykpIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZygnZW4nKVxyXG4gICAgICAgIGNvbnN0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykhXHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLnNoYXJlRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgcmV2aWV3OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwMCldKSxcclxuICAgIH0pXHJcbiAgICB0aGlzLnVzZXJDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICAgKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRVc2VycyA9IFtdXHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLmdldFVzZXJzVG9TaGFyZShyZXMpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIGdldFVzZXJzVG9TaGFyZShxdWVyeVN0cjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlXHJcbiAgICB0aGlzLnVzZXJBdXRvQ29tcGxldGUuc2VhcmNoVXNlcihxdWVyeVN0ciwgdGhpcy5yb290T3JnSWQpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgaWYgKGRhdGEucmVzdWx0ICYmIGRhdGEucmVzdWx0LnJlc3BvbnNlKSB7XHJcbiAgICAgICAgdGhpcy5hcGlSZXNwb25zZSA9IGRhdGEucmVzdWx0LnJlc3BvbnNlLmNvbnRlbnRcclxuICAgICAgICBsZXQgbmFtZSA9ICcnXHJcbiAgICAgICAgbGV0IHBFbWFpbCA9ICcnXHJcbiAgICAgICAgdGhpcy5hcGlSZXNwb25zZS5mb3JFYWNoKChhcGlEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGFwaURhdGEuZmlyc3ROYW1lLnNwbGl0KCcgJykuZm9yRWFjaCgoZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lICsgZC5zdWJzdHIoMCwgMSkudG9VcHBlckNhc2UoKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGlmIChhcGlEYXRhLnByb2ZpbGVEZXRhaWxzICYmIGFwaURhdGEucHJvZmlsZURldGFpbHMucGVyc29uYWxEZXRhaWxzKSB7XHJcbiAgICAgICAgICAgIHBFbWFpbCA9IGFwaURhdGEucHJvZmlsZURldGFpbHMucGVyc29uYWxEZXRhaWxzLnByaW1hcnlFbWFpbFxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWxsVXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci5lbWFpbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHBFbWFpbC50b0xvd2VyQ2FzZSgpKSkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGxVc2Vycy5wdXNoKFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBtYXNrZWRFbWFpbDogYXBpRGF0YS5tYXNrZWRFbWFpbCxcclxuICAgICAgICAgICAgICAgICAgaWQ6IGFwaURhdGEuaWRlbnRpZmllcixcclxuICAgICAgICAgICAgICAgICAgbmFtZTogYXBpRGF0YS5maXJzdE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGljb25UZXh0OiBuYW1lLFxyXG4gICAgICAgICAgICAgICAgICBlbWFpbDogcEVtYWlsLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2VcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5hbGxVc2Vycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSBbXVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRVc2VycyA9IHRoaXMuZmlsdGVyU2hhcmVkVXNlcnMocXVlcnlTdHIpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlTGFiZWxzKGxhYmVsOiBzdHJpbmcsIHR5cGU6IGFueSwgc3VidHlwZT86IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3RyYW5zbGF0aW9ucy50cmFuc2xhdGVBY3R1YWxMYWJlbChsYWJlbCwgdHlwZSwgc3VidHlwZSlcclxuICB9XHJcblxyXG4gIGFkZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC52YWx1ZSAmJiB0aGlzLm1hdEF1dG9jb21wbGV0ZSAmJiAhdGhpcy5tYXRBdXRvY29tcGxldGUuaXNPcGVuKSB7XHJcbiAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQuaW5wdXRcclxuICAgICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZVxyXG4gICAgICBpZiAodGhpcy51c2Vycy5sZW5ndGggPT09IHRoaXMubWF4RW1haWxzTGltaXQpIHtcclxuICAgICAgICB0aGlzLm9wZW5TbmFja2Jhcih0aGlzLnRyYW5zbGF0ZUxhYmVscygnbWF4TGltaXQnLCAnY29udGVudFNoYXJpbmcnLCAnJykpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudXNlcnMuaW5jbHVkZXModmFsdWUudHJpbSgpKSkge1xyXG4gICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdkdWxpY2F0ZUVtYWlsJywgJ2NvbnRlbnRTaGFyaW5nJywgJycpKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICAgIGNvbnN0IGVQYXR0ZXJuID0gbmV3IFJlZ0V4cCgvXig/IS4qXFwuXFwuKSg/IS4qXFwuXykoPyEuKlxcLl9cXC4pKD8hLipcXC5cXC4kKSg/IS4qXFwuJClbYS16QS1aMC05X10rKD86XFwuW2EtekEtWjAtOV9dKykqQCg/OlthLXpBLVowLTldKD86W2EtekEtWjAtOS1dKlthLXpBLVowLTldKT9cXC4pK1thLXpBLVowLTldKD86W2EtekEtWjAtOS1dKlthLXpBLVowLTldKT8kLylcclxuICAgICAgaWYgKGVQYXR0ZXJuLnRlc3QodmFsdWUpKSB7XHJcbiAgICAgICAgaWYgKCh2YWx1ZSB8fCAnJykudHJpbSgpKSB7XHJcbiAgICAgICAgICB0aGlzLnVzZXJzLnB1c2godmFsdWUudHJpbSgpKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5wdXQpIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gJydcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51c2VyQ3RybC5zZXRWYWx1ZSgnJylcclxuICAgICAgICBjb25zdCBlbDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWF0LWNoaXAtbGlzdC13cmFwcGVyJylcclxuICAgICAgICBpZiAoZWwgIT0gbnVsbCkge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGVsWzBdLnNjcm9sbFRvcCA9IGVsWzBdLnNjcm9sbEhlaWdodFxyXG4gICAgICAgICAgfSwgICAgICAgICAyMDApXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdpbnZhbGlkRW1haWwnLCAnY29udGVudFNoYXJpbmcnLCAnJykpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZSh1c2VyOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy51c2Vycy5pbmRleE9mKHVzZXIpXHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy51c2Vycy5zcGxpY2UoaW5kZXgsIDEpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudXNlcnMubGVuZ3RoID09PSB0aGlzLm1heEVtYWlsc0xpbWl0KSB7XHJcbiAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdtYXhMaW1pdCcsICdjb250ZW50U2hhcmluZycsICcnKSlcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy51c2Vycy5pbmNsdWRlcyhldmVudC5vcHRpb24udmFsdWUpKSB7XHJcbiAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdkdWxpY2F0ZVVzZXInLCAnY29udGVudFNoYXJpbmcnLCAnJykpXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgdGhpcy51c2Vycy5wdXNoKGV2ZW50Lm9wdGlvbi52YWx1ZSlcclxuICAgIGlmICh0aGlzLnVzZXJJbnB1dCkge1xyXG4gICAgICB0aGlzLnVzZXJJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJydcclxuICAgIH1cclxuICAgIHRoaXMudXNlckN0cmwuc2V0VmFsdWUoJycpXHJcbiAgICBjb25zdCBlbDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWF0LWNoaXAtbGlzdC13cmFwcGVyJylcclxuICAgIGlmIChlbCAhPSBudWxsKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGVsWzBdLnNjcm9sbFRvcCA9IGVsWzBdLnNjcm9sbEhlaWdodFxyXG4gICAgICB9LCAgICAgICAgIDIwMClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbHRlclNoYXJlZFVzZXJzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgIHJldHVybiB0aGlzLmFsbFVzZXJzLmZpbHRlcih1c2VyID0+IHVzZXIubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSlcclxuICAgIH1cclxuICAgIHJldHVybiBbXVxyXG4gIH1cclxuXHJcbiAgc3VibWl0U2hhcmluZygpIHtcclxuICAgIGxldCBjb3Vyc2VJZCA9ICcnXHJcbiAgICBsZXQgY291cnNlTmFtZSA9ICcnXHJcbiAgICBsZXQgY291cnNlUG9zdGVySW1hZ2VVcmwgPSAnJ1xyXG4gICAgbGV0IGNvdXJzZVByb3ZpZGVyID0gJydcclxuICAgIGxldCBwcmltYXJ5Q2F0ZWdvcnkgPSAnJ1xyXG4gICAgbGV0IGNvdXJzZUxpbmsgPSAnJ1xyXG4gICAgaWYgKHRoaXMuY29udGVudCkge1xyXG4gICAgICAgIGNvdXJzZVByb3ZpZGVyID0gdGhpcy5jb250ZW50Lm9yZ2FuaXNhdGlvbiAmJiB0aGlzLmNvbnRlbnQub3JnYW5pc2F0aW9uWzBdXHJcbiAgICAgICAgfHwgdGhpcy5jb250ZW50LmNvbnRlbnRQYXJ0bmVyICYmIHRoaXMuY29udGVudC5jb250ZW50UGFydG5lci5wYXJ0bmVyQ29kZVxyXG4gICAgICAgIHx8IHRoaXMuY29udGVudC5zb3VyY2VcclxuICAgICAgICBjb3Vyc2VJZCA9IHRoaXMuYmFzZUNvbnRlbnRSZWFkRGF0YSA/IHRoaXMuYmFzZUNvbnRlbnRSZWFkRGF0YS5pZGVudGlmaWVyIDogdGhpcy5jb250ZW50LmlkZW50aWZpZXIgfHwgdGhpcy5jb250ZW50LmNvbnRlbnRJZCxcclxuICAgICAgICBjb3Vyc2VOYW1lID0gdGhpcy5jb250ZW50Lm5hbWUsXHJcbiAgICAgICAgY291cnNlUG9zdGVySW1hZ2VVcmwgPSB0aGlzLmNvbnRlbnQucG9zdGVySW1hZ2UgfHxcclxuICAgICAgICAgdGhpcy5jb250ZW50LmFwcEljb24gfHwgICdhc3NldHMvaW5zdGFuY2VzL2VhZ2xlL2FwcF9sb2dvcy9LYXJtYXlvZ2lCaGFyYXRfTG9nby5zdmcnLFxyXG4gICAgICAgIHByaW1hcnlDYXRlZ29yeSA9IHRoaXMuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgfHwgdGhpcy5jb250ZW50LmNvbnRlbnRJZCA/ICdFeHRlcm5hbCBDb3Vyc2UnIDogJycsXHJcbiAgICAgICAgY291cnNlTGluayA9IHRoaXMuY29udGVudExpbmsgfHwgJydcclxuICAgIH1cclxuICAgIGxldCBsYW5ndWFnZSA9ICcnXHJcbiAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpXHJcbiAgICBpZiAodXJsUGFyYW1zLmhhcygnTUwnKSkge1xyXG4gICAgICBsYW5ndWFnZSA9IHVybFBhcmFtcy5nZXQoJ01MJykgfHwgJydcclxuICAgIH1cclxuICAgIGNvbnN0IG9iaiA9IHtcclxuICAgICAgcmVxdWVzdDoge1xyXG4gICAgICAgIGNvdXJzZUlkLFxyXG4gICAgICAgIGNvdXJzZU5hbWUsXHJcbiAgICAgICAgY291cnNlUG9zdGVySW1hZ2VVcmwsXHJcbiAgICAgICAgY291cnNlUHJvdmlkZXIsXHJcbiAgICAgICAgcHJpbWFyeUNhdGVnb3J5LFxyXG4gICAgICAgIGNvdXJzZUxpbmssXHJcbiAgICAgICAgcmVjaXBpZW50czogJycsXHJcbiAgICAgICAgLi4uKGxhbmd1YWdlICYmIHsgbGFuZ3VhZ2UgfSApLFxyXG4gICAgICB9LFxyXG4gICAgfVxyXG4gICAgY29uc3QgcmVjaXBpZW50czogYW55ID0gW11cclxuICAgIHRoaXMudXNlcnMuZm9yRWFjaCgoc2VsZWN0ZWRVc2VyOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkVXNlci5pbmNsdWRlcygnQCcpICYmIHNlbGVjdGVkVXNlci5pbmNsdWRlcygnLicpKSB7XHJcbiAgICAgICAgcmVjaXBpZW50cy5wdXNoKHsgZW1haWw6IHNlbGVjdGVkVXNlciB9KVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVXNlck9iajogYW55ID0gdGhpcy5hbGxVc2Vycy5maWx0ZXIodXNlciA9PiB1c2VyLm5hbWUgPT09IHNlbGVjdGVkVXNlcilcclxuICAgICAgICBpZiAoc2VsZWN0ZWRVc2VyT2JqLmxlbmd0aCkge1xyXG4gICAgICAgICAgcmVjaXBpZW50cy5wdXNoKHsgdXNlcklkOiBzZWxlY3RlZFVzZXJPYmpbMF0uaWQsIGVtYWlsOiBzZWxlY3RlZFVzZXJPYmpbMF0uZW1haWwgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICBpZiAocmVjaXBpZW50cy5sZW5ndGgpIHtcclxuICAgICAgb2JqLnJlcXVlc3QucmVjaXBpZW50cyA9IHJlY2lwaWVudHNcclxuICAgICAgdGhpcy50b2NTdmMuc2hhcmVDb250ZW50KG9iaikuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5yZXNwb25zZUNvZGUgPT09ICdPSycpIHtcclxuICAgICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdzdWNjZXNzJywgJ2NvbnRlbnRTaGFyaW5nJywgJycpKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVzZXJzID0gW11cclxuICAgICAgICB0aGlzLnJlc2V0RW5hYmxlU2hhcmVGbGFnKClcclxuICAgICAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSBbXVxyXG4gICAgICAgIHRoaXMuYWxsVXNlcnMgPSBbXVxyXG4gICAgICAgIHRoaXMudXNlckN0cmwuc2V0VmFsdWUoJycpXHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxyXG4gICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdlcnJvcicsJ2NvbnRlbnRTaGFyaW5nJywnJykpXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgdGhpcy5yZXNldEVuYWJsZVNoYXJlRmxhZygpXHJcbiAgICB0aGlzLnVzZXJzID0gW11cclxuICAgIHRoaXMuZmlsdGVyZWRVc2VycyA9IFtdXHJcbiAgICB0aGlzLmFsbFVzZXJzID0gW11cclxuICAgIHRoaXMudXNlckN0cmwuc2V0VmFsdWUoJycpXHJcbiAgICB0aGlzLnJhaXNlVGVsZW1ldHJ5KCdzaGFyZUNsb3NlJylcclxuICB9XHJcblxyXG4gIGNvcHlUb0NsaXBib2FyZCgpIHtcclxuICAgIGNvbnN0IHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKVxyXG4gICAgdGV4dEFyZWEudmFsdWUgPSB3aW5kb3cubG9jYXRpb24uaHJlZlxyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0QXJlYSlcclxuICAgIHRleHRBcmVhLnNlbGVjdCgpXHJcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpXHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRleHRBcmVhKVxyXG4gICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ2xpbmtDb3BpZWQnLCdjb250ZW50U2hhcmluZycsJycpKVxyXG4gICAgdGhpcy5yYWlzZVRlbGVtZXRyeSgnY29weVRvQ2xpcGJvYXJkJylcclxuICB9XHJcblxyXG4gIHJhaXNlVGVsZW1ldHJ5KHN1YlR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudHMucmFpc2VJbnRlcmFjdFRlbGVtZXRyeShcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6ICdjbGljaycsXHJcbiAgICAgICAgc3ViVHlwZTogc3ViVHlwZSxcclxuICAgICAgICBpZDogdGhpcy5jb250ZW50ID8gdGhpcy5jb250ZW50LmlkZW50aWZpZXIgOiAnJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiB0aGlzLmNvbnRlbnQgPyB0aGlzLmNvbnRlbnQuaWRlbnRpZmllciA6ICcnLFxyXG4gICAgICAgIHR5cGU6IHRoaXMuY29udGVudCA/IHRoaXMuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgOiAnJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhZ2VJZEV4dDogYGJ0bi0ke3N1YlR5cGV9YCxcclxuICAgICAgICBtb2R1bGU6IFdzRXZlbnRzLkVudW1UZWxlbWV0cnltb2R1bGVzLkNPTlRFTlQsXHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcbiAgcHJpdmF0ZSBvcGVuU25hY2tiYXIocHJpbWFyeU1zZzogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gNTAwMCkge1xyXG4gICAgdGhpcy5zbmFja0Jhci5vcGVuKHByaW1hcnlNc2csICdYJywge1xyXG4gICAgICBkdXJhdGlvbixcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICByZXNldEVuYWJsZVNoYXJlRmxhZygpIHtcclxuICAgIHRoaXMucmVzZXRFbmFibGVTaGFyZS5lbWl0KGZhbHNlKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwic2hhcmUtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0xvYWRlclwiIGNsYXNzPVwidGV4dC1jZW50ZXIgbXktMiBsb2FkZXJcIj5cclxuICAgICAgICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJpbmxpbmUtYmxvY2tcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgY2xvc2Utc2hhcmUtZGlhbG9nXCI+PG1hdC1pY29uIChjbGljayk9XCJvbkNsb3NlKClcIiBjbGFzcz1cImNsb3NlLWljb25cIj5jbG9zZTwvbWF0LWljb24+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2hhcmUtbW9kYWxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2FybWFzYWhheW9naS1pY29uXCI+PGltZyBhbHQ9XCJrYXJtYXNhaGF5b2dpLWljb25cIiBzcmM9XCIvYXNzZXRzL2ljb25zL0thcm1hU2FoYXlvZ2kuc3ZnXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAgY2xhc3M9XCJjb250ZW50LWRpdlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmlhbmdsZS1sZWZ0IGhpZGRlbiBtZDpibG9ja1wiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250bmV0XCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwidy1mdWxsIGZsZXggYWxpZ24tY2VudGVyIGp1c3RpZnktYmV0d2VlbiBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwibWF0LWhlYWRsaW5lIG1hcmdpbi1yZW1vdmUtYm90dG9tIHdzLW1hdC1ibGFjay10ZXh0XCI+e3snY29udGVudFNoYXJpbmcuaGVhZGVyJyB8IHRyYW5zbGF0ZX19PC9oMj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic2hhcmVGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWJvZHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoaXAtbGlzdCAjY2hpcExpc3QgYXJpYS1sYWJlbD1cInVzZXIgc2VsZWN0aW9uXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoaXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVzZXIgb2YgdXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJyZW1vdmFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmUodXNlcilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t1c2VyfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmUgKm5nSWY9XCJyZW1vdmFibGVcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXRUZXh0Qm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3VzZXJzLmxlbmd0aCA9PT0gMCA/IHRyYW5zbGF0ZUxhYmVscygncGxhY2Vob2RlclRleHQnLCAnY29udGVudFNoYXJpbmcnKSA6ICcnfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdXNlcklucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ1c2VyQ3RybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJhZGRPbkJsdXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoaXAtbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cInNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdXNlciBvZiBmaWx0ZXJlZFVzZXJzXCIgW3ZhbHVlXT1cInVzZXIubmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25EaXZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb25UZXh0XCI+e3t1c2VyLmljb25UZXh0LnN1YnN0cmluZygwLDIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57e3VzZXIubmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtYWlsVGV4dFwiPnt7dXNlci5tYXNrZWRFbWFpbH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oaW50IGFsaWduPVwic3RhcnRcIiBjbGFzcz1cImxlZnQtb3Zlci1lbWFpbHNcIj57eydjb250ZW50U2hhcmluZy5ub3RlJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGludCBhbGlnbj1cImVuZFwiIGNsYXNzPVwibGVmdC1vdmVyLWVtYWlsc1wiPnt7IHVzZXJzLmxlbmd0aCB9fSAve3ttYXhFbWFpbHNMaW1pdH19IHt7J2NvbnRlbnRTaGFyaW5nLnJlbWFpbmdFbWFpbHMnIHwgdHJhbnNsYXRlfX08L21hdC1oaW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIGZsZXgtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvcHktbGluay1idG4gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKClcIj57eydjb250ZW50U2hhcmluZy5jb3B5TGluaycgfCB0cmFuc2xhdGV9fSAmbmJzcDsmbmJzcDs8bWF0LWljb24gPmxpbms8L21hdC1pY29uPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC13aGl0ZSBmbGV4LWF1dG8tZGlzcGxheSBzZW5kLWJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKHVzZXJDdHJsLnZhbHVlLmxlbmd0aCB8fCB1c2Vycy5sZW5ndGggPT09IDAgfHwgdXNlcnMubGVuZ3RoID4gbWF4RW1haWxzTGltaXQpID8gJ2dyYXktYmFja2dyb3VuZCcgOiAnYWN0aXZlLWJhY2tncm91bmQnIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInVzZXJDdHJsLnZhbHVlLmxlbmd0aCB8fCB1c2Vycy5sZW5ndGggPT09IDAgfHwgdXNlcnMubGVuZ3RoID4gbWF4RW1haWxzTGltaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXRTaGFyaW5nKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydjb250ZW50U2hhcmluZy5zZW5kJyB8IHRyYW5zbGF0ZX19ICZuYnNwOyA8bWF0LWljb24+c2VuZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19