@cometchat/chat-uikit-angular 4.3.36 → 5.0.0-beta.2

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 (648) hide show
  1. package/README.md +41 -14
  2. package/fesm2022/cometchat-chat-uikit-angular.mjs +107859 -0
  3. package/fesm2022/cometchat-chat-uikit-angular.mjs.map +1 -0
  4. package/package.json +14 -21
  5. package/screenshots/sample_app_overview.png +0 -0
  6. package/src/lib/assets/Collaborative-Whiteboard-Preview-Light.png +0 -0
  7. package/src/lib/assets/Collaborative-document-Preview-light.png +0 -0
  8. package/src/lib/assets/Collaborative_Document_Dark.png +0 -0
  9. package/src/lib/assets/Collaborative_Document_Light.png +0 -0
  10. package/src/lib/assets/Collaborative_Whiteboard_Dark.png +0 -0
  11. package/src/lib/assets/Collaborative_Whiteboard_Light.png +0 -0
  12. package/src/lib/assets/Copy.svg +5 -0
  13. package/src/lib/assets/Info.svg +8 -0
  14. package/src/lib/assets/Profile.png +0 -0
  15. package/src/lib/assets/Send.svg +3 -0
  16. package/src/lib/assets/Spinner-Gradient-1.svg +12 -0
  17. package/src/lib/assets/account_circle.svg +8 -0
  18. package/src/lib/assets/activity.svg +10 -0
  19. package/src/lib/assets/add.svg +8 -0
  20. package/src/lib/assets/add_a_photo.svg +8 -0
  21. package/src/lib/assets/add_box.svg +8 -0
  22. package/src/lib/assets/add_call.svg +8 -0
  23. package/src/lib/assets/add_circle.svg +3 -0
  24. package/src/lib/assets/add_circle_fill.svg +3 -0
  25. package/src/lib/assets/add_comment.svg +8 -0
  26. package/src/lib/assets/add_reaction.svg +8 -0
  27. package/src/lib/assets/add_reaction_icon.svg +5 -0
  28. package/src/lib/assets/ai_conversation_summary.svg +3 -0
  29. package/src/lib/assets/ai_fill.svg +4 -0
  30. package/src/lib/assets/ai_suggest_reply.svg +3 -0
  31. package/src/lib/assets/alternate_email.svg +8 -0
  32. package/src/lib/assets/animals_nature.svg +10 -0
  33. package/src/lib/assets/archive.svg +8 -0
  34. package/src/lib/assets/arrow_back.svg +8 -0
  35. package/src/lib/assets/arrow_forward.svg +8 -0
  36. package/src/lib/assets/attach_file.svg +8 -0
  37. package/src/lib/assets/audio_call_button.svg +5 -0
  38. package/src/lib/assets/audio_filter_icon.svg +3 -0
  39. package/src/lib/assets/bar_chart.svg +3 -0
  40. package/src/lib/assets/bedtime.svg +8 -0
  41. package/src/lib/assets/block.svg +8 -0
  42. package/src/lib/assets/bold-format.svg +3 -0
  43. package/src/lib/assets/bookmark.svg +8 -0
  44. package/src/lib/assets/bookmark_add.svg +8 -0
  45. package/src/lib/assets/bullet-list-format.svg +3 -0
  46. package/src/lib/assets/calendar_add_on.svg +8 -0
  47. package/src/lib/assets/calendar_today.svg +8 -0
  48. package/src/lib/assets/call-log-audio.svg +3 -0
  49. package/src/lib/assets/call-log_video.svg +3 -0
  50. package/src/lib/assets/call-logs_empty_state.svg +8 -0
  51. package/src/lib/assets/call-logs_empty_state_dark.svg +8 -0
  52. package/src/lib/assets/call.svg +8 -0
  53. package/src/lib/assets/call_end.svg +8 -0
  54. package/src/lib/assets/call_end_no_fill.svg +3 -0
  55. package/src/lib/assets/call_log.svg +8 -0
  56. package/src/lib/assets/call_made.svg +8 -0
  57. package/src/lib/assets/call_missed.svg +8 -0
  58. package/src/lib/assets/call_missed_outgoing.svg +8 -0
  59. package/src/lib/assets/call_received.svg +8 -0
  60. package/src/lib/assets/cancel.svg +8 -0
  61. package/src/lib/assets/cancel_fill.svg +8 -0
  62. package/src/lib/assets/change_circle.svg +3 -0
  63. package/src/lib/assets/change_scope.png +0 -0
  64. package/src/lib/assets/chat-history.svg +3 -0
  65. package/src/lib/assets/chat.svg +8 -0
  66. package/src/lib/assets/chat_bot.svg +3 -0
  67. package/src/lib/assets/chats_filter_icon.svg +1 -0
  68. package/src/lib/assets/check.svg +8 -0
  69. package/src/lib/assets/check_circle.svg +3 -0
  70. package/src/lib/assets/checkbox_tick.svg +5 -0
  71. package/src/lib/assets/chevron_left.svg +8 -0
  72. package/src/lib/assets/chevron_right.svg +8 -0
  73. package/src/lib/assets/circle.svg +3 -0
  74. package/src/lib/assets/close.svg +8 -0
  75. package/src/lib/assets/code-block-format.svg +3 -0
  76. package/src/lib/assets/code-format.svg +3 -0
  77. package/src/lib/assets/collaborative_document_fill.svg +4 -0
  78. package/src/lib/assets/collaborative_whiteboard.svg +4 -0
  79. package/src/lib/assets/collaborative_whiteboard_fill.svg +4 -0
  80. package/src/lib/assets/collabrative_document.svg +4 -0
  81. package/src/lib/assets/content_copy.svg +8 -0
  82. package/src/lib/assets/conversation_summary.svg +4 -0
  83. package/src/lib/assets/conversations_audio-message.svg +8 -0
  84. package/src/lib/assets/conversations_card-message.svg +8 -0
  85. package/src/lib/assets/conversations_collaborative-document-message.svg +4 -0
  86. package/src/lib/assets/conversations_collaborative-whiteboard-message.svg +5 -0
  87. package/src/lib/assets/conversations_delete.svg +8 -0
  88. package/src/lib/assets/conversations_delivered.svg +3 -0
  89. package/src/lib/assets/conversations_dropdown.svg +3 -0
  90. package/src/lib/assets/conversations_empty_state.svg +20 -0
  91. package/src/lib/assets/conversations_empty_state_dark.svg +20 -0
  92. package/src/lib/assets/conversations_error.svg +16 -0
  93. package/src/lib/assets/conversations_file-message.svg +8 -0
  94. package/src/lib/assets/conversations_form-message.svg +3 -0
  95. package/src/lib/assets/conversations_image-message.svg +8 -0
  96. package/src/lib/assets/conversations_incoming-video-call.svg +8 -0
  97. package/src/lib/assets/conversations_incoming-voice-call.svg +3 -0
  98. package/src/lib/assets/conversations_link.svg +8 -0
  99. package/src/lib/assets/conversations_missed-video-call.svg +8 -0
  100. package/src/lib/assets/conversations_missed-voice-call.svg +3 -0
  101. package/src/lib/assets/conversations_outgoing-video-call.svg +8 -0
  102. package/src/lib/assets/conversations_outgoing-voice-call.svg +4 -0
  103. package/src/lib/assets/conversations_poll-message.svg +3 -0
  104. package/src/lib/assets/conversations_read.svg +3 -0
  105. package/src/lib/assets/conversations_schedular-message.svg +8 -0
  106. package/src/lib/assets/conversations_sent.svg +3 -0
  107. package/src/lib/assets/conversations_sticker-message.svg +4 -0
  108. package/src/lib/assets/conversations_thread.svg +8 -0
  109. package/src/lib/assets/conversations_video-message.svg +8 -0
  110. package/{assets/wait.svg → src/lib/assets/conversations_wait.svg} +0 -0
  111. package/src/lib/assets/copy-text.svg +3 -0
  112. package/src/lib/assets/crop.svg +8 -0
  113. package/src/lib/assets/delete.svg +8 -0
  114. package/src/lib/assets/delete_icon.svg +4 -0
  115. package/src/lib/assets/deliveredIcon.svg +5 -0
  116. package/src/lib/assets/description.svg +8 -0
  117. package/src/lib/assets/document_icon.svg +10 -0
  118. package/src/lib/assets/done_all.svg +8 -0
  119. package/src/lib/assets/download.svg +8 -0
  120. package/src/lib/assets/dropdown-arrow.svg +3 -0
  121. package/src/lib/assets/edit.svg +8 -0
  122. package/src/lib/assets/edit_calendar.svg +8 -0
  123. package/src/lib/assets/edit_icon.svg +5 -0
  124. package/src/lib/assets/edit_square.svg +3 -0
  125. package/src/lib/assets/error.svg +9 -0
  126. package/src/lib/assets/error_icon.svg +3 -0
  127. package/src/lib/assets/error_info.svg +3 -0
  128. package/src/lib/assets/event.svg +8 -0
  129. package/src/lib/assets/favorite.svg +8 -0
  130. package/src/lib/assets/file_filter_icon.svg +4 -0
  131. package/src/lib/assets/file_type_jpg.png +0 -0
  132. package/src/lib/assets/file_type_link.png +0 -0
  133. package/src/lib/assets/file_type_mov.png +0 -0
  134. package/src/lib/assets/file_type_mp3.png +0 -0
  135. package/src/lib/assets/file_type_pdf.png +0 -0
  136. package/src/lib/assets/file_type_ppt.png +0 -0
  137. package/src/lib/assets/file_type_txt.png +0 -0
  138. package/src/lib/assets/file_type_unsupported.png +0 -0
  139. package/src/lib/assets/file_type_word.png +0 -0
  140. package/src/lib/assets/file_type_xlsx.png +0 -0
  141. package/src/lib/assets/file_type_zip.png +0 -0
  142. package/src/lib/assets/filter_list.svg +8 -0
  143. package/src/lib/assets/filter_list_off.svg +8 -0
  144. package/src/lib/assets/flags.svg +5 -0
  145. package/src/lib/assets/flip_camera_ios.svg +8 -0
  146. package/src/lib/assets/food_drink.svg +10 -0
  147. package/src/lib/assets/forward.svg +8 -0
  148. package/src/lib/assets/gif.svg +3 -0
  149. package/src/lib/assets/graphic_eq.svg +3 -0
  150. package/src/lib/assets/group_filter_icon.svg +3 -0
  151. package/src/lib/assets/groups_empty_state.svg +8 -0
  152. package/src/lib/assets/groups_empty_state_dark.svg +8 -0
  153. package/src/lib/assets/help.svg +8 -0
  154. package/src/lib/assets/history.svg +8 -0
  155. package/src/lib/assets/image_placeholder.png +0 -0
  156. package/src/lib/assets/incoming_video.svg +8 -0
  157. package/src/lib/assets/incoming_video_no_fill.svg +4 -0
  158. package/src/lib/assets/info_icon.svg +3 -0
  159. package/src/lib/assets/info_icon_fill.svg +5 -0
  160. package/src/lib/assets/italic-format.svg +3 -0
  161. package/src/lib/assets/keep.svg +8 -0
  162. package/src/lib/assets/keep_off.svg +8 -0
  163. package/src/lib/assets/keyboard.svg +8 -0
  164. package/src/lib/assets/keyboard_arrow_down.svg +8 -0
  165. package/src/lib/assets/keyboard_arrow_up.svg +8 -0
  166. package/src/lib/assets/language.svg +8 -0
  167. package/src/lib/assets/link.svg +8 -0
  168. package/src/lib/assets/link_filter_icon.svg +3 -0
  169. package/src/lib/assets/link_icon_2x.svg +3 -0
  170. package/src/lib/assets/list_error_state_icon.svg +20 -0
  171. package/src/lib/assets/list_error_state_icon_dark.svg +27 -0
  172. package/src/lib/assets/loading.svg +5 -0
  173. package/src/lib/assets/loading_animation.svg +5 -0
  174. package/src/lib/assets/loading_icon.svg +3 -0
  175. package/src/lib/assets/location_on.svg +8 -0
  176. package/src/lib/assets/lock.svg +8 -0
  177. package/src/lib/assets/lock_open.svg +8 -0
  178. package/src/lib/assets/logout.svg +3 -0
  179. package/src/lib/assets/mail.svg +8 -0
  180. package/src/lib/assets/message_blocked.svg +8 -0
  181. package/src/lib/assets/message_delete.svg +8 -0
  182. package/src/lib/assets/messages_filter_icon.svg +1 -0
  183. package/src/lib/assets/mic.svg +3 -0
  184. package/src/lib/assets/mic_fill.svg +8 -0
  185. package/src/lib/assets/mic_off.svg +8 -0
  186. package/src/lib/assets/missedCallIcon.svg +10 -0
  187. package/src/lib/assets/missed_video_call.svg +8 -0
  188. package/src/lib/assets/missed_video_call_no_fill.svg +3 -0
  189. package/src/lib/assets/mood.svg +3 -0
  190. package/src/lib/assets/mood_fill.svg +8 -0
  191. package/src/lib/assets/more_icon.svg +5 -0
  192. package/src/lib/assets/more_vert.svg +8 -0
  193. package/src/lib/assets/near_me.svg +3 -0
  194. package/src/lib/assets/new-chat.svg +3 -0
  195. package/src/lib/assets/no-messages.svg +8 -0
  196. package/src/lib/assets/no_photography.svg +8 -0
  197. package/src/lib/assets/notifications.svg +8 -0
  198. package/src/lib/assets/notifications_off.svg +8 -0
  199. package/src/lib/assets/number-list-format.svg +3 -0
  200. package/src/lib/assets/objects.svg +10 -0
  201. package/src/lib/assets/outgoing_video.svg +8 -0
  202. package/src/lib/assets/outgoing_video_no_fill.svg +4 -0
  203. package/src/lib/assets/pause.svg +8 -0
  204. package/src/lib/assets/person.svg +8 -0
  205. package/src/lib/assets/person_add.svg +8 -0
  206. package/src/lib/assets/phone_in_talk.svg +8 -0
  207. package/src/lib/assets/phone_incoming.svg +3 -0
  208. package/src/lib/assets/phone_incoming_no_fill.svg +3 -0
  209. package/src/lib/assets/phone_missed.svg +8 -0
  210. package/src/lib/assets/phone_missed_no_fill.svg +3 -0
  211. package/src/lib/assets/phone_outgoing.svg +4 -0
  212. package/src/lib/assets/phone_outgoing_no_fill.svg +4 -0
  213. package/src/lib/assets/photo.svg +8 -0
  214. package/src/lib/assets/photo_camera.svg +8 -0
  215. package/src/lib/assets/photo_filter_icon.svg +3 -0
  216. package/src/lib/assets/placeholder.png +0 -0
  217. package/src/lib/assets/play_arrow.svg +8 -0
  218. package/src/lib/assets/play_circle.svg +8 -0
  219. package/src/lib/assets/poll.svg +5 -0
  220. package/src/lib/assets/quote-format.svg +3 -0
  221. package/src/lib/assets/readIcon.svg +5 -0
  222. package/src/lib/assets/rearrange.svg +3 -0
  223. package/src/lib/assets/recording_icon.svg +10 -0
  224. package/src/lib/assets/recording_resume.svg +10 -0
  225. package/src/lib/assets/refresh.svg +8 -0
  226. package/src/lib/assets/reply.svg +8 -0
  227. package/src/lib/assets/reply_all.svg +8 -0
  228. package/src/lib/assets/reply_in_thread.svg +10 -0
  229. package/src/lib/assets/retry.svg +3 -0
  230. package/src/lib/assets/right-arrow.svg +3 -0
  231. package/src/lib/assets/sample-audio.wav +0 -0
  232. package/src/lib/assets/sample-video-thumbnail.svg +7 -0
  233. package/src/lib/assets/sample-video.mp4 +0 -0
  234. package/src/lib/assets/schedule.svg +8 -0
  235. package/src/lib/assets/screen_share.svg +8 -0
  236. package/src/lib/assets/search.svg +8 -0
  237. package/src/lib/assets/search_message_icon.svg +8 -0
  238. package/src/lib/assets/send-message.svg +3 -0
  239. package/src/lib/assets/send_fill.svg +8 -0
  240. package/src/lib/assets/settings.svg +8 -0
  241. package/src/lib/assets/share.svg +8 -0
  242. package/src/lib/assets/shield.svg +3 -0
  243. package/src/lib/assets/smileys_people.svg +10 -0
  244. package/src/lib/assets/star.svg +8 -0
  245. package/src/lib/assets/status_delivered.svg +5 -0
  246. package/src/lib/assets/status_error.svg +16 -0
  247. package/src/lib/assets/status_read.svg +3 -0
  248. package/src/lib/assets/status_sending.svg +5 -0
  249. package/src/lib/assets/status_sent.svg +5 -0
  250. package/src/lib/assets/sticker.svg +3 -0
  251. package/src/lib/assets/sticker_fill.svg +4 -0
  252. package/src/lib/assets/stop-message.svg +3 -0
  253. package/src/lib/assets/stop.svg +8 -0
  254. package/src/lib/assets/stop_circle.svg +8 -0
  255. package/src/lib/assets/stop_screen_share.svg +8 -0
  256. package/src/lib/assets/strike-out-format.svg +3 -0
  257. package/src/lib/assets/subdirectory_arrow_left.svg +8 -0
  258. package/src/lib/assets/subdirectory_arrow_right.svg +8 -0
  259. package/src/lib/assets/sunny.svg +8 -0
  260. package/src/lib/assets/symbols.svg +13 -0
  261. package/src/lib/assets/thumb_down.svg +8 -0
  262. package/src/lib/assets/thumb_up.svg +8 -0
  263. package/src/lib/assets/toast_check_circle.svg +3 -0
  264. package/src/lib/assets/toast_error.svg +3 -0
  265. package/src/lib/assets/toast_info.svg +3 -0
  266. package/src/lib/assets/toast_warning.svg +3 -0
  267. package/src/lib/assets/toolbar-toggle.svg +3 -0
  268. package/src/lib/assets/tooltip-side.svg +5 -0
  269. package/src/lib/assets/tooltip.svg +5 -0
  270. package/src/lib/assets/translate.svg +3 -0
  271. package/src/lib/assets/travel_places.svg +10 -0
  272. package/src/lib/assets/ulr-format.svg +3 -0
  273. package/src/lib/assets/underline-format.svg +3 -0
  274. package/src/lib/assets/unread_filter_icon.svg +7 -0
  275. package/src/lib/assets/upload.svg +3 -0
  276. package/src/lib/assets/user_empty.svg +8 -0
  277. package/src/lib/assets/user_empty_dark.svg +8 -0
  278. package/src/lib/assets/video_call.svg +8 -0
  279. package/src/lib/assets/video_call_button.svg +5 -0
  280. package/src/lib/assets/video_filter_icon.svg +3 -0
  281. package/src/lib/assets/videocam.svg +8 -0
  282. package/src/lib/assets/videocam_off.svg +8 -0
  283. package/src/lib/assets/visibility_off.svg +3 -0
  284. package/src/lib/assets/volume_down.svg +8 -0
  285. package/src/lib/assets/volume_mute.svg +8 -0
  286. package/src/lib/assets/volume_off.svg +8 -0
  287. package/src/lib/assets/volume_up.svg +8 -0
  288. package/src/lib/assets/warning.svg +8 -0
  289. package/src/lib/assets/warning_neutral.svg +3 -0
  290. package/src/lib/assets/wifi.svg +8 -0
  291. package/src/lib/assets/zoom_in_map.svg +8 -0
  292. package/src/lib/assets/zoom_out_map.svg +8 -0
  293. package/styles/accessibility.css +148 -0
  294. package/styles/css-variables.css +547 -0
  295. package/styles/fonts/Roboto/LICENSE.txt +202 -0
  296. package/styles/fonts/Roboto/Roboto-Black.ttf +0 -0
  297. package/styles/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
  298. package/styles/fonts/Roboto/Roboto-Bold.ttf +0 -0
  299. package/styles/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
  300. package/styles/fonts/Roboto/Roboto-Italic.ttf +0 -0
  301. package/styles/fonts/Roboto/Roboto-Light.ttf +0 -0
  302. package/styles/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
  303. package/styles/fonts/Roboto/Roboto-Medium.ttf +0 -0
  304. package/styles/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  305. package/styles/fonts/Roboto/Roboto-Regular.ttf +0 -0
  306. package/styles/fonts/Roboto/Roboto-Thin.ttf +0 -0
  307. package/styles/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
  308. package/styles/mention-styles.css +190 -0
  309. package/styles/rich-text-styles.css +310 -0
  310. package/types/cometchat-chat-uikit-angular.d.ts +34636 -0
  311. package/AI/AIAssistBot/AIAssistBot.d.ts +0 -7
  312. package/AI/AIAssistBot/AIAssistBotDecorator.d.ts +0 -11
  313. package/AI/AIConversationStarter/AIConversationStarter.d.ts +0 -7
  314. package/AI/AIConversationStarter/AIConversationStarterDecorator.d.ts +0 -9
  315. package/AI/AIConversationSummary/AIConversationSummary.d.ts +0 -7
  316. package/AI/AIConversationSummary/AIConversationSummaryDecorator.d.ts +0 -10
  317. package/AI/AISmartReplies/AISmartReplies.d.ts +0 -7
  318. package/AI/AISmartReplies/AISmartRepliesDecorator.d.ts +0 -9
  319. package/Calls/CallingExtension.d.ts +0 -6
  320. package/Calls/CallingExtensionDecorator.d.ts +0 -16
  321. package/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.d.ts +0 -79
  322. package/Calls/CometChatCallButtons/cometchat-call-buttons.module.d.ts +0 -11
  323. package/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.d.ts +0 -136
  324. package/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.d.ts +0 -14
  325. package/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.d.ts +0 -112
  326. package/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.d.ts +0 -10
  327. package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.d.ts +0 -77
  328. package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.d.ts +0 -10
  329. package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.d.ts +0 -91
  330. package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.d.ts +0 -10
  331. package/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.d.ts +0 -134
  332. package/Calls/CometChatCallLogs/cometchat-call-logs.module.d.ts +0 -12
  333. package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.d.ts +0 -54
  334. package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.d.ts +0 -12
  335. package/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.d.ts +0 -81
  336. package/Calls/CometChatIncomingCall/cometchat-incoming-call.module.d.ts +0 -11
  337. package/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.d.ts +0 -38
  338. package/Calls/CometChatOngoingCall/cometchat-ongoing-call.module.d.ts +0 -9
  339. package/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.d.ts +0 -57
  340. package/Calls/CometChatOutgoingCall/cometchat-outgoing-call.module.d.ts +0 -10
  341. package/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.d.ts +0 -117
  342. package/CometChatAddMembers/cometchat-add-members.module.d.ts +0 -12
  343. package/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.d.ts +0 -152
  344. package/CometChatBannedMembers/cometchat-banned-members.module.d.ts +0 -13
  345. package/CometChatContacts/cometchat-contacts/cometchat-contacts.component.d.ts +0 -66
  346. package/CometChatContacts/cometchat-contacts.module.d.ts +0 -12
  347. package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +0 -387
  348. package/CometChatConversations/cometchat-conversations.module.d.ts +0 -10
  349. package/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.d.ts +0 -98
  350. package/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.d.ts +0 -11
  351. package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +0 -164
  352. package/CometChatDetails/cometchat-details.module.d.ts +0 -12
  353. package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +0 -162
  354. package/CometChatGroupMembers/cometchat-group-members.module.d.ts +0 -13
  355. package/CometChatGroups/cometchat-groups/cometchat-groups.component.d.ts +0 -150
  356. package/CometChatGroups/cometchat-groups.module.d.ts +0 -10
  357. package/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.d.ts +0 -103
  358. package/CometChatGroupsWithMessages/cometchat-groups-with-messages.module.d.ts +0 -11
  359. package/CometChatList/cometchat-list.component.d.ts +0 -91
  360. package/CometChatList/cometchat-list.module.d.ts +0 -10
  361. package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +0 -63
  362. package/CometChatMessageBubble/cometchat-message-bubble.module.d.ts +0 -8
  363. package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +0 -326
  364. package/CometChatMessageComposer/cometchat-message-composer.module.d.ts +0 -11
  365. package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +0 -99
  366. package/CometChatMessageHeader/cometchat-message-header.module.d.ts +0 -9
  367. package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +0 -99
  368. package/CometChatMessageInformation/cometchat-message-information.module.d.ts +0 -10
  369. package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +0 -819
  370. package/CometChatMessageList/cometchat-message-list.module.d.ts +0 -13
  371. package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +0 -149
  372. package/CometChatMessages/cometchat-messages.module.d.ts +0 -16
  373. package/CometChatTheme.service.d.ts +0 -7
  374. package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +0 -85
  375. package/CometChatThreadedMessages/cometchat-threaded-messages.module.d.ts +0 -12
  376. package/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.d.ts +0 -88
  377. package/CometChatTransferOwnership/cometchat-transfer-ownership.module.d.ts +0 -10
  378. package/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.d.ts +0 -41
  379. package/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.d.ts +0 -11
  380. package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +0 -194
  381. package/CometChatUsers/cometchat-users.module.d.ts +0 -11
  382. package/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.d.ts +0 -72
  383. package/CometChatUsersWithMessages/cometchat-users-with-messages.module.d.ts +0 -10
  384. package/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.d.ts +0 -5
  385. package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +0 -14
  386. package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.d.ts +0 -5
  387. package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +0 -14
  388. package/Extensions/ImageModeration/ImageModerationExtension.d.ts +0 -5
  389. package/Extensions/ImageModeration/ImageModerationExtensionDecorator.d.ts +0 -6
  390. package/Extensions/LinkPreviewExtension/LinkPreviewExtension.d.ts +0 -5
  391. package/Extensions/LinkPreviewExtension/LinkPreviewExtensionDecorator.d.ts +0 -6
  392. package/Extensions/MessageTranslation/MessageTranslationExtension.d.ts +0 -5
  393. package/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.d.ts +0 -9
  394. package/Extensions/PollsExtension/PollsExtension.d.ts +0 -5
  395. package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +0 -14
  396. package/Extensions/SmartReplies/SmartRepliesExtension.d.ts +0 -5
  397. package/Extensions/SmartReplies/SmartRepliesExtensionDecorator.d.ts +0 -16
  398. package/Extensions/Stickers/StickersExtension.d.ts +0 -5
  399. package/Extensions/Stickers/StickersExtensionDecorator.d.ts +0 -28
  400. package/Extensions/TextModerator/TextModeratorExtension.d.ts +0 -6
  401. package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +0 -8
  402. package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.d.ts +0 -5
  403. package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtensionDecorator.d.ts +0 -6
  404. package/Screenshots/overview_cometchat_screens.png +0 -0
  405. package/Shared/CometChatUIkit/CometChatUIKit.d.ts +0 -49
  406. package/Shared/Framework/AIExtensionDataSource.d.ts +0 -5
  407. package/Shared/Framework/ChatConfigurator.d.ts +0 -8
  408. package/Shared/Framework/DataSource.d.ts +0 -40
  409. package/Shared/Framework/DataSourceDecorator.d.ts +0 -43
  410. package/Shared/Framework/ExtensionDataSource.d.ts +0 -3
  411. package/Shared/Utils/CallDetailUtils.d.ts +0 -8
  412. package/Shared/Utils/CallLogUtils.d.ts +0 -8
  413. package/Shared/Utils/ComeChatException.d.ts +0 -1
  414. package/Shared/Utils/MessageUtils.d.ts +0 -151
  415. package/Shared/Utils/UtilityFunctions.d.ts +0 -6
  416. package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.d.ts +0 -71
  417. package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.d.ts +0 -11
  418. package/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.d.ts +0 -82
  419. package/Shared/Views/CometChatTabs/cometchat-tabs.module.d.ts +0 -8
  420. package/assets/.gitkeep +0 -0
  421. package/assets/Audio-Call.svg +0 -11
  422. package/assets/Audio-Call2x.svg +0 -11
  423. package/assets/Copy.svg +0 -17
  424. package/assets/Grid-layout.svg +0 -1
  425. package/assets/Heart.svg +0 -11
  426. package/assets/Imagemoderation.svg +0 -14
  427. package/assets/Info.svg +0 -13
  428. package/assets/InfoIcon.svg +0 -13
  429. package/assets/InfoSimpleIcon.svg +0 -4
  430. package/assets/Locked.svg +0 -10
  431. package/assets/More@2x.svg +0 -9
  432. package/assets/Plus.svg +0 -13
  433. package/assets/Private.svg +0 -10
  434. package/assets/Reactionsicon.svg +0 -9
  435. package/assets/Reply@2x.svg +0 -9
  436. package/assets/Send.svg +0 -12
  437. package/assets/Spinner.svg +0 -15
  438. package/assets/Stickers.svg +0 -16
  439. package/assets/Stipop.svg +0 -9
  440. package/assets/Video-call.svg +0 -12
  441. package/assets/Video-call2x.svg +0 -12
  442. package/assets/activity.svg +0 -22
  443. package/assets/addreaction.svg +0 -9
  444. package/assets/ai-bot.svg +0 -24
  445. package/assets/ai-empty.svg +0 -22
  446. package/assets/ai-error.svg +0 -21
  447. package/assets/animals.svg +0 -15
  448. package/assets/attachment-file.svg +0 -14
  449. package/assets/audio-file.svg +0 -12
  450. package/assets/back.png +0 -0
  451. package/assets/backbutton.svg +0 -12
  452. package/assets/call.svg +0 -1
  453. package/assets/chats.svg +0 -1
  454. package/assets/checkmark.svg +0 -11
  455. package/assets/close.svg +0 -12
  456. package/assets/close2x.svg +0 -12
  457. package/assets/collaborativedocument.svg +0 -13
  458. package/assets/collaborativewhiteboard.svg +0 -12
  459. package/assets/create-button.svg +0 -12
  460. package/assets/declaration.d.ts +0 -3
  461. package/assets/delete.svg +0 -7
  462. package/assets/deleteicon.svg +0 -15
  463. package/assets/down-arrow.svg +0 -1
  464. package/assets/download.svg +0 -13
  465. package/assets/editicon.svg +0 -14
  466. package/assets/emoji.svg +0 -2693
  467. package/assets/empty-slot.svg +0 -14
  468. package/assets/file-upload.svg +0 -2693
  469. package/assets/flags.svg +0 -12
  470. package/assets/food.svg +0 -26
  471. package/assets/greaterThanIcon.svg +0 -3
  472. package/assets/group.svg +0 -40
  473. package/assets/heart-reaction.png +0 -0
  474. package/assets/heart.png +0 -0
  475. package/assets/image.svg +0 -2693
  476. package/assets/incomingAudioCallIconUrl.svg +0 -5
  477. package/assets/incomingVideoCallIconUrl.svg +0 -6
  478. package/assets/incomingcall.wav +0 -0
  479. package/assets/increase-size.svg +0 -6
  480. package/assets/location.svg +0 -2693
  481. package/assets/message-delivered.png +0 -0
  482. package/assets/message-delivered.svg +0 -5
  483. package/assets/message-read.png +0 -0
  484. package/assets/message-read.svg +0 -5
  485. package/assets/message-sent.png +0 -0
  486. package/assets/message-sent.svg +0 -3
  487. package/assets/mic.svg +0 -11
  488. package/assets/missedAudioCallIconUrl.svg +0 -5
  489. package/assets/missedVideoCallIconUrl.svg +0 -6
  490. package/assets/moreicon.svg +0 -9
  491. package/assets/new-chat.svg +0 -13
  492. package/assets/new-message-icon.svg +0 -1
  493. package/assets/objects.svg +0 -13
  494. package/assets/open-thread.svg +0 -11
  495. package/assets/outgoingAudioCallIconUrl.svg +0 -5
  496. package/assets/outgoingVideoCallIconUrl.svg +0 -6
  497. package/assets/password-protected-group.svg +0 -3
  498. package/assets/pause-icon.svg +0 -14
  499. package/assets/photolibrary.svg +0 -11
  500. package/assets/placeholder.png +0 -0
  501. package/assets/play-icon.svg +0 -18
  502. package/assets/plus-rotated.svg +0 -13
  503. package/assets/polls.svg +0 -14
  504. package/assets/privacy.svg +0 -4
  505. package/assets/private-group.svg +0 -9
  506. package/assets/public.svg +0 -3
  507. package/assets/record-icon.svg +0 -8
  508. package/assets/reduce-size.svg +0 -6
  509. package/assets/right-arrow.svg +0 -6
  510. package/assets/search.png +0 -0
  511. package/assets/search.svg +0 -4
  512. package/assets/side-arrow.svg +0 -1
  513. package/assets/smileys.svg +0 -16
  514. package/assets/start-chat.svg +0 -1
  515. package/assets/start-conversation.svg +0 -46
  516. package/assets/stop.svg +0 -1
  517. package/assets/symbols.svg +0 -16
  518. package/assets/thread-arrow.svg +0 -1
  519. package/assets/thread-icon.svg +0 -38
  520. package/assets/threadIndicatorIcon.svg +0 -11
  521. package/assets/threadicon.svg +0 -14
  522. package/assets/translation.svg +0 -16
  523. package/assets/travel.svg +0 -18
  524. package/assets/unsafe-content.svg +0 -23
  525. package/assets/user.svg +0 -31
  526. package/assets/video-upload.svg +0 -2693
  527. package/assets/video.svg +0 -12
  528. package/assets/wait.png +0 -0
  529. package/assets/warning-small.png +0 -0
  530. package/assets/warning-small.svg +0 -5
  531. package/cometchat-chat-uikit-angular.d.ts +0 -5
  532. package/esm2020/AI/AIAssistBot/AIAssistBot.mjs +0 -21
  533. package/esm2020/AI/AIAssistBot/AIAssistBotDecorator.mjs +0 -68
  534. package/esm2020/AI/AIConversationStarter/AIConversationStarter.mjs +0 -21
  535. package/esm2020/AI/AIConversationStarter/AIConversationStarterDecorator.mjs +0 -31
  536. package/esm2020/AI/AIConversationSummary/AIConversationSummary.mjs +0 -21
  537. package/esm2020/AI/AIConversationSummary/AIConversationSummaryDecorator.mjs +0 -32
  538. package/esm2020/AI/AISmartReplies/AISmartReplies.mjs +0 -21
  539. package/esm2020/AI/AISmartReplies/AISmartRepliesDecorator.mjs +0 -31
  540. package/esm2020/Calls/CallingExtension.mjs +0 -14
  541. package/esm2020/Calls/CallingExtensionDecorator.mjs +0 -127
  542. package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +0 -409
  543. package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons.module.mjs +0 -32
  544. package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.mjs +0 -373
  545. package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.mjs +0 -47
  546. package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.mjs +0 -352
  547. package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.mjs +0 -21
  548. package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.mjs +0 -189
  549. package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.mjs +0 -21
  550. package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.mjs +0 -246
  551. package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.mjs +0 -21
  552. package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.mjs +0 -592
  553. package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs.module.mjs +0 -36
  554. package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.mjs +0 -198
  555. package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.mjs +0 -39
  556. package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.mjs +0 -464
  557. package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call.module.mjs +0 -32
  558. package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.mjs +0 -176
  559. package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call.module.mjs +0 -27
  560. package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.mjs +0 -188
  561. package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call.module.mjs +0 -28
  562. package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +0 -374
  563. package/esm2020/CometChatAddMembers/cometchat-add-members.module.mjs +0 -23
  564. package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +0 -530
  565. package/esm2020/CometChatBannedMembers/cometchat-banned-members.module.mjs +0 -24
  566. package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +0 -274
  567. package/esm2020/CometChatContacts/cometchat-contacts.module.mjs +0 -23
  568. package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +0 -1837
  569. package/esm2020/CometChatConversations/cometchat-conversations.module.mjs +0 -28
  570. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +0 -413
  571. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.mjs +0 -35
  572. package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +0 -789
  573. package/esm2020/CometChatDetails/cometchat-details.module.mjs +0 -27
  574. package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +0 -807
  575. package/esm2020/CometChatGroupMembers/cometchat-group-members.module.mjs +0 -24
  576. package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +0 -681
  577. package/esm2020/CometChatGroups/cometchat-groups.module.mjs +0 -28
  578. package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +0 -499
  579. package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages.module.mjs +0 -35
  580. package/esm2020/CometChatList/cometchat-list.component.mjs +0 -225
  581. package/esm2020/CometChatList/cometchat-list.module.mjs +0 -28
  582. package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +0 -166
  583. package/esm2020/CometChatMessageBubble/cometchat-message-bubble.module.mjs +0 -23
  584. package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +0 -1976
  585. package/esm2020/CometChatMessageComposer/cometchat-message-composer.module.mjs +0 -22
  586. package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +0 -467
  587. package/esm2020/CometChatMessageHeader/cometchat-message-header.module.mjs +0 -26
  588. package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +0 -308
  589. package/esm2020/CometChatMessageInformation/cometchat-message-information.module.mjs +0 -28
  590. package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +0 -4360
  591. package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +0 -42
  592. package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +0 -449
  593. package/esm2020/CometChatMessages/cometchat-messages.module.mjs +0 -52
  594. package/esm2020/CometChatTheme.service.mjs +0 -17
  595. package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +0 -372
  596. package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages.module.mjs +0 -36
  597. package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +0 -336
  598. package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership.module.mjs +0 -21
  599. package/esm2020/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.mjs +0 -75
  600. package/esm2020/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.mjs +0 -21
  601. package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +0 -788
  602. package/esm2020/CometChatUsers/cometchat-users.module.mjs +0 -32
  603. package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +0 -205
  604. package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages.module.mjs +0 -31
  605. package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.mjs +0 -12
  606. package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +0 -93
  607. package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.mjs +0 -12
  608. package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +0 -94
  609. package/esm2020/Extensions/ImageModeration/ImageModerationExtension.mjs +0 -12
  610. package/esm2020/Extensions/ImageModeration/ImageModerationExtensionDecorator.mjs +0 -10
  611. package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtension.mjs +0 -12
  612. package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtensionDecorator.mjs +0 -10
  613. package/esm2020/Extensions/MessageTranslation/MessageTranslationExtension.mjs +0 -12
  614. package/esm2020/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.mjs +0 -31
  615. package/esm2020/Extensions/PollsExtension/PollsExtension.mjs +0 -12
  616. package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +0 -77
  617. package/esm2020/Extensions/SmartReplies/SmartRepliesExtension.mjs +0 -12
  618. package/esm2020/Extensions/SmartReplies/SmartRepliesExtensionDecorator.mjs +0 -115
  619. package/esm2020/Extensions/Stickers/StickersExtension.mjs +0 -12
  620. package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +0 -125
  621. package/esm2020/Extensions/TextModerator/TextModeratorExtension.mjs +0 -22
  622. package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +0 -87
  623. package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.mjs +0 -12
  624. package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtensionDecorator.mjs +0 -10
  625. package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +0 -495
  626. package/esm2020/Shared/Framework/AIExtensionDataSource.mjs +0 -3
  627. package/esm2020/Shared/Framework/ChatConfigurator.mjs +0 -23
  628. package/esm2020/Shared/Framework/DataSource.mjs +0 -3
  629. package/esm2020/Shared/Framework/DataSourceDecorator.mjs +0 -113
  630. package/esm2020/Shared/Framework/ExtensionDataSource.mjs +0 -4
  631. package/esm2020/Shared/Utils/CallDetailUtils.mjs +0 -72
  632. package/esm2020/Shared/Utils/CallLogUtils.mjs +0 -122
  633. package/esm2020/Shared/Utils/ComeChatException.mjs +0 -10
  634. package/esm2020/Shared/Utils/MessageUtils.mjs +0 -682
  635. package/esm2020/Shared/Utils/UtilityFunctions.mjs +0 -36
  636. package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.mjs +0 -290
  637. package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.mjs +0 -22
  638. package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.mjs +0 -124
  639. package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs.module.mjs +0 -23
  640. package/esm2020/cometchat-chat-uikit-angular.mjs +0 -5
  641. package/esm2020/public-api.mjs +0 -115
  642. package/examples/sample-app/README.md +0 -50
  643. package/fesm2015/cometchat-chat-uikit-angular.mjs +0 -22649
  644. package/fesm2015/cometchat-chat-uikit-angular.mjs.map +0 -1
  645. package/fesm2020/cometchat-chat-uikit-angular.mjs +0 -22538
  646. package/fesm2020/cometchat-chat-uikit-angular.mjs.map +0 -1
  647. package/public-api.d.ts +0 -106
  648. /package/{assets/message-privately.svg → src/lib/assets/send_message_privately.svg} +0 -0
@@ -1,495 +0,0 @@
1
- import { CometChatUIKitLoginListener, CometChatUIKitUtility, InteractiveMessageUtils, StorageUtils, } from "@cometchat/uikit-shared";
2
- import { ChatSdkEventInitializer, CometChatLocalize, CometChatMessageEvents, CometChatUIKitConstants, MessageStatus, } from "@cometchat/uikit-resources";
3
- import { CometChatUIKitSharedSettings } from "@cometchat/uikit-shared";
4
- import { CallingExtension } from "../../Calls/CallingExtension";
5
- import { ChatConfigurator } from "../Framework/ChatConfigurator";
6
- import { CollaborativeDocumentExtension } from "../../Extensions/CollaborativeDocument/CollaborativeDocumentExtension";
7
- import { CollaborativeWhiteBoardExtension } from "../../Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension";
8
- import { CometChat } from "@cometchat/chat-sdk-javascript";
9
- import { ImageModerationExtension } from "../../Extensions/ImageModeration/ImageModerationExtension";
10
- import { LinkPreviewExtension } from "../../Extensions/LinkPreviewExtension/LinkPreviewExtension";
11
- import { MessageTranslationExtension } from "../../Extensions/MessageTranslation/MessageTranslationExtension";
12
- import { PollsExtension } from "../../Extensions/PollsExtension/PollsExtension";
13
- import { SmartReplyExtension } from "../../Extensions/SmartReplies/SmartRepliesExtension";
14
- import { StickersExtension } from "../../Extensions/Stickers/StickersExtension";
15
- import { TextModeratorExtension } from "../../Extensions/TextModerator/TextModeratorExtension";
16
- import { ThumbnailGenerationExtension } from "../../Extensions/ThumbnailGeneration/ThumbnailGenerationExtension";
17
- import { AIConversationSummaryExtension } from "./../../AI/AIConversationSummary/AIConversationSummary";
18
- import { AISmartRepliesExtension } from "./../../AI/AISmartReplies/AISmartReplies";
19
- import { AIConversationStarterExtension } from "./../../AI/AIConversationStarter/AIConversationStarter";
20
- import { CometChatUIKitCalls, CometChatSoundManager, } from "@cometchat/uikit-shared";
21
- import { AIAssistBotExtension } from "../../AI/AIAssistBot/AIAssistBot";
22
- export class CometChatUIKit {
23
- static getDataSource() {
24
- return ChatConfigurator.getDataSource();
25
- }
26
- static init(uiKitSettings) {
27
- // perform sdk init taking values from uiKitSettings
28
- CometChatUIKit.uiKitSettings = uiKitSettings;
29
- if (window) {
30
- window.CometChatUiKit = {
31
- name: "@cometchat/chat-uikit-angular",
32
- version: "4.3.36",
33
- };
34
- }
35
- if (CometChatUIKitSharedSettings) {
36
- CometChatUIKitSharedSettings.uikitSettings = CometChatUIKit?.uiKitSettings;
37
- }
38
- if (!CometChatUIKit.checkAuthSettings())
39
- return undefined;
40
- const appSettingsBuilder = new CometChat.AppSettingsBuilder();
41
- if (uiKitSettings.getRoles()) {
42
- appSettingsBuilder.subscribePresenceForRoles(uiKitSettings.getRoles());
43
- }
44
- else if (uiKitSettings.getSubscriptionType() === "ALL_USERS") {
45
- appSettingsBuilder.subscribePresenceForAllUsers();
46
- }
47
- else if (uiKitSettings.getSubscriptionType() === "FRIENDS") {
48
- appSettingsBuilder.subscribePresenceForFriends();
49
- }
50
- appSettingsBuilder.autoEstablishSocketConnection(uiKitSettings.isAutoEstablishSocketConnection());
51
- appSettingsBuilder.setRegion(uiKitSettings.getRegion());
52
- appSettingsBuilder.overrideAdminHost(uiKitSettings.getAdminHost());
53
- appSettingsBuilder.overrideClientHost(uiKitSettings.getClientHost());
54
- if (uiKitSettings.getStorageMode()) {
55
- appSettingsBuilder.setStorageMode(uiKitSettings.getStorageMode());
56
- }
57
- const appSettings = appSettingsBuilder.build();
58
- return new Promise((resolve, reject) => {
59
- CometChat.init(uiKitSettings?.appId, appSettings)
60
- .then(() => {
61
- CometChat.setSource("uikit-v4", "web", "angular");
62
- CometChatUIKit.getLoggedinUser()
63
- ?.then((user) => {
64
- if (user) {
65
- CometChatUIKitLoginListener.setLoggedInUser(user);
66
- ChatConfigurator.init();
67
- this.initiateAfterLogin();
68
- }
69
- resolve(user);
70
- })
71
- .catch((error) => {
72
- reject(error);
73
- });
74
- })
75
- .catch((error) => {
76
- return reject(error);
77
- });
78
- });
79
- }
80
- static getLoggedinUser() {
81
- return new Promise((resolve, reject) => {
82
- CometChat.getLoggedinUser()
83
- .then((user) => {
84
- return resolve(user);
85
- })
86
- .catch((error) => {
87
- return reject(error);
88
- })
89
- .catch((error) => {
90
- return reject(error);
91
- });
92
- });
93
- }
94
- static enableCalling() {
95
- if (CometChatUIKitCalls) {
96
- const callAppSetting = new CometChatUIKitCalls.CallAppSettingsBuilder()
97
- .setAppId(CometChatUIKit.uiKitSettings?.appId)
98
- .setRegion(CometChatUIKit.uiKitSettings?.region)
99
- .build();
100
- CometChatUIKitCalls.init(callAppSetting).then(() => {
101
- console.log("CometChatCalls initialization success");
102
- if (this.uiKitSettings?.getCallingExtension()) {
103
- this.uiKitSettings?.getCallingExtension().enable();
104
- }
105
- else {
106
- this.defaultCallingExtension.enable();
107
- }
108
- }, (error) => {
109
- console.log("CometChatCalls initialization failed with error:", error);
110
- });
111
- }
112
- }
113
- static initiateAfterLogin() {
114
- if (CometChatUIKit.uiKitSettings != null) {
115
- CometChat.getConversationUpdateSettings().then((res) => {
116
- CometChatUIKit.conversationUpdateSettings = res;
117
- });
118
- this.enableCalling();
119
- let extensionList = this.uiKitSettings?.extensions || this.defaultExtensions;
120
- let aiFeaturesList = Array.isArray(this.uiKitSettings?.aiFeatures)
121
- ? this.uiKitSettings?.aiFeatures
122
- : this.defaultAIFeatures;
123
- ChatSdkEventInitializer.attachListeners();
124
- CometChatUIKitLoginListener.attachListener();
125
- if (extensionList.length > 0) {
126
- extensionList.forEach((extension) => {
127
- extension?.enable();
128
- });
129
- }
130
- if (aiFeaturesList.length > 0) {
131
- aiFeaturesList.forEach((aiFeatures) => {
132
- aiFeatures?.enable();
133
- });
134
- }
135
- }
136
- }
137
- static async login(details) {
138
- if (!CometChatUIKit.checkAuthSettings())
139
- return undefined;
140
- return new Promise((resolve, reject) => {
141
- CometChatUIKit.getLoggedinUser()
142
- ?.then((user) => {
143
- if (user) {
144
- CometChatUIKitLoginListener.setLoggedInUser(user);
145
- resolve(user);
146
- CometChatUIKitLoginListener.setLoggedInUser(user);
147
- ChatConfigurator.init();
148
- this.initiateAfterLogin();
149
- }
150
- else {
151
- let args = details.uid
152
- ? [details.uid, CometChatUIKit.uiKitSettings.authKey]
153
- : [details.authToken];
154
- CometChat.login(...args)
155
- .then((user) => {
156
- CometChatUIKitLoginListener.setLoggedInUser(user);
157
- resolve(user);
158
- CometChatUIKitLoginListener.setLoggedInUser(user);
159
- ChatConfigurator.init();
160
- this.initiateAfterLogin();
161
- })
162
- .catch((error) => {
163
- reject(error);
164
- });
165
- }
166
- })
167
- .catch((error) => {
168
- reject(error);
169
- });
170
- });
171
- }
172
- static async createUser(user) {
173
- if (!CometChatUIKit.checkAuthSettings())
174
- return undefined;
175
- return new Promise((resolve, reject) => {
176
- CometChat.createUser(user, CometChatUIKit.uiKitSettings.authKey)
177
- .then((user) => {
178
- resolve(user);
179
- })
180
- .catch((error) => {
181
- reject(error);
182
- });
183
- });
184
- }
185
- static async updateUser(user) {
186
- if (!CometChatUIKit.checkAuthSettings())
187
- return undefined;
188
- return new Promise((resolve, reject) => {
189
- CometChat.updateUser(user, CometChatUIKit.uiKitSettings.authKey)
190
- .then((user) => {
191
- resolve(user);
192
- })
193
- .catch((error) => {
194
- reject(error);
195
- });
196
- });
197
- }
198
- static async logout() {
199
- if (!CometChatUIKit.checkAuthSettings())
200
- return undefined;
201
- return new Promise((resolve, reject) => {
202
- CometChat.logout()
203
- .then((message) => {
204
- StorageUtils.removeItem(CometChatUIKitConstants.calls.activecall);
205
- CometChatUIKitLoginListener.removeLoggedInUser();
206
- resolve(message);
207
- CometChatUIKitLoginListener.removeLoggedInUser();
208
- })
209
- .catch((error) => {
210
- reject(error);
211
- });
212
- });
213
- }
214
- // Error handling to give better logs
215
- static checkAuthSettings() {
216
- if (CometChatUIKit.uiKitSettings == null) {
217
- return false;
218
- }
219
- if (CometChatUIKit.uiKitSettings.appId == null) {
220
- return false;
221
- }
222
- return true;
223
- }
224
- /**
225
- * Sends a form message and emits events based on the message status.
226
- * @param message - The form message to be sent.
227
- * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.
228
- */
229
- static sendFormMessage(message, disableLocalEvents = false) {
230
- message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
231
- if (!message?.getMuid()) {
232
- message.setMuid(CometChatUIKitUtility.ID());
233
- if (CometChatUIKitLoginListener.getLoggedInUser()) {
234
- message.setSender(CometChatUIKitLoginListener.getLoggedInUser());
235
- }
236
- }
237
- if (!disableLocalEvents) {
238
- CometChatMessageEvents.ccMessageSent.next({
239
- message: message,
240
- status: MessageStatus.inprogress,
241
- });
242
- }
243
- CometChat.sendInteractiveMessage(message)
244
- .then((message) => {
245
- let interactiveMessage = InteractiveMessageUtils.convertInteractiveMessage(message);
246
- if (!disableLocalEvents) {
247
- CometChatMessageEvents.ccMessageSent.next({
248
- message: interactiveMessage,
249
- status: MessageStatus.success,
250
- });
251
- }
252
- })
253
- .catch((error) => {
254
- message.setMetadata({ error });
255
- if (!disableLocalEvents) {
256
- CometChatMessageEvents.ccMessageSent.next({
257
- message: message,
258
- status: MessageStatus.error,
259
- });
260
- }
261
- });
262
- }
263
- static sendCardMessage(message, disableLocalEvents = false) {
264
- message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
265
- if (!message?.getMuid()) {
266
- message.setMuid(CometChatUIKitUtility.ID());
267
- if (CometChatUIKitLoginListener.getLoggedInUser()) {
268
- message.setSender(CometChatUIKitLoginListener.getLoggedInUser());
269
- }
270
- }
271
- if (!disableLocalEvents) {
272
- CometChatMessageEvents.ccMessageSent.next({
273
- message: message,
274
- status: MessageStatus.inprogress,
275
- });
276
- }
277
- CometChat.sendInteractiveMessage(message)
278
- .then((message) => {
279
- let interactiveMessage = InteractiveMessageUtils.convertInteractiveMessage(message);
280
- if (!disableLocalEvents) {
281
- CometChatMessageEvents.ccMessageSent.next({
282
- message: interactiveMessage,
283
- status: MessageStatus.success,
284
- });
285
- }
286
- })
287
- .catch((error) => {
288
- message.setMetadata({ error });
289
- if (!disableLocalEvents) {
290
- CometChatMessageEvents.ccMessageSent.next({
291
- message: message,
292
- status: MessageStatus.error,
293
- });
294
- }
295
- });
296
- }
297
- static sendCustomInteractiveMessage(message, disableLocalEvents = false) {
298
- message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
299
- if (!message?.getMuid()) {
300
- message.setMuid(CometChatUIKitUtility.ID());
301
- if (CometChatUIKitLoginListener.getLoggedInUser()) {
302
- message.setSender(CometChatUIKitLoginListener.getLoggedInUser());
303
- }
304
- }
305
- if (!disableLocalEvents) {
306
- CometChatMessageEvents.ccMessageSent.next({
307
- message: message,
308
- status: MessageStatus.inprogress,
309
- });
310
- }
311
- CometChat.sendInteractiveMessage(message)
312
- .then((message) => {
313
- let interactiveMessage = InteractiveMessageUtils.convertInteractiveMessage(message);
314
- if (!disableLocalEvents) {
315
- CometChatMessageEvents.ccMessageSent.next({
316
- message: interactiveMessage,
317
- status: MessageStatus.success,
318
- });
319
- }
320
- })
321
- .catch((error) => {
322
- message.setMetadata({ error });
323
- if (!disableLocalEvents) {
324
- CometChatMessageEvents.ccMessageSent.next({
325
- message: message,
326
- status: MessageStatus.error,
327
- });
328
- }
329
- });
330
- }
331
- // Helper methods to send messages
332
- // [sendCustomMessage] used to send a custom message
333
- static sendCustomMessage(message) {
334
- return new Promise((resolve, reject) => {
335
- message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
336
- if (!message?.getMuid()) {
337
- message.setMuid(CometChatUIKitUtility.ID());
338
- if (CometChatUIKitLoginListener.getLoggedInUser()) {
339
- message.setSender(CometChatUIKitLoginListener.getLoggedInUser());
340
- }
341
- }
342
- CometChatMessageEvents.ccMessageSent.next({
343
- message: message,
344
- status: MessageStatus.inprogress,
345
- });
346
- CometChat.sendCustomMessage(message)
347
- .then((message) => {
348
- CometChatMessageEvents.ccMessageSent.next({
349
- message: message,
350
- status: MessageStatus.success,
351
- });
352
- resolve(message);
353
- })
354
- .catch((error) => {
355
- message.setMetadata({ error: true });
356
- CometChatMessageEvents.ccMessageSent.next({
357
- message: message,
358
- status: MessageStatus.error,
359
- });
360
- reject(error);
361
- });
362
- });
363
- }
364
- // Helper methods to send messages
365
- // [sendTextMessage] used to send a custom message
366
- static sendTextMessage(message) {
367
- return new Promise((resolve, reject) => {
368
- message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
369
- if (!message?.getMuid()) {
370
- message.setMuid(CometChatUIKitUtility.ID());
371
- if (CometChatUIKitLoginListener.getLoggedInUser()) {
372
- message.setSender(CometChatUIKitLoginListener.getLoggedInUser());
373
- }
374
- }
375
- CometChatMessageEvents.ccMessageSent.next({
376
- message: message,
377
- status: MessageStatus.inprogress,
378
- });
379
- CometChat.sendMessage(message)
380
- .then((message) => {
381
- CometChatMessageEvents.ccMessageSent.next({
382
- message: message,
383
- status: MessageStatus.success,
384
- });
385
- resolve(message);
386
- })
387
- .catch((error) => {
388
- message.setMetadata({ error: true });
389
- CometChatMessageEvents.ccMessageSent.next({
390
- message: message,
391
- status: MessageStatus.error,
392
- });
393
- reject(error);
394
- });
395
- });
396
- }
397
- // Helper methods to send messages
398
- // [sendMediaMessage] used to send a custom message
399
- static sendMediaMessage(message) {
400
- return new Promise((resolve, reject) => {
401
- message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
402
- if (!message?.getMuid()) {
403
- message.setMuid(CometChatUIKitUtility.ID());
404
- if (CometChatUIKitLoginListener.getLoggedInUser()) {
405
- message.setSender(CometChatUIKitLoginListener.getLoggedInUser());
406
- }
407
- }
408
- CometChatMessageEvents.ccMessageSent.next({
409
- message: message,
410
- status: MessageStatus.inprogress,
411
- });
412
- CometChat.sendMediaMessage(message)
413
- .then((message) => {
414
- CometChatMessageEvents.ccMessageSent.next({
415
- message: message,
416
- status: MessageStatus.success,
417
- });
418
- resolve(message);
419
- })
420
- .catch((error) => {
421
- message.setMetadata({ error: true });
422
- CometChatMessageEvents.ccMessageSent.next({
423
- message: message,
424
- status: MessageStatus.error,
425
- });
426
- reject(error);
427
- });
428
- });
429
- }
430
- /**
431
- * Sends a scheduler message and emits events based on the message status.
432
- * @param message - The scheduler message to be sent.
433
- * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.
434
- */
435
- static sendSchedulerMessage(message, disableLocalEvents = false) {
436
- message.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
437
- if (!message?.getMuid()) {
438
- message.setMuid(CometChatUIKitUtility.ID());
439
- if (CometChatUIKitLoginListener.getLoggedInUser()) {
440
- message.setSender(CometChatUIKitLoginListener.getLoggedInUser());
441
- }
442
- }
443
- if (!disableLocalEvents) {
444
- CometChatMessageEvents.ccMessageSent.next({
445
- message: message,
446
- status: MessageStatus.inprogress,
447
- });
448
- }
449
- CometChat.sendInteractiveMessage(message)
450
- .then((message) => {
451
- let interactiveMessage = InteractiveMessageUtils.convertInteractiveMessage(message);
452
- if (!disableLocalEvents) {
453
- CometChatMessageEvents.ccMessageSent.next({
454
- message: interactiveMessage,
455
- status: MessageStatus.success,
456
- });
457
- }
458
- })
459
- .catch((error) => {
460
- message.setMetadata({ error });
461
- if (!disableLocalEvents) {
462
- CometChatMessageEvents.ccMessageSent.next({
463
- message: message,
464
- status: MessageStatus.error,
465
- });
466
- }
467
- });
468
- }
469
- }
470
- CometChatUIKit.SoundManager = CometChatSoundManager;
471
- CometChatUIKit.Localize = CometChatLocalize;
472
- CometChatUIKit.defaultExtensions = [
473
- new StickersExtension(),
474
- new SmartReplyExtension(),
475
- new CollaborativeWhiteBoardExtension(),
476
- new CollaborativeDocumentExtension(),
477
- new MessageTranslationExtension(),
478
- new TextModeratorExtension(),
479
- new ThumbnailGenerationExtension(),
480
- new LinkPreviewExtension(),
481
- new PollsExtension(),
482
- new ImageModerationExtension(),
483
- ];
484
- /**
485
- * Default callingExtension included in the UI Kit.
486
- * @type {CallingExtensionDataSource}
487
- */
488
- CometChatUIKit.defaultCallingExtension = new CallingExtension();
489
- CometChatUIKit.defaultAIFeatures = [
490
- new AIConversationStarterExtension(),
491
- new AISmartRepliesExtension(),
492
- new AIConversationSummaryExtension(),
493
- new AIAssistBotExtension(),
494
- ];
495
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tZXRDaGF0VUlLaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL1NoYXJlZC9Db21ldENoYXRVSWtpdC9Db21ldENoYXRVSUtpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsWUFBWSxHQUViLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUd2QixhQUFhLEdBRWQsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDckcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDbEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDOUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3hHLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFeEUsTUFBTSxPQUFPLGNBQWM7SUFNekIsTUFBTSxDQUFDLGFBQWE7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUE0QjtRQUN0QyxvREFBb0Q7UUFDcEQsY0FBYyxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDN0MsSUFBSSxNQUFNLEVBQUU7WUFDSixNQUFPLENBQUMsY0FBYyxHQUFHO2dCQUM3QixJQUFJLEVBQUUsK0JBQStCO2dCQUNyQyxPQUFPLEVBQUUsUUFBUTthQUNsQixDQUFDO1NBQ0g7UUFFRCxJQUFJLDRCQUE0QixFQUFFO1lBQ2hDLDRCQUE0QixDQUFDLGFBQWEsR0FBRyxjQUFjLEVBQUUsYUFBYSxDQUFDO1NBQzVFO1FBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM5RCxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUM1QixrQkFBa0IsQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUN4RTthQUFNLElBQUksYUFBYSxDQUFDLG1CQUFtQixFQUFFLEtBQUssV0FBVyxFQUFFO1lBQzlELGtCQUFrQixDQUFDLDRCQUE0QixFQUFFLENBQUM7U0FDbkQ7YUFBTSxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLFNBQVMsRUFBRTtZQUM1RCxrQkFBa0IsQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1NBQ2xEO1FBQ0Qsa0JBQWtCLENBQUMsNkJBQTZCLENBQzlDLGFBQWEsQ0FBQywrQkFBK0IsRUFBRSxDQUNoRCxDQUFDO1FBRUYsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUcsYUFBYSxDQUFDLGNBQWMsRUFBRSxFQUFDO1lBQ2pDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztTQUNsRTtRQUNELE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9DLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQztpQkFDOUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDVCxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ2xELGNBQWMsQ0FBQyxlQUFlLEVBQUU7b0JBQzlCLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2QsSUFBSSxJQUFJLEVBQUU7d0JBQ1IsMkJBQTJCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNsRCxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDeEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7cUJBQzNCO29CQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLEtBQW1DLEVBQUUsRUFBRTtvQkFDN0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWU7UUFDcEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxTQUFTLENBQUMsZUFBZSxFQUFFO2lCQUN4QixJQUFJLENBQUMsQ0FBQyxJQUEyQixFQUFFLEVBQUU7Z0JBQ3BDLE9BQU8sT0FBTyxDQUFDLElBQUssQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBMkJELE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLElBQUksbUJBQW1CLEVBQUU7WUFDdkIsTUFBTSxjQUFjLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRTtpQkFDcEUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDO2lCQUM3QyxTQUFTLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7aUJBQy9DLEtBQUssRUFBRSxDQUFDO1lBQ1gsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FDM0MsR0FBRyxFQUFFO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsdUNBQXVDLENBQUMsQ0FBQztnQkFDckQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFFLEVBQUU7b0JBQzdDLElBQUksQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDcEQ7cUJBQ0k7b0JBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUN2QztZQUNILENBQUMsRUFDRCxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxHQUFHLENBQ1Qsa0RBQWtELEVBQ2xELEtBQUssQ0FDTixDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7U0FDSDtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQWtCO1FBQy9CLElBQUksY0FBYyxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUU7WUFDeEMsU0FBUyxDQUFDLDZCQUE2QixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBeUMsRUFBRSxFQUFFO2dCQUUzRixjQUFjLENBQUMsMEJBQTBCLEdBQUcsR0FBRyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksYUFBYSxHQUNmLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUUzRCxJQUFJLGNBQWMsR0FBNEIsS0FBSyxDQUFDLE9BQU8sQ0FDekQsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQy9CO2dCQUNDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVU7Z0JBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDM0IsdUJBQXVCLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUMsMkJBQTJCLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDN0MsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDNUIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQStCLEVBQUUsRUFBRTtvQkFDeEQsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDN0IsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWlDLEVBQUUsRUFBRTtvQkFDM0QsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN2QixDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FHbEI7UUFDQyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDMUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxjQUFjLENBQUMsZUFBZSxFQUFFO2dCQUM5QixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNkLElBQUksSUFBSSxFQUFFO29CQUNSLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNkLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEQsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2lCQUMzQjtxQkFBTTtvQkFDTCxJQUFJLElBQUksR0FBVSxPQUFPLENBQUMsR0FBRzt3QkFDM0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsYUFBYSxDQUFDLE9BQVEsQ0FBQzt3QkFDdEQsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN4QixTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO3lCQUNyQixJQUFJLENBQUMsQ0FBQyxJQUFvQixFQUFFLEVBQUU7d0JBQzdCLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNkLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDbEQsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ3hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUM1QixDQUFDLENBQUM7eUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO3dCQUM3QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2lCQUNOO1lBQ0gsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLEtBQW1DLEVBQUUsRUFBRTtnQkFDN0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBb0I7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzFELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFRLENBQUM7aUJBQzlELElBQUksQ0FBQyxDQUFDLElBQW9CLEVBQUUsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQW9CO1FBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUU7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMxRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBUSxDQUFDO2lCQUM5RCxJQUFJLENBQUMsQ0FBQyxJQUFvQixFQUFFLEVBQUU7Z0JBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO2dCQUM3QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU07UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzFELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsU0FBUyxDQUFDLE1BQU0sRUFBRTtpQkFDZixJQUFJLENBQUMsQ0FBQyxPQUFlLEVBQUUsRUFBRTtnQkFDeEIsWUFBWSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7Z0JBQ2pFLDJCQUEyQixDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2pELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakIsMkJBQTJCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNuRCxDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO2dCQUM3QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxxQ0FBcUM7SUFDckMsTUFBTSxDQUFDLGlCQUFpQjtRQUN0QixJQUFJLGNBQWMsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLGNBQWMsQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtZQUM5QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQ3BCLE9BQW9CLEVBQ3BCLHFCQUE4QixLQUFLO1FBRW5DLE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTthQUNsRTtTQUNGO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRTtZQUN2QyxJQUFJLGtCQUFrQixHQUFnQix1QkFBdUIsQ0FBQyx5QkFBeUIsQ0FDckYsT0FBdUMsQ0FDekIsQ0FBQztZQUNqQixJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztpQkFDOUIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxLQUFLO2lCQUM1QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQ3BCLE9BQW9CLEVBQ3BCLHFCQUE4QixLQUFLO1FBRW5DLE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTthQUNsRTtTQUNGO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRTtZQUN2QyxJQUFJLGtCQUFrQixHQUFnQix1QkFBdUIsQ0FBQyx5QkFBeUIsQ0FDckYsT0FBdUMsQ0FDekIsQ0FBQztZQUNqQixJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztpQkFDOUIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxLQUFLO2lCQUM1QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyw0QkFBNEIsQ0FDakMsT0FBaUMsRUFDakMscUJBQThCLEtBQUs7UUFFbkMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsSUFBSSwyQkFBMkIsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDakQsT0FBTyxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxlQUFlLEVBQUcsQ0FBQyxDQUFBO2FBQ2xFO1NBQ0Y7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDdkIsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDeEMsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE1BQU0sRUFBRSxhQUFhLENBQUMsVUFBVTthQUNqQyxDQUFDLENBQUM7U0FDSjtRQUNELFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7YUFDdEMsSUFBSSxDQUFDLENBQUMsT0FBOEIsRUFBRSxFQUFFO1lBQ3ZDLElBQUksa0JBQWtCLEdBQTZCLHVCQUF1QixDQUFDLHlCQUF5QixDQUNsRyxPQUF1QyxDQUNaLENBQUM7WUFDOUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsa0JBQWtCO29CQUMzQixNQUFNLEVBQUUsYUFBYSxDQUFDLE9BQU87aUJBQzlCLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO1lBQzdDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDdkIsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDeEMsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSztpQkFDNUIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsb0RBQW9EO0lBQ3BELE1BQU0sQ0FBQyxpQkFBaUIsQ0FDdEIsT0FBZ0M7UUFFaEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxPQUFPLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO2dCQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7b0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTtpQkFDbEU7YUFDRjtZQUNELHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1lBRUgsU0FBUyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztpQkFDakMsSUFBSSxDQUFDLENBQUMsT0FBOEIsRUFBRSxFQUFFO2dCQUN2QyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxPQUFPO2lCQUM5QixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDckMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDeEMsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSztpQkFDNUIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxrREFBa0Q7SUFDbEQsTUFBTSxDQUFDLGVBQWUsQ0FDcEIsT0FBOEI7UUFFOUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxPQUFPLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO2dCQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7b0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTtpQkFDbEU7YUFDRjtZQUNELHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1lBRUgsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7aUJBQzNCLElBQUksQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRTtnQkFDdkMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDeEMsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztpQkFDOUIsQ0FBQyxDQUFDO2dCQUNILE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO2dCQUM3QyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxPQUFPO29CQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLEtBQUs7aUJBQzVCLENBQUMsQ0FBQztnQkFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsbURBQW1EO0lBQ25ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDckIsT0FBK0I7UUFFL0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxPQUFPLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO2dCQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7b0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTtpQkFDbEU7YUFDRjtZQUNELHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1lBRUgsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztpQkFDaEMsSUFBSSxDQUFDLENBQUMsT0FBOEIsRUFBRSxFQUFFO2dCQUN2QyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxPQUFPO2lCQUM5QixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDckMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDeEMsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSztpQkFDNUIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsb0JBQW9CLENBQ3pCLE9BQXlCLEVBQ3pCLHFCQUE4QixLQUFLO1FBR25DLE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTthQUNsRTtTQUNGO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRTtZQUN2QyxJQUFJLGtCQUFrQixHQUFxQix1QkFBdUIsQ0FBQyx5QkFBeUIsQ0FDMUYsT0FBdUMsQ0FDcEIsQ0FBQztZQUN0QixJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztpQkFDOUIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxLQUFLO2lCQUM1QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7QUE5Z0JNLDJCQUFZLEdBQWlDLHFCQUFxQixDQUFDO0FBQ25FLHVCQUFRLEdBQTZCLGlCQUFpQixDQUFDO0FBNEV2RCxnQ0FBaUIsR0FBMkI7SUFDakQsSUFBSSxpQkFBaUIsRUFBRTtJQUN2QixJQUFJLG1CQUFtQixFQUFFO0lBQ3pCLElBQUksZ0NBQWdDLEVBQUU7SUFDdEMsSUFBSSw4QkFBOEIsRUFBRTtJQUNwQyxJQUFJLDJCQUEyQixFQUFFO0lBQ2pDLElBQUksc0JBQXNCLEVBQUU7SUFDNUIsSUFBSSw0QkFBNEIsRUFBRTtJQUNsQyxJQUFJLG9CQUFvQixFQUFFO0lBQzFCLElBQUksY0FBYyxFQUFFO0lBQ3BCLElBQUksd0JBQXdCLEVBQUU7Q0FDL0IsQ0FBQztBQUVGOzs7SUFHSTtBQUNHLHNDQUF1QixHQUErQixJQUFJLGdCQUFnQixFQUFFLENBQUE7QUFFNUUsZ0NBQWlCLEdBQTRCO0lBQ2xELElBQUksOEJBQThCLEVBQUU7SUFDcEMsSUFBSSx1QkFBdUIsRUFBRTtJQUM3QixJQUFJLDhCQUE4QixFQUFFO0lBQ3BDLElBQUksb0JBQW9CLEVBQUU7Q0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQ2FsbGluZ0V4dGVuc2lvbkRhdGFTb3VyY2UsXG4gIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lcixcbiAgQ29tZXRDaGF0VUlLaXRVdGlsaXR5LFxuICBJbnRlcmFjdGl2ZU1lc3NhZ2VVdGlscyxcbiAgU3RvcmFnZVV0aWxzLFxuICBVSUtpdFNldHRpbmdzLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7XG4gIENhcmRNZXNzYWdlLFxuICBDaGF0U2RrRXZlbnRJbml0aWFsaXplcixcbiAgQ29tZXRDaGF0TG9jYWxpemUsXG4gIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMsXG4gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLFxuICBDdXN0b21JbnRlcmFjdGl2ZU1lc3NhZ2UsXG4gIEZvcm1NZXNzYWdlLFxuICBNZXNzYWdlU3RhdHVzLFxuICBTY2hlZHVsZXJNZXNzYWdlLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbWV0Q2hhdFVJS2l0U2hhcmVkU2V0dGluZ3MgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcblxuaW1wb3J0IHsgQ2FsbGluZ0V4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9DYWxscy9DYWxsaW5nRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBDaGF0Q29uZmlndXJhdG9yIH0gZnJvbSBcIi4uL0ZyYW1ld29yay9DaGF0Q29uZmlndXJhdG9yXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aXZlRG9jdW1lbnRFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9Db2xsYWJvcmF0aXZlRG9jdW1lbnQvQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aXZlV2hpdGVCb2FyZEV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL0NvbGxhYm9yYXRpdmVXaGl0ZWJvYXJkL0NvbGxhYm9yYXRpdmVXaGl0ZWJvYXJkRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBFeHRlbnNpb25zRGF0YVNvdXJjZSB9IGZyb20gXCIuLi9GcmFtZXdvcmsvRXh0ZW5zaW9uRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgSW1hZ2VNb2RlcmF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvSW1hZ2VNb2RlcmF0aW9uL0ltYWdlTW9kZXJhdGlvbkV4dGVuc2lvblwiO1xuaW1wb3J0IHsgTGlua1ByZXZpZXdFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9MaW5rUHJldmlld0V4dGVuc2lvbi9MaW5rUHJldmlld0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgTWVzc2FnZVRyYW5zbGF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvTWVzc2FnZVRyYW5zbGF0aW9uL01lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvblwiO1xuaW1wb3J0IHsgUG9sbHNFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9Qb2xsc0V4dGVuc2lvbi9Qb2xsc0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgU21hcnRSZXBseUV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL1NtYXJ0UmVwbGllcy9TbWFydFJlcGxpZXNFeHRlbnNpb25cIjtcbmltcG9ydCB7IFN0aWNrZXJzRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvU3RpY2tlcnMvU3RpY2tlcnNFeHRlbnNpb25cIjtcbmltcG9ydCB7IFRleHRNb2RlcmF0b3JFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9UZXh0TW9kZXJhdG9yL1RleHRNb2RlcmF0b3JFeHRlbnNpb25cIjtcbmltcG9ydCB7IFRodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9UaHVtYm5haWxHZW5lcmF0aW9uL1RodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb25cIjtcbmltcG9ydCB7IEFJQ29udmVyc2F0aW9uU3VtbWFyeUV4dGVuc2lvbiB9IGZyb20gXCIuLy4uLy4uL0FJL0FJQ29udmVyc2F0aW9uU3VtbWFyeS9BSUNvbnZlcnNhdGlvblN1bW1hcnlcIjtcbmltcG9ydCB7IEFJU21hcnRSZXBsaWVzRXh0ZW5zaW9uIH0gZnJvbSBcIi4vLi4vLi4vQUkvQUlTbWFydFJlcGxpZXMvQUlTbWFydFJlcGxpZXNcIjtcbmltcG9ydCB7IEFJQ29udmVyc2F0aW9uU3RhcnRlckV4dGVuc2lvbiB9IGZyb20gXCIuLy4uLy4uL0FJL0FJQ29udmVyc2F0aW9uU3RhcnRlci9BSUNvbnZlcnNhdGlvblN0YXJ0ZXJcIjtcbmltcG9ydCB7XG4gIENvbWV0Q2hhdFVJS2l0Q2FsbHMsXG4gIENvbWV0Q2hhdFNvdW5kTWFuYWdlcixcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5pbXBvcnQgeyBBSUV4dGVuc2lvbkRhdGFTb3VyY2UgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0FJRXh0ZW5zaW9uRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgQUlBc3Npc3RCb3RFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vQUkvQUlBc3Npc3RCb3QvQUlBc3Npc3RCb3RcIjtcblxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdFVJS2l0IHtcbiAgc3RhdGljIHVpS2l0U2V0dGluZ3M6IFVJS2l0U2V0dGluZ3M7XG4gIHN0YXRpYyBTb3VuZE1hbmFnZXI6IHR5cGVvZiBDb21ldENoYXRTb3VuZE1hbmFnZXIgPSBDb21ldENoYXRTb3VuZE1hbmFnZXI7XG4gIHN0YXRpYyBMb2NhbGl6ZTogdHlwZW9mIENvbWV0Q2hhdExvY2FsaXplID0gQ29tZXRDaGF0TG9jYWxpemU7XG4gIHN0YXRpYyBsb2dnZWRJblVzZXI/OiBDb21ldENoYXQuVXNlcjtcbiAgc3RhdGljIGNvbnZlcnNhdGlvblVwZGF0ZVNldHRpbmdzPzogQ29tZXRDaGF0LkNvbnZlcnNhdGlvblVwZGF0ZVNldHRpbmdzO1xuICBzdGF0aWMgZ2V0RGF0YVNvdXJjZSgpIHtcbiAgICByZXR1cm4gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCk7XG4gIH1cbiAgc3RhdGljIGluaXQodWlLaXRTZXR0aW5nczogVUlLaXRTZXR0aW5ncyk6IFByb21pc2U8T2JqZWN0PiB8IHVuZGVmaW5lZCB7XG4gICAgLy8gcGVyZm9ybSBzZGsgaW5pdCB0YWtpbmcgdmFsdWVzIGZyb20gdWlLaXRTZXR0aW5nc1xuICAgIENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MgPSB1aUtpdFNldHRpbmdzO1xuICAgIGlmICh3aW5kb3cpIHtcbiAgICAgICg8YW55PndpbmRvdykuQ29tZXRDaGF0VWlLaXQgPSB7XG4gICAgICAgIG5hbWU6IFwiQGNvbWV0Y2hhdC9jaGF0LXVpa2l0LWFuZ3VsYXJcIixcbiAgICAgICAgdmVyc2lvbjogXCI0LjMuMzZcIixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0U2hhcmVkU2V0dGluZ3MpIHtcbiAgICAgIENvbWV0Q2hhdFVJS2l0U2hhcmVkU2V0dGluZ3MudWlraXRTZXR0aW5ncyA9IENvbWV0Q2hhdFVJS2l0Py51aUtpdFNldHRpbmdzO1xuICAgIH0gaWYgKCFDb21ldENoYXRVSUtpdC5jaGVja0F1dGhTZXR0aW5ncygpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFwcFNldHRpbmdzQnVpbGRlciA9IG5ldyBDb21ldENoYXQuQXBwU2V0dGluZ3NCdWlsZGVyKCk7XG4gICAgaWYgKHVpS2l0U2V0dGluZ3MuZ2V0Um9sZXMoKSkge1xuICAgICAgYXBwU2V0dGluZ3NCdWlsZGVyLnN1YnNjcmliZVByZXNlbmNlRm9yUm9sZXModWlLaXRTZXR0aW5ncy5nZXRSb2xlcygpKTtcbiAgICB9IGVsc2UgaWYgKHVpS2l0U2V0dGluZ3MuZ2V0U3Vic2NyaXB0aW9uVHlwZSgpID09PSBcIkFMTF9VU0VSU1wiKSB7XG4gICAgICBhcHBTZXR0aW5nc0J1aWxkZXIuc3Vic2NyaWJlUHJlc2VuY2VGb3JBbGxVc2VycygpO1xuICAgIH0gZWxzZSBpZiAodWlLaXRTZXR0aW5ncy5nZXRTdWJzY3JpcHRpb25UeXBlKCkgPT09IFwiRlJJRU5EU1wiKSB7XG4gICAgICBhcHBTZXR0aW5nc0J1aWxkZXIuc3Vic2NyaWJlUHJlc2VuY2VGb3JGcmllbmRzKCk7XG4gICAgfVxuICAgIGFwcFNldHRpbmdzQnVpbGRlci5hdXRvRXN0YWJsaXNoU29ja2V0Q29ubmVjdGlvbihcbiAgICAgIHVpS2l0U2V0dGluZ3MuaXNBdXRvRXN0YWJsaXNoU29ja2V0Q29ubmVjdGlvbigpXG4gICAgKTtcblxuICAgIGFwcFNldHRpbmdzQnVpbGRlci5zZXRSZWdpb24odWlLaXRTZXR0aW5ncy5nZXRSZWdpb24oKSk7XG4gICAgYXBwU2V0dGluZ3NCdWlsZGVyLm92ZXJyaWRlQWRtaW5Ib3N0KHVpS2l0U2V0dGluZ3MuZ2V0QWRtaW5Ib3N0KCkpO1xuICAgIGFwcFNldHRpbmdzQnVpbGRlci5vdmVycmlkZUNsaWVudEhvc3QodWlLaXRTZXR0aW5ncy5nZXRDbGllbnRIb3N0KCkpO1xuICAgIGlmKHVpS2l0U2V0dGluZ3MuZ2V0U3RvcmFnZU1vZGUoKSl7XG4gICAgIGFwcFNldHRpbmdzQnVpbGRlci5zZXRTdG9yYWdlTW9kZSh1aUtpdFNldHRpbmdzLmdldFN0b3JhZ2VNb2RlKCkpO1xuICAgIH1cbiAgICBjb25zdCBhcHBTZXR0aW5ncyA9IGFwcFNldHRpbmdzQnVpbGRlci5idWlsZCgpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBDb21ldENoYXQuaW5pdCh1aUtpdFNldHRpbmdzPy5hcHBJZCwgYXBwU2V0dGluZ3MpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICBDb21ldENoYXQuc2V0U291cmNlKFwidWlraXQtdjRcIiwgXCJ3ZWJcIiwgXCJhbmd1bGFyXCIpO1xuICAgICAgICAgIENvbWV0Q2hhdFVJS2l0LmdldExvZ2dlZGluVXNlcigpXG4gICAgICAgICAgICA/LnRoZW4oKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgICAgICAgICBDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuc2V0TG9nZ2VkSW5Vc2VyKHVzZXIpO1xuICAgICAgICAgICAgICAgIENoYXRDb25maWd1cmF0b3IuaW5pdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhdGVBZnRlckxvZ2luKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVzb2x2ZSh1c2VyKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRMb2dnZWRpblVzZXIoKTogUHJvbWlzZTxDb21ldENoYXQuVXNlcj4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBDb21ldENoYXQuZ2V0TG9nZ2VkaW5Vc2VyKClcbiAgICAgICAgLnRoZW4oKHVzZXI6IENvbWV0Q2hhdC5Vc2VyIHwgbnVsbCkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKHVzZXIhKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRFeHRlbnNpb25zOiBFeHRlbnNpb25zRGF0YVNvdXJjZVtdID0gW1xuICAgIG5ldyBTdGlja2Vyc0V4dGVuc2lvbigpLFxuICAgIG5ldyBTbWFydFJlcGx5RXh0ZW5zaW9uKCksXG4gICAgbmV3IENvbGxhYm9yYXRpdmVXaGl0ZUJvYXJkRXh0ZW5zaW9uKCksXG4gICAgbmV3IENvbGxhYm9yYXRpdmVEb2N1bWVudEV4dGVuc2lvbigpLFxuICAgIG5ldyBNZXNzYWdlVHJhbnNsYXRpb25FeHRlbnNpb24oKSxcbiAgICBuZXcgVGV4dE1vZGVyYXRvckV4dGVuc2lvbigpLFxuICAgIG5ldyBUaHVtYm5haWxHZW5lcmF0aW9uRXh0ZW5zaW9uKCksXG4gICAgbmV3IExpbmtQcmV2aWV3RXh0ZW5zaW9uKCksXG4gICAgbmV3IFBvbGxzRXh0ZW5zaW9uKCksXG4gICAgbmV3IEltYWdlTW9kZXJhdGlvbkV4dGVuc2lvbigpLFxuICBdO1xuXG4gIC8qKlxuICAgICogRGVmYXVsdCBjYWxsaW5nRXh0ZW5zaW9uIGluY2x1ZGVkIGluIHRoZSBVSSBLaXQuXG4gICAgKiBAdHlwZSB7Q2FsbGluZ0V4dGVuc2lvbkRhdGFTb3VyY2V9XG4gICAgKi9cbiAgc3RhdGljIGRlZmF1bHRDYWxsaW5nRXh0ZW5zaW9uOiBDYWxsaW5nRXh0ZW5zaW9uRGF0YVNvdXJjZSA9IG5ldyBDYWxsaW5nRXh0ZW5zaW9uKClcblxuICBzdGF0aWMgZGVmYXVsdEFJRmVhdHVyZXM6IEFJRXh0ZW5zaW9uRGF0YVNvdXJjZVtdID0gW1xuICAgIG5ldyBBSUNvbnZlcnNhdGlvblN0YXJ0ZXJFeHRlbnNpb24oKSxcbiAgICBuZXcgQUlTbWFydFJlcGxpZXNFeHRlbnNpb24oKSxcbiAgICBuZXcgQUlDb252ZXJzYXRpb25TdW1tYXJ5RXh0ZW5zaW9uKCksXG4gICAgbmV3IEFJQXNzaXN0Qm90RXh0ZW5zaW9uKCksXG4gIF07XG4gIHN0YXRpYyBlbmFibGVDYWxsaW5nKCk6IHZvaWQge1xuICAgIGlmIChDb21ldENoYXRVSUtpdENhbGxzKSB7XG4gICAgICBjb25zdCBjYWxsQXBwU2V0dGluZyA9IG5ldyBDb21ldENoYXRVSUtpdENhbGxzLkNhbGxBcHBTZXR0aW5nc0J1aWxkZXIoKVxuICAgICAgICAuc2V0QXBwSWQoQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncz8uYXBwSWQpXG4gICAgICAgIC5zZXRSZWdpb24oQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncz8ucmVnaW9uKVxuICAgICAgICAuYnVpbGQoKTtcbiAgICAgIENvbWV0Q2hhdFVJS2l0Q2FsbHMuaW5pdChjYWxsQXBwU2V0dGluZykudGhlbihcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ29tZXRDaGF0Q2FsbHMgaW5pdGlhbGl6YXRpb24gc3VjY2Vzc1wiKTtcbiAgICAgICAgICBpZiAodGhpcy51aUtpdFNldHRpbmdzPy5nZXRDYWxsaW5nRXh0ZW5zaW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMudWlLaXRTZXR0aW5ncz8uZ2V0Q2FsbGluZ0V4dGVuc2lvbigpLmVuYWJsZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdENhbGxpbmdFeHRlbnNpb24uZW5hYmxlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgXCJDb21ldENoYXRDYWxscyBpbml0aWFsaXphdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjpcIixcbiAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpbml0aWF0ZUFmdGVyTG9naW4oKSB7XG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MgIT0gbnVsbCkge1xuICAgICAgQ29tZXRDaGF0LmdldENvbnZlcnNhdGlvblVwZGF0ZVNldHRpbmdzKCkudGhlbigocmVzOiBDb21ldENoYXQuQ29udmVyc2F0aW9uVXBkYXRlU2V0dGluZ3MpID0+IHtcblxuICAgICAgICBDb21ldENoYXRVSUtpdC5jb252ZXJzYXRpb25VcGRhdGVTZXR0aW5ncyA9IHJlcztcbiAgICAgIH0pXG4gICAgICB0aGlzLmVuYWJsZUNhbGxpbmcoKTtcbiAgICAgIGxldCBleHRlbnNpb25MaXN0OiBFeHRlbnNpb25zRGF0YVNvdXJjZVtdID1cbiAgICAgICAgdGhpcy51aUtpdFNldHRpbmdzPy5leHRlbnNpb25zIHx8IHRoaXMuZGVmYXVsdEV4dGVuc2lvbnM7XG5cbiAgICAgIGxldCBhaUZlYXR1cmVzTGlzdDogQUlFeHRlbnNpb25EYXRhU291cmNlW10gPSBBcnJheS5pc0FycmF5KFxuICAgICAgICB0aGlzLnVpS2l0U2V0dGluZ3M/LmFpRmVhdHVyZXNcbiAgICAgIClcbiAgICAgICAgPyB0aGlzLnVpS2l0U2V0dGluZ3M/LmFpRmVhdHVyZXNcbiAgICAgICAgOiB0aGlzLmRlZmF1bHRBSUZlYXR1cmVzO1xuICAgICAgQ2hhdFNka0V2ZW50SW5pdGlhbGl6ZXIuYXR0YWNoTGlzdGVuZXJzKCk7XG4gICAgICBDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuYXR0YWNoTGlzdGVuZXIoKTtcbiAgICAgIGlmIChleHRlbnNpb25MaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgZXh0ZW5zaW9uTGlzdC5mb3JFYWNoKChleHRlbnNpb246IEV4dGVuc2lvbnNEYXRhU291cmNlKSA9PiB7XG4gICAgICAgICAgZXh0ZW5zaW9uPy5lbmFibGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhaUZlYXR1cmVzTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGFpRmVhdHVyZXNMaXN0LmZvckVhY2goKGFpRmVhdHVyZXM6IEFJRXh0ZW5zaW9uRGF0YVNvdXJjZSkgPT4ge1xuICAgICAgICAgIGFpRmVhdHVyZXM/LmVuYWJsZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgc3RhdGljIGFzeW5jIGxvZ2luKGRldGFpbHM6IHtcbiAgICB1aWQ/OiBzdHJpbmc7XG4gICAgYXV0aFRva2VuPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxPYmplY3QgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIUNvbWV0Q2hhdFVJS2l0LmNoZWNrQXV0aFNldHRpbmdzKCkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIENvbWV0Q2hhdFVJS2l0LmdldExvZ2dlZGluVXNlcigpXG4gICAgICAgID8udGhlbigodXNlcikgPT4ge1xuICAgICAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgICAgICBDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuc2V0TG9nZ2VkSW5Vc2VyKHVzZXIpO1xuICAgICAgICAgICAgcmVzb2x2ZSh1c2VyKTtcbiAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5zZXRMb2dnZWRJblVzZXIodXNlcik7XG4gICAgICAgICAgICBDaGF0Q29uZmlndXJhdG9yLmluaXQoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhdGVBZnRlckxvZ2luKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBhcmdzOiBhbnlbXSA9IGRldGFpbHMudWlkXG4gICAgICAgICAgICAgID8gW2RldGFpbHMudWlkLCBDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzLmF1dGhLZXkhXVxuICAgICAgICAgICAgICA6IFtkZXRhaWxzLmF1dGhUb2tlbl07XG4gICAgICAgICAgICBDb21ldENoYXQubG9naW4oLi4uYXJncylcbiAgICAgICAgICAgICAgLnRoZW4oKHVzZXI6IENvbWV0Q2hhdC5Vc2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLnNldExvZ2dlZEluVXNlcih1c2VyKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHVzZXIpO1xuICAgICAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5zZXRMb2dnZWRJblVzZXIodXNlcik7XG4gICAgICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5pbml0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWF0ZUFmdGVyTG9naW4oKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBhc3luYyBjcmVhdGVVc2VyKHVzZXI6IENvbWV0Q2hhdC5Vc2VyKTogUHJvbWlzZTxPYmplY3QgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIUNvbWV0Q2hhdFVJS2l0LmNoZWNrQXV0aFNldHRpbmdzKCkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIENvbWV0Q2hhdC5jcmVhdGVVc2VyKHVzZXIsIENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MuYXV0aEtleSEpXG4gICAgICAgIC50aGVuKCh1c2VyOiBDb21ldENoYXQuVXNlcikgPT4ge1xuICAgICAgICAgIHJlc29sdmUodXNlcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBzdGF0aWMgYXN5bmMgdXBkYXRlVXNlcih1c2VyOiBDb21ldENoYXQuVXNlcik6IFByb21pc2U8T2JqZWN0IHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCFDb21ldENoYXRVSUtpdC5jaGVja0F1dGhTZXR0aW5ncygpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBDb21ldENoYXQudXBkYXRlVXNlcih1c2VyLCBDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzLmF1dGhLZXkhKVxuICAgICAgICAudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHVzZXIpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgc3RhdGljIGFzeW5jIGxvZ291dCgpOiBQcm9taXNlPE9iamVjdCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghQ29tZXRDaGF0VUlLaXQuY2hlY2tBdXRoU2V0dGluZ3MoKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgQ29tZXRDaGF0LmxvZ291dCgpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBvYmplY3QpID0+IHtcbiAgICAgICAgICBTdG9yYWdlVXRpbHMucmVtb3ZlSXRlbShDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5hY3RpdmVjYWxsKVxuICAgICAgICAgIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5yZW1vdmVMb2dnZWRJblVzZXIoKTtcbiAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgICAgICAgIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5yZW1vdmVMb2dnZWRJblVzZXIoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8vIEVycm9yIGhhbmRsaW5nIHRvIGdpdmUgYmV0dGVyIGxvZ3NcbiAgc3RhdGljIGNoZWNrQXV0aFNldHRpbmdzKCk6IGJvb2xlYW4ge1xuICAgIGlmIChDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzID09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MuYXBwSWQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIGZvcm0gbWVzc2FnZSBhbmQgZW1pdHMgZXZlbnRzIGJhc2VkIG9uIHRoZSBtZXNzYWdlIHN0YXR1cy5cbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgZm9ybSBtZXNzYWdlIHRvIGJlIHNlbnQuXG4gICAqIEBwYXJhbSBkaXNhYmxlTG9jYWxFdmVudHMgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRvIGRpc2FibGUgbG9jYWwgZXZlbnRzIG9yIG5vdC4gRGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS5cbiAgICovXG4gIHN0YXRpYyBzZW5kRm9ybU1lc3NhZ2UoXG4gICAgbWVzc2FnZTogRm9ybU1lc3NhZ2UsXG4gICAgZGlzYWJsZUxvY2FsRXZlbnRzOiBib29sZWFuID0gZmFsc2VcbiAgKSB7XG4gICAgbWVzc2FnZS5zZXRTZW50QXQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LmdldFVuaXhUaW1lc3RhbXAoKSk7XG4gICAgaWYgKCFtZXNzYWdlPy5nZXRNdWlkKCkpIHtcbiAgICAgIG1lc3NhZ2Uuc2V0TXVpZChDb21ldENoYXRVSUtpdFV0aWxpdHkuSUQoKSk7XG4gICAgICBpZiAoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpKSB7XG4gICAgICAgIG1lc3NhZ2Uuc2V0U2VuZGVyKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSEpXG4gICAgICB9XG4gICAgfVxuICAgIGlmICghZGlzYWJsZUxvY2FsRXZlbnRzKSB7XG4gICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5pbnByb2dyZXNzLFxuICAgICAgfSk7XG4gICAgfVxuICAgIENvbWV0Q2hhdC5zZW5kSW50ZXJhY3RpdmVNZXNzYWdlKG1lc3NhZ2UpXG4gICAgICAudGhlbigobWVzc2FnZTogQ29tZXRDaGF0LkJhc2VNZXNzYWdlKSA9PiB7XG4gICAgICAgIGxldCBpbnRlcmFjdGl2ZU1lc3NhZ2U6IEZvcm1NZXNzYWdlID0gSW50ZXJhY3RpdmVNZXNzYWdlVXRpbHMuY29udmVydEludGVyYWN0aXZlTWVzc2FnZShcbiAgICAgICAgICBtZXNzYWdlIGFzIENvbWV0Q2hhdC5JbnRlcmFjdGl2ZU1lc3NhZ2VcbiAgICAgICAgKSBhcyBGb3JtTWVzc2FnZTtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBpbnRlcmFjdGl2ZU1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yIH0pO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHNlbmRDYXJkTWVzc2FnZShcbiAgICBtZXNzYWdlOiBDYXJkTWVzc2FnZSxcbiAgICBkaXNhYmxlTG9jYWxFdmVudHM6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBtZXNzYWdlLnNldFNlbnRBdChDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpKTtcbiAgICBpZiAoIW1lc3NhZ2U/LmdldE11aWQoKSkge1xuICAgICAgbWVzc2FnZS5zZXRNdWlkKENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5JRCgpKTtcbiAgICAgIGlmIChDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkpIHtcbiAgICAgICAgbWVzc2FnZS5zZXRTZW5kZXIoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpISlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBDb21ldENoYXQuc2VuZEludGVyYWN0aXZlTWVzc2FnZShtZXNzYWdlKVxuICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICBsZXQgaW50ZXJhY3RpdmVNZXNzYWdlOiBDYXJkTWVzc2FnZSA9IEludGVyYWN0aXZlTWVzc2FnZVV0aWxzLmNvbnZlcnRJbnRlcmFjdGl2ZU1lc3NhZ2UoXG4gICAgICAgICAgbWVzc2FnZSBhcyBDb21ldENoYXQuSW50ZXJhY3RpdmVNZXNzYWdlXG4gICAgICAgICkgYXMgQ2FyZE1lc3NhZ2U7XG4gICAgICAgIGlmICghZGlzYWJsZUxvY2FsRXZlbnRzKSB7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogaW50ZXJhY3RpdmVNZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLnN1Y2Nlc3MsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIG1lc3NhZ2Uuc2V0TWV0YWRhdGEoeyBlcnJvciB9KTtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmVycm9yLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBzZW5kQ3VzdG9tSW50ZXJhY3RpdmVNZXNzYWdlKFxuICAgIG1lc3NhZ2U6IEN1c3RvbUludGVyYWN0aXZlTWVzc2FnZSxcbiAgICBkaXNhYmxlTG9jYWxFdmVudHM6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBtZXNzYWdlLnNldFNlbnRBdChDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpKTtcbiAgICBpZiAoIW1lc3NhZ2U/LmdldE11aWQoKSkge1xuICAgICAgbWVzc2FnZS5zZXRNdWlkKENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5JRCgpKTtcbiAgICAgIGlmIChDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkpIHtcbiAgICAgICAgbWVzc2FnZS5zZXRTZW5kZXIoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpISlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcbiAgICB9XG4gICAgQ29tZXRDaGF0LnNlbmRJbnRlcmFjdGl2ZU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgIC50aGVuKChtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpID0+IHtcbiAgICAgICAgbGV0IGludGVyYWN0aXZlTWVzc2FnZTogQ3VzdG9tSW50ZXJhY3RpdmVNZXNzYWdlID0gSW50ZXJhY3RpdmVNZXNzYWdlVXRpbHMuY29udmVydEludGVyYWN0aXZlTWVzc2FnZShcbiAgICAgICAgICBtZXNzYWdlIGFzIENvbWV0Q2hhdC5JbnRlcmFjdGl2ZU1lc3NhZ2VcbiAgICAgICAgKSBhcyBDdXN0b21JbnRlcmFjdGl2ZU1lc3NhZ2U7XG4gICAgICAgIGlmICghZGlzYWJsZUxvY2FsRXZlbnRzKSB7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogaW50ZXJhY3RpdmVNZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLnN1Y2Nlc3MsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIG1lc3NhZ2Uuc2V0TWV0YWRhdGEoeyBlcnJvciB9KTtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmVycm9yLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2RzIHRvIHNlbmQgbWVzc2FnZXNcbiAgLy8gW3NlbmRDdXN0b21NZXNzYWdlXSB1c2VkIHRvIHNlbmQgYSBjdXN0b20gbWVzc2FnZVxuICBzdGF0aWMgc2VuZEN1c3RvbU1lc3NhZ2UoXG4gICAgbWVzc2FnZTogQ29tZXRDaGF0LkN1c3RvbU1lc3NhZ2VcbiAgKTogUHJvbWlzZTxDb21ldENoYXQuQmFzZU1lc3NhZ2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbWVzc2FnZS5zZXRTZW50QXQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LmdldFVuaXhUaW1lc3RhbXAoKSk7XG4gICAgICBpZiAoIW1lc3NhZ2U/LmdldE11aWQoKSkge1xuICAgICAgICBtZXNzYWdlLnNldE11aWQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LklEKCkpO1xuICAgICAgICBpZiAoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpKSB7XG4gICAgICAgICAgbWVzc2FnZS5zZXRTZW5kZXIoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpISlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzcyxcbiAgICAgIH0pO1xuXG4gICAgICBDb21ldENoYXQuc2VuZEN1c3RvbU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yOiB0cnVlIH0pO1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kcyB0byBzZW5kIG1lc3NhZ2VzXG4gIC8vIFtzZW5kVGV4dE1lc3NhZ2VdIHVzZWQgdG8gc2VuZCBhIGN1c3RvbSBtZXNzYWdlXG4gIHN0YXRpYyBzZW5kVGV4dE1lc3NhZ2UoXG4gICAgbWVzc2FnZTogQ29tZXRDaGF0LlRleHRNZXNzYWdlXG4gICk6IFByb21pc2U8Q29tZXRDaGF0LkJhc2VNZXNzYWdlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIG1lc3NhZ2Uuc2V0U2VudEF0KENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5nZXRVbml4VGltZXN0YW1wKCkpO1xuICAgICAgaWYgKCFtZXNzYWdlPy5nZXRNdWlkKCkpIHtcbiAgICAgICAgbWVzc2FnZS5zZXRNdWlkKENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5JRCgpKTtcbiAgICAgICAgaWYgKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSkge1xuICAgICAgICAgIG1lc3NhZ2Uuc2V0U2VuZGVyKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSEpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcblxuICAgICAgQ29tZXRDaGF0LnNlbmRNZXNzYWdlKG1lc3NhZ2UpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpID0+IHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLnN1Y2Nlc3MsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzb2x2ZShtZXNzYWdlKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIG1lc3NhZ2Uuc2V0TWV0YWRhdGEoeyBlcnJvcjogdHJ1ZSB9KTtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmVycm9yLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZHMgdG8gc2VuZCBtZXNzYWdlc1xuICAvLyBbc2VuZE1lZGlhTWVzc2FnZV0gdXNlZCB0byBzZW5kIGEgY3VzdG9tIG1lc3NhZ2VcbiAgc3RhdGljIHNlbmRNZWRpYU1lc3NhZ2UoXG4gICAgbWVzc2FnZTogQ29tZXRDaGF0Lk1lZGlhTWVzc2FnZVxuICApOiBQcm9taXNlPENvbWV0Q2hhdC5CYXNlTWVzc2FnZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBtZXNzYWdlLnNldFNlbnRBdChDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpKTtcbiAgICAgIGlmICghbWVzc2FnZT8uZ2V0TXVpZCgpKSB7XG4gICAgICAgIG1lc3NhZ2Uuc2V0TXVpZChDb21ldENoYXRVSUtpdFV0aWxpdHkuSUQoKSk7XG4gICAgICAgIGlmIChDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkpIHtcbiAgICAgICAgICBtZXNzYWdlLnNldFNlbmRlcihDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkhKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5pbnByb2dyZXNzLFxuICAgICAgfSk7XG5cbiAgICAgIENvbWV0Q2hhdC5zZW5kTWVkaWFNZXNzYWdlKG1lc3NhZ2UpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpID0+IHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLnN1Y2Nlc3MsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzb2x2ZShtZXNzYWdlKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIG1lc3NhZ2Uuc2V0TWV0YWRhdGEoeyBlcnJvcjogdHJ1ZSB9KTtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmVycm9yLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBTZW5kcyBhIHNjaGVkdWxlciBtZXNzYWdlIGFuZCBlbWl0cyBldmVudHMgYmFzZWQgb24gdGhlIG1lc3NhZ2Ugc3RhdHVzLlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBzY2hlZHVsZXIgbWVzc2FnZSB0byBiZSBzZW50LlxuICAgKiBAcGFyYW0gZGlzYWJsZUxvY2FsRXZlbnRzIC0gQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0byBkaXNhYmxlIGxvY2FsIGV2ZW50cyBvciBub3QuIERlZmF1bHQgdmFsdWUgaXMgZmFsc2UuXG4gICAqL1xuICBzdGF0aWMgc2VuZFNjaGVkdWxlck1lc3NhZ2UoXG4gICAgbWVzc2FnZTogU2NoZWR1bGVyTWVzc2FnZSxcbiAgICBkaXNhYmxlTG9jYWxFdmVudHM6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcblxuICAgIG1lc3NhZ2Uuc2V0U2VudEF0KENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5nZXRVbml4VGltZXN0YW1wKCkpO1xuICAgIGlmICghbWVzc2FnZT8uZ2V0TXVpZCgpKSB7XG4gICAgICBtZXNzYWdlLnNldE11aWQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LklEKCkpO1xuICAgICAgaWYgKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSkge1xuICAgICAgICBtZXNzYWdlLnNldFNlbmRlcihDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkhKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghZGlzYWJsZUxvY2FsRXZlbnRzKSB7XG4gICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5pbnByb2dyZXNzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgQ29tZXRDaGF0LnNlbmRJbnRlcmFjdGl2ZU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgIC50aGVuKChtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpID0+IHtcbiAgICAgICAgbGV0IGludGVyYWN0aXZlTWVzc2FnZTogU2NoZWR1bGVyTWVzc2FnZSA9IEludGVyYWN0aXZlTWVzc2FnZVV0aWxzLmNvbnZlcnRJbnRlcmFjdGl2ZU1lc3NhZ2UoXG4gICAgICAgICAgbWVzc2FnZSBhcyBDb21ldENoYXQuSW50ZXJhY3RpdmVNZXNzYWdlXG4gICAgICAgICkgYXMgU2NoZWR1bGVyTWVzc2FnZTtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBpbnRlcmFjdGl2ZU1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yIH0pO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export class AIExtensionDataSource {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQUlFeHRlbnNpb25EYXRhU291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvRnJhbWV3b3JrL0FJRXh0ZW5zaW9uRGF0YVNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQWdCLHFCQUFxQjtDQUkxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBSUV4dGVuc2lvbkRhdGFTb3VyY2Uge1xuICBhYnN0cmFjdCBhZGRFeHRlbnNpb24oKTogdm9pZDtcbiAgYWJzdHJhY3QgZ2V0RXh0ZW5zaW9uSWQoKTogc3RyaW5nO1xuICBhYnN0cmFjdCBlbmFibGUoKTogdm9pZDtcbn1cbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { MessageUtils } from "../Utils/MessageUtils";
2
- export class ChatConfigurator {
3
- static init(initialSource) {
4
- this.dataSource = initialSource ?? new MessageUtils();
5
- if (!initialSource) {
6
- this.names = [];
7
- }
8
- this.names.push(this.dataSource.getId());
9
- }
10
- static enable(callback) {
11
- let oldSource = this.dataSource;
12
- let newSource = callback(oldSource);
13
- if (!this.names.find((nm) => nm == newSource.getId())) {
14
- this.dataSource = newSource;
15
- this.names.push(this.dataSource.getId());
16
- }
17
- }
18
- static getDataSource() {
19
- return this.dataSource;
20
- }
21
- }
22
- ChatConfigurator.names = ["message utils"];
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhdENvbmZpZ3VyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvU2hhcmVkL0ZyYW1ld29yay9DaGF0Q29uZmlndXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBMEI7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQWdEO1FBQzVELElBQUksU0FBUyxHQUFlLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDNUMsSUFBSSxTQUFTLEdBQWUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7QUFyQk0sc0JBQUssR0FBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VVdGlscyB9IGZyb20gXCIuLi9VdGlscy9NZXNzYWdlVXRpbHNcIjtcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi9EYXRhU291cmNlXCI7XG5cbmV4cG9ydCBjbGFzcyBDaGF0Q29uZmlndXJhdG9yIHtcbiAgc3RhdGljIGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gIHN0YXRpYyBuYW1lczogQXJyYXk8c3RyaW5nPiA9IFtcIm1lc3NhZ2UgdXRpbHNcIl07XG5cbiAgc3RhdGljIGluaXQoaW5pdGlhbFNvdXJjZT86IERhdGFTb3VyY2UpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBpbml0aWFsU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKTtcbiAgICBpZiAoIWluaXRpYWxTb3VyY2UpIHtcbiAgICAgIHRoaXMubmFtZXMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5uYW1lcy5wdXNoKHRoaXMuZGF0YVNvdXJjZS5nZXRJZCgpKTtcbiAgfVxuXG4gIHN0YXRpYyBlbmFibGUoY2FsbGJhY2s6IChkYXRhU291cmNlOiBEYXRhU291cmNlKSA9PiBEYXRhU291cmNlKSB7XG4gICAgbGV0IG9sZFNvdXJjZTogRGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZTtcbiAgICBsZXQgbmV3U291cmNlOiBEYXRhU291cmNlID0gY2FsbGJhY2sob2xkU291cmNlKTtcbiAgICBpZiAoIXRoaXMubmFtZXMuZmluZCgobm0pID0+IG5tID09IG5ld1NvdXJjZS5nZXRJZCgpKSkge1xuICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3U291cmNlO1xuICAgICAgdGhpcy5uYW1lcy5wdXNoKHRoaXMuZGF0YVNvdXJjZS5nZXRJZCgpKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RGF0YVNvdXJjZSgpOiBEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlO1xuICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export class DataSource {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvU2hhcmVkL0ZyYW1ld29yay9EYXRhU291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxNQUFNLE9BQWdCLFVBQVU7Q0FxRy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tZXRDaGF0QWN0aW9uc1ZpZXcsXG4gIENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbixcbiAgQ29tZXRDaGF0TWVzc2FnZU9wdGlvbixcbiAgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlLFxuICBDb21ldENoYXRUaGVtZSxcbiAgRm9ybU1lc3NhZ2UsXG4gIE1lbnRpb25zVGFyZ2V0RWxlbWVudCxcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBDb21wb3NlcklkIH0gZnJvbSBcIi4uL1V0aWxzL01lc3NhZ2VVdGlsc1wiO1xuaW1wb3J0IHtcbiAgQUlPcHRpb25zU3R5bGUsXG4gIENvbWV0Q2hhdE1lbnRpb25zRm9ybWF0dGVyLFxuICBDb21ldENoYXRUZXh0Rm9ybWF0dGVyLFxuICBDb21ldENoYXRVcmxzRm9ybWF0dGVyLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFTb3VyY2Uge1xuICBhYnN0cmFjdCBnZXRUZXh0TWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+O1xuICBhYnN0cmFjdCBnZXRJbWFnZU1lc3NhZ2VPcHRpb25zKFxuICAgIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsXG4gICAgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLFxuICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZSxcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cFxuICApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPjtcbiAgYWJzdHJhY3QgZ2V0VmlkZW9NZXNzYWdlT3B0aW9ucyhcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSxcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj47XG4gIGFic3RyYWN0IGdldEF1ZGlvTWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+O1xuICBhYnN0cmFjdCBnZXRGaWxlTWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+O1xuICBhYnN0cmFjdCBnZXRUZXh0TWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZTtcbiAgYWJzdHJhY3QgZ2V0SW1hZ2VNZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlO1xuICBhYnN0cmFjdCBnZXRWaWRlb01lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGU7XG4gIGFic3RyYWN0IGdldEF1ZGlvTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZTtcbiAgYWJzdHJhY3QgZ2V0RmlsZU1lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGU7XG4gIGFic3RyYWN0IGdldEZvcm1NZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlO1xuICBhYnN0cmFjdCBnZXRDYXJkTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZTtcbiAgYWJzdHJhY3QgZ2V0R3JvdXBBY3Rpb25UZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGU7XG4gIGFic3RyYWN0IGdldFNjaGVkdWxlck1lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGU7XG4gIGFic3RyYWN0IGdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoXG4gICAgdGhlbWU/OiBDb21ldENoYXRUaGVtZVxuICApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlVGVtcGxhdGU+O1xuICBhYnN0cmFjdCBnZXRNZXNzYWdlVGVtcGxhdGUoXG4gICAgbWVzc2FnZVR5cGU6IHN0cmluZyxcbiAgICBtZXNzYWdlQ2F0ZWdvcnk6IHN0cmluZ1xuICApOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUgfCBudWxsO1xuICBhYnN0cmFjdCBnZXRNZXNzYWdlT3B0aW9ucyhcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSxcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj47XG4gIGFic3RyYWN0IGdldENvbW1vbk9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+O1xuICBhYnN0cmFjdCBnZXRBdHRhY2htZW50T3B0aW9ucyhcbiAgICB0aGVtZT86IENvbWV0Q2hhdFRoZW1lLFxuICAgIHVzZXI/OiBDb21ldENoYXQuVXNlcixcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cCxcbiAgICBpZD86IENvbXBvc2VySWRcbiAgKTogYW55O1xuICBhYnN0cmFjdCBnZXRBbGxNZXNzYWdlVHlwZXMoKTogQXJyYXk8c3RyaW5nPjtcbiAgYWJzdHJhY3QgZ2V0QWxsTWVzc2FnZUNhdGVnb3JpZXMoKTogQXJyYXk8c3RyaW5nPjtcbiAgYWJzdHJhY3QgZ2V0QXV4aWxpYXJ5T3B0aW9ucyhcbiAgICBpZDogQ29tcG9zZXJJZCxcbiAgICB1c2VyPzogQ29tZXRDaGF0LlVzZXIsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgKTogYW55O1xuICBhYnN0cmFjdCBnZXRJZCgpOiBzdHJpbmc7XG4gIGFic3RyYWN0IGdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKFxuICAgIGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbixcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIGFkZGl0aW9uYWxQYXJhbXM/OiBhbnlcbiAgKTogc3RyaW5nO1xuICBhYnN0cmFjdCBnZXREZWxldGVPcHRpb24odGhlbWU6IENvbWV0Q2hhdFRoZW1lKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbjtcbiAgYWJzdHJhY3QgZ2V0UmVwbHlJblRocmVhZE9wdGlvbihcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWVcbiAgKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbjtcbiAgYWJzdHJhY3QgZ2V0RWRpdE9wdGlvbih0aGVtZTogQ29tZXRDaGF0VGhlbWUpOiBDb21ldENoYXRNZXNzYWdlT3B0aW9uO1xuICBhYnN0cmFjdCBnZXRBSU9wdGlvbnMoXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGlkPzogTWFwPFN0cmluZywgYW55PixcbiAgICBhaU9wdGlvbnNTdHlsZXM/OiBBSU9wdGlvbnNTdHlsZVxuICApOiAoQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uIHwgQ29tZXRDaGF0QWN0aW9uc1ZpZXcpW107XG4gIGFic3RyYWN0IGdldEFsbFRleHRGb3JtYXR0ZXJzKGZvcm1hdHRlclBhcmFtczogYW55KTogQ29tZXRDaGF0VGV4dEZvcm1hdHRlcltdO1xuICBhYnN0cmFjdCBnZXRNZW50aW9uc1RleHRGb3JtYXR0ZXIoXG4gICAgZm9ybWF0dGVyUGFyYW1zOiBhbnlcbiAgKTogQ29tZXRDaGF0TWVudGlvbnNGb3JtYXR0ZXI7XG4gIGFic3RyYWN0IGdldFVybFRleHRGb3JtYXR0ZXIoZm9ybWF0dGVyUGFyYW1zOiBhbnkpOiBDb21ldENoYXRVcmxzRm9ybWF0dGVyO1xuICBhYnN0cmFjdCBnZXRNZW50aW9uc0Zvcm1hdHRlZFRleHQoXG4gICAgbWVzc2FnZTogQ29tZXRDaGF0LlRleHRNZXNzYWdlLFxuICAgIHN1YnRpdGxlOiBzdHJpbmcsXG4gICAgbWVudGlvbnNGb3JtYXR0ZXJQYXJhbXM6IHtcbiAgICAgIG1lbnRpb25zVGFyZ2V0RWxlbWVudDogTWVudGlvbnNUYXJnZXRFbGVtZW50O1xuICAgICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lO1xuICAgIH1cbiAgKTogc3RyaW5nO1xufVxuIl19