fmode-ng 0.0.113 → 0.0.115

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 (275) hide show
  1. package/LICENSE.md +8 -0
  2. package/README.md +37 -37
  3. package/esm2022/fmode-ng.mjs +10 -5
  4. package/esm2022/lib/aigc/agent/fm-agent-task/fm-agent-task.component.mjs +8 -92
  5. package/esm2022/lib/aigc/agent/index.mjs +10 -3
  6. package/esm2022/lib/aigc/avatar/avatar.module.mjs +10 -45
  7. package/esm2022/lib/aigc/avatar/comp-avatar-particle/avatar.role.mjs +10 -2
  8. package/esm2022/lib/aigc/avatar/comp-avatar-particle/comp-avatar-particle.component.mjs +10 -315
  9. package/esm2022/lib/aigc/avatar/comp-avatar-particle/index.mjs +10 -3
  10. package/esm2022/lib/aigc/avatar/comp-avatar-particle/role-points.class.mjs +10 -57
  11. package/esm2022/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.mjs +10 -98
  12. package/esm2022/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.mjs +10 -107
  13. package/esm2022/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.mjs +10 -113
  14. package/esm2022/lib/aigc/avatar/index.mjs +10 -8
  15. package/esm2022/lib/aigc/avatar/interface-avatar-role.mjs +10 -2
  16. package/esm2022/lib/aigc/avatar/modal-chat-voice-input/modal-chat-voice-input.component.mjs +8 -164
  17. package/esm2022/lib/aigc/chat/chat-header-area/comp-header-area.component.mjs +10 -49
  18. package/esm2022/lib/aigc/chat/chat-header-area/index.mjs +10 -2
  19. package/esm2022/lib/aigc/chat/chat-list/chat-list.component.mjs +8 -155
  20. package/esm2022/lib/aigc/chat/chat-list/index.mjs +10 -2
  21. package/esm2022/lib/aigc/chat/chat-message-area/comp-message-area.component.mjs +10 -40
  22. package/esm2022/lib/aigc/chat/chat-message-area/index.mjs +10 -2
  23. package/esm2022/lib/aigc/chat/chat-message-card/comp-message-card.component.mjs +10 -140
  24. package/esm2022/lib/aigc/chat/chat-message-card/duration-str.pipe.mjs +10 -29
  25. package/esm2022/lib/aigc/chat/chat-message-card/index.mjs +10 -3
  26. package/esm2022/lib/aigc/chat/chat-modal-input/index.mjs +10 -3
  27. package/esm2022/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.mjs +8 -193
  28. package/esm2022/lib/aigc/chat/chat-modal-input/modal-input.component.mjs +10 -331
  29. package/esm2022/lib/aigc/chat/chat-panel/chat-panel.component.mjs +8 -249
  30. package/esm2022/lib/aigc/chat/comp-role-prompt/comp-role-prompt.component.mjs +10 -83
  31. package/esm2022/lib/aigc/chat/comp-role-prompt/index.mjs +10 -2
  32. package/esm2022/lib/aigc/chat/index.mjs +10 -8
  33. package/esm2022/lib/aigc/comp-markdown-preview/clipboard.service.mjs +10 -82
  34. package/esm2022/lib/aigc/comp-markdown-preview/markdown-parse.mjs +8 -367
  35. package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.component.mjs +10 -51
  36. package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.module.mjs +10 -24
  37. package/esm2022/lib/aigc/comp-markdown-preview/plugins/md-mathjax/index.mjs +10 -115
  38. package/esm2022/lib/aigc/index.mjs +10 -14
  39. package/esm2022/lib/aigc/service-fmai/fmai.service.mjs +10 -21
  40. package/esm2022/lib/aigc/service-fmai/service-chat/chat-class.mjs +10 -2
  41. package/esm2022/lib/aigc/service-fmai/service-chat/chat.service.mjs +8 -174
  42. package/esm2022/lib/aigc/service-fmai/service-chat/index.mjs +10 -7
  43. package/esm2022/lib/aigc/service-fmai/service-chat/mask-list.mjs +9 -194
  44. package/esm2022/lib/aigc/service-fmai/service-chat/pipes/chat-content.pipe.mjs +10 -27
  45. package/esm2022/lib/aigc/service-fmai/service-chat/pipes/hidexml.pipe.mjs +10 -27
  46. package/esm2022/lib/aigc/service-fmai/service-chat/utilnow.pipe.mjs +10 -68
  47. package/esm2022/lib/aigc/service-fmai/service-imagine/imagine-func.mjs +9 -162
  48. package/esm2022/lib/aigc/service-fmai/service-imagine/imagine-work.mjs +10 -68
  49. package/esm2022/lib/aigc/service-fmai/service-imagine/imagine.service.mjs +8 -313
  50. package/esm2022/lib/aigc/service-fmai/service-imagine/index.mjs +10 -4
  51. package/esm2022/lib/aigc/story/fm-office-viewer/fm-office-viewer.component.mjs +10 -62
  52. package/esm2022/lib/aigc/story/fm-story-card/fm-story-card.component.mjs +10 -87
  53. package/esm2022/lib/aigc/story/fm-story-list/fm-story-list.component.mjs +10 -345
  54. package/esm2022/lib/aigc/story/fm-story-list/story-preview.mjs +10 -81
  55. package/esm2022/lib/aigc/story/fm-story-loader/fm-story-loader.component.mjs +10 -152
  56. package/esm2022/lib/aigc/story/fm-story-splitter/fm-story-splitter.component.mjs +10 -42
  57. package/esm2022/lib/aigc/story/index.mjs +10 -6
  58. package/esm2022/lib/aigc/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.mjs +10 -47
  59. package/esm2022/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.mjs +10 -95
  60. package/esm2022/lib/aigc/story/modal-chat-story/modal-chat-story.component.mjs +10 -253
  61. package/esm2022/lib/aigc/story/story.service.mjs +10 -35
  62. package/esm2022/lib/aigc/voice/fmode-voice.service.mjs +10 -636
  63. package/esm2022/lib/aigc/voice/index.mjs +10 -7
  64. package/esm2022/lib/aigc/voice/lib/audio/audio.player.mjs +10 -55
  65. package/esm2022/lib/aigc/voice/lib/audio/audio.streamer.mjs +10 -2
  66. package/esm2022/lib/aigc/voice/lib/audio/streamer.microsoft.mjs +10 -96
  67. package/esm2022/lib/aigc/voice/lib/audio/streamer.pcm.mjs +8 -177
  68. package/esm2022/lib/aigc/voice/lib/pcm2wav.mjs +10 -38
  69. package/esm2022/lib/aigc/voice/lib/recorder/extension-waveview.mjs +10 -215
  70. package/esm2022/lib/aigc/voice/lib/resample.mjs +10 -34
  71. package/esm2022/lib/aigc/voice/tts/fmode-tts-class.mjs +10 -189
  72. package/esm2022/lib/aigc/voice/tts/index.mjs +10 -5
  73. package/esm2022/lib/aigc/voice/tts/int-tts-provider.mjs +10 -2
  74. package/esm2022/lib/aigc/voice/tts/provider-doubao.mjs +8 -346
  75. package/esm2022/lib/code/fm-codemirror/fm-codemirror.component.mjs +8 -342
  76. package/esm2022/lib/code/index.mjs +10 -2
  77. package/esm2022/lib/core/agent/chat/completion/fmode-completion.mjs +8 -430
  78. package/esm2022/lib/core/agent/chat/completion/index.mjs +10 -2
  79. package/esm2022/lib/core/agent/chat/completion/int-gpt-chat-options.mjs +10 -2
  80. package/esm2022/lib/core/agent/chat/fmode-chat.mjs +8 -617
  81. package/esm2022/lib/core/agent/chat/index.mjs +10 -4
  82. package/esm2022/lib/core/agent/chat/interface.mjs +10 -2
  83. package/esm2022/lib/core/agent/index.mjs +10 -6
  84. package/esm2022/lib/core/agent/prompt/agent.prompt.mjs +10 -133
  85. package/esm2022/lib/core/agent/prompt/index.mjs +10 -2
  86. package/esm2022/lib/core/agent/prompt/prompt-util.mjs +10 -16
  87. package/esm2022/lib/core/agent/story/agent.story.mjs +10 -64
  88. package/esm2022/lib/core/agent/story/index.mjs +10 -2
  89. package/esm2022/lib/core/agent/task/agent.task.mjs +10 -90
  90. package/esm2022/lib/core/agent/task/index.mjs +10 -2
  91. package/esm2022/lib/core/agent/waiting/index.mjs +10 -3
  92. package/esm2022/lib/core/agent/waiting/loading/loading.ctrl.mjs +10 -279
  93. package/esm2022/lib/core/agent/waiting/tips/tips.ctrl.mjs +8 -190
  94. package/esm2022/lib/core/index.mjs +10 -4
  95. package/esm2022/lib/core/parse/datatype/acl.mjs +10 -57
  96. package/esm2022/lib/core/parse/datatype/file.mjs +10 -69
  97. package/esm2022/lib/core/parse/datatype/geopoint.mjs +10 -57
  98. package/esm2022/lib/core/parse/datatype/relation.mjs +10 -56
  99. package/esm2022/lib/core/parse/fmode.cloud.mjs +10 -0
  100. package/esm2022/lib/core/parse/fmode.object.mjs +10 -232
  101. package/esm2022/lib/core/parse/fmode.parse.mjs +10 -84
  102. package/esm2022/lib/core/parse/fmode.query.mjs +8 -500
  103. package/esm2022/lib/core/parse/fmode.user.mjs +10 -275
  104. package/esm2022/lib/core/parse/index.mjs +10 -5
  105. package/esm2022/lib/core/parse/types.mjs +10 -2
  106. package/esm2022/lib/core/voice/index.mjs +10 -3
  107. package/esm2022/lib/core/voice/tts/index.mjs +10 -2
  108. package/esm2022/lib/icon/filetype/audio.svg.mjs +10 -3
  109. package/esm2022/lib/icon/filetype/avatar.svg.mjs +10 -14
  110. package/esm2022/lib/icon/filetype/chat.svg.mjs +10 -3
  111. package/esm2022/lib/icon/filetype/docx.svg.mjs +10 -3
  112. package/esm2022/lib/icon/filetype/file.svg.mjs +10 -3
  113. package/esm2022/lib/icon/filetype/filetype.pipe.mjs +10 -57
  114. package/esm2022/lib/icon/filetype/index.mjs +10 -12
  115. package/esm2022/lib/icon/filetype/md.svg.mjs +10 -3
  116. package/esm2022/lib/icon/filetype/pdf.svg.mjs +10 -3
  117. package/esm2022/lib/icon/filetype/pptx.svg.mjs +10 -3
  118. package/esm2022/lib/icon/filetype/svgtoblob.mjs +10 -8
  119. package/esm2022/lib/icon/filetype/video.svg.mjs +10 -3
  120. package/esm2022/lib/icon/filetype/xlsx.svg.mjs +10 -3
  121. package/esm2022/lib/icon/index.mjs +10 -2
  122. package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.component.mjs +10 -209
  123. package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.module.mjs +10 -33
  124. package/esm2022/lib/map/index.mjs +10 -4
  125. package/esm2022/lib/map/map.module.mjs +10 -61
  126. package/esm2022/lib/map/page-loca-scatter/page-loca-scatter.component.mjs +10 -132
  127. package/esm2022/lib/map/page-map.start/page-map.start.component.mjs +8 -115
  128. package/esm2022/lib/map/page-plan-route/page-plan-route.component.mjs +8 -118
  129. package/esm2022/lib/nova-cloud/index.mjs +10 -3
  130. package/esm2022/lib/nova-cloud/ncloud-api-func.mjs +10 -91
  131. package/esm2022/lib/nova-cloud/nova-cloud.service.mjs +10 -53
  132. package/esm2022/lib/payment/index.mjs +10 -2
  133. package/esm2022/lib/payment/payment/payment.component.mjs +10 -543
  134. package/esm2022/lib/payment/payment.service.mjs +10 -202
  135. package/esm2022/lib/person/comp-person-gender-icon/comp-person-gender-icon.component.mjs +10 -48
  136. package/esm2022/lib/person/comp-person-item/comp-person-item.component.mjs +10 -29
  137. package/esm2022/lib/person/comp-person-story/comp-person-story.component.mjs +10 -211
  138. package/esm2022/lib/person/edit-upload/edit-upload.component.mjs +8 -412
  139. package/esm2022/lib/person/edit-upload/edit-upload.module.mjs +10 -50
  140. package/esm2022/lib/person/index.mjs +10 -5
  141. package/esm2022/lib/person/modal-person-select/modal-person-select.component.mjs +10 -144
  142. package/esm2022/lib/person/modal-user-verify/secret-text.pipe.mjs +10 -41
  143. package/esm2022/lib/person/modal-user-verify/user-verify.component.mjs +10 -595
  144. package/esm2022/lib/person/person-detail/person-detail.component.mjs +10 -172
  145. package/esm2022/lib/person/person.service.mjs +8 -193
  146. package/esm2022/lib/platform/cross.service.mjs +10 -62
  147. package/esm2022/lib/platform/index.mjs +10 -2
  148. package/esm2022/lib/social/index.mjs +10 -2
  149. package/esm2022/lib/social/wechat/wechat-jssdk.service.mjs +8 -230
  150. package/esm2022/lib/storage/comp-hwobs-manager/hwobs-manager.component.mjs +10 -59
  151. package/esm2022/lib/storage/index.mjs +10 -5
  152. package/esm2022/lib/storage/service-hwobs/hwobs.service.mjs +8 -131
  153. package/esm2022/lib/storage/service-hwobs/index.mjs +10 -3
  154. package/esm2022/lib/storage/service-hwobs/typings/esdk-obs-browser.mjs +1 -1
  155. package/esm2022/lib/storage/service-upload/index.mjs +10 -2
  156. package/esm2022/lib/storage/service-upload/nova-upload.service.mjs +8 -513
  157. package/esm2022/lib/storage/service-upload/util-file-md5.mjs +10 -28
  158. package/esm2022/lib/storage/service-upload/util-file-metadata.mjs +10 -93
  159. package/esm2022/lib/storage/storage.module.mjs +10 -42
  160. package/esm2022/lib/text/fm-article-editor/article-editor-topbar/article-editor-topbar.component.mjs +10 -72
  161. package/esm2022/lib/text/fm-article-editor/article.service.mjs +10 -237
  162. package/esm2022/lib/text/fm-article-editor/comp-upload-book-banners/comp-upload-book-banners.component.mjs +8 -72
  163. package/esm2022/lib/text/fm-article-editor/draft.service.mjs +10 -207
  164. package/esm2022/lib/text/fm-article-editor/fm-article-aitool/fm-article-aitool.component.mjs +8 -227
  165. package/esm2022/lib/text/fm-article-editor/fm-article-draft/fm-article-draft.component.mjs +10 -303
  166. package/esm2022/lib/text/fm-article-editor/fm-article-editor.component.mjs +8 -371
  167. package/esm2022/lib/text/fm-article-editor/fm-article-outline/fm-article-outline.component.mjs +10 -94
  168. package/esm2022/lib/text/fm-article-editor/fm-article-outline-leftitem/fm-article-outline-leftitem.component.mjs +10 -36
  169. package/esm2022/lib/text/fm-article-editor/fm-article-preview/fm-article-preview.component.mjs +10 -281
  170. package/esm2022/lib/text/fm-article-editor/fm-article-write-options/fm-article-write-options.component.mjs +10 -72
  171. package/esm2022/lib/text/fm-article-editor/outline-count.pipe.mjs +10 -22
  172. package/esm2022/lib/text/fm-article-editor/prompt/prompt-insertion-article.mjs +10 -169
  173. package/esm2022/lib/text/fm-article-editor/task-article-generation.mjs +10 -69
  174. package/esm2022/lib/text/fm-article-editor/tasks/task-article-draft-create.mjs +10 -65
  175. package/esm2022/lib/text/fm-article-editor/tasks/task-article-outline-edit.mjs +10 -55
  176. package/esm2022/lib/text/fm-article-editor/tasks/task-article-outline.mjs +10 -142
  177. package/esm2022/lib/text/fm-article-editor/tasks/task-article-preview.mjs +10 -35
  178. package/esm2022/lib/text/fm-article-editor/tasks/task-article-writing-options.mjs +10 -81
  179. package/esm2022/lib/text/fm-article-editor/tasks/task-document-select.mjs +10 -50
  180. package/esm2022/lib/text/fm-text-quill/fm-text-quill.component.mjs +10 -145
  181. package/esm2022/lib/text/index.mjs +10 -4
  182. package/esm2022/lib/user/account/account.service.mjs +10 -222
  183. package/esm2022/lib/user/captcha/captcha.component.mjs +10 -135
  184. package/esm2022/lib/user/comp-user-avatar/comp-user-avatar.component.mjs +10 -66
  185. package/esm2022/lib/user/index.mjs +10 -17
  186. package/esm2022/lib/user/login/auth.guard.mjs +10 -28
  187. package/esm2022/lib/user/login/auth.service.mjs +8 -433
  188. package/esm2022/lib/user/login/login.component.mjs +10 -916
  189. package/esm2022/lib/user/modal-user-login/modal-user-login.component.mjs +10 -311
  190. package/esm2022/lib/user/profile/auth-profile.guard.mjs +10 -27
  191. package/esm2022/lib/user/profile/auth-profile.service.mjs +10 -122
  192. package/esm2022/lib/user/profile/profile-bind/profile-bind.component.mjs +10 -164
  193. package/esm2022/lib/user/profile/profile-bind/profile-confirm-modal.component.mjs +10 -79
  194. package/esm2022/lib/user/profile/profile.module.mjs +10 -54
  195. package/esm2022/lib/user/staff/index.mjs +10 -4
  196. package/esm2022/lib/user/staff/staff.guard.mjs +10 -26
  197. package/esm2022/lib/user/staff/staff.module.mjs +10 -18
  198. package/esm2022/lib/user/staff/staff.service.mjs +10 -85
  199. package/esm2022/lib/user/user-name.pipe.mjs +10 -29
  200. package/esm2022/lib/user/user.module.mjs +10 -102
  201. package/esm2022/lib/video/fm-video/fm-video.component.mjs +10 -67
  202. package/esm2022/lib/video/index.mjs +10 -2
  203. package/esm2022/public-api.mjs +10 -21
  204. package/fesm2022/fmode-ng.mjs +7 -19788
  205. package/fesm2022/fmode-ng.mjs.map +1 -1
  206. package/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.d.ts +2 -2
  207. package/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.d.ts +2 -2
  208. package/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.d.ts +2 -2
  209. package/lib/aigc/chat/chat-list/chat-list.component.d.ts +3 -2
  210. package/lib/aigc/chat/chat-message-card/comp-message-card.component.d.ts +3 -3
  211. package/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.d.ts +2 -2
  212. package/lib/aigc/chat/chat-modal-input/modal-input.component.d.ts +3 -3
  213. package/lib/aigc/service-fmai/service-imagine/imagine-func.d.ts +3 -3
  214. package/lib/aigc/service-fmai/service-imagine/imagine-work.d.ts +4 -4
  215. package/lib/aigc/service-fmai/service-imagine/imagine.service.d.ts +6 -6
  216. package/lib/aigc/story/fm-office-viewer/fm-office-viewer.component.d.ts +2 -2
  217. package/lib/aigc/story/fm-story-card/fm-story-card.component.d.ts +2 -1
  218. package/lib/aigc/story/fm-story-list/fm-story-list.component.d.ts +6 -6
  219. package/lib/aigc/story/fm-story-list/story-preview.d.ts +4 -4
  220. package/lib/aigc/story/fm-story-loader/fm-story-loader.component.d.ts +3 -3
  221. package/lib/aigc/story/fm-story-splitter/fm-story-splitter.component.d.ts +2 -2
  222. package/lib/aigc/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.d.ts +3 -2
  223. package/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.d.ts +3 -2
  224. package/lib/aigc/story/modal-chat-story/modal-chat-story.component.d.ts +6 -6
  225. package/lib/aigc/story/story.service.d.ts +3 -2
  226. package/lib/aigc/voice/tts/fmode-tts-class.d.ts +2 -2
  227. package/lib/core/agent/chat/fmode-chat.d.ts +11 -11
  228. package/lib/core/agent/story/agent.story.d.ts +8 -8
  229. package/lib/core/parse/datatype/geopoint.d.ts +5 -1
  230. package/lib/core/parse/fmode.cloud.d.ts +32 -0
  231. package/lib/core/parse/fmode.object.d.ts +2 -2
  232. package/lib/core/parse/fmode.parse.d.ts +15 -9
  233. package/lib/core/parse/fmode.query.d.ts +41 -2
  234. package/lib/core/parse/fmode.user.d.ts +1 -0
  235. package/lib/core/parse/index.d.ts +1 -0
  236. package/lib/core/parse/types.d.ts +2 -0
  237. package/lib/map/comp-poi-picker/comp-poi-picker.component.d.ts +5 -5
  238. package/lib/payment/payment/payment.component.d.ts +3 -3
  239. package/lib/payment/payment.service.d.ts +4 -4
  240. package/lib/person/comp-person-gender-icon/comp-person-gender-icon.component.d.ts +2 -1
  241. package/lib/person/comp-person-item/comp-person-item.component.d.ts +2 -1
  242. package/lib/person/comp-person-story/comp-person-story.component.d.ts +13 -13
  243. package/lib/person/edit-upload/edit-upload.component.d.ts +1 -1
  244. package/lib/person/modal-person-select/modal-person-select.component.d.ts +5 -5
  245. package/lib/person/modal-user-verify/user-verify.component.d.ts +5 -5
  246. package/lib/person/person-detail/person-detail.component.d.ts +4 -4
  247. package/lib/person/person.service.d.ts +7 -7
  248. package/lib/storage/service-hwobs/hwobs.service.d.ts +4 -5
  249. package/lib/storage/service-upload/nova-upload.service.d.ts +5 -5
  250. package/lib/text/fm-article-editor/article-editor-topbar/article-editor-topbar.component.d.ts +2 -1
  251. package/lib/text/fm-article-editor/article.service.d.ts +12 -12
  252. package/lib/text/fm-article-editor/draft.service.d.ts +5 -5
  253. package/lib/text/fm-article-editor/fm-article-aitool/fm-article-aitool.component.d.ts +3 -2
  254. package/lib/text/fm-article-editor/fm-article-draft/fm-article-draft.component.d.ts +16 -17
  255. package/lib/text/fm-article-editor/fm-article-editor.component.d.ts +3 -3
  256. package/lib/text/fm-article-editor/fm-article-outline/fm-article-outline.component.d.ts +11 -10
  257. package/lib/text/fm-article-editor/fm-article-preview/fm-article-preview.component.d.ts +2 -2
  258. package/lib/text/fm-article-editor/prompt/prompt-insertion-article.d.ts +3 -3
  259. package/lib/text/fm-article-editor/task-article-generation.d.ts +5 -4
  260. package/lib/text/fm-article-editor/tasks/task-article-draft-create.d.ts +3 -3
  261. package/lib/text/fm-article-editor/tasks/task-article-outline-edit.d.ts +3 -3
  262. package/lib/text/fm-article-editor/tasks/task-article-outline.d.ts +3 -3
  263. package/lib/text/fm-article-editor/tasks/task-article-preview.d.ts +2 -1
  264. package/lib/text/fm-article-editor/tasks/task-article-writing-options.d.ts +3 -3
  265. package/lib/text/fm-article-editor/tasks/task-document-select.d.ts +3 -3
  266. package/lib/user/account/account.service.d.ts +2 -2
  267. package/lib/user/comp-user-avatar/comp-user-avatar.component.d.ts +2 -2
  268. package/lib/user/login/auth.service.d.ts +5 -5
  269. package/lib/user/login/login.component.d.ts +3 -3
  270. package/lib/user/profile/auth-profile.service.d.ts +8 -8
  271. package/lib/user/profile/profile-bind/profile-bind.component.d.ts +7 -7
  272. package/lib/user/profile/profile-bind/profile-confirm-modal.component.d.ts +2 -2
  273. package/lib/user/staff/staff.service.d.ts +3 -3
  274. package/lib/user/user-name.pipe.d.ts +2 -2
  275. package/package.json +12 -18
@@ -1,373 +1,10 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, ViewChild, Input, Output, EventEmitter, ElementRef, ChangeDetectorRef } from '@angular/core';
3
- import { IonicModule } from '@ionic/angular';
4
- import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
5
- import { NzInputModule } from 'ng-zorro-antd/input';
6
- import { NzDividerModule } from 'ng-zorro-antd/divider';
7
- import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
8
- import { NzEmptyModule } from 'ng-zorro-antd/empty';
9
- import { NzAvatarModule } from 'ng-zorro-antd/avatar';
10
- import { NzPopoverModule } from 'ng-zorro-antd/popover';
11
- import { NzPipesModule } from 'ng-zorro-antd/pipes';
12
- import { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
13
- import { ArticleEditorTopbarComponent } from './article-editor-topbar/article-editor-topbar.component';
14
- import { MatDialog, MatDialogModule } from '@angular/material/dialog';
15
- import { TaskDocumentSelect } from './tasks/task-document-select';
16
- import { FmAgentTaskComponent } from '../../aigc/agent/fm-agent-task/fm-agent-task.component';
17
- import { TaskArticleWritingOptions } from './tasks/task-article-writing-options';
18
- import { TaskArticleOutline } from './tasks/task-article-outline';
19
- import { MatFormFieldModule } from '@angular/material/form-field';
20
- import { MatInputModule } from '@angular/material/input';
21
- import { MatButtonModule } from '@angular/material/button';
22
- import { ClipboardService, FmodeChatCompletion } from '../../aigc';
23
- import { MatIconModule } from '@angular/material/icon';
24
- import { finalize } from 'rxjs';
25
- import { AlertController, ModalController } from '@ionic/angular/standalone';
26
- import { TaskArticleOutlineEdit } from './tasks/task-article-outline-edit';
27
- import { MatChipsModule } from '@angular/material/chips';
28
- import { TaskArticleDraft } from './tasks/task-article-draft-create';
29
- import { DraftService } from './draft.service';
30
- import { FmTextQuillComponent } from '../fm-text-quill/fm-text-quill.component';
31
- import { OutlineCountPipe } from './outline-count.pipe';
32
- import { FmArticleOutlineLeftitemComponent } from './fm-article-outline-leftitem/fm-article-outline-leftitem.component';
33
- import { Router } from '@angular/router';
34
- import { TaskArticlePreview } from './tasks/task-article-preview';
35
- import Parse from "parse";
36
- import { MatExpansionModule } from '@angular/material/expansion';
37
- import { NovaUploadService } from '../../storage/service-upload/nova-upload.service';
38
- import { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';
39
- import { addIcons } from 'ionicons';
40
- import { closeOutline, copyOutline, cloudDoneOutline, createOutline } from 'ionicons/icons';
41
- import { taskArticleGeneration } from './task-article-generation';
42
- import { PersonService } from '../../person/person.service';
43
- import * as i0 from "@angular/core";
44
- import * as i1 from "@ionic/angular/standalone";
45
- import * as i2 from "@angular/material/dialog";
46
- import * as i3 from "../../aigc";
47
- import * as i4 from "./draft.service";
48
- import * as i5 from "@angular/router";
49
- import * as i6 from "../../storage/service-upload/nova-upload.service";
50
- import * as i7 from "../../person/person.service";
51
- import * as i8 from "@angular/common";
52
- import * as i9 from "@angular/forms";
53
- import * as i10 from "@ionic/angular";
54
- import * as i11 from "ng-zorro-antd/input";
55
- import * as i12 from "@angular/material/form-field";
56
- import * as i13 from "@angular/material/input";
57
- import * as i14 from "@angular/material/button";
58
- import * as i15 from "@angular/material/icon";
59
- import * as i16 from "@angular/material/chips";
60
- import * as i17 from "@angular/material/expansion";
61
- addIcons({ closeOutline, copyOutline, cloudDoneOutline, createOutline });
62
- export class FmArticleEditorComponent {
63
- async ngOnInit() {
64
- if (this.article?.id) {
65
- this.draftServ?.loadArticleDraft(this.article);
66
- }
67
- }
68
- setContent(content, arrayItem) {
69
- if (arrayItem) {
70
- arrayItem.content = content;
71
- }
72
- else {
73
- this.article?.set('content', content);
74
- }
75
- this.contentChanged = true;
76
- }
77
- selectChange(event) {
78
- this.selectRange = event?.range;
79
- this.selectText = event?.text;
80
- this.selectQuill = event?.quill;
81
- this.cdRef.detectChanges();
82
- }
83
- goOptimizeText(event) {
84
- this.selectChange(event);
85
- this.aitab = "AI润色";
86
- this.optimizeContent();
87
- }
88
- cancelOptimize() {
89
- this.isOptimizing = false;
90
- this.optimize$?.unsubscribe();
91
- }
92
- optimizeContent() {
93
- if (!this.selectText)
94
- return;
95
- this.isOptimizing = true;
96
- // 创建上下文提示词消息列表
97
- let messageList = [
98
- { role: "user", content: `有段文字要润色,目的是提高其专业性和清晰度。请您调整语言,确保逻辑流畅,并使用行业相关术语。同时,请检查并修正任何语法错误。直接返回润色后内容。这是原文:${this.selectText}` },
99
- ];
100
- // 创建并发起一条新的消息补全
101
- let completion = new FmodeChatCompletion(messageList);
102
- // completion.model = "gpt-4-turbo-2024-04-09"
103
- // 持续更新事件推送的消息体内容绑定至消息变量
104
- let message;
105
- completion.model = "fmode-4.0-cn-256k";
106
- this.optimize$ = completion.sendCompletion().pipe(finalize(() => {
107
- message.complete = true;
108
- })).subscribe(message => {
109
- this.optimizeText = message.content;
110
- if (message?.complete) {
111
- this.isOptimizing = false;
112
- this.optimize$?.unsubscribe();
113
- this.cdRef.detectChanges();
114
- }
115
- });
116
- }
117
- copyOptimize() {
118
- this.clipboard.copyToClipboard(this.optimizeText);
119
- }
120
- applyOptimize() {
121
- if (this.selectRange) {
122
- this.selectQuill?.deleteText(this.selectRange?.index, this.selectRange.length);
123
- this.selectQuill?.insertText(this.selectRange?.index, this.optimizeText);
124
- this.selectRange = undefined;
125
- }
126
- }
127
- handleNavEvent(eventType, options) {
128
- // console.log(eventType)
129
- if (eventType == "preview") {
130
- if (this.article?.id) {
131
- TaskArticlePreview({ modal: this.modalCtrl, dialog: this.dialog, article: this.article });
132
- }
133
- }
134
- if (eventType == 'backmenu') {
135
- if (!this.article?.get('chapter')?.get('book')?.id) {
136
- this.router.navigateByUrl("/editor/my/home");
137
- }
138
- this.onClose.emit(true);
139
- }
140
- if (eventType == 'toggle-aitool') {
141
- this.isDivHidden = !this.isDivHidden;
142
- }
143
- if (eventType == 'save') {
144
- this.saveArticleContent();
145
- }
146
- if (eventType == "options") {
147
- if (this.readOnly)
148
- return;
149
- let shareData = {};
150
- this.doArticleTask([
151
- TaskArticleWritingOptions({ shareData: shareData, dialog: this.dialog, editOnly: true }),
152
- ], shareData);
153
- }
154
- if (eventType == "outline") {
155
- if (this.readOnly)
156
- return;
157
- let shareData = {};
158
- this.doArticleTask([
159
- TaskArticleOutlineEdit({ shareData: shareData, dialog: this.dialog }),
160
- ], shareData);
161
- }
162
- if (eventType == "draft") {
163
- let shareData = {};
164
- if (this.readOnly)
165
- return;
166
- this.doArticleTask([
167
- TaskArticleDraft({ isSelectedMode: true, shareData: shareData, dialog: this.dialog, modalCtrl: this.modalCtrl }),
168
- ], shareData, () => {
169
- // if(this?.textQuill?.quill){
170
- // this.textQuill.quill.root.innerHTML = shareData?.article?.get("content")
171
- // }
172
- });
173
- }
174
- }
175
- async saveArticleContent() {
176
- this.isSaving = true;
177
- // this.article?.set("content",this.textQuill?.quill?.root?.innerHTML)
178
- if (!this.article?.get("author")?.id) {
179
- this.article?.set("author", Parse.User.current()?.toPointer());
180
- }
181
- await this.article?.save();
182
- // 修正文章内容对比值
183
- // this.oldContent = this.textQuill?.quill?.root?.innerHTML
184
- // if(this.oldContent && this.content) this.contentChanged = this.content != this.oldContent
185
- this.contentChanged = false;
186
- // this.onClose.emit(true)
187
- this.isSaving = false;
188
- }
189
- close() {
190
- this.onClose.emit(true);
191
- }
192
- /** 交互组件:信息提示 */
193
- async presentAlert(options) {
194
- const alert = await this.alertController.create({
195
- header: '提示',
196
- subHeader: options?.message,
197
- // message: 'A message should be a short, complete sentence.',
198
- buttons: ['好的'],
199
- });
200
- await alert.present();
201
- }
202
- // aiTab切换
203
- async aiTab(aitab) {
204
- this.aitab = aitab;
205
- }
206
- async clickTab(clicktab) {
207
- this.clicktab = clicktab;
208
- }
209
- async dashboardTab(dashboardtab) {
210
- this.dashboardtab = dashboardtab;
211
- }
212
- showContent(content) {
213
- this.selectedContent = content;
214
- }
215
- constructor(modalCtrl, alertController,
216
- // private formBuilder: FormBuilder,
217
- dialog, cdRef, clipboard,
218
- //
219
- draftServ, router, nupload, personServ) {
220
- this.modalCtrl = modalCtrl;
221
- this.alertController = alertController;
222
- this.dialog = dialog;
223
- this.cdRef = cdRef;
224
- this.clipboard = clipboard;
225
- this.draftServ = draftServ;
226
- this.router = router;
227
- this.nupload = nupload;
228
- this.personServ = personServ;
229
- this.onClose = new EventEmitter;
230
- this.readOnly = false;
231
- this.title = `此处是标题`;
232
- /**文章内容:判定是否更改 */
233
- this.content = ``;
234
- this.contentChanged = false;
235
- this.selectText = ``;
236
- this.optimizeText = ``;
237
- this.isOptimizing = false;
238
- this.isSaving = false;
239
- this.isDivHidden = false;
240
- /**全部 */
241
- this.aitab = 'AI写作';
242
- this.clicktab = '语法错误';
243
- this.dashboardtab = '全部';
244
- this.cards = [
245
- { title: '全文创作', handle: () => { this.taskArticleGeneration(); }, content: '按步骤快速创作一篇完整的文章', imageurl: '../../../assets/images/write.png' },
246
- {
247
- title: '润色改写', handle: () => {
248
- this.aitab = "AI润色";
249
- }, content: '根据选段,调整语言,逻辑顺畅表达清晰', imageurl: '../../../assets/images/句子续写.png'
250
- },
251
- { title: '智能摘要(未开放)', handle: () => { this.presentAlert({ message: "暂未开放,敬请期待" }); }, content: '快速生成文章摘要', imageurl: '../../../assets/images/智能摘要.png' },
252
- { title: '句子续写(未开放)', handle: () => { this.presentAlert({ message: "暂未开放,敬请期待" }); }, content: '根据上文,续写多个句子', imageurl: '../../../assets/images/句子续写.png' },
253
- { title: '段落评论(未开放)', handle: () => { this.presentAlert({ message: "暂未开放,敬请期待" }); }, content: '根据段落特点,进行有针对性的评论', imageurl: '../../../assets/images/产品评论.png' },
254
- { title: '模板建议(未开放)', handle: () => { this.presentAlert({ message: "暂未开放,敬请期待" }); }, content: '欢迎与我们反馈您的需求', imageurl: '../../../assets/images/模板建议.png' },
255
- ];
256
- this.tempFormGroup = new FormGroup({});
257
- this.selectedContent = '图片';
258
- // this.polishContent = "";
259
- }
260
- enableButton() {
261
- const startButton = document.getElementById('start');
262
- startButton.disabled = true;
263
- }
264
- // polishContent: string;
265
- // Copy(content: string) {
266
- // this.polishContent = content;
267
- // }
1
+
268
2
  /**
269
- * Agent 序列任务
3
+ * @copyright © 未来飞马 © 未来全栈 www.fmode.cn
4
+ * 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
5
+ * 保留所有权利 All Rights Reserved.
6
+ * /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/text/fm-article-editor/fm-article-editor.component.mjs
270
7
  */
271
- /**
272
- * 文章全文生成
273
- * @param afterTask
274
- */
275
- async taskArticleGeneration(afterTask) {
276
- let shareData = {};
277
- shareData.createNewDraft = true;
278
- taskArticleGeneration(() => { }, {
279
- modalCtrl: this.modalCtrl,
280
- article: this.article, person: this.book?.get("person"), book: this.book, shareData: shareData, dialog: this.dialog, personServ: this.personServ
281
- });
282
- return;
283
- this.doArticleTask([
284
- TaskDocumentSelect({ person: this.book?.get("person"), book: this.book, shareData: shareData, dialog: this.dialog }),
285
- TaskArticleWritingOptions({ shareData: shareData, dialog: this.dialog }),
286
- TaskArticleOutline({ person: this.book?.get("person"), book: this.book, shareData: shareData, dialog: this.dialog, personServ: this.personServ }),
287
- TaskArticleOutlineEdit({ person: this.book?.get("person"), book: this.book, shareData: shareData, dialog: this.dialog }),
288
- TaskArticleDraft({ isSelectedMode: true, shareData: shareData, dialog: this.dialog, modalCtrl: this.modalCtrl }),
289
- ], shareData, () => {
290
- // if(this?.textQuill?.quill){
291
- // this.textQuill.quill.root.innerHTML = shareData?.article?.get("content")
292
- // }
293
- });
294
- }
295
- doArticleTask(stepList, shareData, afterTask) {
296
- // 定义任务总体阶段
297
- shareData.article = this.article;
298
- let writingOptions = this.article?.get("writingOptions");
299
- if (writingOptions) {
300
- shareData.writingOptions = writingOptions;
301
- }
302
- // 任务执行过程共享数据
303
- let stepsList = stepList;
304
- // 弹出任务提示窗口
305
- let dialogRef = this.dialog.open(FmAgentTaskComponent, {
306
- data: { shareData: shareData, stepsList: stepsList },
307
- disableClose: true, // 禁止用户关闭,必须等待执行过程。
308
- });
309
- dialogRef.afterClosed().subscribe(result => {
310
- // console.log('The dialog was closed');
311
- afterTask && afterTask();
312
- });
313
- }
314
- uploadImage() {
315
- let that = this;
316
- let input = document.createElement('input');
317
- input.type = 'file';
318
- input.accept = 'image/*'; // 只接受图片文件
319
- input.multiple = false; // 禁止多选
320
- // 添加change事件监听器
321
- input.addEventListener('change', async () => {
322
- let file = input?.files?.[0];
323
- if (file) {
324
- let resFile = await that.nupload.upload(file);
325
- if (resFile?.url) {
326
- this.article?.set("image", resFile?.url);
327
- this.article?.save();
328
- }
329
- }
330
- });
331
- // 触发选择图片
332
- input.click();
333
- }
334
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmArticleEditorComponent, deps: [{ token: i1.ModalController }, { token: i1.AlertController }, { token: i2.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i3.ClipboardService }, { token: i4.DraftService }, { token: i5.Router }, { token: i6.NovaUploadService }, { token: i7.PersonService }], target: i0.ɵɵFactoryTarget.Component }); }
335
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FmArticleEditorComponent, isStandalone: true, selector: "fm-article-editor", inputs: { article: "article", book: "book", readOnly: "readOnly" }, outputs: { onClose: "onClose" }, providers: [
336
- DraftService, NovaUploadService, Diagnostic,
337
- ], viewQueries: [{ propertyName: "editorComp", first: true, predicate: ["editorComp"], descendants: true }], ngImport: i0, template: "<div class=\"page\">\r\n\r\n <!-- \u5BFC\u822A\u680F -->\r\n <div class=\"nav\" *ngIf=\"!readOnly\">\r\n <fm-article-editor-topbar #topbar [article]=\"article\" [isSaving]=\"isSaving\" [contentChanged]=\"contentChanged\" (onNavEvent)=\"handleNavEvent($event)\"></fm-article-editor-topbar>\r\n </div>\r\n\r\n <div class=\"page-container\">\r\n <!-- (scroll)=\"onScroll($event)\" -->\r\n\r\n <!-- \u7F16\u8F91\u6587\u672C -->\r\n <!-- -->\r\n <div class=\"editor-text\" [ngClass]=\"{'center':isDivHidden}\">\r\n <div class=\"editor-main\">\r\n\r\n <div role=\"toolbar\" class=\"ql-toolbar ql-snow\" *ngIf=\"false\">\r\n <span class=\"ql-formats\"><span class=\"ql-header ql-picker\"><span class=\"ql-picker-label\" tabindex=\"0\" role=\"button\" aria-expanded=\"false\" aria-controls=\"ql-picker-options-0\"><svg viewBox=\"0 0 18 18\"><polygon class=\"ql-stroke\" points=\"7 11 9 13 11 11 7 11\"></polygon><polygon class=\"ql-stroke\" points=\"7 7 9 5 11 7 7 7\"></polygon></svg></span><span class=\"ql-picker-options\" aria-hidden=\"true\" tabindex=\"-1\" id=\"ql-picker-options-0\"><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"1\"></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"2\"></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"3\"></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"4\"></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\"></span></span></span><select class=\"ql-header\" style=\"display: none;\"><option value=\"1\"></option><option value=\"2\"></option><option value=\"3\"></option><option value=\"4\"></option><option selected=\"selected\"></option></select></span>\r\n <span class=\"ql-formats\"><button type=\"button\" class=\"ql-bold\" aria-pressed=\"false\" aria-label=\"bold\"><svg viewBox=\"0 0 18 18\"><path class=\"ql-stroke\" d=\"M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z\"></path><path class=\"ql-stroke\" d=\"M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z\"></path></svg></button><button type=\"button\" class=\"ql-italic\" aria-pressed=\"false\" aria-label=\"italic\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"7\" x2=\"13\" y1=\"4\" y2=\"4\"></line><line class=\"ql-stroke\" x1=\"5\" x2=\"11\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"8\" x2=\"10\" y1=\"14\" y2=\"4\"></line></svg></button><button type=\"button\" class=\"ql-underline\" aria-pressed=\"false\" aria-label=\"underline\"><svg viewBox=\"0 0 18 18\"><path class=\"ql-stroke\" d=\"M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3\"></path><rect class=\"ql-fill\" height=\"1\" rx=\"0.5\" ry=\"0.5\" width=\"12\" x=\"3\" y=\"15\"></rect></svg></button></span>\r\n <span class=\"ql-formats\"><button type=\"button\" class=\"ql-list\" aria-pressed=\"false\" value=\"bullet\" aria-label=\"list: bullet\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"6\" x2=\"15\" y1=\"4\" y2=\"4\"></line><line class=\"ql-stroke\" x1=\"6\" x2=\"15\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"6\" x2=\"15\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"3\" y1=\"4\" y2=\"4\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"3\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"3\" y1=\"14\" y2=\"14\"></line></svg></button></span>\r\n <span class=\"ql-formats\"><span class=\"ql-align ql-picker ql-icon-picker\"><span class=\"ql-picker-label\" tabindex=\"0\" role=\"button\" aria-expanded=\"false\" aria-controls=\"ql-picker-options-1\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"3\" x2=\"15\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"13\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"9\" y1=\"4\" y2=\"4\"></line></svg></span><span class=\"ql-picker-options\" aria-hidden=\"true\" tabindex=\"-1\" id=\"ql-picker-options-1\"><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"3\" x2=\"15\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"13\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"9\" y1=\"4\" y2=\"4\"></line></svg></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"center\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"14\" x2=\"4\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"12\" x2=\"6\" y1=\"4\" y2=\"4\"></line></svg></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"right\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"15\" x2=\"5\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"15\" x2=\"9\" y1=\"4\" y2=\"4\"></line></svg></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"justify\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"4\" y2=\"4\"></line></svg></span></span></span><select class=\"ql-align\" style=\"display: none;\"><option selected=\"selected\"></option><option value=\"center\"></option><option value=\"right\"></option><option value=\"justify\"></option></select></span>\r\n <span class=\"ql-formats\"><button type=\"button\" class=\"ql-code-block\" aria-pressed=\"false\" aria-label=\"code-block\"><svg viewBox=\"0 0 18 18\"><polyline class=\"ql-even ql-stroke\" points=\"5 7 3 9 5 11\"></polyline><polyline class=\"ql-even ql-stroke\" points=\"13 7 15 9 13 11\"></polyline><line class=\"ql-stroke\" x1=\"10\" x2=\"8\" y1=\"5\" y2=\"13\"></line></svg></button></span>\r\n <span class=\"ql-formats\"><button class=\"ql-ai-optimize\">AI</button></span>\r\n </div>\r\n\r\n <div class=\"text-header\">\r\n <input [ngModel]=\"article?.get('title')\" (ngModelChange)=\"article?.set('title',$event)\" type=\"text\" />\r\n <!-- <quill-editor [(ngModel)]=\"title\" [modules]=\"{toolbar: true}\"></quill-editor> -->\r\n </div>\r\n <div class=\"article-info\">\r\n <ng-container *ngIf=\"article?.get('keywords')?.length\">\r\n <div>\u5173\u952E\u5B57\uFF1A<mat-chip *ngFor=\"let key of article?.get('keywords')\">{{key}}</mat-chip></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"article?.get('writingOptions')\">\r\n <div (click)=\"handleNavEvent('options')\">\u8BBE \u5B9A\uFF1A\r\n <mat-chip *ngIf=\"article?.get('writingOptions')?.writingStyle\">{{article?.get('writingOptions')?.writingStyle}}</mat-chip>\r\n <mat-chip *ngIf=\"article?.get('writingOptions')?.wordCount\">\u7EA6{{article?.get('writingOptions')?.wordCount}}\u5B57</mat-chip></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"article?.get('outlineJson')?.length\">\r\n <div (click)=\"handleNavEvent('outline')\">\u63D0 \u7EB2\uFF1A<mat-chip>{{article?.get('outlineJson') | outlineCount}}\u5B57</mat-chip></div>\r\n </ng-container>\r\n <div *ngIf=\"article?.id\" (click)=\"handleNavEvent('draft')\">\u7A3F\u4EF6\u7BB1\uFF1A<mat-chip>{{draftServ.DraftCountMap?.[article?.id||'']?.total || 0}}\u7BC7</mat-chip></div>\r\n </div>\r\n\r\n <div class=\"article-content\">\r\n <!-- \u6587\u672C\u7F16\u8F91\u533A\u57DF:\u4EC5content\u6B63\u6587 -->\r\n <ng-container *ngIf=\"!article?.get('contentArray')?.length\">\r\n <fm-text-quill #textQuill [readOnly]=\"readOnly\" [content]=\"article?.get('content')\" (onContentChange)=\"setContent($event)\"\r\n (onAIClick)=\"goOptimizeText($event)\" (onSelectChange)=\"selectChange($event)\"\r\n ></fm-text-quill>\r\n </ng-container>\r\n <!-- \u6587\u672C\u7F16\u8F91\u533A\u57DF:\u542B\u5927\u7EB2\u6B63\u6587 -->\r\n <ng-container *ngIf=\"article?.get('contentArray')?.length\">\r\n <ng-container *ngFor=\"let item of article?.get('contentArray');let index=index;\">\r\n <!-- \u7AE0\u8282\u4FE1\u606F -->\r\n <!-- <h2 style=\"margin:0px;padding-left:12px;\" *ngIf=\"article?.get('outlineJson')?.sections?.[index]?.title\">{{article?.get('outlineJson')?.sections?.[index]?.title}}</h2> -->\r\n <fm-text-quill #textQuill [readOnly]=\"readOnly\" [content]=\"item?.content\" (onContentChange)=\"setContent($event,item)\"\r\n (onAIClick)=\"goOptimizeText($event)\" (onSelectChange)=\"selectChange($event)\"\r\n ></fm-text-quill>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <!-- AI\u5DE5\u5177 -->\r\n <div *ngIf=\"!readOnly && !isDivHidden\" class=\"page-right\">\r\n <div class=\"nav-ai\">\r\n <!-- AI\u529F\u80FD\u6309\u94AE -->\r\n <!-- <div class=\"ai-btn\">\r\n <button (click)=\"showContent('AI-\u5199\u4F5C')\">AI\u5199\u4F5C</button>\r\n <button (click)=\"showContent('AI-\u6DA6\u8272')\">AI\u6DA6\u8272</button>\r\n <button (click)=\"showContent('\u6821\u9605')\">\u6821\u9605</button>\r\n <button (click)=\"showContent('\u56FE\u7247')\">\u56FE\u7247</button>\r\n <button (click)=\"showContent('\u8BC4\u8BBA')\">\u8BC4\u8BBA</button>\r\n </div> -->\r\n\r\n <ul class=\"ai-btn\">\r\n <li class=\"active0\" (click)=\"aiTab('AI\u5199\u4F5C')\" [ngClass]=\"{ 'active1': aitab == 'AI\u5199\u4F5C' }\">\r\n <div>AI\u5199\u4F5C</div>\r\n </li>\r\n <li class=\"active0\" (click)=\"aiTab('AI\u6DA6\u8272')\" [ngClass]=\"{ 'active1': aitab == 'AI\u6DA6\u8272' }\">\r\n <div>AI\u6DA6\u8272</div>\r\n </li>\r\n <!-- <li class=\"active0\" (click)=\"aiTab('\u6821\u9605')\" [ngClass]=\"{ 'active1': aitab == '\u6821\u9605' }\">\r\n <div>\u6821\u9605</div>\r\n </li> -->\r\n <li class=\"active0\" (click)=\"aiTab('AI\u914D\u56FE')\" [ngClass]=\"{ 'active1': aitab == 'AI\u914D\u56FE' }\">\r\n <div>AI\u914D\u56FE</div>\r\n </li>\r\n\r\n </ul>\r\n <!-- AI\u529F\u80FD\u9000\u51FA\u6309\u94AE -->\r\n <div>\r\n <ion-icon class=\"icon\" name=\"close-outline\" (click)=\"this.isDivHidden = !this.isDivHidden;\"></ion-icon>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- \u5DE5\u5177\u9762\u677F -->\r\n <div class=\"ai-panel\">\r\n\r\n <div *ngIf=\"aitab=='AI\u5199\u4F5C'\" class=\"ai-write\">\r\n <!-- \u641C\u7D22 -->\r\n <div class=\"search-bar\">\r\n <ion-searchbar color=\"light\" placeholder=\"\u641C\u7D22\u6A21\u677F\"></ion-searchbar>\r\n </div>\r\n\r\n <div class=\"ai-tool-grid\">\r\n <ng-container *ngFor=\"let card of cards\">\r\n <ion-card class=\"card\" style=\"margin-left: 5%;max-width:215px;\" (click)=\"card?.handle()\">\r\n <ion-card-header>\r\n <ion-card-title class=\"card-image\">\r\n <img src=\"{{card.imageurl}}\" width=\"25\" height=\"25\" alt=\"write\">\r\n </ion-card-title>\r\n <ion-card-subtitle>{{card.title}}</ion-card-subtitle>\r\n </ion-card-header>\r\n\r\n <ion-card-content>\r\n {{card.content}}\r\n </ion-card-content>\r\n </ion-card>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"aitab=='AI\u6DA6\u8272'\" class=\"ai-polish\" [formGroup]=\"tempFormGroup\">\r\n <div class=\"ai-polish-input\">\r\n <mat-form-field style=\"width:95%;\">\r\n <mat-label>\u8F93\u5165\u6216\u9009\u4E2D\u5DE6\u4FA7\u6587\u672C\u5F00\u59CB\u6DA6\u8272</mat-label>\r\n <textarea matInput [(ngModel)]=\"selectText\" [ngModelOptions]=\"{standalone: true}\" rows=\"10\"></textarea>\r\n </mat-form-field>\r\n\r\n <!-- <textarea [(ngModel)]=\"selectText\" rows=\"10\" formControlName=\"comment\" nz-input placeholder=\"\u8F93\u5165\u6216\u9009\u4E2D\u5DE6\u4FA7\u6587\u672C\u5F00\u59CB\u6DA6\u8272\"></textarea> -->\r\n </div>\r\n <div class=\"ai-polish-button\">\r\n <button *ngIf=\"!isOptimizing\" mat-raised-button color=\"primary\" (click)=\"optimizeContent()\">\u5F00\u59CB\u6DA6\u8272</button>\r\n <button *ngIf=\"isOptimizing\" mat-raised-button color=\"warn\" (click)=\"cancelOptimize()\">\u505C\u6B62\u6DA6\u8272</button>\r\n <!-- <ion-button id=\"start\" [disabled]=\"false\" (click)=\"enableButton()\">\u5F00\u59CB\u6DA6\u8272</ion-button> -->\r\n </div>\r\n <div class=\"ai-polish-input\">\r\n <mat-form-field style=\"width:95%;\">\r\n <mat-label>\u751F\u6210\u5185\u5BB9</mat-label>\r\n <textarea matInput [(ngModel)]=\"optimizeText\" [ngModelOptions]=\"{standalone: true}\" rows=\"10\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"ai-polish-button\">\r\n <button *ngIf=\"selectRange?.length\" mat-raised-button (click)=\"applyOptimize()\"><mat-icon fontIcon=\"flip\"></mat-icon>\u66FF\u6362</button>\r\n <button mat-raised-button (click)=\"copyOptimize()\"><mat-icon fontIcon=\"content_copy\"></mat-icon>\u590D\u5236</button>\r\n <!-- <ion-button id=\"start\" [disabled]=\"false\" (click)=\"enableButton()\">\u5F00\u59CB\u6DA6\u8272</ion-button> -->\r\n </div>\r\n <!-- <div class=\"copy\">\r\n <ion-icon name=\"copy-outline\" style=\"color:#4e80f4\" (click)=\"Copy(polishContent)\"></ion-icon>\r\n </div> -->\r\n </div>\r\n <div *ngIf=\"aitab=='\u6821\u9605'\" class=\"ai-proofread\">\r\n\r\n <div class=\"showItems-container\">\r\n <div class=\"showItems\">\r\n\r\n <div class=\"showItem\" (click)=\"clickTab('\u5185\u5BB9\u5EFA\u8BAE')\" [ngClass]=\"{ 'active1': clicktab == '\u5185\u5BB9\u5EFA\u8BAE' }\">\r\n <div style=\"line-height: 12px;\">\r\n <svg width=\"20\" height=\"22\" viewBox=\"0 0 20 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M11 10H5M7 14H5M13 6H5M17 9.5V5.8C17 4.11984 17 3.27976 16.673 2.63803C16.3854 2.07354 15.9265 1.6146 15.362 1.32698C14.7202 1 13.8802 1 12.2 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H8.5M19 21L17.5 19.5M18.5 17C18.5 18.933 16.933 20.5 15 20.5C13.067 20.5 11.5 18.933 11.5 17C11.5 15.067 13.067 13.5 15 13.5C16.933 13.5 18.5 15.067 18.5 17Z\"\r\n stroke=\"#1570EF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg>\r\n </div>\r\n <span>\u5185\u5BB9\u5EFA\u8BAE</span>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"showItem\" (click)=\"clickTab('\u4E8B\u5B9E\u9A8C\u8BC1')\" [ngClass]=\"{'active1': clicktab=='\u4E8B\u5B9E\u9A8C\u8BC1'}\">\r\n <div style=\"line-height: 12px;\">\r\n <svg width=\"18\" height=\"22\" viewBox=\"0 0 18 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M11 1.26953V5.40007C11 5.96012 11 6.24015 11.109 6.45406C11.2049 6.64222 11.3578 6.7952 11.546 6.89108C11.7599 7.00007 12.0399 7.00007 12.6 7.00007H16.7305M6 15L8 17L12.5 12.5M11 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H12.2C13.8802 21 14.7202 21 15.362 20.673C15.9265 20.3854 16.3854 19.9265 16.673 19.362C17 18.7202 17 17.8802 17 16.2V7L11 1Z\"\r\n stroke=\"#D92D20\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg>\r\n </div>\r\n <span>\u4E8B\u5B9E\u9A8C\u8BC1</span>\r\n </div>\r\n\r\n <div class=\"showItem\" (click)=\"clickTab('\u5168\u6587\u603B\u7ED3')\" [ngClass]=\"{'active1': clicktab=='\u5168\u6587\u603B\u7ED3'}\">\r\n <div style=\"line-height: 12px;\"> <svg width=\"20\" height=\"22\" viewBox=\"0 0 16 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M14.1668 5.83329V5.66663C14.1668 4.26649 14.1668 3.56643 13.8943 3.03165C13.6547 2.56124 13.2722 2.17879 12.8018 1.93911C12.267 1.66663 11.567 1.66663 10.1668 1.66663H4.8335C3.43336 1.66663 2.7333 1.66663 2.19852 1.93911C1.72811 2.17879 1.34566 2.56124 1.10598 3.03165C0.833496 3.56643 0.833496 4.26649 0.833496 5.66663V14.3333C0.833496 15.7334 0.833496 16.4335 1.10598 16.9683C1.34566 17.4387 1.72811 17.8211 2.19852 18.0608C2.7333 18.3333 3.43336 18.3333 4.8335 18.3333H7.91683M7.91683 9.16663H4.16683M7.0835 12.5H4.16683M10.8335 5.83329H4.16683M12.5002 15V10.4166C12.5002 9.72627 13.0598 9.16663 13.7502 9.16663C14.4405 9.16663 15.0002 9.72627 15.0002 10.4166V15C15.0002 16.3807 13.8809 17.5 12.5002 17.5C11.1195 17.5 10.0002 16.3807 10.0002 15V11.6666\"\r\n stroke=\"#F79009\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg>\r\n </div>\r\n <span>\u5168\u6587\u603B\u7ED3</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"showItem-content\">\r\n <div *ngIf=\"clicktab=='\u8BED\u6CD5\u9519\u8BEF'\" class=\"grammar-panel\">\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"clicktab=='\u5185\u5BB9\u5EFA\u8BAE'\" class=\"suggest-panel\">\r\n\r\n <div class=\"content-suggest\">\r\n <div style=\"line-height: 12px;\">\r\n <svg width=\"20\" height=\"22\" viewBox=\"0 0 20 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M11 10H5M7 14H5M13 6H5M17 9.5V5.8C17 4.11984 17 3.27976 16.673 2.63803C16.3854 2.07354 15.9265 1.6146 15.362 1.32698C14.7202 1 13.8802 1 12.2 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H8.5M19 21L17.5 19.5M18.5 17C18.5 18.933 16.933 20.5 15 20.5C13.067 20.5 11.5 18.933 11.5 17C11.5 15.067 13.067 13.5 15 13.5C16.933 13.5 18.5 15.067 18.5 17Z\"\r\n stroke=\"#1570EF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg>\r\n </div>\r\n <div class=\"content-suggest-title\">\u5185\u5BB9\u5EFA\u8BAE</div>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"content-title\"> \u8FD9\u7BC7\u6587\u7AE0\u4ECB\u7ECD\u7684\u662F\u4E03\u4E2A\u5173\u4E8E\u4E2D\u56FD\u4F01\u4E1A\u5BB6\u7684\u7BA1\u7406\u4E4B\u9053\u7684\u81EA\u4F20\u5C0F\u8BF4\u7AE0\u8282\u6807\u9898\uFF0C\u65E8\u5728\u5C55\u793A\u4F01\u4E1A\u5BB6\u4EEC\u7684\u4E2A\u4EBA\u7ECF\u5386\u3001\u7BA1\u7406\u7406\u5FF5\u548C\u4EBA\u751F\u54F2\u5B66\u3002\r\n </div>\r\n <div class=\"content-title\">\u6539\u8FDB\u5EFA\u8BAE\uFF1A</div>\r\n <ol>\r\n <li> \u6807\u9898\u4E00\u81F4\u6027\uFF1A\u6587\u7AE0\u4E2D\u7684\u7AE0\u8282\u6807\u9898\u5E94\u4FDD\u6301\u4E00\u81F4\u7684\u683C\u5F0F\uFF0C\u4F8B\u5982\u201C\u554A\u624B\u52A8\u9600\u58EB\u5927\u592B\u201D\u548C\u201C\u7231\u559D\u6C34\u7684\u4EBA\uFF0C\u4E00\u5B9A\u662F\u6709\u54C1\u5473\u7684\u201D\u4E0E\u5176\u4ED6\u7AE0\u8282\u7684\u683C\u5F0F\u4E0D\u4E00\u81F4\uFF0C\u5EFA\u8BAE\u7EDF\u4E00\u683C\u5F0F\u4EE5\u589E\u5F3A\u6587\u7AE0\u7684\u4E13\u4E1A\u6027\u3002</li>\r\n <li> \u8BED\u8A00\u98CE\u683C\uFF1A\u6587\u7AE0\u4E2D\u51FA\u73B0\u4E86\u4E00\u4E9B\u975E\u6B63\u5F0F\u6216\u53E3\u8BED\u5316\u7684\u8868\u8FBE\uFF0C\u5982\u201C\u5AE9\u7ED9\u591F\u7A7F\u8D8A\u65F6\u7A7A\u7684\u529B\u91CF\u201D\u548C\u201C\u5305\u97E9\u4E86\u5BF9\u751F\u547D\u610F\u4E49\u7684\u6DF1\u523B\u53CD\u601D\u201D\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u66F4\u6B63\u5F0F\u7684\u8BED\u8A00\u4EE5\u7B26\u5408\u4E13\u4E1A\u6587\u7AE0\u7684\u6807\u51C6\u3002</li>\r\n <li> \u4FE1\u606F\u91CD\u590D\uFF1A\u5728\u4ECB\u7ECD\u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u7684\u90E8\u5206\uFF0C\u6709\u5173\u65F6\u95F4\u65C5\u884C\u7684\u63CF\u8FF0\u88AB\u591A\u6B21\u63D0\u53CA\uFF0C\u5EFA\u8BAE\u5408\u5E76\u76F8\u4F3C\u5185\u5BB9\u4EE5\u907F\u514D\u91CD\u590D\u3002\r\n </li>\r\n <li> \u6807\u9898\u4E00\u81F4\u6027\uFF1A\u6587\u7AE0\u4E2D\u7684\u7AE0\u8282\u6807\u9898\u5E94\u4FDD\u6301\u4E00\u81F4\u7684\u683C\u5F0F\uFF0C\u4F8B\u5982\u201C\u554A\u624B\u52A8\u9600\u58EB\u5927\u592B\u201D\u548C\u201C\u7231\u559D\u6C34\u7684\u4EBA\uFF0C\u4E00\u5B9A\u662F\u6709\u54C1\u5473\u7684\u201D\u4E0E\u5176\u4ED6\u7AE0\u8282\u7684\u683C\u5F0F\u4E0D\u4E00\u81F4\uFF0C\u5EFA\u8BAE\u7EDF\u4E00\u683C\u5F0F\u4EE5\u589E\u5F3A\u6587\u7AE0\u7684\u4E13\u4E1A\u6027\u3002</li>\r\n <li> \u8BED\u8A00\u98CE\u683C\uFF1A\u6587\u7AE0\u4E2D\u51FA\u73B0\u4E86\u4E00\u4E9B\u975E\u6B63\u5F0F\u6216\u53E3\u8BED\u5316\u7684\u8868\u8FBE\uFF0C\u5982\u201C\u5AE9\u7ED9\u591F\u7A7F\u8D8A\u65F6\u7A7A\u7684\u529B\u91CF\u201D\u548C\u201C\u5305\u97E9\u4E86\u5BF9\u751F\u547D\u610F\u4E49\u7684\u6DF1\u523B\u53CD\u601D\u201D\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u66F4\u6B63\u5F0F\u7684\u8BED\u8A00\u4EE5\u7B26\u5408\u4E13\u4E1A\u6587\u7AE0\u7684\u6807\u51C6\u3002</li>\r\n <li> \u4FE1\u606F\u91CD\u590D\uFF1A\u5728\u4ECB\u7ECD\u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u7684\u90E8\u5206\uFF0C\u6709\u5173\u65F6\u95F4\u65C5\u884C\u7684\u63CF\u8FF0\u88AB\u591A\u6B21\u63D0\u53CA\uFF0C\u5EFA\u8BAE\u5408\u5E76\u76F8\u4F3C\u5185\u5BB9\u4EE5\u907F\u514D\u91CD\u590D\u3002\r\n </li>\r\n <li> \u6807\u9898\u4E00\u81F4\u6027\uFF1A\u6587\u7AE0\u4E2D\u7684\u7AE0\u8282\u6807\u9898\u5E94\u4FDD\u6301\u4E00\u81F4\u7684\u683C\u5F0F\uFF0C\u4F8B\u5982\u201C\u554A\u624B\u52A8\u9600\u58EB\u5927\u592B\u201D\u548C\u201C\u7231\u559D\u6C34\u7684\u4EBA\uFF0C\u4E00\u5B9A\u662F\u6709\u54C1\u5473\u7684\u201D\u4E0E\u5176\u4ED6\u7AE0\u8282\u7684\u683C\u5F0F\u4E0D\u4E00\u81F4\uFF0C\u5EFA\u8BAE\u7EDF\u4E00\u683C\u5F0F\u4EE5\u589E\u5F3A\u6587\u7AE0\u7684\u4E13\u4E1A\u6027\u3002</li>\r\n <li> \u8BED\u8A00\u98CE\u683C\uFF1A\u6587\u7AE0\u4E2D\u51FA\u73B0\u4E86\u4E00\u4E9B\u975E\u6B63\u5F0F\u6216\u53E3\u8BED\u5316\u7684\u8868\u8FBE\uFF0C\u5982\u201C\u5AE9\u7ED9\u591F\u7A7F\u8D8A\u65F6\u7A7A\u7684\u529B\u91CF\u201D\u548C\u201C\u5305\u97E9\u4E86\u5BF9\u751F\u547D\u610F\u4E49\u7684\u6DF1\u523B\u53CD\u601D\u201D\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u66F4\u6B63\u5F0F\u7684\u8BED\u8A00\u4EE5\u7B26\u5408\u4E13\u4E1A\u6587\u7AE0\u7684\u6807\u51C6\u3002</li>\r\n <li> \u4FE1\u606F\u91CD\u590D\uFF1A\u5728\u4ECB\u7ECD\u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u7684\u90E8\u5206\uFF0C\u6709\u5173\u65F6\u95F4\u65C5\u884C\u7684\u63CF\u8FF0\u88AB\u591A\u6B21\u63D0\u53CA\uFF0C\u5EFA\u8BAE\u5408\u5E76\u76F8\u4F3C\u5185\u5BB9\u4EE5\u907F\u514D\u91CD\u590D\u3002\r\n </li>\r\n <li> \u6807\u9898\u4E00\u81F4\u6027\uFF1A\u6587\u7AE0\u4E2D\u7684\u7AE0\u8282\u6807\u9898\u5E94\u4FDD\u6301\u4E00\u81F4\u7684\u683C\u5F0F\uFF0C\u4F8B\u5982\u201C\u554A\u624B\u52A8\u9600\u58EB\u5927\u592B\u201D\u548C\u201C\u7231\u559D\u6C34\u7684\u4EBA\uFF0C\u4E00\u5B9A\u662F\u6709\u54C1\u5473\u7684\u201D\u4E0E\u5176\u4ED6\u7AE0\u8282\u7684\u683C\u5F0F\u4E0D\u4E00\u81F4\uFF0C\u5EFA\u8BAE\u7EDF\u4E00\u683C\u5F0F\u4EE5\u589E\u5F3A\u6587\u7AE0\u7684\u4E13\u4E1A\u6027\u3002</li>\r\n <li> \u8BED\u8A00\u98CE\u683C\uFF1A\u6587\u7AE0\u4E2D\u51FA\u73B0\u4E86\u4E00\u4E9B\u975E\u6B63\u5F0F\u6216\u53E3\u8BED\u5316\u7684\u8868\u8FBE\uFF0C\u5982\u201C\u5AE9\u7ED9\u591F\u7A7F\u8D8A\u65F6\u7A7A\u7684\u529B\u91CF\u201D\u548C\u201C\u5305\u97E9\u4E86\u5BF9\u751F\u547D\u610F\u4E49\u7684\u6DF1\u523B\u53CD\u601D\u201D\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u66F4\u6B63\u5F0F\u7684\u8BED\u8A00\u4EE5\u7B26\u5408\u4E13\u4E1A\u6587\u7AE0\u7684\u6807\u51C6\u3002</li>\r\n <li> \u4FE1\u606F\u91CD\u590D\uFF1A\u5728\u4ECB\u7ECD\u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u7684\u90E8\u5206\uFF0C\u6709\u5173\u65F6\u95F4\u65C5\u884C\u7684\u63CF\u8FF0\u88AB\u591A\u6B21\u63D0\u53CA\uFF0C\u5EFA\u8BAE\u5408\u5E76\u76F8\u4F3C\u5185\u5BB9\u4EE5\u907F\u514D\u91CD\u590D\u3002\r\n </li>\r\n <li> \u6807\u9898\u4E00\u81F4\u6027\uFF1A\u6587\u7AE0\u4E2D\u7684\u7AE0\u8282\u6807\u9898\u5E94\u4FDD\u6301\u4E00\u81F4\u7684\u683C\u5F0F\uFF0C\u4F8B\u5982\u201C\u554A\u624B\u52A8\u9600\u58EB\u5927\u592B\u201D\u548C\u201C\u7231\u559D\u6C34\u7684\u4EBA\uFF0C\u4E00\u5B9A\u662F\u6709\u54C1\u5473\u7684\u201D\u4E0E\u5176\u4ED6\u7AE0\u8282\u7684\u683C\u5F0F\u4E0D\u4E00\u81F4\uFF0C\u5EFA\u8BAE\u7EDF\u4E00\u683C\u5F0F\u4EE5\u589E\u5F3A\u6587\u7AE0\u7684\u4E13\u4E1A\u6027\u3002</li>\r\n <li> \u8BED\u8A00\u98CE\u683C\uFF1A\u6587\u7AE0\u4E2D\u51FA\u73B0\u4E86\u4E00\u4E9B\u975E\u6B63\u5F0F\u6216\u53E3\u8BED\u5316\u7684\u8868\u8FBE\uFF0C\u5982\u201C\u5AE9\u7ED9\u591F\u7A7F\u8D8A\u65F6\u7A7A\u7684\u529B\u91CF\u201D\u548C\u201C\u5305\u97E9\u4E86\u5BF9\u751F\u547D\u610F\u4E49\u7684\u6DF1\u523B\u53CD\u601D\u201D\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u66F4\u6B63\u5F0F\u7684\u8BED\u8A00\u4EE5\u7B26\u5408\u4E13\u4E1A\u6587\u7AE0\u7684\u6807\u51C6\u3002</li>\r\n <li> \u4FE1\u606F\u91CD\u590D\uFF1A\u5728\u4ECB\u7ECD\u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u7684\u90E8\u5206\uFF0C\u6709\u5173\u65F6\u95F4\u65C5\u884C\u7684\u63CF\u8FF0\u88AB\u591A\u6B21\u63D0\u53CA\uFF0C\u5EFA\u8BAE\u5408\u5E76\u76F8\u4F3C\u5185\u5BB9\u4EE5\u907F\u514D\u91CD\u590D\u3002\r\n </li>\r\n </ol>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"clicktab=='\u4E8B\u5B9E\u9A8C\u8BC1'\" class=\"verify-panel\">\r\n <div class=\"dashboard\">\r\n <div class=\"item\" (click)=\"dashboardTab('\u5168\u90E8')\" [ngClass]=\"{'itemChoose': dashboardtab=='\u5168\u90E8'}\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"border: 1px solid black; box-sizing: border-box;\"></div>\r\n </div>\r\n <div class=\"text\">\u5168\u90E8</div>\r\n <div class=\"number\">28</div>\r\n </div>\r\n\r\n <div class=\"item\" (click)=\"dashboardTab('\u901A\u8FC7')\" [ngClass]=\"{'itemChoose': dashboardtab=='\u901A\u8FC7'}\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n <div class=\"number\">9</div>\r\n </div>\r\n\r\n <div class=\"item\" (click)=\"dashboardTab('\u4E0D\u901A\u8FC7')\" [ngClass]=\"{'itemChoose': dashboardtab=='\u4E0D\u901A\u8FC7'}\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(217, 45, 32);\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M7 17L17 7\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n <path d=\"M7 7L17 17\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </svg></div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(217, 45, 32);\">\u4E0D\u901A\u8FC7</div>\r\n <div class=\"number\">1</div>\r\n </div>\r\n <div class=\"item\" (click)=\"dashboardTab('\u65E0\u6CD5\u5224\u65AD')\" [ngClass]=\"{'itemChoose': dashboardtab=='\u65E0\u6CD5\u5224\u65AD'}\">\r\n <div class=\"icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"3 3 18 18\"\r\n fill=\"none\">\r\n <path\r\n d=\"M7.8824 8.679C7.88035 8.72744 7.88822 8.77579 7.90555 8.82107C7.92287 8.86636 7.94927 8.90762 7.98313 8.94232C8.01699 8.97703 8.05759 9.00444 8.10244 9.02287C8.14728 9.0413 8.19542 9.05036 8.2439 9.0495H9.4814C9.6884 9.0495 9.8534 8.88 9.8804 8.6745C10.0154 7.6905 10.6904 6.9735 11.8934 6.9735C12.9224 6.9735 13.8644 7.488 13.8644 8.7255C13.8644 9.678 13.3034 10.116 12.4169 10.782C11.4074 11.5155 10.6079 12.372 10.6649 13.7625L10.6694 14.088C10.671 14.1864 10.7112 14.2803 10.7813 14.3493C10.8515 14.4183 10.946 14.457 11.0444 14.457H12.2609C12.3604 14.457 12.4557 14.4175 12.5261 14.3472C12.5964 14.2768 12.6359 14.1815 12.6359 14.082V13.9245C12.6359 12.8475 13.0454 12.534 14.1509 11.6955C15.0644 11.001 16.0169 10.23 16.0169 8.6115C16.0169 6.345 14.1029 5.25 12.0074 5.25C10.1069 5.25 8.0249 6.135 7.8824 8.679ZM10.2179 17.3235C10.2179 18.123 10.8554 18.714 11.7329 18.714C12.6464 18.714 13.2749 18.123 13.2749 17.3235C13.2749 16.4955 12.6449 15.9135 11.7314 15.9135C10.8554 15.9135 10.2179 16.4955 10.2179 17.3235Z\"\r\n fill=\"#475467\"></path>\r\n </svg></div>\r\n <div class=\"text\">\u65E0\u6CD5\u5224\u65AD</div>\r\n <div class=\"number\">18</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"verify-card-list\">\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"clicktab=='\u5168\u6587\u603B\u7ED3'\" class=\"summary-panel\">\r\n\r\n <div class=\"text-summary\">\r\n <div style=\"line-height: 12px;\">\r\n <svg width=\"20\" height=\"22\" viewBox=\"0 0 16 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M14.1668 5.83329V5.66663C14.1668 4.26649 14.1668 3.56643 13.8943 3.03165C13.6547 2.56124 13.2722 2.17879 12.8018 1.93911C12.267 1.66663 11.567 1.66663 10.1668 1.66663H4.8335C3.43336 1.66663 2.7333 1.66663 2.19852 1.93911C1.72811 2.17879 1.34566 2.56124 1.10598 3.03165C0.833496 3.56643 0.833496 4.26649 0.833496 5.66663V14.3333C0.833496 15.7334 0.833496 16.4335 1.10598 16.9683C1.34566 17.4387 1.72811 17.8211 2.19852 18.0608C2.7333 18.3333 3.43336 18.3333 4.8335 18.3333H7.91683M7.91683 9.16663H4.16683M7.0835 12.5H4.16683M10.8335 5.83329H4.16683M12.5002 15V10.4166C12.5002 9.72627 13.0598 9.16663 13.7502 9.16663C14.4405 9.16663 15.0002 9.72627 15.0002 10.4166V15C15.0002 16.3807 13.8809 17.5 12.5002 17.5C11.1195 17.5 10.0002 16.3807 10.0002 15V11.6666\"\r\n stroke=\"#F79009\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg>\r\n </div>\r\n <div class=\"text-summary-title\">\u5168\u6587\u603B\u7ED3</div>\r\n </div>\r\n\r\n <div class=\"text\">\r\n <div class=\"text-title\">\u6982\u62EC\uFF1A</div>\r\n\r\n <p>\r\n \u8FD9\u672C\u81EA\u4F20\u5C0F\u8BF4\u7531\u4F01\u4E1A\u5BB6\u66F9\u56FD\u718A\u64B0\u5199\uFF0C\u8BB2\u8FF0\u4E86\u4ED6\u5982\u4F55\u4ECE\u8D2B\u7A77\u5B69\u5B50\u6210\u957F\u4E3A\u6210\u529F\u4F01\u4E1A\u5BB6\u7684\u7ECF\u5386\u548C\u7BA1\u7406\u667A\u6167\uFF0C\u540C\u65F6\u901A\u8FC7\u4E0D\u540C\u7AE0\u8282\u63A2\u8BA8\u4E86\u4F01\u4E1A\u5BB6\u7684\u6210\u957F\u3001\u56E2\u961F\u5408\u4F5C\u3001\u521B\u65B0\u9A71\u52A8\u3001\u9886\u5BFC\u529B\u57F9\u517B\u3001\u9762\u5BF9\u5371\u673A\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u7B49\u4E3B\u9898\u3002\r\n </p>\r\n <div class=\"text-title\">\u8981\u70B9\uFF1A</div>\r\n <ul>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u7AE0\u8282\u300A\u4ECE\u5C0F\u68A6\u60F3\u5230\u5927\u4E8B\u4E1A\u300B\u56DE\u987E\u4E86\u4F5C\u8005\u4ECE\u5C11\u5E74\u65F6\u4EE3\u6000\u63E3\u521B\u4E1A\u68A6\u60F3\uFF0C\u514B\u670D\u56F0\u96BE\u548C\u6311\u6218\u7684\u8FC7\u7A0B\u3002</li>\r\n <li> \u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u662F\u4E00\u90E8\u7ED3\u5408\u60AC\u7591\u3001\u5947\u5E7B\u548C\u54F2\u601D\u7684\u5C0F\u8BF4\uFF0C\u901A\u8FC7\u6770\u514B\u7684\u89C6\u89D2\u63A2\u7D22\u4EBA\u6027\u3001\u9009\u62E9\u548C\u6210\u957F\u3002</li>\r\n <li> \u4E66\u4E2D\u8FD8\u6D89\u53CA\u4E86\u5982\u4F55\u57F9\u517B\u4F01\u4E1A\u5BB6\u7684\u9053\u5FB7\u64CD\u5B88\u548C\u793E\u4F1A\u8D23\u4EFB\u611F\u3001\u56E2\u961F\u5408\u4F5C\u7684\u91CD\u8981\u6027\u3001\u79D1\u6280\u521B\u65B0\u7684\u63A8\u52A8\u3001\u9886\u5BFC\u529B\u7684\u57F9\u517B\u4EE5\u53CA\u5982\u4F55\u9762\u5BF9\u548C\u5316\u89E3\u5371\u673A\u3002</li>\r\n <li> \u6700\u540E\u4E00\u7AE0\u300A\u7EFF\u8272\u8F6C\u578B\u7684\u5148\u950B\u300B\u63A2\u8BA8\u4E86\u4F5C\u8005\u4F5C\u4E3A\u4F01\u4E1A\u5BB6\u5728\u793E\u4F1A\u8D23\u4EFB\u65B9\u9762\u7684\u52AA\u529B\uFF0C\u5305\u62EC\u63A8\u52A8\u4F01\u4E1A\u7EFF\u8272\u8F6C\u578B\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u7AE0\u8282\u300A\u4ECE\u5C0F\u68A6\u60F3\u5230\u5927\u4E8B\u4E1A\u300B\u56DE\u987E\u4E86\u4F5C\u8005\u4ECE\u5C11\u5E74\u65F6\u4EE3\u6000\u63E3\u521B\u4E1A\u68A6\u60F3\uFF0C\u514B\u670D\u56F0\u96BE\u548C\u6311\u6218\u7684\u8FC7\u7A0B\u3002</li>\r\n <li> \u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u662F\u4E00\u90E8\u7ED3\u5408\u60AC\u7591\u3001\u5947\u5E7B\u548C\u54F2\u601D\u7684\u5C0F\u8BF4\uFF0C\u901A\u8FC7\u6770\u514B\u7684\u89C6\u89D2\u63A2\u7D22\u4EBA\u6027\u3001\u9009\u62E9\u548C\u6210\u957F\u3002</li>\r\n <li> \u4E66\u4E2D\u8FD8\u6D89\u53CA\u4E86\u5982\u4F55\u57F9\u517B\u4F01\u4E1A\u5BB6\u7684\u9053\u5FB7\u64CD\u5B88\u548C\u793E\u4F1A\u8D23\u4EFB\u611F\u3001\u56E2\u961F\u5408\u4F5C\u7684\u91CD\u8981\u6027\u3001\u79D1\u6280\u521B\u65B0\u7684\u63A8\u52A8\u3001\u9886\u5BFC\u529B\u7684\u57F9\u517B\u4EE5\u53CA\u5982\u4F55\u9762\u5BF9\u548C\u5316\u89E3\u5371\u673A\u3002</li>\r\n <li> \u6700\u540E\u4E00\u7AE0\u300A\u7EFF\u8272\u8F6C\u578B\u7684\u5148\u950B\u300B\u63A2\u8BA8\u4E86\u4F5C\u8005\u4F5C\u4E3A\u4F01\u4E1A\u5BB6\u5728\u793E\u4F1A\u8D23\u4EFB\u65B9\u9762\u7684\u52AA\u529B\uFF0C\u5305\u62EC\u63A8\u52A8\u4F01\u4E1A\u7EFF\u8272\u8F6C\u578B\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u7AE0\u8282\u300A\u4ECE\u5C0F\u68A6\u60F3\u5230\u5927\u4E8B\u4E1A\u300B\u56DE\u987E\u4E86\u4F5C\u8005\u4ECE\u5C11\u5E74\u65F6\u4EE3\u6000\u63E3\u521B\u4E1A\u68A6\u60F3\uFF0C\u514B\u670D\u56F0\u96BE\u548C\u6311\u6218\u7684\u8FC7\u7A0B\u3002</li>\r\n <li> \u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u662F\u4E00\u90E8\u7ED3\u5408\u60AC\u7591\u3001\u5947\u5E7B\u548C\u54F2\u601D\u7684\u5C0F\u8BF4\uFF0C\u901A\u8FC7\u6770\u514B\u7684\u89C6\u89D2\u63A2\u7D22\u4EBA\u6027\u3001\u9009\u62E9\u548C\u6210\u957F\u3002</li>\r\n <li> \u4E66\u4E2D\u8FD8\u6D89\u53CA\u4E86\u5982\u4F55\u57F9\u517B\u4F01\u4E1A\u5BB6\u7684\u9053\u5FB7\u64CD\u5B88\u548C\u793E\u4F1A\u8D23\u4EFB\u611F\u3001\u56E2\u961F\u5408\u4F5C\u7684\u91CD\u8981\u6027\u3001\u79D1\u6280\u521B\u65B0\u7684\u63A8\u52A8\u3001\u9886\u5BFC\u529B\u7684\u57F9\u517B\u4EE5\u53CA\u5982\u4F55\u9762\u5BF9\u548C\u5316\u89E3\u5371\u673A\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u7AE0\u8282\u300A\u4ECE\u5C0F\u68A6\u60F3\u5230\u5927\u4E8B\u4E1A\u300B\u56DE\u987E\u4E86\u4F5C\u8005\u4ECE\u5C11\u5E74\u65F6\u4EE3\u6000\u63E3\u521B\u4E1A\u68A6\u60F3\uFF0C\u514B\u670D\u56F0\u96BE\u548C\u6311\u6218\u7684\u8FC7\u7A0B\u3002</li>\r\n <li> \u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u662F\u4E00\u90E8\u7ED3\u5408\u60AC\u7591\u3001\u5947\u5E7B\u548C\u54F2\u601D\u7684\u5C0F\u8BF4\uFF0C\u901A\u8FC7\u6770\u514B\u7684\u89C6\u89D2\u63A2\u7D22\u4EBA\u6027\u3001\u9009\u62E9\u548C\u6210\u957F\u3002</li>\r\n <li> \u4E66\u4E2D\u8FD8\u6D89\u53CA\u4E86\u5982\u4F55\u57F9\u517B\u4F01\u4E1A\u5BB6\u7684\u9053\u5FB7\u64CD\u5B88\u548C\u793E\u4F1A\u8D23\u4EFB\u611F\u3001\u56E2\u961F\u5408\u4F5C\u7684\u91CD\u8981\u6027\u3001\u79D1\u6280\u521B\u65B0\u7684\u63A8\u52A8\u3001\u9886\u5BFC\u529B\u7684\u57F9\u517B\u4EE5\u53CA\u5982\u4F55\u9762\u5BF9\u548C\u5316\u89E3\u5371\u673A\u3002</li>\r\n <li> \u6700\u540E\u4E00\u7AE0\u300A\u7EFF\u8272\u8F6C\u578B\u7684\u5148\u950B\u300B\u63A2\u8BA8\u4E86\u4F5C\u8005\u4F5C\u4E3A\u4F01\u4E1A\u5BB6\u5728\u793E\u4F1A\u8D23\u4EFB\u65B9\u9762\u7684\u52AA\u529B\uFF0C\u5305\u62EC\u63A8\u52A8\u4F01\u4E1A\u7EFF\u8272\u8F6C\u578B\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u7AE0\u8282\u300A\u4ECE\u5C0F\u68A6\u60F3\u5230\u5927\u4E8B\u4E1A\u300B\u56DE\u987E\u4E86\u4F5C\u8005\u4ECE\u5C11\u5E74\u65F6\u4EE3\u6000\u63E3\u521B\u4E1A\u68A6\u60F3\uFF0C\u514B\u670D\u56F0\u96BE\u548C\u6311\u6218\u7684\u8FC7\u7A0B\u3002</li>\r\n <li> \u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u662F\u4E00\u90E8\u7ED3\u5408\u60AC\u7591\u3001\u5947\u5E7B\u548C\u54F2\u601D\u7684\u5C0F\u8BF4\uFF0C\u901A\u8FC7\u6770\u514B\u7684\u89C6\u89D2\u63A2\u7D22\u4EBA\u6027\u3001\u9009\u62E9\u548C\u6210\u957F\u3002</li>\r\n <li> \u4E66\u4E2D\u8FD8\u6D89\u53CA\u4E86\u5982\u4F55\u57F9\u517B\u4F01\u4E1A\u5BB6\u7684\u9053\u5FB7\u64CD\u5B88\u548C\u793E\u4F1A\u8D23\u4EFB\u611F\u3001\u56E2\u961F\u5408\u4F5C\u7684\u91CD\u8981\u6027\u3001\u79D1\u6280\u521B\u65B0\u7684\u63A8\u52A8\u3001\u9886\u5BFC\u529B\u7684\u57F9\u517B\u4EE5\u53CA\u5982\u4F55\u9762\u5BF9\u548C\u5316\u89E3\u5371\u673A\u3002</li>\r\n <li> \u6700\u540E\u4E00\u7AE0\u300A\u7EFF\u8272\u8F6C\u578B\u7684\u5148\u950B\u300B\u63A2\u8BA8\u4E86\u4F5C\u8005\u4F5C\u4E3A\u4F01\u4E1A\u5BB6\u5728\u793E\u4F1A\u8D23\u4EFB\u65B9\u9762\u7684\u52AA\u529B\uFF0C\u5305\u62EC\u63A8\u52A8\u4F01\u4E1A\u7EFF\u8272\u8F6C\u578B\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u6700\u540E\u4E00\u7AE0\u300A\u7EFF\u8272\u8F6C\u578B\u7684\u5148\u950B\u300B\u63A2\u8BA8\u4E86\u4F5C\u8005\u4F5C\u4E3A\u4F01\u4E1A\u5BB6\u5728\u793E\u4F1A\u8D23\u4EFB\u65B9\u9762\u7684\u52AA\u529B\uFF0C\u5305\u62EC\u63A8\u52A8\u4F01\u4E1A\u7EFF\u8272\u8F6C\u578B\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u3002</li>\r\n </ul>\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n <div *ngIf=\"aitab=='AI\u914D\u56FE'\" class=\"ai-img\">\r\n <mat-accordion multi>\r\n <mat-expansion-panel expanded=\"true\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\u6587\u7AE0\u5C01\u9762</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div class=\"image\" (click)=\"uploadImage()\">\r\n <img [src]=\"article?.get('image') || '/assets/img/icon/addphoto.png'\" alt=\"\">\r\n </div>\r\n </mat-expansion-panel>\r\n\r\n <mat-expansion-panel expanded=\"false\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\u6BB5\u843D\u63D2\u56FE</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n \r\n <div class=\"ai-img-search\">\r\n\r\n <div class=\"ai-img-search-input\">\r\n <input type=\"text\" nz-input placeholder=\"\u8BF7\u8F93\u5165\u56FE\u7247\u63CF\u8FF0\" />\r\n </div>\r\n\r\n <div class=\"ai-img-search-button\">\r\n <ion-button>\r\n <ion-icon name=\"search-outline\"></ion-icon>\r\n \u67E5\u627E\r\n </ion-button>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"img-tip\">\r\n <img class=\"bg-img\" src=\"../../../assets/images/\u706B\u7BAD2.png\">\r\n </div>\r\n <div class=\"ai-img-tip\">\r\n <h1>\u8F93\u5165\u63CF\u8FF0\uFF0C\u81EA\u52A8\u914D\u56FE</h1>\r\n\r\n </div>\r\n\r\n <div class=\"ai-img-tip-list\">\r\n <div class=\"pce-inner-tip-point\"></div>\r\n <span>\r\n \u6839\u636E\u60A8\u5BF9\u56FE\u7247\u7684\u63CF\u8FF0\uFF0C\u667A\u80FD\u5339\u914D\u76F8\u5173\u56FE\u7247\r\n </span>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.image{width:100%;height:240px;overflow:hidden;display:flex;justify-content:center;align-items:center}.image img{height:100%;object-fit:contain;height:auto;transition:transform .2s}.image:hover img{transform:scale(1.2)}.page{background-color:#fafafa;height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden}.page .nav{position:sticky;top:0;z-index:3}.page .icon{width:20px;height:20px;margin:0 10px 0 5%}.page .page-container{display:flex;height:calc(100vh - 120px)}.page .page-container .center{margin:5vh auto!important}.page .page-container .editor-text{display:flex;justify-content:center;flex:1;right:0;height:auto;min-height:75vh;min-width:35%;box-shadow:#00000026 1px 2px 8px;background-color:#fff;overflow:visible}.page .page-container .editor-text .editor-main{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.page .page-container .editor-text .editor-main .text-header{display:flex;justify-content:center;padding-top:10px}.page .page-container .editor-text .editor-main .text-header input,.page .page-container .editor-text .editor-main .text-header input:focus{width:100%;text-align:center;border:none;font-size:22px;font-weight:700;box-shadow:none;outline:none}.page .page-container .editor-text .editor-main .article-info{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.page .page-container .editor-text .editor-main .article-info div{padding-left:5px;padding-right:5px;margin-bottom:3px}.page .page-container .editor-text .editor-main .article-info div mat-chip{margin-right:3px}.page .page-container .editor-text .editor-main .article-content{flex:1;min-height:50vh;overflow-y:auto}.page .page-container .page-right{height:calc(80vh - 10px);margin-top:6px;margin-left:3px;min-width:480px;background-color:#fafafa;opacity:1;transition:opacity 2s ease-in-out;overflow-y:hidden;overflow-x:hidden}.page .page-container .page-right .nav-ai{background-color:#fafafa;display:flex;width:100%;justify-content:space-between;z-index:3;position:sticky;top:0}.page .page-container .page-right .nav-ai ul{width:100%;list-style-type:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:space-around}.page .page-container .page-right .nav-ai ul .active0{position:relative;padding:5px 15px;margin:0 5px 10px;font-size:18px;font-weight:700;color:#8e8e8e;border-radius:5px;transition:.3s}.page .page-container .page-right .nav-ai ul .active1{color:#333}.page .page-container .page-right .nav-ai ul .active1 div:after{content:\"\";position:absolute;left:0;bottom:0;width:100%;border-bottom:4px solid #8e8e8e;border-radius:10px;margin-bottom:-6px}.page .page-container .page-right .nav-ai ul li div{cursor:pointer;text-align:center;position:relative}.page .page-container .page-right .nav-ai .icon{cursor:pointer;margin-top:20%;width:25px;height:25px;align-content:center}.page .page-container .page-right .ai-panel{right:2%;background-color:#fafafa;width:95%;z-index:1}.page .page-container .page-right .ai-panel .ai-tool-grid{display:flex;flex-wrap:wrap}.page .page-container .page-right .ai-panel .ai-tool-grid ion-card{max-width:33%}.page .page-container .page-right .ai-panel div::-webkit-scrollbar{display:none}.page .page-container .page-right .ai-panel .ai-write{width:515px}.page .page-container .page-right .ai-panel .ai-write .search-bar{height:40px;width:100%;margin-left:15px}.page .page-container .page-right .ai-panel .ai-write ion-col{background-color:#fafafa;border:solid 2px #fafafa;text-align:center;padding:0;margin-left:3%}.page .page-container .page-right .ai-panel .ai-write .card{max-height:150px;max-width:220px;height:15vh;width:16vw;cursor:pointer}.page .page-container .page-right .ai-panel .ai-write .card .card-image{margin-right:80%}.page .page-container .page-right .ai-panel .ai-write .card ion-card-header{padding:6%}.page .page-container .page-right .ai-panel .ai-write .card ion-card-subtitle{font-weight:600;text-align:left}.page .page-container .page-right .ai-panel .ai-write .card ion-card-content{text-align:left;white-space:pre-line;font-size:12px;margin-left:6%;padding:0}.page .page-container .page-right .ai-panel .ai-write .card-image{background:#fff;box-shadow:0 1px 4px #0000000a,0 4px 10px #00000014;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}.page .page-container .page-right .ai-panel .ai-polish{margin-top:10px;background-color:#fafafa}.page .page-container .page-right .ai-panel .ai-polish textarea.ant-input{max-width:93%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.page .page-container .page-right .ai-panel .ai-polish ::-webkit-scrollbar{width:4px;border-radius:3px}.page .page-container .page-right .ai-panel .ai-polish ::-webkit-scrollbar-thumb{background-color:#dddee0;border-radius:2px}.page .page-container .page-right .ai-panel .ai-polish .ai-polish-button{text-align:right;margin-right:21px}.page .page-container .page-right .ai-panel .ai-polish .ai-polish-button button{margin-left:15px}.page .page-container .page-right .ai-panel .ai-polish .copy{text-align:right;margin-right:7%;cursor:pointer}.page .page-container .page-right .ai-panel .ai-proofread{height:73vh;margin-top:2%;position:sticky;top:0}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container{width:100%;z-index:2}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems{display:flex;justify-content:space-around;position:sticky;top:0;padding-left:15px;padding-right:15px}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems .showItem{display:flex;flex-shrink:0;cursor:pointer;gap:8px;padding:12px 15px;background:#fff;border:1px solid #f9fafb;box-shadow:0 1px 2px #1018280d;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems .active1{color:#333;font-weight:700}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel{margin-top:10%;margin-left:2.3%;height:61vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error{display:flex;text-align:center;margin-bottom:5%;width:90%;height:6vh;margin-left:4%;background:#fff;border:1px solid #f9fafb;box-shadow:0 1px 2px #1018280d;line-height:6vh}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .alert-point{color:#ff7a7a;margin-left:6%;margin-right:5%;font-size:20px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .alert-point-gray{color:#8189a9;font-size:10px;margin-right:1%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .error-content{margin-right:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .right-content{margin-left:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel{position:sticky;top:0;margin-top:4%;margin-left:6.8%;width:91%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content-suggest{display:flex;cursor:pointer;padding:5% 3%;height:6%;width:100%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content-suggest .content-suggest-title{margin-left:3%;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content{width:98%;height:55vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content .content-title{margin:3% 4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content ol{margin:3% 4%;counter-reset:section}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content li:before{counter-increment:section;content:\"Section \" counter(section) \". \"}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel{margin-top:2%;margin-left:6.8%;width:95%;margin-bottom:2%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .icon{width:16px;height:16px;display:inline-block;margin-top:3px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard{display:flex;margin-left:-1%;margin-top:3%;height:5%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .itemChoose{background-color:#eaecf0}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item{display:flex;height:76%;width:23%;padding:6px 8px;cursor:pointer}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item .text{font-weight:bolder;margin-right:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item .number{font-weight:bolder;margin-right:1%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .statusIcon{border-radius:50%;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:18px;height:18px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list{height:61vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card{box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a;width:95%;height:auto;margin-top:3%;padding:2% 3%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card .item{display:flex}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card .card-content{margin-top:3%;margin-bottom:3%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .statusIcon{border-radius:50%;width:18px;height:18px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel{margin-top:2%;margin-left:6.8%;width:91%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text-summary{display:flex;cursor:pointer;padding:5% 3%;height:6%;width:100%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text-summary .text-summary-title{margin-left:3%;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text{width:100%;height:57vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text .text-title{margin:3% 4%;font-weight:700}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text p{margin:3% 4%}.page .page-container .page-right .ai-panel .ai-img{width:480px}.page .page-container .page-right .ai-panel .ai-img .ai-img-search{display:flex;height:4%;width:100%;margin-left:4%;margin-top:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-input{width:65%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-input input{height:100%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-button{margin-left:5%;margin-top:-.8%}.page .page-container .page-right .ai-panel .ai-img .img-tip{display:flex;text-align:center;justify-content:center;margin-top:20%;width:95%}.page .page-container .page-right .ai-panel .ai-img .img-tip .bg-img{width:65%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip{display:flex;justify-content:center;text-align:center;margin-top:2%;margin-right:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip h1{font-weight:600}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip-list{display:flex;justify-content:center;text-align:center;margin-top:2%;margin-right:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip-list .pce-inner-tip-point{display:inline-block;margin-top:2%;margin-right:1%;height:8px;width:8px;border-radius:50%;background-color:#4b4b4b}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i9.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i9.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i10.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i10.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i10.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i10.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i10.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i10.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i10.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i10.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "directive", type: i10.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i11.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "ngmodule", type: NzDividerModule }, { kind: "ngmodule", type: NzEmptyModule }, { kind: "ngmodule", type: NzAvatarModule }, { kind: "ngmodule", type: NzPopoverModule }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "ngmodule", type: NzPipesModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i12.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i12.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i13.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i14.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i15.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i16.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "ngmodule", type:
338
- //
339
- MatExpansionModule }, { kind: "directive", type: i17.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i17.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i17.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i17.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "component", type:
340
- //
341
- ArticleEditorTopbarComponent, selector: "fm-article-editor-topbar", inputs: ["article", "contentChanged", "isSaving"], outputs: ["onNavEvent"] }, { kind: "component", type: FmTextQuillComponent, selector: "fm-text-quill", inputs: ["readOnly", "content", "theme", "toolbar"], outputs: ["onAIClick", "onContentChange", "onSelectChange"] }, { kind: "pipe", type: OutlineCountPipe, name: "outlineCount" }] }); }
342
- }
343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmArticleEditorComponent, decorators: [{
344
- type: Component,
345
- args: [{ selector: 'fm-article-editor', standalone: true, imports: [
346
- CommonModule, FormsModule, ReactiveFormsModule,
347
- IonicModule,
348
- NzInputModule, NzDropDownModule, NzDividerModule, NzEmptyModule, NzAvatarModule, NzPopoverModule, NzToolTipModule,
349
- NzPipesModule,
350
- MatDialogModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule, MatChipsModule,
351
- //
352
- MatExpansionModule,
353
- //
354
- ArticleEditorTopbarComponent,
355
- FmTextQuillComponent,
356
- OutlineCountPipe,
357
- FmArticleOutlineLeftitemComponent,
358
- ], providers: [
359
- DraftService, NovaUploadService, Diagnostic,
360
- ], template: "<div class=\"page\">\r\n\r\n <!-- \u5BFC\u822A\u680F -->\r\n <div class=\"nav\" *ngIf=\"!readOnly\">\r\n <fm-article-editor-topbar #topbar [article]=\"article\" [isSaving]=\"isSaving\" [contentChanged]=\"contentChanged\" (onNavEvent)=\"handleNavEvent($event)\"></fm-article-editor-topbar>\r\n </div>\r\n\r\n <div class=\"page-container\">\r\n <!-- (scroll)=\"onScroll($event)\" -->\r\n\r\n <!-- \u7F16\u8F91\u6587\u672C -->\r\n <!-- -->\r\n <div class=\"editor-text\" [ngClass]=\"{'center':isDivHidden}\">\r\n <div class=\"editor-main\">\r\n\r\n <div role=\"toolbar\" class=\"ql-toolbar ql-snow\" *ngIf=\"false\">\r\n <span class=\"ql-formats\"><span class=\"ql-header ql-picker\"><span class=\"ql-picker-label\" tabindex=\"0\" role=\"button\" aria-expanded=\"false\" aria-controls=\"ql-picker-options-0\"><svg viewBox=\"0 0 18 18\"><polygon class=\"ql-stroke\" points=\"7 11 9 13 11 11 7 11\"></polygon><polygon class=\"ql-stroke\" points=\"7 7 9 5 11 7 7 7\"></polygon></svg></span><span class=\"ql-picker-options\" aria-hidden=\"true\" tabindex=\"-1\" id=\"ql-picker-options-0\"><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"1\"></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"2\"></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"3\"></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"4\"></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\"></span></span></span><select class=\"ql-header\" style=\"display: none;\"><option value=\"1\"></option><option value=\"2\"></option><option value=\"3\"></option><option value=\"4\"></option><option selected=\"selected\"></option></select></span>\r\n <span class=\"ql-formats\"><button type=\"button\" class=\"ql-bold\" aria-pressed=\"false\" aria-label=\"bold\"><svg viewBox=\"0 0 18 18\"><path class=\"ql-stroke\" d=\"M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z\"></path><path class=\"ql-stroke\" d=\"M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z\"></path></svg></button><button type=\"button\" class=\"ql-italic\" aria-pressed=\"false\" aria-label=\"italic\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"7\" x2=\"13\" y1=\"4\" y2=\"4\"></line><line class=\"ql-stroke\" x1=\"5\" x2=\"11\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"8\" x2=\"10\" y1=\"14\" y2=\"4\"></line></svg></button><button type=\"button\" class=\"ql-underline\" aria-pressed=\"false\" aria-label=\"underline\"><svg viewBox=\"0 0 18 18\"><path class=\"ql-stroke\" d=\"M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3\"></path><rect class=\"ql-fill\" height=\"1\" rx=\"0.5\" ry=\"0.5\" width=\"12\" x=\"3\" y=\"15\"></rect></svg></button></span>\r\n <span class=\"ql-formats\"><button type=\"button\" class=\"ql-list\" aria-pressed=\"false\" value=\"bullet\" aria-label=\"list: bullet\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"6\" x2=\"15\" y1=\"4\" y2=\"4\"></line><line class=\"ql-stroke\" x1=\"6\" x2=\"15\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"6\" x2=\"15\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"3\" y1=\"4\" y2=\"4\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"3\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"3\" y1=\"14\" y2=\"14\"></line></svg></button></span>\r\n <span class=\"ql-formats\"><span class=\"ql-align ql-picker ql-icon-picker\"><span class=\"ql-picker-label\" tabindex=\"0\" role=\"button\" aria-expanded=\"false\" aria-controls=\"ql-picker-options-1\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"3\" x2=\"15\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"13\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"9\" y1=\"4\" y2=\"4\"></line></svg></span><span class=\"ql-picker-options\" aria-hidden=\"true\" tabindex=\"-1\" id=\"ql-picker-options-1\"><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"3\" x2=\"15\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"13\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"3\" x2=\"9\" y1=\"4\" y2=\"4\"></line></svg></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"center\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"14\" x2=\"4\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"12\" x2=\"6\" y1=\"4\" y2=\"4\"></line></svg></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"right\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"15\" x2=\"5\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"15\" x2=\"9\" y1=\"4\" y2=\"4\"></line></svg></span><span tabindex=\"0\" role=\"button\" class=\"ql-picker-item\" data-value=\"justify\"><svg viewBox=\"0 0 18 18\"><line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"9\" y2=\"9\"></line><line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"14\" y2=\"14\"></line><line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"4\" y2=\"4\"></line></svg></span></span></span><select class=\"ql-align\" style=\"display: none;\"><option selected=\"selected\"></option><option value=\"center\"></option><option value=\"right\"></option><option value=\"justify\"></option></select></span>\r\n <span class=\"ql-formats\"><button type=\"button\" class=\"ql-code-block\" aria-pressed=\"false\" aria-label=\"code-block\"><svg viewBox=\"0 0 18 18\"><polyline class=\"ql-even ql-stroke\" points=\"5 7 3 9 5 11\"></polyline><polyline class=\"ql-even ql-stroke\" points=\"13 7 15 9 13 11\"></polyline><line class=\"ql-stroke\" x1=\"10\" x2=\"8\" y1=\"5\" y2=\"13\"></line></svg></button></span>\r\n <span class=\"ql-formats\"><button class=\"ql-ai-optimize\">AI</button></span>\r\n </div>\r\n\r\n <div class=\"text-header\">\r\n <input [ngModel]=\"article?.get('title')\" (ngModelChange)=\"article?.set('title',$event)\" type=\"text\" />\r\n <!-- <quill-editor [(ngModel)]=\"title\" [modules]=\"{toolbar: true}\"></quill-editor> -->\r\n </div>\r\n <div class=\"article-info\">\r\n <ng-container *ngIf=\"article?.get('keywords')?.length\">\r\n <div>\u5173\u952E\u5B57\uFF1A<mat-chip *ngFor=\"let key of article?.get('keywords')\">{{key}}</mat-chip></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"article?.get('writingOptions')\">\r\n <div (click)=\"handleNavEvent('options')\">\u8BBE \u5B9A\uFF1A\r\n <mat-chip *ngIf=\"article?.get('writingOptions')?.writingStyle\">{{article?.get('writingOptions')?.writingStyle}}</mat-chip>\r\n <mat-chip *ngIf=\"article?.get('writingOptions')?.wordCount\">\u7EA6{{article?.get('writingOptions')?.wordCount}}\u5B57</mat-chip></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"article?.get('outlineJson')?.length\">\r\n <div (click)=\"handleNavEvent('outline')\">\u63D0 \u7EB2\uFF1A<mat-chip>{{article?.get('outlineJson') | outlineCount}}\u5B57</mat-chip></div>\r\n </ng-container>\r\n <div *ngIf=\"article?.id\" (click)=\"handleNavEvent('draft')\">\u7A3F\u4EF6\u7BB1\uFF1A<mat-chip>{{draftServ.DraftCountMap?.[article?.id||'']?.total || 0}}\u7BC7</mat-chip></div>\r\n </div>\r\n\r\n <div class=\"article-content\">\r\n <!-- \u6587\u672C\u7F16\u8F91\u533A\u57DF:\u4EC5content\u6B63\u6587 -->\r\n <ng-container *ngIf=\"!article?.get('contentArray')?.length\">\r\n <fm-text-quill #textQuill [readOnly]=\"readOnly\" [content]=\"article?.get('content')\" (onContentChange)=\"setContent($event)\"\r\n (onAIClick)=\"goOptimizeText($event)\" (onSelectChange)=\"selectChange($event)\"\r\n ></fm-text-quill>\r\n </ng-container>\r\n <!-- \u6587\u672C\u7F16\u8F91\u533A\u57DF:\u542B\u5927\u7EB2\u6B63\u6587 -->\r\n <ng-container *ngIf=\"article?.get('contentArray')?.length\">\r\n <ng-container *ngFor=\"let item of article?.get('contentArray');let index=index;\">\r\n <!-- \u7AE0\u8282\u4FE1\u606F -->\r\n <!-- <h2 style=\"margin:0px;padding-left:12px;\" *ngIf=\"article?.get('outlineJson')?.sections?.[index]?.title\">{{article?.get('outlineJson')?.sections?.[index]?.title}}</h2> -->\r\n <fm-text-quill #textQuill [readOnly]=\"readOnly\" [content]=\"item?.content\" (onContentChange)=\"setContent($event,item)\"\r\n (onAIClick)=\"goOptimizeText($event)\" (onSelectChange)=\"selectChange($event)\"\r\n ></fm-text-quill>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <!-- AI\u5DE5\u5177 -->\r\n <div *ngIf=\"!readOnly && !isDivHidden\" class=\"page-right\">\r\n <div class=\"nav-ai\">\r\n <!-- AI\u529F\u80FD\u6309\u94AE -->\r\n <!-- <div class=\"ai-btn\">\r\n <button (click)=\"showContent('AI-\u5199\u4F5C')\">AI\u5199\u4F5C</button>\r\n <button (click)=\"showContent('AI-\u6DA6\u8272')\">AI\u6DA6\u8272</button>\r\n <button (click)=\"showContent('\u6821\u9605')\">\u6821\u9605</button>\r\n <button (click)=\"showContent('\u56FE\u7247')\">\u56FE\u7247</button>\r\n <button (click)=\"showContent('\u8BC4\u8BBA')\">\u8BC4\u8BBA</button>\r\n </div> -->\r\n\r\n <ul class=\"ai-btn\">\r\n <li class=\"active0\" (click)=\"aiTab('AI\u5199\u4F5C')\" [ngClass]=\"{ 'active1': aitab == 'AI\u5199\u4F5C' }\">\r\n <div>AI\u5199\u4F5C</div>\r\n </li>\r\n <li class=\"active0\" (click)=\"aiTab('AI\u6DA6\u8272')\" [ngClass]=\"{ 'active1': aitab == 'AI\u6DA6\u8272' }\">\r\n <div>AI\u6DA6\u8272</div>\r\n </li>\r\n <!-- <li class=\"active0\" (click)=\"aiTab('\u6821\u9605')\" [ngClass]=\"{ 'active1': aitab == '\u6821\u9605' }\">\r\n <div>\u6821\u9605</div>\r\n </li> -->\r\n <li class=\"active0\" (click)=\"aiTab('AI\u914D\u56FE')\" [ngClass]=\"{ 'active1': aitab == 'AI\u914D\u56FE' }\">\r\n <div>AI\u914D\u56FE</div>\r\n </li>\r\n\r\n </ul>\r\n <!-- AI\u529F\u80FD\u9000\u51FA\u6309\u94AE -->\r\n <div>\r\n <ion-icon class=\"icon\" name=\"close-outline\" (click)=\"this.isDivHidden = !this.isDivHidden;\"></ion-icon>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- \u5DE5\u5177\u9762\u677F -->\r\n <div class=\"ai-panel\">\r\n\r\n <div *ngIf=\"aitab=='AI\u5199\u4F5C'\" class=\"ai-write\">\r\n <!-- \u641C\u7D22 -->\r\n <div class=\"search-bar\">\r\n <ion-searchbar color=\"light\" placeholder=\"\u641C\u7D22\u6A21\u677F\"></ion-searchbar>\r\n </div>\r\n\r\n <div class=\"ai-tool-grid\">\r\n <ng-container *ngFor=\"let card of cards\">\r\n <ion-card class=\"card\" style=\"margin-left: 5%;max-width:215px;\" (click)=\"card?.handle()\">\r\n <ion-card-header>\r\n <ion-card-title class=\"card-image\">\r\n <img src=\"{{card.imageurl}}\" width=\"25\" height=\"25\" alt=\"write\">\r\n </ion-card-title>\r\n <ion-card-subtitle>{{card.title}}</ion-card-subtitle>\r\n </ion-card-header>\r\n\r\n <ion-card-content>\r\n {{card.content}}\r\n </ion-card-content>\r\n </ion-card>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"aitab=='AI\u6DA6\u8272'\" class=\"ai-polish\" [formGroup]=\"tempFormGroup\">\r\n <div class=\"ai-polish-input\">\r\n <mat-form-field style=\"width:95%;\">\r\n <mat-label>\u8F93\u5165\u6216\u9009\u4E2D\u5DE6\u4FA7\u6587\u672C\u5F00\u59CB\u6DA6\u8272</mat-label>\r\n <textarea matInput [(ngModel)]=\"selectText\" [ngModelOptions]=\"{standalone: true}\" rows=\"10\"></textarea>\r\n </mat-form-field>\r\n\r\n <!-- <textarea [(ngModel)]=\"selectText\" rows=\"10\" formControlName=\"comment\" nz-input placeholder=\"\u8F93\u5165\u6216\u9009\u4E2D\u5DE6\u4FA7\u6587\u672C\u5F00\u59CB\u6DA6\u8272\"></textarea> -->\r\n </div>\r\n <div class=\"ai-polish-button\">\r\n <button *ngIf=\"!isOptimizing\" mat-raised-button color=\"primary\" (click)=\"optimizeContent()\">\u5F00\u59CB\u6DA6\u8272</button>\r\n <button *ngIf=\"isOptimizing\" mat-raised-button color=\"warn\" (click)=\"cancelOptimize()\">\u505C\u6B62\u6DA6\u8272</button>\r\n <!-- <ion-button id=\"start\" [disabled]=\"false\" (click)=\"enableButton()\">\u5F00\u59CB\u6DA6\u8272</ion-button> -->\r\n </div>\r\n <div class=\"ai-polish-input\">\r\n <mat-form-field style=\"width:95%;\">\r\n <mat-label>\u751F\u6210\u5185\u5BB9</mat-label>\r\n <textarea matInput [(ngModel)]=\"optimizeText\" [ngModelOptions]=\"{standalone: true}\" rows=\"10\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"ai-polish-button\">\r\n <button *ngIf=\"selectRange?.length\" mat-raised-button (click)=\"applyOptimize()\"><mat-icon fontIcon=\"flip\"></mat-icon>\u66FF\u6362</button>\r\n <button mat-raised-button (click)=\"copyOptimize()\"><mat-icon fontIcon=\"content_copy\"></mat-icon>\u590D\u5236</button>\r\n <!-- <ion-button id=\"start\" [disabled]=\"false\" (click)=\"enableButton()\">\u5F00\u59CB\u6DA6\u8272</ion-button> -->\r\n </div>\r\n <!-- <div class=\"copy\">\r\n <ion-icon name=\"copy-outline\" style=\"color:#4e80f4\" (click)=\"Copy(polishContent)\"></ion-icon>\r\n </div> -->\r\n </div>\r\n <div *ngIf=\"aitab=='\u6821\u9605'\" class=\"ai-proofread\">\r\n\r\n <div class=\"showItems-container\">\r\n <div class=\"showItems\">\r\n\r\n <div class=\"showItem\" (click)=\"clickTab('\u5185\u5BB9\u5EFA\u8BAE')\" [ngClass]=\"{ 'active1': clicktab == '\u5185\u5BB9\u5EFA\u8BAE' }\">\r\n <div style=\"line-height: 12px;\">\r\n <svg width=\"20\" height=\"22\" viewBox=\"0 0 20 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M11 10H5M7 14H5M13 6H5M17 9.5V5.8C17 4.11984 17 3.27976 16.673 2.63803C16.3854 2.07354 15.9265 1.6146 15.362 1.32698C14.7202 1 13.8802 1 12.2 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H8.5M19 21L17.5 19.5M18.5 17C18.5 18.933 16.933 20.5 15 20.5C13.067 20.5 11.5 18.933 11.5 17C11.5 15.067 13.067 13.5 15 13.5C16.933 13.5 18.5 15.067 18.5 17Z\"\r\n stroke=\"#1570EF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg>\r\n </div>\r\n <span>\u5185\u5BB9\u5EFA\u8BAE</span>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"showItem\" (click)=\"clickTab('\u4E8B\u5B9E\u9A8C\u8BC1')\" [ngClass]=\"{'active1': clicktab=='\u4E8B\u5B9E\u9A8C\u8BC1'}\">\r\n <div style=\"line-height: 12px;\">\r\n <svg width=\"18\" height=\"22\" viewBox=\"0 0 18 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M11 1.26953V5.40007C11 5.96012 11 6.24015 11.109 6.45406C11.2049 6.64222 11.3578 6.7952 11.546 6.89108C11.7599 7.00007 12.0399 7.00007 12.6 7.00007H16.7305M6 15L8 17L12.5 12.5M11 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H12.2C13.8802 21 14.7202 21 15.362 20.673C15.9265 20.3854 16.3854 19.9265 16.673 19.362C17 18.7202 17 17.8802 17 16.2V7L11 1Z\"\r\n stroke=\"#D92D20\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg>\r\n </div>\r\n <span>\u4E8B\u5B9E\u9A8C\u8BC1</span>\r\n </div>\r\n\r\n <div class=\"showItem\" (click)=\"clickTab('\u5168\u6587\u603B\u7ED3')\" [ngClass]=\"{'active1': clicktab=='\u5168\u6587\u603B\u7ED3'}\">\r\n <div style=\"line-height: 12px;\"> <svg width=\"20\" height=\"22\" viewBox=\"0 0 16 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M14.1668 5.83329V5.66663C14.1668 4.26649 14.1668 3.56643 13.8943 3.03165C13.6547 2.56124 13.2722 2.17879 12.8018 1.93911C12.267 1.66663 11.567 1.66663 10.1668 1.66663H4.8335C3.43336 1.66663 2.7333 1.66663 2.19852 1.93911C1.72811 2.17879 1.34566 2.56124 1.10598 3.03165C0.833496 3.56643 0.833496 4.26649 0.833496 5.66663V14.3333C0.833496 15.7334 0.833496 16.4335 1.10598 16.9683C1.34566 17.4387 1.72811 17.8211 2.19852 18.0608C2.7333 18.3333 3.43336 18.3333 4.8335 18.3333H7.91683M7.91683 9.16663H4.16683M7.0835 12.5H4.16683M10.8335 5.83329H4.16683M12.5002 15V10.4166C12.5002 9.72627 13.0598 9.16663 13.7502 9.16663C14.4405 9.16663 15.0002 9.72627 15.0002 10.4166V15C15.0002 16.3807 13.8809 17.5 12.5002 17.5C11.1195 17.5 10.0002 16.3807 10.0002 15V11.6666\"\r\n stroke=\"#F79009\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg>\r\n </div>\r\n <span>\u5168\u6587\u603B\u7ED3</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"showItem-content\">\r\n <div *ngIf=\"clicktab=='\u8BED\u6CD5\u9519\u8BEF'\" class=\"grammar-panel\">\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grammar-error\">\r\n\r\n <span class=\"alert-point\">\r\n \u2022\r\n </span>\r\n <div class=\"error-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n <span class=\"alert-point-gray\">\r\n \u2022\r\n </span>\r\n\r\n <span style=\"color:#8189a9\">\r\n \u5EFA\u8BAE\u66FF\u6362\u4E3A\r\n </span>\r\n\r\n <div class=\"right-content\">\r\n <span>\u53E4\u8001</span>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"clicktab=='\u5185\u5BB9\u5EFA\u8BAE'\" class=\"suggest-panel\">\r\n\r\n <div class=\"content-suggest\">\r\n <div style=\"line-height: 12px;\">\r\n <svg width=\"20\" height=\"22\" viewBox=\"0 0 20 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M11 10H5M7 14H5M13 6H5M17 9.5V5.8C17 4.11984 17 3.27976 16.673 2.63803C16.3854 2.07354 15.9265 1.6146 15.362 1.32698C14.7202 1 13.8802 1 12.2 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H8.5M19 21L17.5 19.5M18.5 17C18.5 18.933 16.933 20.5 15 20.5C13.067 20.5 11.5 18.933 11.5 17C11.5 15.067 13.067 13.5 15 13.5C16.933 13.5 18.5 15.067 18.5 17Z\"\r\n stroke=\"#1570EF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg>\r\n </div>\r\n <div class=\"content-suggest-title\">\u5185\u5BB9\u5EFA\u8BAE</div>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <div class=\"content-title\"> \u8FD9\u7BC7\u6587\u7AE0\u4ECB\u7ECD\u7684\u662F\u4E03\u4E2A\u5173\u4E8E\u4E2D\u56FD\u4F01\u4E1A\u5BB6\u7684\u7BA1\u7406\u4E4B\u9053\u7684\u81EA\u4F20\u5C0F\u8BF4\u7AE0\u8282\u6807\u9898\uFF0C\u65E8\u5728\u5C55\u793A\u4F01\u4E1A\u5BB6\u4EEC\u7684\u4E2A\u4EBA\u7ECF\u5386\u3001\u7BA1\u7406\u7406\u5FF5\u548C\u4EBA\u751F\u54F2\u5B66\u3002\r\n </div>\r\n <div class=\"content-title\">\u6539\u8FDB\u5EFA\u8BAE\uFF1A</div>\r\n <ol>\r\n <li> \u6807\u9898\u4E00\u81F4\u6027\uFF1A\u6587\u7AE0\u4E2D\u7684\u7AE0\u8282\u6807\u9898\u5E94\u4FDD\u6301\u4E00\u81F4\u7684\u683C\u5F0F\uFF0C\u4F8B\u5982\u201C\u554A\u624B\u52A8\u9600\u58EB\u5927\u592B\u201D\u548C\u201C\u7231\u559D\u6C34\u7684\u4EBA\uFF0C\u4E00\u5B9A\u662F\u6709\u54C1\u5473\u7684\u201D\u4E0E\u5176\u4ED6\u7AE0\u8282\u7684\u683C\u5F0F\u4E0D\u4E00\u81F4\uFF0C\u5EFA\u8BAE\u7EDF\u4E00\u683C\u5F0F\u4EE5\u589E\u5F3A\u6587\u7AE0\u7684\u4E13\u4E1A\u6027\u3002</li>\r\n <li> \u8BED\u8A00\u98CE\u683C\uFF1A\u6587\u7AE0\u4E2D\u51FA\u73B0\u4E86\u4E00\u4E9B\u975E\u6B63\u5F0F\u6216\u53E3\u8BED\u5316\u7684\u8868\u8FBE\uFF0C\u5982\u201C\u5AE9\u7ED9\u591F\u7A7F\u8D8A\u65F6\u7A7A\u7684\u529B\u91CF\u201D\u548C\u201C\u5305\u97E9\u4E86\u5BF9\u751F\u547D\u610F\u4E49\u7684\u6DF1\u523B\u53CD\u601D\u201D\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u66F4\u6B63\u5F0F\u7684\u8BED\u8A00\u4EE5\u7B26\u5408\u4E13\u4E1A\u6587\u7AE0\u7684\u6807\u51C6\u3002</li>\r\n <li> \u4FE1\u606F\u91CD\u590D\uFF1A\u5728\u4ECB\u7ECD\u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u7684\u90E8\u5206\uFF0C\u6709\u5173\u65F6\u95F4\u65C5\u884C\u7684\u63CF\u8FF0\u88AB\u591A\u6B21\u63D0\u53CA\uFF0C\u5EFA\u8BAE\u5408\u5E76\u76F8\u4F3C\u5185\u5BB9\u4EE5\u907F\u514D\u91CD\u590D\u3002\r\n </li>\r\n <li> \u6807\u9898\u4E00\u81F4\u6027\uFF1A\u6587\u7AE0\u4E2D\u7684\u7AE0\u8282\u6807\u9898\u5E94\u4FDD\u6301\u4E00\u81F4\u7684\u683C\u5F0F\uFF0C\u4F8B\u5982\u201C\u554A\u624B\u52A8\u9600\u58EB\u5927\u592B\u201D\u548C\u201C\u7231\u559D\u6C34\u7684\u4EBA\uFF0C\u4E00\u5B9A\u662F\u6709\u54C1\u5473\u7684\u201D\u4E0E\u5176\u4ED6\u7AE0\u8282\u7684\u683C\u5F0F\u4E0D\u4E00\u81F4\uFF0C\u5EFA\u8BAE\u7EDF\u4E00\u683C\u5F0F\u4EE5\u589E\u5F3A\u6587\u7AE0\u7684\u4E13\u4E1A\u6027\u3002</li>\r\n <li> \u8BED\u8A00\u98CE\u683C\uFF1A\u6587\u7AE0\u4E2D\u51FA\u73B0\u4E86\u4E00\u4E9B\u975E\u6B63\u5F0F\u6216\u53E3\u8BED\u5316\u7684\u8868\u8FBE\uFF0C\u5982\u201C\u5AE9\u7ED9\u591F\u7A7F\u8D8A\u65F6\u7A7A\u7684\u529B\u91CF\u201D\u548C\u201C\u5305\u97E9\u4E86\u5BF9\u751F\u547D\u610F\u4E49\u7684\u6DF1\u523B\u53CD\u601D\u201D\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u66F4\u6B63\u5F0F\u7684\u8BED\u8A00\u4EE5\u7B26\u5408\u4E13\u4E1A\u6587\u7AE0\u7684\u6807\u51C6\u3002</li>\r\n <li> \u4FE1\u606F\u91CD\u590D\uFF1A\u5728\u4ECB\u7ECD\u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u7684\u90E8\u5206\uFF0C\u6709\u5173\u65F6\u95F4\u65C5\u884C\u7684\u63CF\u8FF0\u88AB\u591A\u6B21\u63D0\u53CA\uFF0C\u5EFA\u8BAE\u5408\u5E76\u76F8\u4F3C\u5185\u5BB9\u4EE5\u907F\u514D\u91CD\u590D\u3002\r\n </li>\r\n <li> \u6807\u9898\u4E00\u81F4\u6027\uFF1A\u6587\u7AE0\u4E2D\u7684\u7AE0\u8282\u6807\u9898\u5E94\u4FDD\u6301\u4E00\u81F4\u7684\u683C\u5F0F\uFF0C\u4F8B\u5982\u201C\u554A\u624B\u52A8\u9600\u58EB\u5927\u592B\u201D\u548C\u201C\u7231\u559D\u6C34\u7684\u4EBA\uFF0C\u4E00\u5B9A\u662F\u6709\u54C1\u5473\u7684\u201D\u4E0E\u5176\u4ED6\u7AE0\u8282\u7684\u683C\u5F0F\u4E0D\u4E00\u81F4\uFF0C\u5EFA\u8BAE\u7EDF\u4E00\u683C\u5F0F\u4EE5\u589E\u5F3A\u6587\u7AE0\u7684\u4E13\u4E1A\u6027\u3002</li>\r\n <li> \u8BED\u8A00\u98CE\u683C\uFF1A\u6587\u7AE0\u4E2D\u51FA\u73B0\u4E86\u4E00\u4E9B\u975E\u6B63\u5F0F\u6216\u53E3\u8BED\u5316\u7684\u8868\u8FBE\uFF0C\u5982\u201C\u5AE9\u7ED9\u591F\u7A7F\u8D8A\u65F6\u7A7A\u7684\u529B\u91CF\u201D\u548C\u201C\u5305\u97E9\u4E86\u5BF9\u751F\u547D\u610F\u4E49\u7684\u6DF1\u523B\u53CD\u601D\u201D\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u66F4\u6B63\u5F0F\u7684\u8BED\u8A00\u4EE5\u7B26\u5408\u4E13\u4E1A\u6587\u7AE0\u7684\u6807\u51C6\u3002</li>\r\n <li> \u4FE1\u606F\u91CD\u590D\uFF1A\u5728\u4ECB\u7ECD\u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u7684\u90E8\u5206\uFF0C\u6709\u5173\u65F6\u95F4\u65C5\u884C\u7684\u63CF\u8FF0\u88AB\u591A\u6B21\u63D0\u53CA\uFF0C\u5EFA\u8BAE\u5408\u5E76\u76F8\u4F3C\u5185\u5BB9\u4EE5\u907F\u514D\u91CD\u590D\u3002\r\n </li>\r\n <li> \u6807\u9898\u4E00\u81F4\u6027\uFF1A\u6587\u7AE0\u4E2D\u7684\u7AE0\u8282\u6807\u9898\u5E94\u4FDD\u6301\u4E00\u81F4\u7684\u683C\u5F0F\uFF0C\u4F8B\u5982\u201C\u554A\u624B\u52A8\u9600\u58EB\u5927\u592B\u201D\u548C\u201C\u7231\u559D\u6C34\u7684\u4EBA\uFF0C\u4E00\u5B9A\u662F\u6709\u54C1\u5473\u7684\u201D\u4E0E\u5176\u4ED6\u7AE0\u8282\u7684\u683C\u5F0F\u4E0D\u4E00\u81F4\uFF0C\u5EFA\u8BAE\u7EDF\u4E00\u683C\u5F0F\u4EE5\u589E\u5F3A\u6587\u7AE0\u7684\u4E13\u4E1A\u6027\u3002</li>\r\n <li> \u8BED\u8A00\u98CE\u683C\uFF1A\u6587\u7AE0\u4E2D\u51FA\u73B0\u4E86\u4E00\u4E9B\u975E\u6B63\u5F0F\u6216\u53E3\u8BED\u5316\u7684\u8868\u8FBE\uFF0C\u5982\u201C\u5AE9\u7ED9\u591F\u7A7F\u8D8A\u65F6\u7A7A\u7684\u529B\u91CF\u201D\u548C\u201C\u5305\u97E9\u4E86\u5BF9\u751F\u547D\u610F\u4E49\u7684\u6DF1\u523B\u53CD\u601D\u201D\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u66F4\u6B63\u5F0F\u7684\u8BED\u8A00\u4EE5\u7B26\u5408\u4E13\u4E1A\u6587\u7AE0\u7684\u6807\u51C6\u3002</li>\r\n <li> \u4FE1\u606F\u91CD\u590D\uFF1A\u5728\u4ECB\u7ECD\u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u7684\u90E8\u5206\uFF0C\u6709\u5173\u65F6\u95F4\u65C5\u884C\u7684\u63CF\u8FF0\u88AB\u591A\u6B21\u63D0\u53CA\uFF0C\u5EFA\u8BAE\u5408\u5E76\u76F8\u4F3C\u5185\u5BB9\u4EE5\u907F\u514D\u91CD\u590D\u3002\r\n </li>\r\n <li> \u6807\u9898\u4E00\u81F4\u6027\uFF1A\u6587\u7AE0\u4E2D\u7684\u7AE0\u8282\u6807\u9898\u5E94\u4FDD\u6301\u4E00\u81F4\u7684\u683C\u5F0F\uFF0C\u4F8B\u5982\u201C\u554A\u624B\u52A8\u9600\u58EB\u5927\u592B\u201D\u548C\u201C\u7231\u559D\u6C34\u7684\u4EBA\uFF0C\u4E00\u5B9A\u662F\u6709\u54C1\u5473\u7684\u201D\u4E0E\u5176\u4ED6\u7AE0\u8282\u7684\u683C\u5F0F\u4E0D\u4E00\u81F4\uFF0C\u5EFA\u8BAE\u7EDF\u4E00\u683C\u5F0F\u4EE5\u589E\u5F3A\u6587\u7AE0\u7684\u4E13\u4E1A\u6027\u3002</li>\r\n <li> \u8BED\u8A00\u98CE\u683C\uFF1A\u6587\u7AE0\u4E2D\u51FA\u73B0\u4E86\u4E00\u4E9B\u975E\u6B63\u5F0F\u6216\u53E3\u8BED\u5316\u7684\u8868\u8FBE\uFF0C\u5982\u201C\u5AE9\u7ED9\u591F\u7A7F\u8D8A\u65F6\u7A7A\u7684\u529B\u91CF\u201D\u548C\u201C\u5305\u97E9\u4E86\u5BF9\u751F\u547D\u610F\u4E49\u7684\u6DF1\u523B\u53CD\u601D\u201D\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u66F4\u6B63\u5F0F\u7684\u8BED\u8A00\u4EE5\u7B26\u5408\u4E13\u4E1A\u6587\u7AE0\u7684\u6807\u51C6\u3002</li>\r\n <li> \u4FE1\u606F\u91CD\u590D\uFF1A\u5728\u4ECB\u7ECD\u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u7684\u90E8\u5206\uFF0C\u6709\u5173\u65F6\u95F4\u65C5\u884C\u7684\u63CF\u8FF0\u88AB\u591A\u6B21\u63D0\u53CA\uFF0C\u5EFA\u8BAE\u5408\u5E76\u76F8\u4F3C\u5185\u5BB9\u4EE5\u907F\u514D\u91CD\u590D\u3002\r\n </li>\r\n </ol>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"clicktab=='\u4E8B\u5B9E\u9A8C\u8BC1'\" class=\"verify-panel\">\r\n <div class=\"dashboard\">\r\n <div class=\"item\" (click)=\"dashboardTab('\u5168\u90E8')\" [ngClass]=\"{'itemChoose': dashboardtab=='\u5168\u90E8'}\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"border: 1px solid black; box-sizing: border-box;\"></div>\r\n </div>\r\n <div class=\"text\">\u5168\u90E8</div>\r\n <div class=\"number\">28</div>\r\n </div>\r\n\r\n <div class=\"item\" (click)=\"dashboardTab('\u901A\u8FC7')\" [ngClass]=\"{'itemChoose': dashboardtab=='\u901A\u8FC7'}\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n <div class=\"number\">9</div>\r\n </div>\r\n\r\n <div class=\"item\" (click)=\"dashboardTab('\u4E0D\u901A\u8FC7')\" [ngClass]=\"{'itemChoose': dashboardtab=='\u4E0D\u901A\u8FC7'}\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(217, 45, 32);\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M7 17L17 7\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n <path d=\"M7 7L17 17\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </svg></div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(217, 45, 32);\">\u4E0D\u901A\u8FC7</div>\r\n <div class=\"number\">1</div>\r\n </div>\r\n <div class=\"item\" (click)=\"dashboardTab('\u65E0\u6CD5\u5224\u65AD')\" [ngClass]=\"{'itemChoose': dashboardtab=='\u65E0\u6CD5\u5224\u65AD'}\">\r\n <div class=\"icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"3 3 18 18\"\r\n fill=\"none\">\r\n <path\r\n d=\"M7.8824 8.679C7.88035 8.72744 7.88822 8.77579 7.90555 8.82107C7.92287 8.86636 7.94927 8.90762 7.98313 8.94232C8.01699 8.97703 8.05759 9.00444 8.10244 9.02287C8.14728 9.0413 8.19542 9.05036 8.2439 9.0495H9.4814C9.6884 9.0495 9.8534 8.88 9.8804 8.6745C10.0154 7.6905 10.6904 6.9735 11.8934 6.9735C12.9224 6.9735 13.8644 7.488 13.8644 8.7255C13.8644 9.678 13.3034 10.116 12.4169 10.782C11.4074 11.5155 10.6079 12.372 10.6649 13.7625L10.6694 14.088C10.671 14.1864 10.7112 14.2803 10.7813 14.3493C10.8515 14.4183 10.946 14.457 11.0444 14.457H12.2609C12.3604 14.457 12.4557 14.4175 12.5261 14.3472C12.5964 14.2768 12.6359 14.1815 12.6359 14.082V13.9245C12.6359 12.8475 13.0454 12.534 14.1509 11.6955C15.0644 11.001 16.0169 10.23 16.0169 8.6115C16.0169 6.345 14.1029 5.25 12.0074 5.25C10.1069 5.25 8.0249 6.135 7.8824 8.679ZM10.2179 17.3235C10.2179 18.123 10.8554 18.714 11.7329 18.714C12.6464 18.714 13.2749 18.123 13.2749 17.3235C13.2749 16.4955 12.6449 15.9135 11.7314 15.9135C10.8554 15.9135 10.2179 16.4955 10.2179 17.3235Z\"\r\n fill=\"#475467\"></path>\r\n </svg></div>\r\n <div class=\"text\">\u65E0\u6CD5\u5224\u65AD</div>\r\n <div class=\"number\">18</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"verify-card-list\">\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"item\">\r\n <div class=\"icon\">\r\n <div class=\"statusIcon\" style=\"background-color: rgb(18, 183, 106);\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9987_2125)\">\r\n <path d=\"M20 7.5L10 17.5L5 12.5\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9987_2125\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.5)\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"text\" style=\"color: rgb(18, 183, 106);\">\u901A\u8FC7</div>\r\n\r\n </div>\r\n <div class=\"card-content\">\r\n \u672C\u4E66\u5206\u4E3A\u56DB\u4E2A\u90E8\u5206\uFF1A\u7B2C\u4E8C\u90E8\u5206\u8BB2\u8FF0\u4E2D\u56FD\u7ECF\u6D4E\u4F53\u5236\u6539\u9769\u8FC7\u7A0B\u4E2D\uFF0C\u4ED6\u662F\u5982\u4F55\u5728\u201C\u6478\u7740\u77F3\u5934\u8FC7\u6CB3\u201D\u7684\u8FC7\u7A0B\u4E2D\u4E0D\u65AD\u63A2\u7D22\u3001\u4E0D\u65AD\u521B\u65B0\u3002\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"clicktab=='\u5168\u6587\u603B\u7ED3'\" class=\"summary-panel\">\r\n\r\n <div class=\"text-summary\">\r\n <div style=\"line-height: 12px;\">\r\n <svg width=\"20\" height=\"22\" viewBox=\"0 0 16 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M14.1668 5.83329V5.66663C14.1668 4.26649 14.1668 3.56643 13.8943 3.03165C13.6547 2.56124 13.2722 2.17879 12.8018 1.93911C12.267 1.66663 11.567 1.66663 10.1668 1.66663H4.8335C3.43336 1.66663 2.7333 1.66663 2.19852 1.93911C1.72811 2.17879 1.34566 2.56124 1.10598 3.03165C0.833496 3.56643 0.833496 4.26649 0.833496 5.66663V14.3333C0.833496 15.7334 0.833496 16.4335 1.10598 16.9683C1.34566 17.4387 1.72811 17.8211 2.19852 18.0608C2.7333 18.3333 3.43336 18.3333 4.8335 18.3333H7.91683M7.91683 9.16663H4.16683M7.0835 12.5H4.16683M10.8335 5.83329H4.16683M12.5002 15V10.4166C12.5002 9.72627 13.0598 9.16663 13.7502 9.16663C14.4405 9.16663 15.0002 9.72627 15.0002 10.4166V15C15.0002 16.3807 13.8809 17.5 12.5002 17.5C11.1195 17.5 10.0002 16.3807 10.0002 15V11.6666\"\r\n stroke=\"#F79009\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg>\r\n </div>\r\n <div class=\"text-summary-title\">\u5168\u6587\u603B\u7ED3</div>\r\n </div>\r\n\r\n <div class=\"text\">\r\n <div class=\"text-title\">\u6982\u62EC\uFF1A</div>\r\n\r\n <p>\r\n \u8FD9\u672C\u81EA\u4F20\u5C0F\u8BF4\u7531\u4F01\u4E1A\u5BB6\u66F9\u56FD\u718A\u64B0\u5199\uFF0C\u8BB2\u8FF0\u4E86\u4ED6\u5982\u4F55\u4ECE\u8D2B\u7A77\u5B69\u5B50\u6210\u957F\u4E3A\u6210\u529F\u4F01\u4E1A\u5BB6\u7684\u7ECF\u5386\u548C\u7BA1\u7406\u667A\u6167\uFF0C\u540C\u65F6\u901A\u8FC7\u4E0D\u540C\u7AE0\u8282\u63A2\u8BA8\u4E86\u4F01\u4E1A\u5BB6\u7684\u6210\u957F\u3001\u56E2\u961F\u5408\u4F5C\u3001\u521B\u65B0\u9A71\u52A8\u3001\u9886\u5BFC\u529B\u57F9\u517B\u3001\u9762\u5BF9\u5371\u673A\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u7B49\u4E3B\u9898\u3002\r\n </p>\r\n <div class=\"text-title\">\u8981\u70B9\uFF1A</div>\r\n <ul>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u7AE0\u8282\u300A\u4ECE\u5C0F\u68A6\u60F3\u5230\u5927\u4E8B\u4E1A\u300B\u56DE\u987E\u4E86\u4F5C\u8005\u4ECE\u5C11\u5E74\u65F6\u4EE3\u6000\u63E3\u521B\u4E1A\u68A6\u60F3\uFF0C\u514B\u670D\u56F0\u96BE\u548C\u6311\u6218\u7684\u8FC7\u7A0B\u3002</li>\r\n <li> \u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u662F\u4E00\u90E8\u7ED3\u5408\u60AC\u7591\u3001\u5947\u5E7B\u548C\u54F2\u601D\u7684\u5C0F\u8BF4\uFF0C\u901A\u8FC7\u6770\u514B\u7684\u89C6\u89D2\u63A2\u7D22\u4EBA\u6027\u3001\u9009\u62E9\u548C\u6210\u957F\u3002</li>\r\n <li> \u4E66\u4E2D\u8FD8\u6D89\u53CA\u4E86\u5982\u4F55\u57F9\u517B\u4F01\u4E1A\u5BB6\u7684\u9053\u5FB7\u64CD\u5B88\u548C\u793E\u4F1A\u8D23\u4EFB\u611F\u3001\u56E2\u961F\u5408\u4F5C\u7684\u91CD\u8981\u6027\u3001\u79D1\u6280\u521B\u65B0\u7684\u63A8\u52A8\u3001\u9886\u5BFC\u529B\u7684\u57F9\u517B\u4EE5\u53CA\u5982\u4F55\u9762\u5BF9\u548C\u5316\u89E3\u5371\u673A\u3002</li>\r\n <li> \u6700\u540E\u4E00\u7AE0\u300A\u7EFF\u8272\u8F6C\u578B\u7684\u5148\u950B\u300B\u63A2\u8BA8\u4E86\u4F5C\u8005\u4F5C\u4E3A\u4F01\u4E1A\u5BB6\u5728\u793E\u4F1A\u8D23\u4EFB\u65B9\u9762\u7684\u52AA\u529B\uFF0C\u5305\u62EC\u63A8\u52A8\u4F01\u4E1A\u7EFF\u8272\u8F6C\u578B\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u7AE0\u8282\u300A\u4ECE\u5C0F\u68A6\u60F3\u5230\u5927\u4E8B\u4E1A\u300B\u56DE\u987E\u4E86\u4F5C\u8005\u4ECE\u5C11\u5E74\u65F6\u4EE3\u6000\u63E3\u521B\u4E1A\u68A6\u60F3\uFF0C\u514B\u670D\u56F0\u96BE\u548C\u6311\u6218\u7684\u8FC7\u7A0B\u3002</li>\r\n <li> \u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u662F\u4E00\u90E8\u7ED3\u5408\u60AC\u7591\u3001\u5947\u5E7B\u548C\u54F2\u601D\u7684\u5C0F\u8BF4\uFF0C\u901A\u8FC7\u6770\u514B\u7684\u89C6\u89D2\u63A2\u7D22\u4EBA\u6027\u3001\u9009\u62E9\u548C\u6210\u957F\u3002</li>\r\n <li> \u4E66\u4E2D\u8FD8\u6D89\u53CA\u4E86\u5982\u4F55\u57F9\u517B\u4F01\u4E1A\u5BB6\u7684\u9053\u5FB7\u64CD\u5B88\u548C\u793E\u4F1A\u8D23\u4EFB\u611F\u3001\u56E2\u961F\u5408\u4F5C\u7684\u91CD\u8981\u6027\u3001\u79D1\u6280\u521B\u65B0\u7684\u63A8\u52A8\u3001\u9886\u5BFC\u529B\u7684\u57F9\u517B\u4EE5\u53CA\u5982\u4F55\u9762\u5BF9\u548C\u5316\u89E3\u5371\u673A\u3002</li>\r\n <li> \u6700\u540E\u4E00\u7AE0\u300A\u7EFF\u8272\u8F6C\u578B\u7684\u5148\u950B\u300B\u63A2\u8BA8\u4E86\u4F5C\u8005\u4F5C\u4E3A\u4F01\u4E1A\u5BB6\u5728\u793E\u4F1A\u8D23\u4EFB\u65B9\u9762\u7684\u52AA\u529B\uFF0C\u5305\u62EC\u63A8\u52A8\u4F01\u4E1A\u7EFF\u8272\u8F6C\u578B\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u7AE0\u8282\u300A\u4ECE\u5C0F\u68A6\u60F3\u5230\u5927\u4E8B\u4E1A\u300B\u56DE\u987E\u4E86\u4F5C\u8005\u4ECE\u5C11\u5E74\u65F6\u4EE3\u6000\u63E3\u521B\u4E1A\u68A6\u60F3\uFF0C\u514B\u670D\u56F0\u96BE\u548C\u6311\u6218\u7684\u8FC7\u7A0B\u3002</li>\r\n <li> \u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u662F\u4E00\u90E8\u7ED3\u5408\u60AC\u7591\u3001\u5947\u5E7B\u548C\u54F2\u601D\u7684\u5C0F\u8BF4\uFF0C\u901A\u8FC7\u6770\u514B\u7684\u89C6\u89D2\u63A2\u7D22\u4EBA\u6027\u3001\u9009\u62E9\u548C\u6210\u957F\u3002</li>\r\n <li> \u4E66\u4E2D\u8FD8\u6D89\u53CA\u4E86\u5982\u4F55\u57F9\u517B\u4F01\u4E1A\u5BB6\u7684\u9053\u5FB7\u64CD\u5B88\u548C\u793E\u4F1A\u8D23\u4EFB\u611F\u3001\u56E2\u961F\u5408\u4F5C\u7684\u91CD\u8981\u6027\u3001\u79D1\u6280\u521B\u65B0\u7684\u63A8\u52A8\u3001\u9886\u5BFC\u529B\u7684\u57F9\u517B\u4EE5\u53CA\u5982\u4F55\u9762\u5BF9\u548C\u5316\u89E3\u5371\u673A\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u7AE0\u8282\u300A\u4ECE\u5C0F\u68A6\u60F3\u5230\u5927\u4E8B\u4E1A\u300B\u56DE\u987E\u4E86\u4F5C\u8005\u4ECE\u5C11\u5E74\u65F6\u4EE3\u6000\u63E3\u521B\u4E1A\u68A6\u60F3\uFF0C\u514B\u670D\u56F0\u96BE\u548C\u6311\u6218\u7684\u8FC7\u7A0B\u3002</li>\r\n <li> \u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u662F\u4E00\u90E8\u7ED3\u5408\u60AC\u7591\u3001\u5947\u5E7B\u548C\u54F2\u601D\u7684\u5C0F\u8BF4\uFF0C\u901A\u8FC7\u6770\u514B\u7684\u89C6\u89D2\u63A2\u7D22\u4EBA\u6027\u3001\u9009\u62E9\u548C\u6210\u957F\u3002</li>\r\n <li> \u4E66\u4E2D\u8FD8\u6D89\u53CA\u4E86\u5982\u4F55\u57F9\u517B\u4F01\u4E1A\u5BB6\u7684\u9053\u5FB7\u64CD\u5B88\u548C\u793E\u4F1A\u8D23\u4EFB\u611F\u3001\u56E2\u961F\u5408\u4F5C\u7684\u91CD\u8981\u6027\u3001\u79D1\u6280\u521B\u65B0\u7684\u63A8\u52A8\u3001\u9886\u5BFC\u529B\u7684\u57F9\u517B\u4EE5\u53CA\u5982\u4F55\u9762\u5BF9\u548C\u5316\u89E3\u5371\u673A\u3002</li>\r\n <li> \u6700\u540E\u4E00\u7AE0\u300A\u7EFF\u8272\u8F6C\u578B\u7684\u5148\u950B\u300B\u63A2\u8BA8\u4E86\u4F5C\u8005\u4F5C\u4E3A\u4F01\u4E1A\u5BB6\u5728\u793E\u4F1A\u8D23\u4EFB\u65B9\u9762\u7684\u52AA\u529B\uFF0C\u5305\u62EC\u63A8\u52A8\u4F01\u4E1A\u7EFF\u8272\u8F6C\u578B\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u7AE0\u8282\u300A\u4ECE\u5C0F\u68A6\u60F3\u5230\u5927\u4E8B\u4E1A\u300B\u56DE\u987E\u4E86\u4F5C\u8005\u4ECE\u5C11\u5E74\u65F6\u4EE3\u6000\u63E3\u521B\u4E1A\u68A6\u60F3\uFF0C\u514B\u670D\u56F0\u96BE\u548C\u6311\u6218\u7684\u8FC7\u7A0B\u3002</li>\r\n <li> \u300A\u65F6\u5149\u7684\u88C2\u7F1D\u300B\u662F\u4E00\u90E8\u7ED3\u5408\u60AC\u7591\u3001\u5947\u5E7B\u548C\u54F2\u601D\u7684\u5C0F\u8BF4\uFF0C\u901A\u8FC7\u6770\u514B\u7684\u89C6\u89D2\u63A2\u7D22\u4EBA\u6027\u3001\u9009\u62E9\u548C\u6210\u957F\u3002</li>\r\n <li> \u4E66\u4E2D\u8FD8\u6D89\u53CA\u4E86\u5982\u4F55\u57F9\u517B\u4F01\u4E1A\u5BB6\u7684\u9053\u5FB7\u64CD\u5B88\u548C\u793E\u4F1A\u8D23\u4EFB\u611F\u3001\u56E2\u961F\u5408\u4F5C\u7684\u91CD\u8981\u6027\u3001\u79D1\u6280\u521B\u65B0\u7684\u63A8\u52A8\u3001\u9886\u5BFC\u529B\u7684\u57F9\u517B\u4EE5\u53CA\u5982\u4F55\u9762\u5BF9\u548C\u5316\u89E3\u5371\u673A\u3002</li>\r\n <li> \u6700\u540E\u4E00\u7AE0\u300A\u7EFF\u8272\u8F6C\u578B\u7684\u5148\u950B\u300B\u63A2\u8BA8\u4E86\u4F5C\u8005\u4F5C\u4E3A\u4F01\u4E1A\u5BB6\u5728\u793E\u4F1A\u8D23\u4EFB\u65B9\u9762\u7684\u52AA\u529B\uFF0C\u5305\u62EC\u63A8\u52A8\u4F01\u4E1A\u7EFF\u8272\u8F6C\u578B\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u3002</li>\r\n <li>\u66F9\u56FD\u718A\u662F\u4E2D\u56FD\u7684\u4F01\u4E1A\u5BB6\u3001\u4F5C\u5BB6\uFF0C\u4ED6\u7684\u81EA\u4F20\u8BB0\u5F55\u4E86\u4ECE\u8D2B\u7A77\u5230\u6210\u529F\u7684\u5386\u7A0B\u3002</li>\r\n <li> \u6700\u540E\u4E00\u7AE0\u300A\u7EFF\u8272\u8F6C\u578B\u7684\u5148\u950B\u300B\u63A2\u8BA8\u4E86\u4F5C\u8005\u4F5C\u4E3A\u4F01\u4E1A\u5BB6\u5728\u793E\u4F1A\u8D23\u4EFB\u65B9\u9762\u7684\u52AA\u529B\uFF0C\u5305\u62EC\u63A8\u52A8\u4F01\u4E1A\u7EFF\u8272\u8F6C\u578B\u548C\u53EF\u6301\u7EED\u53D1\u5C55\u3002</li>\r\n </ul>\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n <div *ngIf=\"aitab=='AI\u914D\u56FE'\" class=\"ai-img\">\r\n <mat-accordion multi>\r\n <mat-expansion-panel expanded=\"true\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\u6587\u7AE0\u5C01\u9762</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div class=\"image\" (click)=\"uploadImage()\">\r\n <img [src]=\"article?.get('image') || '/assets/img/icon/addphoto.png'\" alt=\"\">\r\n </div>\r\n </mat-expansion-panel>\r\n\r\n <mat-expansion-panel expanded=\"false\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\u6BB5\u843D\u63D2\u56FE</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n \r\n <div class=\"ai-img-search\">\r\n\r\n <div class=\"ai-img-search-input\">\r\n <input type=\"text\" nz-input placeholder=\"\u8BF7\u8F93\u5165\u56FE\u7247\u63CF\u8FF0\" />\r\n </div>\r\n\r\n <div class=\"ai-img-search-button\">\r\n <ion-button>\r\n <ion-icon name=\"search-outline\"></ion-icon>\r\n \u67E5\u627E\r\n </ion-button>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"img-tip\">\r\n <img class=\"bg-img\" src=\"../../../assets/images/\u706B\u7BAD2.png\">\r\n </div>\r\n <div class=\"ai-img-tip\">\r\n <h1>\u8F93\u5165\u63CF\u8FF0\uFF0C\u81EA\u52A8\u914D\u56FE</h1>\r\n\r\n </div>\r\n\r\n <div class=\"ai-img-tip-list\">\r\n <div class=\"pce-inner-tip-point\"></div>\r\n <span>\r\n \u6839\u636E\u60A8\u5BF9\u56FE\u7247\u7684\u63CF\u8FF0\uFF0C\u667A\u80FD\u5339\u914D\u76F8\u5173\u56FE\u7247\r\n </span>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.image{width:100%;height:240px;overflow:hidden;display:flex;justify-content:center;align-items:center}.image img{height:100%;object-fit:contain;height:auto;transition:transform .2s}.image:hover img{transform:scale(1.2)}.page{background-color:#fafafa;height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden}.page .nav{position:sticky;top:0;z-index:3}.page .icon{width:20px;height:20px;margin:0 10px 0 5%}.page .page-container{display:flex;height:calc(100vh - 120px)}.page .page-container .center{margin:5vh auto!important}.page .page-container .editor-text{display:flex;justify-content:center;flex:1;right:0;height:auto;min-height:75vh;min-width:35%;box-shadow:#00000026 1px 2px 8px;background-color:#fff;overflow:visible}.page .page-container .editor-text .editor-main{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.page .page-container .editor-text .editor-main .text-header{display:flex;justify-content:center;padding-top:10px}.page .page-container .editor-text .editor-main .text-header input,.page .page-container .editor-text .editor-main .text-header input:focus{width:100%;text-align:center;border:none;font-size:22px;font-weight:700;box-shadow:none;outline:none}.page .page-container .editor-text .editor-main .article-info{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.page .page-container .editor-text .editor-main .article-info div{padding-left:5px;padding-right:5px;margin-bottom:3px}.page .page-container .editor-text .editor-main .article-info div mat-chip{margin-right:3px}.page .page-container .editor-text .editor-main .article-content{flex:1;min-height:50vh;overflow-y:auto}.page .page-container .page-right{height:calc(80vh - 10px);margin-top:6px;margin-left:3px;min-width:480px;background-color:#fafafa;opacity:1;transition:opacity 2s ease-in-out;overflow-y:hidden;overflow-x:hidden}.page .page-container .page-right .nav-ai{background-color:#fafafa;display:flex;width:100%;justify-content:space-between;z-index:3;position:sticky;top:0}.page .page-container .page-right .nav-ai ul{width:100%;list-style-type:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:space-around}.page .page-container .page-right .nav-ai ul .active0{position:relative;padding:5px 15px;margin:0 5px 10px;font-size:18px;font-weight:700;color:#8e8e8e;border-radius:5px;transition:.3s}.page .page-container .page-right .nav-ai ul .active1{color:#333}.page .page-container .page-right .nav-ai ul .active1 div:after{content:\"\";position:absolute;left:0;bottom:0;width:100%;border-bottom:4px solid #8e8e8e;border-radius:10px;margin-bottom:-6px}.page .page-container .page-right .nav-ai ul li div{cursor:pointer;text-align:center;position:relative}.page .page-container .page-right .nav-ai .icon{cursor:pointer;margin-top:20%;width:25px;height:25px;align-content:center}.page .page-container .page-right .ai-panel{right:2%;background-color:#fafafa;width:95%;z-index:1}.page .page-container .page-right .ai-panel .ai-tool-grid{display:flex;flex-wrap:wrap}.page .page-container .page-right .ai-panel .ai-tool-grid ion-card{max-width:33%}.page .page-container .page-right .ai-panel div::-webkit-scrollbar{display:none}.page .page-container .page-right .ai-panel .ai-write{width:515px}.page .page-container .page-right .ai-panel .ai-write .search-bar{height:40px;width:100%;margin-left:15px}.page .page-container .page-right .ai-panel .ai-write ion-col{background-color:#fafafa;border:solid 2px #fafafa;text-align:center;padding:0;margin-left:3%}.page .page-container .page-right .ai-panel .ai-write .card{max-height:150px;max-width:220px;height:15vh;width:16vw;cursor:pointer}.page .page-container .page-right .ai-panel .ai-write .card .card-image{margin-right:80%}.page .page-container .page-right .ai-panel .ai-write .card ion-card-header{padding:6%}.page .page-container .page-right .ai-panel .ai-write .card ion-card-subtitle{font-weight:600;text-align:left}.page .page-container .page-right .ai-panel .ai-write .card ion-card-content{text-align:left;white-space:pre-line;font-size:12px;margin-left:6%;padding:0}.page .page-container .page-right .ai-panel .ai-write .card-image{background:#fff;box-shadow:0 1px 4px #0000000a,0 4px 10px #00000014;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}.page .page-container .page-right .ai-panel .ai-polish{margin-top:10px;background-color:#fafafa}.page .page-container .page-right .ai-panel .ai-polish textarea.ant-input{max-width:93%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.page .page-container .page-right .ai-panel .ai-polish ::-webkit-scrollbar{width:4px;border-radius:3px}.page .page-container .page-right .ai-panel .ai-polish ::-webkit-scrollbar-thumb{background-color:#dddee0;border-radius:2px}.page .page-container .page-right .ai-panel .ai-polish .ai-polish-button{text-align:right;margin-right:21px}.page .page-container .page-right .ai-panel .ai-polish .ai-polish-button button{margin-left:15px}.page .page-container .page-right .ai-panel .ai-polish .copy{text-align:right;margin-right:7%;cursor:pointer}.page .page-container .page-right .ai-panel .ai-proofread{height:73vh;margin-top:2%;position:sticky;top:0}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container{width:100%;z-index:2}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems{display:flex;justify-content:space-around;position:sticky;top:0;padding-left:15px;padding-right:15px}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems .showItem{display:flex;flex-shrink:0;cursor:pointer;gap:8px;padding:12px 15px;background:#fff;border:1px solid #f9fafb;box-shadow:0 1px 2px #1018280d;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems .active1{color:#333;font-weight:700}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel{margin-top:10%;margin-left:2.3%;height:61vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error{display:flex;text-align:center;margin-bottom:5%;width:90%;height:6vh;margin-left:4%;background:#fff;border:1px solid #f9fafb;box-shadow:0 1px 2px #1018280d;line-height:6vh}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .alert-point{color:#ff7a7a;margin-left:6%;margin-right:5%;font-size:20px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .alert-point-gray{color:#8189a9;font-size:10px;margin-right:1%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .error-content{margin-right:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .right-content{margin-left:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel{position:sticky;top:0;margin-top:4%;margin-left:6.8%;width:91%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content-suggest{display:flex;cursor:pointer;padding:5% 3%;height:6%;width:100%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content-suggest .content-suggest-title{margin-left:3%;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content{width:98%;height:55vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content .content-title{margin:3% 4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content ol{margin:3% 4%;counter-reset:section}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content li:before{counter-increment:section;content:\"Section \" counter(section) \". \"}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel{margin-top:2%;margin-left:6.8%;width:95%;margin-bottom:2%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .icon{width:16px;height:16px;display:inline-block;margin-top:3px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard{display:flex;margin-left:-1%;margin-top:3%;height:5%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .itemChoose{background-color:#eaecf0}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item{display:flex;height:76%;width:23%;padding:6px 8px;cursor:pointer}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item .text{font-weight:bolder;margin-right:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item .number{font-weight:bolder;margin-right:1%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .statusIcon{border-radius:50%;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:18px;height:18px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list{height:61vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card{box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a;width:95%;height:auto;margin-top:3%;padding:2% 3%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card .item{display:flex}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card .card-content{margin-top:3%;margin-bottom:3%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .statusIcon{border-radius:50%;width:18px;height:18px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel{margin-top:2%;margin-left:6.8%;width:91%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text-summary{display:flex;cursor:pointer;padding:5% 3%;height:6%;width:100%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text-summary .text-summary-title{margin-left:3%;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text{width:100%;height:57vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text .text-title{margin:3% 4%;font-weight:700}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text p{margin:3% 4%}.page .page-container .page-right .ai-panel .ai-img{width:480px}.page .page-container .page-right .ai-panel .ai-img .ai-img-search{display:flex;height:4%;width:100%;margin-left:4%;margin-top:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-input{width:65%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-input input{height:100%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-button{margin-left:5%;margin-top:-.8%}.page .page-container .page-right .ai-panel .ai-img .img-tip{display:flex;text-align:center;justify-content:center;margin-top:20%;width:95%}.page .page-container .page-right .ai-panel .ai-img .img-tip .bg-img{width:65%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip{display:flex;justify-content:center;text-align:center;margin-top:2%;margin-right:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip h1{font-weight:600}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip-list{display:flex;justify-content:center;text-align:center;margin-top:2%;margin-right:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip-list .pce-inner-tip-point{display:inline-block;margin-top:2%;margin-right:1%;height:8px;width:8px;border-radius:50%;background-color:#4b4b4b}\n"] }]
361
- }], ctorParameters: () => [{ type: i1.ModalController }, { type: i1.AlertController }, { type: i2.MatDialog }, { type: i0.ChangeDetectorRef }, { type: i3.ClipboardService }, { type: i4.DraftService }, { type: i5.Router }, { type: i6.NovaUploadService }, { type: i7.PersonService }], propDecorators: { editorComp: [{
362
- type: ViewChild,
363
- args: ["editorComp"]
364
- }], article: [{
365
- type: Input
366
- }], onClose: [{
367
- type: Output
368
- }], book: [{
369
- type: Input
370
- }], readOnly: [{
371
- type: Input
372
- }] } });
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm0tYXJ0aWNsZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi90ZXh0L2ZtLWFydGljbGUtZWRpdG9yL2ZtLWFydGljbGUtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ztb2RlLW5nL3NyYy9saWIvdGV4dC9mbS1hcnRpY2xlLWVkaXRvci9mbS1hcnRpY2xlLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWdCLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBNEIsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBSW5ILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFpQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFvQixNQUFNLFlBQVksQ0FBQztBQUNyRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVsRSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQzVELFFBQVEsQ0FBQyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQTtBQTJCeEUsTUFBTSxPQUFPLHdCQUF3QjtJQVduQyxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFZLEVBQUUsU0FBZTtRQUN0QyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUE7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFBO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQTtRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBO1FBQ25CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBZUQsY0FBYztRQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFNO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ3hCLGVBQWU7UUFDZixJQUFJLFdBQVcsR0FBRztZQUNoQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGdGQUFnRixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7U0FDN0gsQ0FBQTtRQUNELGdCQUFnQjtRQUNoQixJQUFJLFVBQVUsR0FBRyxJQUFJLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3JELDhDQUE4QztRQUM5Qyx3QkFBd0I7UUFDeEIsSUFBSSxPQUErQixDQUFBO1FBQ25DLFVBQVUsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUE7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDOUQsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7UUFDekIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFBO1lBQ25DLElBQUksT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTtnQkFDekIsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQ0QsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDOUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQ3hFLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQWMsRUFBRSxPQUFhO1FBQzFDLHlCQUF5QjtRQUN6QixJQUFJLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ3JCLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1lBQ3pGLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtZQUM5QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDekIsQ0FBQztRQUNELElBQUksU0FBUyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBQ0QsSUFBSSxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFNO1lBQ3pCLElBQUksU0FBUyxHQUFRLEVBQUUsQ0FBQTtZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNqQix5QkFBeUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQ3pGLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFDZixDQUFDO1FBQ0QsSUFBSSxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFNO1lBQ3pCLElBQUksU0FBUyxHQUFRLEVBQUUsQ0FBQTtZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNqQixzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUN0RSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBQ2YsQ0FBQztRQUNELElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLElBQUksU0FBUyxHQUFRLEVBQUUsQ0FBQTtZQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU07WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQztnQkFDakIsZ0JBQWdCLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUMvRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLDhCQUE4QjtnQkFDOUIsMkVBQTJFO2dCQUMzRSxJQUFJO1lBRU4sQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUdELEtBQUssQ0FBQyxrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7UUFDRCxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDM0IsWUFBWTtRQUNaLDJEQUEyRDtRQUMzRCw0RkFBNEY7UUFDNUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUlELGdCQUFnQjtJQUNoQixLQUFLLENBQUMsWUFBWSxDQUFDLE9BRWxCO1FBQ0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztZQUM5QyxNQUFNLEVBQUUsSUFBSTtZQUNaLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTztZQUMzQiw4REFBOEQ7WUFDOUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2hCLENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxVQUFVO0lBQ1YsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFJRCxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQWdCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFHRCxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQW9CO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFLRCxXQUFXLENBQUMsT0FBZTtRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBQ0QsWUFDVSxTQUEwQixFQUMxQixlQUFnQztJQUN4QyxvQ0FBb0M7SUFDN0IsTUFBaUIsRUFDaEIsS0FBd0IsRUFDeEIsU0FBMkI7SUFDbkMsR0FBRztJQUNJLFNBQXVCLEVBQ3RCLE1BQWMsRUFDZCxPQUEwQixFQUMxQixVQUF3QjtRQVZ4QixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFFakMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUU1QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFjO1FBMU14QixZQUFPLEdBQTBCLElBQUksWUFBcUIsQ0FBQTtRQUkzRCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBNkJuQyxVQUFLLEdBQVcsT0FBTyxDQUFBO1FBRXZCLGlCQUFpQjtRQUNqQixZQUFPLEdBQXVCLEVBQUUsQ0FBQTtRQUVoQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUdoQyxlQUFVLEdBQVcsRUFBRSxDQUFBO1FBRXZCLGlCQUFZLEdBQWlCLEVBQUUsQ0FBQTtRQUMvQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQXdGOUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQW9CMUIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFlcEIsUUFBUTtRQUNSLFVBQUssR0FBRyxNQUFNLENBQUE7UUFPZCxhQUFRLEdBQUcsTUFBTSxDQUFBO1FBS2pCLGlCQUFZLEdBQUcsSUFBSSxDQUFBO1FBMkJuQixVQUFLLEdBQUc7WUFDTixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsa0NBQWtDLEVBQUU7WUFDMUk7Z0JBQ0UsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFO29CQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQTtnQkFDckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsaUNBQWlDO2FBQzlFO1lBQ0QsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsaUNBQWlDLEVBQUU7WUFDdkosRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsaUNBQWlDLEVBQUU7WUFDMUosRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxpQ0FBaUMsRUFBRTtZQUMvSixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxpQ0FBaUMsRUFBRTtTQUMzSixDQUFDO1FBaUVGLGtCQUFhLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUEvRWhDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLDRCQUE0QjtJQUM5QixDQUFDO0lBY0QsWUFBWTtRQUVWLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFzQixDQUFDO1FBRTFFLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFDRCx5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLGtDQUFrQztJQUNsQyxJQUFJO0lBRUo7O09BRUc7SUFHSDs7O09BR0c7SUFDSCxLQUFLLENBQUMscUJBQXFCLENBQUMsU0FBb0I7UUFDOUMsSUFBSSxTQUFTLEdBQVEsRUFBRSxDQUFBO1FBQ3ZCLFNBQVMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFBO1FBQy9CLHFCQUFxQixDQUFDLEdBQUUsRUFBRSxHQUFDLENBQUMsRUFBQztZQUMzQixTQUFTLEVBQUMsSUFBSSxDQUFDLFNBQVM7WUFDeEIsT0FBTyxFQUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLElBQUksQ0FBQyxVQUFVO1NBQUUsQ0FBQyxDQUFDO1FBQ2xKLE9BQU07UUFFTixJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ2pCLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwSCx5QkFBeUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4RSxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxJQUFJLENBQUMsVUFBVSxFQUFDLENBQUM7WUFDL0ksc0JBQXNCLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hILGdCQUFnQixDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxJQUFJLENBQUMsU0FBUyxFQUFDLENBQUM7U0FDL0csRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ2pCLDhCQUE4QjtZQUM5QiwyRUFBMkU7WUFDM0UsSUFBSTtRQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUE4QixFQUFFLFNBQWMsRUFBRSxTQUFvQjtRQUNoRixXQUFXO1FBQ1gsU0FBUyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFBO1FBQ2hDLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDeEQsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixTQUFTLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtRQUMzQyxDQUFDO1FBQ0QsYUFBYTtRQUNiLElBQUksU0FBUyxHQUF5QixRQUFRLENBQUE7UUFFOUMsV0FBVztRQUNYLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQ3JELElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRTtZQUNwRCxZQUFZLEVBQUUsSUFBSSxFQUFFLG1CQUFtQjtTQUN4QyxDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pDLHdDQUF3QztZQUN4QyxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBS0QsV0FBVztRQUNULElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLEtBQUssQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsVUFBVTtRQUNwQyxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLE9BQU87UUFFL0IsZ0JBQWdCO1FBQ2hCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDMUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxPQUFPLEdBQVEsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDbEQsSUFBSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7b0JBQ2pCLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTO1FBQ1QsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hCLENBQUM7K0dBdlRVLHdCQUF3QjttR0FBeEIsd0JBQXdCLHFLQU54QjtZQUNULFlBQVksRUFBRSxpQkFBaUIsRUFBRSxVQUFVO1NBQzVDLG9JQ3ZFSCwrdjZEQXF5Qk0sd3ZZRDl1QkYsWUFBWSw2VkFBRSxXQUFXLHU5QkFBRSxtQkFBbUIsK0tBQzlDLFdBQVcsc2xEQUNYLGFBQWEscU9BQUUsZ0JBQWdCLDhCQUFFLGVBQWUsOEJBQUUsYUFBYSw4QkFBRSxjQUFjLDhCQUFFLGVBQWUsOEJBQUUsZUFBZSw4QkFDakgsYUFBYSw4QkFDYixlQUFlLDhCQUFFLGtCQUFrQiw0U0FBRSxjQUFjLDJXQUFFLGVBQWUsNE5BQUUsYUFBYSxvTEFBRSxjQUFjO2dCQUNuRyxHQUFHO2dCQUNILGtCQUFrQjtnQkFDbEIsR0FBRztnQkFDSCw0QkFBNEIsaUpBQzVCLG9CQUFvQix1S0FDcEIsZ0JBQWdCOzs0RkFVUCx3QkFBd0I7a0JBeEJwQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUI7d0JBQzlDLFdBQVc7d0JBQ1gsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxlQUFlO3dCQUNqSCxhQUFhO3dCQUNiLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjO3dCQUNuRyxHQUFHO3dCQUNILGtCQUFrQjt3QkFDbEIsR0FBRzt3QkFDSCw0QkFBNEI7d0JBQzVCLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixpQ0FBaUM7cUJBRWxDLGFBQ1U7d0JBQ1QsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFVBQVU7cUJBQzVDO3FUQUt3QixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRWQsT0FBTztzQkFBZixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBRUUsSUFBSTtzQkFBWixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgTnpUb29sVGlwTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC90b29sdGlwJztcclxuaW1wb3J0IHsgTnpJbnB1dE1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaW5wdXQnO1xyXG5pbXBvcnQgeyBOekRpdmlkZXJNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2RpdmlkZXInO1xyXG5pbXBvcnQgeyBOekRyb3BEb3duTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9kcm9wZG93bic7XHJcbmltcG9ydCB7IE56RW1wdHlNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2VtcHR5JztcclxuaW1wb3J0IHsgTnpBdmF0YXJNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2F2YXRhcic7XHJcbmltcG9ydCB7IE56UG9wb3Zlck1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvcG9wb3Zlcic7XHJcbmltcG9ydCB7IE56UGlwZXNNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3BpcGVzJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IFF1aWxsLCB7IFJhbmdlIH0gZnJvbSAncXVpbGwnO1xyXG5pbXBvcnQgaGxqcyBmcm9tIFwiaGlnaGxpZ2h0LmpzXCI7XHJcbmltcG9ydCB7IEFydGljbGVFZGl0b3JUb3BiYXJDb21wb25lbnQgfSBmcm9tICcuL2FydGljbGUtZWRpdG9yLXRvcGJhci9hcnRpY2xlLWVkaXRvci10b3BiYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVGFza0RvY3VtZW50U2VsZWN0IH0gZnJvbSAnLi90YXNrcy90YXNrLWRvY3VtZW50LXNlbGVjdCc7XHJcbmltcG9ydCB7IEFnZW50VGFza1N0ZXAgfSBmcm9tICcuLi8uLi9jb3JlL2FnZW50L3Rhc2svYWdlbnQudGFzayc7XHJcbmltcG9ydCB7IEZtQWdlbnRUYXNrQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWlnYy9hZ2VudC9mbS1hZ2VudC10YXNrL2ZtLWFnZW50LXRhc2suY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFza0FydGljbGVXcml0aW5nT3B0aW9ucyB9IGZyb20gJy4vdGFza3MvdGFzay1hcnRpY2xlLXdyaXRpbmctb3B0aW9ucyc7XHJcbmltcG9ydCB7IFRhc2tBcnRpY2xlT3V0bGluZSB9IGZyb20gJy4vdGFza3MvdGFzay1hcnRpY2xlLW91dGxpbmUnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IENsaXBib2FyZFNlcnZpY2UsIEZtb2RlQ2hhdENvbXBsZXRpb24sIEZtb2RlQ2hhdE1lc3NhZ2UgfSBmcm9tICcuLi8uLi9haWdjJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFsZXJ0Q29udHJvbGxlciwgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XHJcbmltcG9ydCB7IFRhc2tBcnRpY2xlT3V0bGluZUVkaXQgfSBmcm9tICcuL3Rhc2tzL3Rhc2stYXJ0aWNsZS1vdXRsaW5lLWVkaXQnO1xyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgVGFza0FydGljbGVEcmFmdCB9IGZyb20gJy4vdGFza3MvdGFzay1hcnRpY2xlLWRyYWZ0LWNyZWF0ZSc7XHJcbmltcG9ydCB7IERyYWZ0U2VydmljZSB9IGZyb20gJy4vZHJhZnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEZtVGV4dFF1aWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vZm0tdGV4dC1xdWlsbC9mbS10ZXh0LXF1aWxsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE91dGxpbmVDb3VudFBpcGUgfSBmcm9tICcuL291dGxpbmUtY291bnQucGlwZSc7XHJcbmltcG9ydCB7IEZtQXJ0aWNsZU91dGxpbmVMZWZ0aXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZm0tYXJ0aWNsZS1vdXRsaW5lLWxlZnRpdGVtL2ZtLWFydGljbGUtb3V0bGluZS1sZWZ0aXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUYXNrQXJ0aWNsZVByZXZpZXcgfSBmcm9tICcuL3Rhc2tzL3Rhc2stYXJ0aWNsZS1wcmV2aWV3JztcclxuXHJcbmltcG9ydCBQYXJzZSBmcm9tIFwicGFyc2VcIjtcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuaW1wb3J0IHsgTm92YVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9yYWdlL3NlcnZpY2UtdXBsb2FkL25vdmEtdXBsb2FkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFnbm9zdGljIH0gZnJvbSAnQGF3ZXNvbWUtY29yZG92YS1wbHVnaW5zL2RpYWdub3N0aWMvbmd4JztcclxuXHJcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xyXG5pbXBvcnQgeyBjbG9zZU91dGxpbmUsIGNvcHlPdXRsaW5lLCBjbG91ZERvbmVPdXRsaW5lLCBjcmVhdGVPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xyXG5pbXBvcnQgeyB0YXNrQXJ0aWNsZUdlbmVyYXRpb24gfSBmcm9tICcuL3Rhc2stYXJ0aWNsZS1nZW5lcmF0aW9uJztcclxuaW1wb3J0IHsgUGVyc29uU2VydmljZSB9IGZyb20gJy4uLy4uL3BlcnNvbi9wZXJzb24uc2VydmljZSc7XHJcbmFkZEljb25zKHsgY2xvc2VPdXRsaW5lLCBjb3B5T3V0bGluZSwgY2xvdWREb25lT3V0bGluZSwgY3JlYXRlT3V0bGluZSB9KVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZm0tYXJ0aWNsZS1lZGl0b3InLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIElvbmljTW9kdWxlLFxyXG4gICAgTnpJbnB1dE1vZHVsZSwgTnpEcm9wRG93bk1vZHVsZSwgTnpEaXZpZGVyTW9kdWxlLCBOekVtcHR5TW9kdWxlLCBOekF2YXRhck1vZHVsZSwgTnpQb3BvdmVyTW9kdWxlLCBOelRvb2xUaXBNb2R1bGUsXHJcbiAgICBOelBpcGVzTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgLy8gXHJcbiAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgICAvLyBcclxuICAgIEFydGljbGVFZGl0b3JUb3BiYXJDb21wb25lbnQsXHJcbiAgICBGbVRleHRRdWlsbENvbXBvbmVudCxcclxuICAgIE91dGxpbmVDb3VudFBpcGUsXHJcbiAgICBGbUFydGljbGVPdXRsaW5lTGVmdGl0ZW1Db21wb25lbnQsXHJcblxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBEcmFmdFNlcnZpY2UsIE5vdmFVcGxvYWRTZXJ2aWNlLCBEaWFnbm9zdGljLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZtLWFydGljbGUtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mbS1hcnRpY2xlLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm1BcnRpY2xlRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKFwiZWRpdG9yQ29tcFwiKSBlZGl0b3JDb21wOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXHJcbiAgLy8gQFZpZXdDaGlsZChcInRleHRRdWlsbFwiKSB0ZXh0UXVpbGw6IEZtVGV4dFF1aWxsQ29tcG9uZW50IHwgdW5kZWZpbmVkXHJcbiAgQElucHV0KCkgYXJ0aWNsZTogUGFyc2UuT2JqZWN0IHwgdW5kZWZpbmVkO1xyXG4gIEBPdXRwdXQoKSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+XHJcblxyXG4gIEBJbnB1dCgpIGJvb2s6IFBhcnNlLk9iamVjdCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KCkgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcXVpbGw6IFF1aWxsIHwgdW5kZWZpbmVkXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5hcnRpY2xlPy5pZCkge1xyXG4gICAgICB0aGlzLmRyYWZ0U2Vydj8ubG9hZEFydGljbGVEcmFmdCh0aGlzLmFydGljbGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q29udGVudChjb250ZW50OiBhbnksIGFycmF5SXRlbT86IGFueSkge1xyXG4gICAgaWYgKGFycmF5SXRlbSkge1xyXG4gICAgICBhcnJheUl0ZW0uY29udGVudCA9IGNvbnRlbnRcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXJ0aWNsZT8uc2V0KCdjb250ZW50JywgY29udGVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRlbnRDaGFuZ2VkID0gdHJ1ZTtcclxuICB9XHJcbiAgc2VsZWN0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0UmFuZ2UgPSBldmVudD8ucmFuZ2VcclxuICAgIHRoaXMuc2VsZWN0VGV4dCA9IGV2ZW50Py50ZXh0XHJcbiAgICB0aGlzLnNlbGVjdFF1aWxsID0gZXZlbnQ/LnF1aWxsXHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgZ29PcHRpbWl6ZVRleHQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RDaGFuZ2UoZXZlbnQpXHJcbiAgICB0aGlzLmFpdGFiID0gXCJBSea2puiJslwiXHJcbiAgICB0aGlzLm9wdGltaXplQ29udGVudCgpO1xyXG4gIH1cclxuXHJcbiAgdGl0bGU6IHN0cmluZyA9IGDmraTlpITmmK/moIfpophgXHJcblxyXG4gIC8qKuaWh+eroOWGheWuue+8muWIpOWumuaYr+WQpuabtOaUuSAqL1xyXG4gIGNvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGBgXHJcbiAgb2xkQ29udGVudDogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbiAgY29udGVudENoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKirmrrXokL3lhoXlrrnvvJrpgInkuK3lj4rmtqboibIgKi9cclxuICBzZWxlY3RRdWlsbDogUXVpbGwgfCB1bmRlZmluZWRcclxuICBzZWxlY3RUZXh0OiBzdHJpbmcgPSBgYFxyXG4gIHNlbGVjdFJhbmdlOiBSYW5nZSB8IHVuZGVmaW5lZFxyXG4gIG9wdGltaXplVGV4dDogc3RyaW5nIHwgYW55ID0gYGBcclxuICBpc09wdGltaXppbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvcHRpbWl6ZSQ6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuICBjYW5jZWxPcHRpbWl6ZSgpIHtcclxuICAgIHRoaXMuaXNPcHRpbWl6aW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLm9wdGltaXplJD8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgb3B0aW1pemVDb250ZW50KCkge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdFRleHQpIHJldHVyblxyXG4gICAgdGhpcy5pc09wdGltaXppbmcgPSB0cnVlXHJcbiAgICAvLyDliJvlu7rkuIrkuIvmlofmj5DnpLror43mtojmga/liJfooahcclxuICAgIGxldCBtZXNzYWdlTGlzdCA9IFtcclxuICAgICAgeyByb2xlOiBcInVzZXJcIiwgY29udGVudDogYOacieauteaWh+Wtl+imgea2puiJsu+8jOebrueahOaYr+aPkOmrmOWFtuS4k+S4muaAp+WSjOa4heaZsOW6puOAguivt+aCqOiwg+aVtOivreiogO+8jOehruS/nemAu+i+kea1geeVhe+8jOW5tuS9v+eUqOihjOS4muebuOWFs+acr+ivreOAguWQjOaXtu+8jOivt+ajgOafpeW5tuS/ruato+S7u+S9leivreazlemUmeivr+OAguebtOaOpei/lOWbnua2puiJsuWQjuWGheWuueOAgui/meaYr+WOn+aWhzoke3RoaXMuc2VsZWN0VGV4dH1gIH0sXHJcbiAgICBdXHJcbiAgICAvLyDliJvlu7rlubblj5HotbfkuIDmnaHmlrDnmoTmtojmga/ooaXlhahcclxuICAgIGxldCBjb21wbGV0aW9uID0gbmV3IEZtb2RlQ2hhdENvbXBsZXRpb24obWVzc2FnZUxpc3QpXHJcbiAgICAvLyBjb21wbGV0aW9uLm1vZGVsID0gXCJncHQtNC10dXJiby0yMDI0LTA0LTA5XCJcclxuICAgIC8vIOaMgee7reabtOaWsOS6i+S7tuaOqOmAgeeahOa2iOaBr+S9k+WGheWuuee7keWumuiHs+a2iOaBr+WPmOmHj1xyXG4gICAgbGV0IG1lc3NhZ2U6IEZtb2RlQ2hhdE1lc3NhZ2UgfCBhbnlcclxuICAgIGNvbXBsZXRpb24ubW9kZWwgPSBcImZtb2RlLTQuMC1jbi0yNTZrXCJcclxuICAgIHRoaXMub3B0aW1pemUkID0gY29tcGxldGlvbi5zZW5kQ29tcGxldGlvbigpLnBpcGUoZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICBtZXNzYWdlLmNvbXBsZXRlID0gdHJ1ZVxyXG4gICAgfSkpLnN1YnNjcmliZShtZXNzYWdlID0+IHtcclxuICAgICAgdGhpcy5vcHRpbWl6ZVRleHQgPSBtZXNzYWdlLmNvbnRlbnRcclxuICAgICAgaWYgKG1lc3NhZ2U/LmNvbXBsZXRlKSB7XHJcbiAgICAgICAgdGhpcy5pc09wdGltaXppbmcgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMub3B0aW1pemUkPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBjb3B5T3B0aW1pemUoKSB7IC8vIOWkjeWItueUn+aIkOWGheWuuVxyXG4gICAgdGhpcy5jbGlwYm9hcmQuY29weVRvQ2xpcGJvYXJkKHRoaXMub3B0aW1pemVUZXh0KVxyXG4gIH1cclxuICBhcHBseU9wdGltaXplKCkgeyAvLyDmm7/mjaLnlJ/miJDlhoXlrrlcclxuICAgIGlmICh0aGlzLnNlbGVjdFJhbmdlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0UXVpbGw/LmRlbGV0ZVRleHQodGhpcy5zZWxlY3RSYW5nZT8uaW5kZXgsIHRoaXMuc2VsZWN0UmFuZ2UubGVuZ3RoKVxyXG4gICAgICB0aGlzLnNlbGVjdFF1aWxsPy5pbnNlcnRUZXh0KHRoaXMuc2VsZWN0UmFuZ2U/LmluZGV4LCB0aGlzLm9wdGltaXplVGV4dClcclxuICAgICAgdGhpcy5zZWxlY3RSYW5nZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZU5hdkV2ZW50KGV2ZW50VHlwZTogYW55LCBvcHRpb25zPzogYW55KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhldmVudFR5cGUpXHJcbiAgICBpZiAoZXZlbnRUeXBlID09IFwicHJldmlld1wiKSB7XHJcbiAgICAgIGlmICh0aGlzLmFydGljbGU/LmlkKSB7XHJcbiAgICAgICAgVGFza0FydGljbGVQcmV2aWV3KHsgbW9kYWw6dGhpcy5tb2RhbEN0cmwsZGlhbG9nOiB0aGlzLmRpYWxvZywgYXJ0aWNsZTogdGhpcy5hcnRpY2xlIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChldmVudFR5cGUgPT0gJ2JhY2ttZW51Jykge1xyXG4gICAgICBpZiAoIXRoaXMuYXJ0aWNsZT8uZ2V0KCdjaGFwdGVyJyk/LmdldCgnYm9vaycpPy5pZCkge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoXCIvZWRpdG9yL215L2hvbWVcIilcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uQ2xvc2UuZW1pdCh0cnVlKVxyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50VHlwZSA9PSAndG9nZ2xlLWFpdG9vbCcpIHtcclxuICAgICAgdGhpcy5pc0RpdkhpZGRlbiA9ICF0aGlzLmlzRGl2SGlkZGVuO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50VHlwZSA9PSAnc2F2ZScpIHtcclxuICAgICAgdGhpcy5zYXZlQXJ0aWNsZUNvbnRlbnQoKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudFR5cGUgPT0gXCJvcHRpb25zXCIpIHtcclxuICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHJldHVyblxyXG4gICAgICBsZXQgc2hhcmVEYXRhOiBhbnkgPSB7fVxyXG4gICAgICB0aGlzLmRvQXJ0aWNsZVRhc2soW1xyXG4gICAgICAgIFRhc2tBcnRpY2xlV3JpdGluZ09wdGlvbnMoeyBzaGFyZURhdGE6IHNoYXJlRGF0YSwgZGlhbG9nOiB0aGlzLmRpYWxvZywgZWRpdE9ubHk6IHRydWUgfSksXHJcbiAgICAgIF0sIHNoYXJlRGF0YSlcclxuICAgIH1cclxuICAgIGlmIChldmVudFR5cGUgPT0gXCJvdXRsaW5lXCIpIHtcclxuICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHJldHVyblxyXG4gICAgICBsZXQgc2hhcmVEYXRhOiBhbnkgPSB7fVxyXG4gICAgICB0aGlzLmRvQXJ0aWNsZVRhc2soW1xyXG4gICAgICAgIFRhc2tBcnRpY2xlT3V0bGluZUVkaXQoeyBzaGFyZURhdGE6IHNoYXJlRGF0YSwgZGlhbG9nOiB0aGlzLmRpYWxvZyB9KSxcclxuICAgICAgXSwgc2hhcmVEYXRhKVxyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50VHlwZSA9PSBcImRyYWZ0XCIpIHtcclxuICAgICAgbGV0IHNoYXJlRGF0YTogYW55ID0ge31cclxuICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHJldHVyblxyXG4gICAgICB0aGlzLmRvQXJ0aWNsZVRhc2soW1xyXG4gICAgICAgIFRhc2tBcnRpY2xlRHJhZnQoeyBpc1NlbGVjdGVkTW9kZTogdHJ1ZSwgc2hhcmVEYXRhOiBzaGFyZURhdGEsIGRpYWxvZzogdGhpcy5kaWFsb2csbW9kYWxDdHJsOnRoaXMubW9kYWxDdHJsIH0pLFxyXG4gICAgICBdLCBzaGFyZURhdGEsICgpID0+IHtcclxuICAgICAgICAvLyBpZih0aGlzPy50ZXh0UXVpbGw/LnF1aWxsKXtcclxuICAgICAgICAvLyB0aGlzLnRleHRRdWlsbC5xdWlsbC5yb290LmlubmVySFRNTCA9IHNoYXJlRGF0YT8uYXJ0aWNsZT8uZ2V0KFwiY29udGVudFwiKVxyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1NhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFzeW5jIHNhdmVBcnRpY2xlQ29udGVudCgpIHtcclxuICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xyXG4gICAgLy8gdGhpcy5hcnRpY2xlPy5zZXQoXCJjb250ZW50XCIsdGhpcy50ZXh0UXVpbGw/LnF1aWxsPy5yb290Py5pbm5lckhUTUwpXHJcbiAgICBpZiAoIXRoaXMuYXJ0aWNsZT8uZ2V0KFwiYXV0aG9yXCIpPy5pZCkge1xyXG4gICAgICB0aGlzLmFydGljbGU/LnNldChcImF1dGhvclwiLCBQYXJzZS5Vc2VyLmN1cnJlbnQoKT8udG9Qb2ludGVyKCkpXHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmFydGljbGU/LnNhdmUoKTtcclxuICAgIC8vIOS/ruato+aWh+eroOWGheWuueWvueavlOWAvFxyXG4gICAgLy8gdGhpcy5vbGRDb250ZW50ID0gdGhpcy50ZXh0UXVpbGw/LnF1aWxsPy5yb290Py5pbm5lckhUTUxcclxuICAgIC8vIGlmKHRoaXMub2xkQ29udGVudCAmJiB0aGlzLmNvbnRlbnQpIHRoaXMuY29udGVudENoYW5nZWQgPSB0aGlzLmNvbnRlbnQgIT0gdGhpcy5vbGRDb250ZW50XHJcbiAgICB0aGlzLmNvbnRlbnRDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICAvLyB0aGlzLm9uQ2xvc2UuZW1pdCh0cnVlKVxyXG4gICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCh0cnVlKVxyXG4gIH1cclxuXHJcbiAgaXNEaXZIaWRkZW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIOS6pOS6kue7hOS7tu+8muS/oeaBr+aPkOekuiAqL1xyXG4gIGFzeW5jIHByZXNlbnRBbGVydChvcHRpb25zOiB7XHJcbiAgICBtZXNzYWdlOiBzdHJpbmdcclxuICB9KSB7XHJcbiAgICBjb25zdCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDb250cm9sbGVyLmNyZWF0ZSh7XHJcbiAgICAgIGhlYWRlcjogJ+aPkOekuicsXHJcbiAgICAgIHN1YkhlYWRlcjogb3B0aW9ucz8ubWVzc2FnZSxcclxuICAgICAgLy8gbWVzc2FnZTogJ0EgbWVzc2FnZSBzaG91bGQgYmUgYSBzaG9ydCwgY29tcGxldGUgc2VudGVuY2UuJyxcclxuICAgICAgYnV0dG9uczogWyflpb3nmoQnXSxcclxuICAgIH0pO1xyXG5cclxuICAgIGF3YWl0IGFsZXJ0LnByZXNlbnQoKTtcclxuICB9XHJcbiAgLyoq5YWo6YOoICovXHJcbiAgYWl0YWIgPSAnQUnlhpnkvZwnXHJcbiAgLy8gYWlUYWLliIfmjaJcclxuICBhc3luYyBhaVRhYihhaXRhYjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFpdGFiID0gYWl0YWI7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xpY2t0YWIgPSAn6K+t5rOV6ZSZ6K+vJ1xyXG4gIGFzeW5jIGNsaWNrVGFiKGNsaWNrdGFiOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY2xpY2t0YWIgPSBjbGlja3RhYjtcclxuICB9XHJcblxyXG4gIGRhc2hib2FyZHRhYiA9ICflhajpg6gnXHJcbiAgYXN5bmMgZGFzaGJvYXJkVGFiKGRhc2hib2FyZHRhYjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZHRhYiA9IGRhc2hib2FyZHRhYjtcclxuICB9XHJcblxyXG4gIC8v5b6q546v55Sf5oiQ5Y2h54mHXHJcbiAgc2VsZWN0ZWRDb250ZW50OiBzdHJpbmc7XHJcblxyXG4gIHNob3dDb250ZW50KGNvbnRlbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZENvbnRlbnQgPSBjb250ZW50O1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbW9kYWxDdHJsOiBNb2RhbENvbnRyb2xsZXIsXHJcbiAgICBwcml2YXRlIGFsZXJ0Q29udHJvbGxlcjogQWxlcnRDb250cm9sbGVyLFxyXG4gICAgLy8gcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgY2xpcGJvYXJkOiBDbGlwYm9hcmRTZXJ2aWNlLFxyXG4gICAgLy8gXHJcbiAgICBwdWJsaWMgZHJhZnRTZXJ2OiBEcmFmdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBudXBsb2FkOiBOb3ZhVXBsb2FkU2VydmljZSxcclxuICAgIHByaXZhdGUgcGVyc29uU2VydjpQZXJzb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ29udGVudCA9ICflm77niYcnO1xyXG4gICAgLy8gdGhpcy5wb2xpc2hDb250ZW50ID0gXCJcIjsgXHJcbiAgfVxyXG4gIGNhcmRzID0gW1xyXG4gICAgeyB0aXRsZTogJ+WFqOaWh+WIm+S9nCcsIGhhbmRsZTogKCkgPT4geyB0aGlzLnRhc2tBcnRpY2xlR2VuZXJhdGlvbigpIH0sIGNvbnRlbnQ6ICfmjInmraXpqqTlv6vpgJ/liJvkvZzkuIDnr4flrozmlbTnmoTmlofnq6AnLCBpbWFnZXVybDogJy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvd3JpdGUucG5nJyB9LFxyXG4gICAge1xyXG4gICAgICB0aXRsZTogJ+a2puiJsuaUueWGmScsIGhhbmRsZTogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWl0YWIgPSBcIkFJ5ram6ImyXCJcclxuICAgICAgfSwgY29udGVudDogJ+agueaNrumAieaute+8jOiwg+aVtOivreiogO+8jOmAu+i+kemhuueVheihqOi+vua4heaZsCcsIGltYWdldXJsOiAnLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy/lj6XlrZDnu63lhpkucG5nJ1xyXG4gICAgfSxcclxuICAgIHsgdGl0bGU6ICfmmbrog73mkZjopoEo5pyq5byA5pS+KScsIGhhbmRsZTogKCkgPT4geyB0aGlzLnByZXNlbnRBbGVydCh7IG1lc3NhZ2U6IFwi5pqC5pyq5byA5pS+77yM5pWs6K+35pyf5b6FXCIgfSkgfSwgY29udGVudDogJ+W/q+mAn+eUn+aIkOaWh+eroOaRmOimgScsIGltYWdldXJsOiAnLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy/mmbrog73mkZjopoEucG5nJyB9LFxyXG4gICAgeyB0aXRsZTogJ+WPpeWtkOe7reWGmSjmnKrlvIDmlL4pJywgaGFuZGxlOiAoKSA9PiB7IHRoaXMucHJlc2VudEFsZXJ0KHsgbWVzc2FnZTogXCLmmoLmnKrlvIDmlL7vvIzmlazor7fmnJ/lvoVcIiB9KSB9LCBjb250ZW50OiAn5qC55o2u5LiK5paH77yM57ut5YaZ5aSa5Liq5Y+l5a2QJywgaW1hZ2V1cmw6ICcuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL+WPpeWtkOe7reWGmS5wbmcnIH0sXHJcbiAgICB7IHRpdGxlOiAn5q616JC96K+E6K66KOacquW8gOaUviknLCBoYW5kbGU6ICgpID0+IHsgdGhpcy5wcmVzZW50QWxlcnQoeyBtZXNzYWdlOiBcIuaaguacquW8gOaUvu+8jOaVrOivt+acn+W+hVwiIH0pIH0sIGNvbnRlbnQ6ICfmoLnmja7mrrXokL3nibnngrnvvIzov5vooYzmnInpkojlr7nmgKfnmoTor4TorronLCBpbWFnZXVybDogJy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMv5Lqn5ZOB6K+E6K66LnBuZycgfSxcclxuICAgIHsgdGl0bGU6ICfmqKHmnb/lu7rorq4o5pyq5byA5pS+KScsIGhhbmRsZTogKCkgPT4geyB0aGlzLnByZXNlbnRBbGVydCh7IG1lc3NhZ2U6IFwi5pqC5pyq5byA5pS+77yM5pWs6K+35pyf5b6FXCIgfSkgfSwgY29udGVudDogJ+asoui/juS4juaIkeS7rOWPjemmiOaCqOeahOmcgOaxgicsIGltYWdldXJsOiAnLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy/mqKHmnb/lu7rorq4ucG5nJyB9LFxyXG4gIF07XHJcblxyXG4gIGVuYWJsZUJ1dHRvbigpIHtcclxuXHJcbiAgICBjb25zdCBzdGFydEJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGFydCcpIGFzIEhUTUxCdXR0b25FbGVtZW50O1xyXG5cclxuICAgIHN0YXJ0QnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICB9XHJcbiAgLy8gcG9saXNoQ29udGVudDogc3RyaW5nO1xyXG4gIC8vIENvcHkoY29udGVudDogc3RyaW5nKSB7XHJcbiAgLy8gICB0aGlzLnBvbGlzaENvbnRlbnQgPSBjb250ZW50O1xyXG4gIC8vIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWdlbnQg5bqP5YiX5Lu75YqhXHJcbiAgICovXHJcblxyXG5cclxuICAvKipcclxuICAgKiDmlofnq6DlhajmlofnlJ/miJBcclxuICAgKiBAcGFyYW0gYWZ0ZXJUYXNrIFxyXG4gICAqL1xyXG4gIGFzeW5jIHRhc2tBcnRpY2xlR2VuZXJhdGlvbihhZnRlclRhc2s/OiBGdW5jdGlvbikge1xyXG4gICAgbGV0IHNoYXJlRGF0YTogYW55ID0ge31cclxuICAgIHNoYXJlRGF0YS5jcmVhdGVOZXdEcmFmdCA9IHRydWVcclxuICAgIHRhc2tBcnRpY2xlR2VuZXJhdGlvbigoKT0+e30seyBcclxuICAgICAgbW9kYWxDdHJsOnRoaXMubW9kYWxDdHJsLFxyXG4gICAgICBhcnRpY2xlOnRoaXMuYXJ0aWNsZSxwZXJzb246IHRoaXMuYm9vaz8uZ2V0KFwicGVyc29uXCIpLCBib29rOiB0aGlzLmJvb2ssIHNoYXJlRGF0YTogc2hhcmVEYXRhLCBkaWFsb2c6IHRoaXMuZGlhbG9nLHBlcnNvblNlcnY6dGhpcy5wZXJzb25TZXJ2IH0pO1xyXG4gICAgcmV0dXJuXHJcblxyXG4gICAgdGhpcy5kb0FydGljbGVUYXNrKFtcclxuICAgICAgVGFza0RvY3VtZW50U2VsZWN0KHsgcGVyc29uOiB0aGlzLmJvb2s/LmdldChcInBlcnNvblwiKSwgYm9vazogdGhpcy5ib29rLCBzaGFyZURhdGE6IHNoYXJlRGF0YSwgZGlhbG9nOiB0aGlzLmRpYWxvZyB9KSxcclxuICAgICAgVGFza0FydGljbGVXcml0aW5nT3B0aW9ucyh7IHNoYXJlRGF0YTogc2hhcmVEYXRhLCBkaWFsb2c6IHRoaXMuZGlhbG9nIH0pLFxyXG4gICAgICBUYXNrQXJ0aWNsZU91dGxpbmUoeyBwZXJzb246IHRoaXMuYm9vaz8uZ2V0KFwicGVyc29uXCIpLCBib29rOiB0aGlzLmJvb2ssIHNoYXJlRGF0YTogc2hhcmVEYXRhLCBkaWFsb2c6IHRoaXMuZGlhbG9nICxwZXJzb25TZXJ2OnRoaXMucGVyc29uU2Vydn0pLFxyXG4gICAgICBUYXNrQXJ0aWNsZU91dGxpbmVFZGl0KHsgcGVyc29uOiB0aGlzLmJvb2s/LmdldChcInBlcnNvblwiKSwgYm9vazogdGhpcy5ib29rLCBzaGFyZURhdGE6IHNoYXJlRGF0YSwgZGlhbG9nOiB0aGlzLmRpYWxvZyB9KSxcclxuICAgICAgVGFza0FydGljbGVEcmFmdCh7IGlzU2VsZWN0ZWRNb2RlOiB0cnVlLCBzaGFyZURhdGE6IHNoYXJlRGF0YSwgZGlhbG9nOiB0aGlzLmRpYWxvZyAsbW9kYWxDdHJsOnRoaXMubW9kYWxDdHJsfSksXHJcbiAgICBdLCBzaGFyZURhdGEsICgpID0+IHtcclxuICAgICAgLy8gaWYodGhpcz8udGV4dFF1aWxsPy5xdWlsbCl7XHJcbiAgICAgIC8vIHRoaXMudGV4dFF1aWxsLnF1aWxsLnJvb3QuaW5uZXJIVE1MID0gc2hhcmVEYXRhPy5hcnRpY2xlPy5nZXQoXCJjb250ZW50XCIpXHJcbiAgICAgIC8vIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBkb0FydGljbGVUYXNrKHN0ZXBMaXN0OiBBcnJheTxBZ2VudFRhc2tTdGVwPiwgc2hhcmVEYXRhOiBhbnksIGFmdGVyVGFzaz86IEZ1bmN0aW9uKSB7XHJcbiAgICAvLyDlrprkuYnku7vliqHmgLvkvZPpmLbmrrVcclxuICAgIHNoYXJlRGF0YS5hcnRpY2xlID0gdGhpcy5hcnRpY2xlXHJcbiAgICBsZXQgd3JpdGluZ09wdGlvbnMgPSB0aGlzLmFydGljbGU/LmdldChcIndyaXRpbmdPcHRpb25zXCIpXHJcbiAgICBpZiAod3JpdGluZ09wdGlvbnMpIHtcclxuICAgICAgc2hhcmVEYXRhLndyaXRpbmdPcHRpb25zID0gd3JpdGluZ09wdGlvbnNcclxuICAgIH1cclxuICAgIC8vIOS7u+WKoeaJp+ihjOi/h+eoi+WFseS6q+aVsOaNrlxyXG4gICAgbGV0IHN0ZXBzTGlzdDogQXJyYXk8QWdlbnRUYXNrU3RlcD4gPSBzdGVwTGlzdFxyXG5cclxuICAgIC8vIOW8ueWHuuS7u+WKoeaPkOekuueql+WPo1xyXG4gICAgbGV0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oRm1BZ2VudFRhc2tDb21wb25lbnQsIHtcclxuICAgICAgZGF0YTogeyBzaGFyZURhdGE6IHNoYXJlRGF0YSwgc3RlcHNMaXN0OiBzdGVwc0xpc3QgfSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLCAvLyDnpoHmraLnlKjmiLflhbPpl63vvIzlv4XpobvnrYnlvoXmiafooYzov4fnqIvjgIJcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZygnVGhlIGRpYWxvZyB3YXMgY2xvc2VkJyk7XHJcbiAgICAgIGFmdGVyVGFzayAmJiBhZnRlclRhc2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdGVtcEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuXHJcbiAgdXBsb2FkSW1hZ2UoKSB7XHJcbiAgICBsZXQgdGhhdCA9IHRoaXM7XHJcbiAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgaW5wdXQudHlwZSA9ICdmaWxlJztcclxuICAgIGlucHV0LmFjY2VwdCA9ICdpbWFnZS8qJzsgLy8g5Y+q5o6l5Y+X5Zu+54mH5paH5Lu2XHJcbiAgICBpbnB1dC5tdWx0aXBsZSA9IGZhbHNlOyAvLyDnpoHmraLlpJrpgIlcclxuXHJcbiAgICAvLyDmt7vliqBjaGFuZ2Xkuovku7bnm5HlkKzlmahcclxuICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGFzeW5jICgpID0+IHtcclxuICAgICAgbGV0IGZpbGUgPSBpbnB1dD8uZmlsZXM/LlswXTtcclxuICAgICAgaWYgKGZpbGUpIHtcclxuICAgICAgICBsZXQgcmVzRmlsZTogYW55ID0gYXdhaXQgdGhhdC5udXBsb2FkLnVwbG9hZChmaWxlKVxyXG4gICAgICAgIGlmIChyZXNGaWxlPy51cmwpIHtcclxuICAgICAgICAgIHRoaXMuYXJ0aWNsZT8uc2V0KFwiaW1hZ2VcIiwgcmVzRmlsZT8udXJsKTtcclxuICAgICAgICAgIHRoaXMuYXJ0aWNsZT8uc2F2ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8g6Kem5Y+R6YCJ5oup5Zu+54mHXHJcbiAgICBpbnB1dC5jbGljaygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicGFnZVwiPlxyXG5cclxuICA8IS0tIOWvvOiIquagjyAtLT5cclxuICA8ZGl2IGNsYXNzPVwibmF2XCIgKm5nSWY9XCIhcmVhZE9ubHlcIj5cclxuICAgIDxmbS1hcnRpY2xlLWVkaXRvci10b3BiYXIgI3RvcGJhciBbYXJ0aWNsZV09XCJhcnRpY2xlXCIgW2lzU2F2aW5nXT1cImlzU2F2aW5nXCIgW2NvbnRlbnRDaGFuZ2VkXT1cImNvbnRlbnRDaGFuZ2VkXCIgKG9uTmF2RXZlbnQpPVwiaGFuZGxlTmF2RXZlbnQoJGV2ZW50KVwiPjwvZm0tYXJ0aWNsZS1lZGl0b3ItdG9wYmFyPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicGFnZS1jb250YWluZXJcIj5cclxuICAgIDwhLS0gKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCIgLS0+XHJcblxyXG4gICAgPCEtLSDnvJbovpHmlofmnKwgLS0+XHJcbiAgICA8IS0tICAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3ItdGV4dFwiIFtuZ0NsYXNzXT1cInsnY2VudGVyJzppc0RpdkhpZGRlbn1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVkaXRvci1tYWluXCI+XHJcblxyXG4gICAgICAgIDxkaXYgcm9sZT1cInRvb2xiYXJcIiBjbGFzcz1cInFsLXRvb2xiYXIgcWwtc25vd1wiICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPjxzcGFuIGNsYXNzPVwicWwtaGVhZGVyIHFsLXBpY2tlclwiPjxzcGFuIGNsYXNzPVwicWwtcGlja2VyLWxhYmVsXCIgdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIGFyaWEtY29udHJvbHM9XCJxbC1waWNrZXItb3B0aW9ucy0wXCI+PHN2ZyB2aWV3Qm94PVwiMCAwIDE4IDE4XCI+PHBvbHlnb24gY2xhc3M9XCJxbC1zdHJva2VcIiBwb2ludHM9XCI3IDExIDkgMTMgMTEgMTEgNyAxMVwiPjwvcG9seWdvbj48cG9seWdvbiBjbGFzcz1cInFsLXN0cm9rZVwiIHBvaW50cz1cIjcgNyA5IDUgMTEgNyA3IDdcIj48L3BvbHlnb24+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwicWwtcGlja2VyLW9wdGlvbnNcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0YWJpbmRleD1cIi0xXCIgaWQ9XCJxbC1waWNrZXItb3B0aW9ucy0wXCI+PHNwYW4gdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwicWwtcGlja2VyLWl0ZW1cIiBkYXRhLXZhbHVlPVwiMVwiPjwvc3Bhbj48c3BhbiB0YWJpbmRleD1cIjBcIiByb2xlPVwiYnV0dG9uXCIgY2xhc3M9XCJxbC1waWNrZXItaXRlbVwiIGRhdGEtdmFsdWU9XCIyXCI+PC9zcGFuPjxzcGFuIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cInFsLXBpY2tlci1pdGVtXCIgZGF0YS12YWx1ZT1cIjNcIj48L3NwYW4+PHNwYW4gdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwicWwtcGlja2VyLWl0ZW1cIiBkYXRhLXZhbHVlPVwiNFwiPjwvc3Bhbj48c3BhbiB0YWJpbmRleD1cIjBcIiByb2xlPVwiYnV0dG9uXCIgY2xhc3M9XCJxbC1waWNrZXItaXRlbVwiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjxzZWxlY3QgY2xhc3M9XCJxbC1oZWFkZXJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+PG9wdGlvbiB2YWx1ZT1cIjFcIj48L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiMlwiPjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCIzXCI+PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIjRcIj48L29wdGlvbj48b3B0aW9uIHNlbGVjdGVkPVwic2VsZWN0ZWRcIj48L29wdGlvbj48L3NlbGVjdD48L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj48YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInFsLWJvbGRcIiBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiIGFyaWEtbGFiZWw9XCJib2xkXCI+PHN2ZyB2aWV3Qm94PVwiMCAwIDE4IDE4XCI+PHBhdGggY2xhc3M9XCJxbC1zdHJva2VcIiBkPVwiTTUsNEg5LjVBMi41LDIuNSwwLDAsMSwxMiw2LjV2MEEyLjUsMi41LDAsMCwxLDkuNSw5SDVBMCwwLDAsMCwxLDUsOVY0QTAsMCwwLDAsMSw1LDRaXCI+PC9wYXRoPjxwYXRoIGNsYXNzPVwicWwtc3Ryb2tlXCIgZD1cIk01LDloNS41QTIuNSwyLjUsMCwwLDEsMTMsMTEuNXYwQTIuNSwyLjUsMCwwLDEsMTAuNSwxNEg1YTAsMCwwLDAsMSwwLDBWOUEwLDAsMCwwLDEsNSw5WlwiPjwvcGF0aD48L3N2Zz48L2J1dHRvbj48YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInFsLWl0YWxpY1wiIGFyaWEtcHJlc3NlZD1cImZhbHNlXCIgYXJpYS1sYWJlbD1cIml0YWxpY1wiPjxzdmcgdmlld0JveD1cIjAgMCAxOCAxOFwiPjxsaW5lIGNsYXNzPVwicWwtc3Ryb2tlXCIgeDE9XCI3XCIgeDI9XCIxM1wiIHkxPVwiNFwiIHkyPVwiNFwiPjwvbGluZT48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiNVwiIHgyPVwiMTFcIiB5MT1cIjE0XCIgeTI9XCIxNFwiPjwvbGluZT48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiOFwiIHgyPVwiMTBcIiB5MT1cIjE0XCIgeTI9XCI0XCI+PC9saW5lPjwvc3ZnPjwvYnV0dG9uPjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicWwtdW5kZXJsaW5lXCIgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIiBhcmlhLWxhYmVsPVwidW5kZXJsaW5lXCI+PHN2ZyB2aWV3Qm94PVwiMCAwIDE4IDE4XCI+PHBhdGggY2xhc3M9XCJxbC1zdHJva2VcIiBkPVwiTTUsM1Y5YTQuMDEyLDQuMDEyLDAsMCwwLDQsNEg5YTQuMDEyLDQuMDEyLDAsMCwwLDQtNFYzXCI+PC9wYXRoPjxyZWN0IGNsYXNzPVwicWwtZmlsbFwiIGhlaWdodD1cIjFcIiByeD1cIjAuNVwiIHJ5PVwiMC41XCIgd2lkdGg9XCIxMlwiIHg9XCIzXCIgeT1cIjE1XCI+PC9yZWN0Pjwvc3ZnPjwvYnV0dG9uPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicWwtbGlzdFwiIGFyaWEtcHJlc3NlZD1cImZhbHNlXCIgdmFsdWU9XCJidWxsZXRcIiBhcmlhLWxhYmVsPVwibGlzdDogYnVsbGV0XCI+PHN2ZyB2aWV3Qm94PVwiMCAwIDE4IDE4XCI+PGxpbmUgY2xhc3M9XCJxbC1zdHJva2VcIiB4MT1cIjZcIiB4Mj1cIjE1XCIgeTE9XCI0XCIgeTI9XCI0XCI+PC9saW5lPjxsaW5lIGNsYXNzPVwicWwtc3Ryb2tlXCIgeDE9XCI2XCIgeDI9XCIxNVwiIHkxPVwiOVwiIHkyPVwiOVwiPjwvbGluZT48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiNlwiIHgyPVwiMTVcIiB5MT1cIjE0XCIgeTI9XCIxNFwiPjwvbGluZT48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiM1wiIHgyPVwiM1wiIHkxPVwiNFwiIHkyPVwiNFwiPjwvbGluZT48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiM1wiIHgyPVwiM1wiIHkxPVwiOVwiIHkyPVwiOVwiPjwvbGluZT48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiM1wiIHgyPVwiM1wiIHkxPVwiMTRcIiB5Mj1cIjE0XCI+PC9saW5lPjwvc3ZnPjwvYnV0dG9uPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPjxzcGFuIGNsYXNzPVwicWwtYWxpZ24gcWwtcGlja2VyIHFsLWljb24tcGlja2VyXCI+PHNwYW4gY2xhc3M9XCJxbC1waWNrZXItbGFiZWxcIiB0YWJpbmRleD1cIjBcIiByb2xlPVwiYnV0dG9uXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgYXJpYS1jb250cm9scz1cInFsLXBpY2tlci1vcHRpb25zLTFcIj48c3ZnIHZpZXdCb3g9XCIwIDAgMTggMThcIj48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiM1wiIHgyPVwiMTVcIiB5MT1cIjlcIiB5Mj1cIjlcIj48L2xpbmU+PGxpbmUgY2xhc3M9XCJxbC1zdHJva2VcIiB4MT1cIjNcIiB4Mj1cIjEzXCIgeTE9XCIxNFwiIHkyPVwiMTRcIj48L2xpbmU+PGxpbmUgY2xhc3M9XCJxbC1zdHJva2VcIiB4MT1cIjNcIiB4Mj1cIjlcIiB5MT1cIjRcIiB5Mj1cIjRcIj48L2xpbmU+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwicWwtcGlja2VyLW9wdGlvbnNcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0YWJpbmRleD1cIi0xXCIgaWQ9XCJxbC1waWNrZXItb3B0aW9ucy0xXCI+PHNwYW4gdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwicWwtcGlja2VyLWl0ZW1cIj48c3ZnIHZpZXdCb3g9XCIwIDAgMTggMThcIj48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiM1wiIHgyPVwiMTVcIiB5MT1cIjlcIiB5Mj1cIjlcIj48L2xpbmU+PGxpbmUgY2xhc3M9XCJxbC1zdHJva2VcIiB4MT1cIjNcIiB4Mj1cIjEzXCIgeTE9XCIxNFwiIHkyPVwiMTRcIj48L2xpbmU+PGxpbmUgY2xhc3M9XCJxbC1zdHJva2VcIiB4MT1cIjNcIiB4Mj1cIjlcIiB5MT1cIjRcIiB5Mj1cIjRcIj48L2xpbmU+PC9zdmc+PC9zcGFuPjxzcGFuIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cInFsLXBpY2tlci1pdGVtXCIgZGF0YS12YWx1ZT1cImNlbnRlclwiPjxzdmcgdmlld0JveD1cIjAgMCAxOCAxOFwiPjxsaW5lIGNsYXNzPVwicWwtc3Ryb2tlXCIgeDE9XCIxNVwiIHgyPVwiM1wiIHkxPVwiOVwiIHkyPVwiOVwiPjwvbGluZT48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiMTRcIiB4Mj1cIjRcIiB5MT1cIjE0XCIgeTI9XCIxNFwiPjwvbGluZT48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiMTJcIiB4Mj1cIjZcIiB5MT1cIjRcIiB5Mj1cIjRcIj48L2xpbmU+PC9zdmc+PC9zcGFuPjxzcGFuIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cInFsLXBpY2tlci1pdGVtXCIgZGF0YS12YWx1ZT1cInJpZ2h0XCI+PHN2ZyB2aWV3Qm94PVwiMCAwIDE4IDE4XCI+PGxpbmUgY2xhc3M9XCJxbC1zdHJva2VcIiB4MT1cIjE1XCIgeDI9XCIzXCIgeTE9XCI5XCIgeTI9XCI5XCI+PC9saW5lPjxsaW5lIGNsYXNzPVwicWwtc3Ryb2tlXCIgeDE9XCIxNVwiIHgyPVwiNVwiIHkxPVwiMTRcIiB5Mj1cIjE0XCI+PC9saW5lPjxsaW5lIGNsYXNzPVwicWwtc3Ryb2tlXCIgeDE9XCIxNVwiIHgyPVwiOVwiIHkxPVwiNFwiIHkyPVwiNFwiPjwvbGluZT48L3N2Zz48L3NwYW4+PHNwYW4gdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwicWwtcGlja2VyLWl0ZW1cIiBkYXRhLXZhbHVlPVwianVzdGlmeVwiPjxzdmcgdmlld0JveD1cIjAgMCAxOCAxOFwiPjxsaW5lIGNsYXNzPVwicWwtc3Ryb2tlXCIgeDE9XCIxNVwiIHgyPVwiM1wiIHkxPVwiOVwiIHkyPVwiOVwiPjwvbGluZT48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiMTVcIiB4Mj1cIjNcIiB5MT1cIjE0XCIgeTI9XCIxNFwiPjwvbGluZT48bGluZSBjbGFzcz1cInFsLXN0cm9rZVwiIHgxPVwiMTVcIiB4Mj1cIjNcIiB5MT1cIjRcIiB5Mj1cIjRcIj48L2xpbmU+PC9zdmc+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PHNlbGVjdCBjbGFzcz1cInFsLWFsaWduXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPjxvcHRpb24gc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiPjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJjZW50ZXJcIj48L29wdGlvbj48b3B0aW9uIHZhbHVlPVwicmlnaHRcIj48L29wdGlvbj48b3B0aW9uIHZhbHVlPVwianVzdGlmeVwiPjwvb3B0aW9uPjwvc2VsZWN0Pjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicWwtY29kZS1ibG9ja1wiIGFyaWEtcHJlc3NlZD1cImZhbHNlXCIgYXJpYS1sYWJlbD1cImNvZGUtYmxvY2tcIj48c3ZnIHZpZXdCb3g9XCIwIDAgMTggMThcIj48cG9seWxpbmUgY2xhc3M9XCJxbC1ldmVuIHFsLXN0cm9rZVwiIHBvaW50cz1cIjUgNyAzIDkgNSAxMVwiPjwvcG9seWxpbmU+PHBvbHlsaW5lIGNsYXNzPVwicWwtZXZlbiBxbC1zdHJva2VcIiBwb2ludHM9XCIxMyA3IDE1IDkgMTMgMTFcIj48L3BvbHlsaW5lPjxsaW5lIGNsYXNzPVwicWwtc3Ryb2tlXCIgeDE9XCIxMFwiIHgyPVwiOFwiIHkxPVwiNVwiIHkyPVwiMTNcIj48L2xpbmU+PC9zdmc+PC9idXR0b24+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+PGJ1dHRvbiBjbGFzcz1cInFsLWFpLW9wdGltaXplXCI+QUk8L2J1dHRvbj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWhlYWRlclwiPlxyXG4gICAgICAgICAgPGlucHV0IFtuZ01vZGVsXT1cImFydGljbGU/LmdldCgndGl0bGUnKVwiIChuZ01vZGVsQ2hhbmdlKT1cImFydGljbGU/LnNldCgndGl0bGUnLCRldmVudClcIiB0eXBlPVwidGV4dFwiIC8+XHJcbiAgICAgICAgICA8IS0tIDxxdWlsbC1lZGl0b3IgWyhuZ01vZGVsKV09XCJ0aXRsZVwiIFttb2R1bGVzXT1cInt0b29sYmFyOiB0cnVlfVwiPjwvcXVpbGwtZWRpdG9yPiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJ0aWNsZS1pbmZvXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXJ0aWNsZT8uZ2V0KCdrZXl3b3JkcycpPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPGRpdj7lhbPplK7lrZfvvJo8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGtleSBvZiBhcnRpY2xlPy5nZXQoJ2tleXdvcmRzJylcIj57e2tleX19PC9tYXQtY2hpcD48L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFydGljbGU/LmdldCgnd3JpdGluZ09wdGlvbnMnKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVOYXZFdmVudCgnb3B0aW9ucycpXCI+6K6+ICDlrprvvJpcclxuICAgICAgICAgICAgICA8bWF0LWNoaXAgKm5nSWY9XCJhcnRpY2xlPy5nZXQoJ3dyaXRpbmdPcHRpb25zJyk/LndyaXRpbmdTdHlsZVwiPnt7YXJ0aWNsZT8uZ2V0KCd3cml0aW5nT3B0aW9ucycpPy53cml0aW5nU3R5bGV9fTwvbWF0LWNoaXA+XHJcbiAgICAgICAgICAgICAgPG1hdC1jaGlwICpuZ0lmPVwiYXJ0aWNsZT8uZ2V0KCd3cml0aW5nT3B0aW9ucycpPy53b3JkQ291bnRcIj7nuqZ7e2FydGljbGU/LmdldCgnd3JpdGluZ09wdGlvbnMnKT8ud29yZENvdW50fX3lrZc8L21hdC1jaGlwPjwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXJ0aWNsZT8uZ2V0KCdvdXRsaW5lSnNvbicpPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlTmF2RXZlbnQoJ291dGxpbmUnKVwiPuaPkCAg57qy77yaPG1hdC1jaGlwPnt7YXJ0aWNsZT8uZ2V0KCdvdXRsaW5lSnNvbicpIHwgb3V0bGluZUNvdW50fX3lrZc8L21hdC1jaGlwPjwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXJ0aWNsZT8uaWRcIiAoY2xpY2spPVwiaGFuZGxlTmF2RXZlbnQoJ2RyYWZ0JylcIj7nqL/ku7bnrrHvvJo8bWF0LWNoaXA+e3tkcmFmdFNlcnYuRHJhZnRDb3VudE1hcD8uW2FydGljbGU/LmlkfHwnJ10/LnRvdGFsIHx8IDB9feevhzwvbWF0LWNoaXA+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcnRpY2xlLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDwhLS0g5paH5pys57yW6L6R5Yy65Z+fOuS7hWNvbnRlbnTmraPmlocgLS0+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFydGljbGU/LmdldCgnY29udGVudEFycmF5Jyk/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8Zm0tdGV4dC1xdWlsbCAjdGV4dFF1aWxsIFtyZWFkT25seV09XCJyZWFkT25seVwiIFtjb250ZW50XT1cImFydGljbGU/LmdldCgnY29udGVudCcpXCIgKG9uQ29udGVudENoYW5nZSk9XCJzZXRDb250ZW50KCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvbkFJQ2xpY2spPVwiZ29PcHRpbWl6ZVRleHQoJGV2ZW50KVwiIChvblNlbGVjdENoYW5nZSk9XCJzZWxlY3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2ZtLXRleHQtcXVpbGw+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwhLS0g5paH5pys57yW6L6R5Yy65Z+fOuWQq+Wkp+e6suato+aWhyAtLT5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcnRpY2xlPy5nZXQoJ2NvbnRlbnRBcnJheScpPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhcnRpY2xlPy5nZXQoJ2NvbnRlbnRBcnJheScpO2xldCBpbmRleD1pbmRleDtcIj5cclxuICAgICAgICAgICAgICA8IS0tIOeroOiKguS/oeaBryAtLT5cclxuICAgICAgICAgICAgICA8IS0tIDxoMiBzdHlsZT1cIm1hcmdpbjowcHg7cGFkZGluZy1sZWZ0OjEycHg7XCIgKm5nSWY9XCJhcnRpY2xlPy5nZXQoJ291dGxpbmVKc29uJyk/LnNlY3Rpb25zPy5baW5kZXhdPy50aXRsZVwiPnt7YXJ0aWNsZT8uZ2V0KCdvdXRsaW5lSnNvbicpPy5zZWN0aW9ucz8uW2luZGV4XT8udGl0bGV9fTwvaDI+IC0tPlxyXG4gICAgICAgICAgICAgIDxmbS10ZXh0LXF1aWxsICN0ZXh0UXVpbGwgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCIgW2NvbnRlbnRdPVwiaXRlbT8uY29udGVudFwiIChvbkNvbnRlbnRDaGFuZ2UpPVwic2V0Q29udGVudCgkZXZlbnQsaXRlbSlcIlxyXG4gICAgICAgICAgICAgIChvbkFJQ2xpY2spPVwiZ29PcHRpbWl6ZVRleHQoJGV2ZW50KVwiIChvblNlbGVjdENoYW5nZSk9XCJzZWxlY3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPjwvZm0tdGV4dC1xdWlsbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICA8IS0tIEFJ5bel5YW3IC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFyZWFkT25seSAmJiAhaXNEaXZIaWRkZW5cIiBjbGFzcz1cInBhZ2UtcmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5hdi1haVwiPlxyXG4gICAgICAgIDwhLS0gQUnlip/og73mjInpkq4gLS0+XHJcbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiYWktYnRuXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzaG93Q29udGVudCgnQUkt5YaZ5L2cJylcIj5BSeWGmeS9nDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2hvd0NvbnRlbnQoJ0FJLea2puiJsicpXCI+QUnmtqboibI8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNob3dDb250ZW50KCfmoKHpmIUnKVwiPuagoemYhTwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2hvd0NvbnRlbnQoJ+WbvueJhycpXCI+5Zu+54mHPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzaG93Q29udGVudCgn6K+E6K66JylcIj7or4Torro8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgIDx1bCBjbGFzcz1cImFpLWJ0blwiPlxyXG4gICAgICAgICAgPGxpIGNsYXNzPVwiYWN0aXZlMFwiIChjbGljayk9XCJhaVRhYignQUnlhpnkvZwnKVwiIFtuZ0NsYXNzXT1cInsgJ2FjdGl2ZTEnOiBhaXRhYiA9PSAnQUnlhpnkvZwnIH1cIj5cclxuICAgICAgICAgICAgPGRpdj5BSeWGmeS9nDwvZGl2PlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDxsaSBjbGFzcz1cImFjdGl2ZTBcIiAoY2xpY2spPVwiYWlUYWIoJ0FJ5ram6ImyJylcIiBbbmdDbGFzc109XCJ7ICdhY3RpdmUxJzogYWl0YWIgPT0gJ0FJ5ram6ImyJyB9XCI+XHJcbiAgICAgICAgICAgIDxkaXY+QUnmtqboibI8L2Rpdj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8IS0tIDxsaSBjbGFzcz1cImFjdGl2ZTBcIiAoY2xpY2spPVwiYWlUYWIoJ+agoemYhScpXCIgW25nQ2xhc3NdPVwieyAnYWN0aXZlMSc6IGFpdGFiID09ICfmoKHpmIUnIH1cIj5cclxuICAgICAgICAgICAgPGRpdj7moKHpmIU8L2Rpdj5cclxuICAgICAgICAgIDwvbGk+IC0tPlxyXG4gICAgICAgICAgPGxpIGNsYXNzPVwiYWN0aXZlMFwiIChjbGljayk9XCJhaVRhYignQUnphY3lm74nKVwiIFtuZ0NsYXNzXT1cInsgJ2FjdGl2ZTEnOiBhaXRhYiA9PSAnQUnphY3lm74nIH1cIj5cclxuICAgICAgICAgICAgPGRpdj5BSemFjeWbvjwvZGl2PlxyXG4gICAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgPC91bD5cclxuICAgICAgICA8IS0tIEFJ5Yqf6IO96YCA5Ye65oyJ6ZKuIC0tPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJpY29uXCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIiAoY2xpY2spPVwidGhpcy5pc0RpdkhpZGRlbiA9ICF0aGlzLmlzRGl2SGlkZGVuO1wiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICA8IS0tIOW3peWFt+mdouadvyAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImFpLXBhbmVsXCI+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhaXRhYj09J0FJ5YaZ5L2cJ1wiIGNsYXNzPVwiYWktd3JpdGVcIj5cclxuICAgICAgICAgIDwhLS0g5pCc57SiIC0tPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1iYXJcIj5cclxuICAgICAgICAgICAgPGlvbi1zZWFyY2hiYXIgY29sb3I9XCJsaWdodFwiIHBsYWNlaG9sZGVyPVwi5pCc57Si5qih5p2/XCI+PC9pb24tc2VhcmNoYmFyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFpLXRvb2wtZ3JpZFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXJkIG9mIGNhcmRzXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jYXJkIGNsYXNzPVwiY2FyZFwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDUlO21heC13aWR0aDoyMTVweDtcIiAoY2xpY2spPVwiY2FyZD8uaGFuZGxlKClcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZSBjbGFzcz1cImNhcmQtaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cInt7Y2FyZC5pbWFnZXVybH19XCIgd2lkdGg9XCIyNVwiIGhlaWdodD1cIjI1XCIgYWx0PVwid3JpdGVcIj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlPnt7Y2FyZC50aXRsZX19PC9pb24tY2FyZC1zdWJ0aXRsZT5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICB7e2NhcmQuY29udGVudH19XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgPC9pb24tY2FyZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFpdGFiPT0nQUnmtqboibInXCIgY2xhc3M9XCJhaS1wb2xpc2hcIiBbZm9ybUdyb3VwXT1cInRlbXBGb3JtR3JvdXBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhaS1wb2xpc2gtaW5wdXRcIj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6OTUlO1wiPlxyXG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+6L6T5YWl5oiW6YCJ5Lit5bem5L6n5paH5pys5byA5aeL5ram6ImyPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IFsobmdNb2RlbCldPVwic2VsZWN0VGV4dFwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiByb3dzPVwiMTBcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJzZWxlY3RUZXh0XCIgcm93cz1cIjEwXCIgZm9ybUNvbnRyb2xOYW1lPVwiY29tbWVudFwiIG56LWlucHV0IHBsYWNlaG9sZGVyPVwi6L6T5YWl5oiW6YCJ5Lit5bem5L6n5paH5pys5byA5aeL5ram6ImyXCI+PC90ZXh0YXJlYT4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhaS1wb2xpc2gtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhaXNPcHRpbWl6aW5nXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgIChjbGljayk9XCJvcHRpbWl6ZUNvbnRlbnQoKVwiPuW8gOWni+a2puiJsjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNPcHRpbWl6aW5nXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJ3YXJuXCIgIChjbGljayk9XCJjYW5jZWxPcHRpbWl6ZSgpXCI+5YGc5q2i5ram6ImyPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwhLS0gPGlvbi1idXR0b24gaWQ9XCJzdGFydFwiIFtkaXNhYmxlZF09XCJmYWxzZVwiIChjbGljayk9XCJlbmFibGVCdXR0b24oKVwiPuW8gOWni+a2puiJsjwvaW9uLWJ1dHRvbj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhaS1wb2xpc2gtaW5wdXRcIj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6OTUlO1wiPlxyXG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+55Sf5oiQ5YaF5a65PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IFsobmdNb2RlbCldPVwib3B0aW1pemVUZXh0XCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIHJvd3M9XCIxMFwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhaS1wb2xpc2gtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWxlY3RSYW5nZT8ubGVuZ3RoXCIgbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImFwcGx5T3B0aW1pemUoKVwiPjxtYXQtaWNvbiBmb250SWNvbj1cImZsaXBcIj48L21hdC1pY29uPuabv+aNojwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjb3B5T3B0aW1pemUoKVwiPjxtYXQtaWNvbiBmb250SWNvbj1cImNvbnRlbnRfY29weVwiPjwvbWF0LWljb24+5aSN5Yi2PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwhLS0gPGlvbi1idXR0b24gaWQ9XCJzdGFydFwiIFtkaXNhYmxlZF09XCJmYWxzZVwiIChjbGljayk9XCJlbmFibGVCdXR0b24oKVwiPuW8gOWni+a2puiJsjwvaW9uLWJ1dHRvbj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvcHlcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjb3B5LW91dGxpbmVcIiBzdHlsZT1cImNvbG9yOiM0ZTgwZjRcIiAoY2xpY2spPVwiQ29weShwb2xpc2hDb250ZW50KVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFpdGFiPT0n5qCh6ZiFJ1wiIGNsYXNzPVwiYWktcHJvb2ZyZWFkXCI+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNob3dJdGVtcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNob3dJdGVtc1wiPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hvd0l0ZW1cIiAoY2xpY2spPVwiY2xpY2tUYWIoJ+WGheWuueW7uuiuricpXCIgW25nQ2xhc3NdPVwieyAnYWN0aXZlMSc6IGNsaWNrdGFiID09ICflhoXlrrnlu7rorq4nIH1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJsaW5lLWhlaWdodDogMTJweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDIwIDIyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEgMTBINU03IDE0SDVNMTMgNkg1TTE3IDkuNVY1LjhDMTcgNC4xMTk4NCAxNyAzLjI3OTc2IDE2LjY3MyAyLjYzODAzQzE2LjM4NTQgMi4wNzM1NCAxNS45MjY1IDEuNjE0NiAxNS4zNjIgMS4zMjY5OEMxNC43MjAyIDEgMTMuODgwMiAxIDEyLjIgMUg1LjhDNC4xMTk4NCAxIDMuMjc5NzYgMSAyLjYzODAzIDEuMzI2OThDMi4wNzM1NCAxLjYxNDYgMS42MTQ2IDIuMDczNTQgMS4zMjY5OCAyLjYzODAzQzEgMy4yNzk3NiAxIDQuMTE5ODQgMSA1LjhWMTYuMkMxIDE3Ljg4MDIgMSAxOC43MjAyIDEuMzI2OTggMTkuMzYyQzEuNjE0NiAxOS45MjY1IDIuMDczNTQgMjAuMzg1NCAyLjYzODAzIDIwLjY3M0MzLjI3OTc2IDIxIDQuMTE5ODQgMjEgNS44IDIxSDguNU0xOSAyMUwxNy41IDE5LjVNMTguNSAxN0MxOC41IDE4LjkzMyAxNi45MzMgMjAuNSAxNSAyMC41QzEzLjA2NyAyMC41IDExLjUgMTguOTMzIDExLjUgMTdDMTEuNSAxNS4wNjcgMTMuMDY3IDEzLjUgMTUgMTMuNUMxNi45MzMgMTMuNSAxOC41IDE1LjA2NyAxOC41IDE3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMTU3MEVGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPuWGheWuueW7uuiurjwvc3Bhbj5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hvd0l0ZW1cIiAoY2xpY2spPVwiY2xpY2tUYWIoJ+S6i+WunumqjOivgScpXCIgW25nQ2xhc3NdPVwieydhY3RpdmUxJzogY2xpY2t0YWI9PSfkuovlrp7pqozor4EnfVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImxpbmUtaGVpZ2h0OiAxMnB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMTggMjJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAxLjI2OTUzVjUuNDAwMDdDMTEgNS45NjAxMiAxMSA2LjI0MDE1IDExLjEwOSA2LjQ1NDA2QzExLjIwNDkgNi42NDIyMiAxMS4zNTc4IDYuNzk1MiAxMS41NDYgNi44OTEwOEMxMS43NTk5IDcuMDAwMDcgMTIuMDM5OSA3LjAwMDA3IDEyLjYgNy4wMDAwN0gxNi43MzA1TTYgMTVMOCAxN0wxMi41IDEyLjVNMTEgMUg1LjhDNC4xMTk4NCAxIDMuMjc5NzYgMSAyLjYzODAzIDEuMzI2OThDMi4wNzM1NCAxLjYxNDYgMS42MTQ2IDIuMDczNTQgMS4zMjY5OCAyLjYzODAzQzEgMy4yNzk3NiAxIDQuMTE5ODQgMSA1LjhWMTYuMkMxIDE3Ljg4MDIgMSAxOC43MjAyIDEuMzI2OTggMTkuMzYyQzEuNjE0NiAxOS45MjY1IDIuMDczNTQgMjAuMzg1NCAyLjYzODAzIDIwLjY3M0MzLjI3OTc2IDIxIDQuMTE5ODQgMjEgNS44IDIxSDEyLjJDMTMuODgwMiAyMSAxNC43MjAyIDIxIDE1LjM2MiAyMC42NzNDMTUuOTI2NSAyMC4zODU0IDE2LjM4NTQgMTkuOTI2NSAxNi42NzMgMTkuMzYyQzE3IDE4LjcyMDIgMTcgMTcuODgwMiAxNyAxNi4yVjdMMTEgMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj7kuovlrp7pqozor4E8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaG93SXRlbVwiIChjbGljayk9XCJjbGlja1RhYign5YWo5paH5oC757uTJylcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZTEnOiBjbGlja3RhYj09J+WFqOaWh+aAu+e7kyd9XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibGluZS1oZWlnaHQ6IDEycHg7XCI+IDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAxNiAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMTY2OCA1LjgzMzI5VjUuNjY2NjNDMTQuMTY2OCA0LjI2NjQ5IDE0LjE2NjggMy41NjY0MyAxMy44OTQzIDMuMDMxNjVDMTMuNjU0NyAyLjU2MTI0IDEzLjI3MjIgMi4xNzg3OSAxMi44MDE4IDEuOTM5MTFDMTIuMjY3IDEuNjY2NjMgMTEuNTY3IDEuNjY2NjMgMTAuMTY2OCAxLjY2NjYzSDQuODMzNUMzLjQzMzM2IDEuNjY2NjMgMi43MzMzIDEuNjY2NjMgMi4xOTg1MiAxLjkzOTExQzEuNzI4MTEgMi4xNzg3OSAxLjM0NTY2IDIuNTYxMjQgMS4xMDU5OCAzLjAzMTY1QzAuODMzNDk2IDMuNTY2NDMgMC44MzM0OTYgNC4yNjY0OSAwLjgzMzQ5NiA1LjY2NjYzVjE0LjMzMzNDMC44MzM0OTYgMTUuNzMzNCAwLjgzMzQ5NiAxNi40MzM1IDEuMTA1OTggMTYuOTY4M0MxLjM0NTY2IDE3LjQzODcgMS43MjgxMSAxNy44MjExIDIuMTk4NTIgMTguMDYwOEMyLjczMzMgMTguMzMzMyAzLjQzMzM2IDE4LjMzMzMgNC44MzM1IDE4LjMzMzNINy45MTY4M003LjkxNjgzIDkuMTY2NjNINC4xNjY4M003LjA4MzUgMTIuNUg0LjE2NjgzTTEwLjgzMzUgNS44MzMyOUg0LjE2NjgzTTEyLjUwMDIgMTVWMTAuNDE2NkMxMi41MDAyIDkuNzI2MjcgMTMuMDU5OCA5LjE2NjYzIDEzLjc1MDIgOS4xNjY2M0MxNC40NDA1IDkuMTY2NjMgMTUuMDAwMiA5LjcyNjI3IDE1LjAwMDIgMTAuNDE2NlYxNUMxNS4wMDAyIDE2LjM4MDcgMTMuODgwOSAxNy41IDEyLjUwMDIgMTcuNUMxMS4xMTk1IDE3LjUgMTAuMDAwMiAxNi4zODA3IDEwLjAwMDIgMTVWMTEuNjY2NlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRjc5MDA5XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPuWFqOaWh+aAu+e7kzwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNob3dJdGVtLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNsaWNrdGFiPT0n6K+t5rOV6ZSZ6K+vJ1wiIGNsYXNzPVwiZ3JhbW1hci1wYW5lbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmFtbWFyLWVycm9yXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC1wb2ludFwiPlxyXG4gICAgICAgICAgICAgICAgICDigKJcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPuWPpOiAgTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC1wb2ludC1ncmF5XCI+XHJcbiAgICAgICAgICAgICAgICAgIOKAolxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IzgxODlhOVwiPlxyXG4gICAgICAgICAgICAgICAgICDlu7rorq7mm7/mjaLkuLpcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj7lj6TogIE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmFtbWFyLWVycm9yXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC1wb2ludFwiPlxyXG4gICAgICAgICAgICAgICAgICDigKJcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPuWPpOiAgTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC1wb2ludC1ncmF5XCI+XHJcbiAgICAgICAgICAgICAgICAgIOKAolxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IzgxODlhOVwiPlxyXG4gICAgICAgICAgICAgICAgICDlu7rorq7mm7/mjaLkuLpcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj7lj6TogIE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyYW1tYXItZXJyb3JcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFsZXJ0LXBvaW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIOKAolxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+5Y+k6ICBPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFsZXJ0LXBvaW50LWdyYXlcIj5cclxuICAgICAgICAgICAgICAgICAg4oCiXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjojODE4OWE5XCI+XHJcbiAgICAgICAgICAgICAgICAgIOW7uuiuruabv+aNouS4ulxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPuWPpOiAgTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JhbW1hci1lcnJvclwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtcG9pbnRcIj5cclxuICAgICAgICAgICAgICAgICAg4oCiXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj7lj6TogIE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtcG9pbnQtZ3JheVwiPlxyXG4gICAgICAgICAgICAgICAgICDigKJcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiM4MTg5YTlcIj5cclxuICAgICAgICAgICAgICAgICAg5bu66K6u5pu/5o2i5Li6XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+5Y+k6ICBPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmFtbWFyLWVycm9yXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC1wb2ludFwiPlxyXG4gICAgICAgICAgICAgICAgICDigKJcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPuWPpOiAgTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC1wb2ludC1ncmF5XCI+XHJcbiAgICAgICAgICAgICAgICAgIOKAolxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IzgxODlhOVwiPlxyXG4gICAgICAgICAgICAgICAgICDlu7rorq7mm7/mjaLkuLpcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj7lj6TogIE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyYW1tYXItZXJyb3JcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFsZXJ0LXBvaW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIOKAolxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+5Y+k6ICBPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFsZXJ0LXBvaW50LWdyYXlcIj5cclxuICAgICAgICAgICAgICAgICAg4oCiXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjojODE4OWE5XCI+XHJcbiAgICAgICAgICAgICAgICAgIOW7uuiuruabv+aNouS4ulxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPuWPpOiAgTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyYW1tYXItZXJyb3JcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFsZXJ0LXBvaW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIOKAolxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+5Y+k6ICBPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFsZXJ0LXBvaW50LWdyYXlcIj5cclxuICAgICAgICAgICAgICAgICAg4oCiXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjojODE4OWE5XCI+XHJcbiAgICAgICAgICAgICAgICAgIOW7uuiuruabv+aNouS4ulxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPuWPpOiAgTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JhbW1hci1lcnJvclwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtcG9pbnRcIj5cclxuICAgICAgICAgICAgICAgICAg4oCiXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj7lj6TogIE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtcG9pbnQtZ3JheVwiPlxyXG4gICAgICAgICAgICAgICAgICDigKJcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiM4MTg5YTlcIj5cclxuICAgICAgICAgICAgICAgICAg5bu66K6u5pu/5o2i5Li6XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+5Y+k6ICBPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjbGlja3RhYj09J+WGheWuueW7uuiuridcIiBjbGFzcz1cInN1Z2dlc3QtcGFuZWxcIj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtc3VnZ2VzdFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImxpbmUtaGVpZ2h0OiAxMnB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMjAgMjJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAxMEg1TTcgMTRINU0xMyA2SDVNMTcgOS41VjUuOEMxNyA0LjExOTg0IDE3IDMuMjc5NzYgMTYuNjczIDIuNjM4MDNDMTYuMzg1NCAyLjA3MzU0IDE1LjkyNjUgMS42MTQ2IDE1LjM2MiAxLjMyNjk4QzE0LjcyMDIgMSAxMy44ODAyIDEgMTIuMiAxSDUuOEM0LjExOTg0IDEgMy4yNzk3NiAxIDIuNjM4MDMgMS4zMjY5OEMyLjA3MzU0IDEuNjE0NiAxLjYxNDYgMi4wNzM1NCAxLjMyNjk4IDIuNjM4MDNDMSAzLjI3OTc2IDEgNC4xMTk4NCAxIDUuOFYxNi4yQzEgMTcuODgwMiAxIDE4LjcyMDIgMS4zMjY5OCAxOS4zNjJDMS42MTQ2IDE5LjkyNjUgMi4wNzM1NCAyMC4zODU0IDIuNjM4MDMgMjAuNjczQzMuMjc5NzYgMjEgNC4xMTk4NCAyMSA1LjggMjFIOC41TTE5IDIxTDE3LjUgMTkuNU0xOC41IDE3QzE4LjUgMTguOTMzIDE2LjkzMyAyMC41IDE1IDIwLjVDMTMuMDY3IDIwLjUgMTEuNSAxOC45MzMgMTEuNSAxN0MxMS41IDE1LjA2NyAxMy4wNjcgMTMuNSAxNSAxMy41QzE2LjkzMyAxMy41IDE4LjUgMTUuMDY3IDE4LjUgMTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxNTcwRUZcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtc3VnZ2VzdC10aXRsZVwiPuWGheWuueW7uuiurjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtdGl0bGVcIj4g6L+Z56+H5paH56ug5LuL57uN55qE5piv5LiD5Liq5YWz5LqO5Lit5Zu95LyB5Lia5a6255qE566h55CG5LmL6YGT55qE6Ieq5Lyg5bCP6K+056ug6IqC5qCH6aKY77yM5peo5Zyo5bGV56S65LyB5Lia5a625Lus55qE5Liq5Lq657uP5Y6G44CB566h55CG55CG5b+15ZKM5Lq655Sf5ZOy5a2m44CCXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LXRpdGxlXCI+5pS56L+b5bu66K6u77yaPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8b2w+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g5qCH6aKY5LiA6Ie05oCn77ya5paH56ug5Lit55qE56ug6IqC5qCH6aKY5bqU5L+d5oyB5LiA6Ie055qE5qC85byP77yM5L6L5aaC4oCc5ZWK5omL5Yqo6ZiA5aOr5aSn5aSr4oCd5ZKM4oCc54ix5Zad5rC055qE5Lq677yM5LiA5a6a5piv5pyJ5ZOB5ZGz55qE4oCd5LiO5YW25LuW56ug6IqC55qE5qC85byP5LiN5LiA6Ie077yM5bu66K6u57uf5LiA5qC85byP5Lul5aKe5by65paH56ug55qE5LiT5Lia5oCn44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDor63oqIDpo47moLzvvJrmlofnq6DkuK3lh7rnjrDkuobkuIDkupvpnZ7mraPlvI/miJblj6Por63ljJbnmoTooajovr7vvIzlpoLigJzlq6nnu5nlpJ/nqb/otorml7bnqbrnmoTlipvph4/igJ3lkozigJzljIXpn6nkuoblr7nnlJ/lkb3mhI/kuYnnmoTmt7HliLvlj43mgJ3igJ3vvIzlu7rorq7kvb/nlKjmm7TmraPlvI/nmoTor63oqIDku6XnrKblkIjkuJPkuJrmlofnq6DnmoTmoIflh4bjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOS/oeaBr+mHjeWkje+8muWcqOS7i+e7jeOAiuaXtuWFieeahOijgue8neOAi+eahOmDqOWIhu+8jOacieWFs+aXtumXtOaXheihjOeahOaPj+i/sOiiq+WkmuasoeaPkOWPiu+8jOW7uuiuruWQiOW5tuebuOS8vOWGheWuueS7pemBv+WFjemHjeWkjeOAglxyXG4gICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOagh+mimOS4gOiHtOaAp++8muaWh+eroOS4reeahOeroOiKguagh+mimOW6lOS/neaMgeS4gOiHtOeahOagvOW8j++8jOS+i+WmguKAnOWViuaJi+WKqOmYgOWjq+Wkp+Wkq+KAneWSjOKAnOeIseWWneawtOeahOS6uu+8jOS4gOWumuaYr+acieWTgeWRs+eahOKAneS4juWFtuS7lueroOiKgueahOagvOW8j+S4jeS4gOiHtO+8jOW7uuiurue7n+S4gOagvOW8j+S7peWinuW8uuaWh+eroOeahOS4k+S4muaAp+OAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g6K+t6KiA6aOO5qC877ya5paH56ug5Lit5Ye6546w5LqG5LiA5Lqb6Z2e5q2j5byP5oiW5Y+j6K+t5YyW55qE6KGo6L6+77yM5aaC4oCc5aup57uZ5aSf56m/6LaK5pe256m655qE5Yqb6YeP4oCd5ZKM4oCc5YyF6Z+p5LqG5a+555Sf5ZG95oSP5LmJ55qE5rex5Yi75Y+N5oCd4oCd77yM5bu66K6u5L2/55So5pu05q2j5byP55qE6K+t6KiA5Lul56ym5ZCI5LiT5Lia5paH56ug55qE5qCH5YeG44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDkv6Hmga/ph43lpI3vvJrlnKjku4vnu43jgIrml7blhYnnmoToo4LnvJ3jgIvnmoTpg6jliIbvvIzmnInlhbPml7bpl7Tml4XooYznmoTmj4/ov7DooqvlpJrmrKHmj5Dlj4rvvIzlu7rorq7lkIjlubbnm7jkvLzlhoXlrrnku6Xpgb/lhY3ph43lpI3jgIJcclxuICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDmoIfpopjkuIDoh7TmgKfvvJrmlofnq6DkuK3nmoTnq6DoioLmoIfpopjlupTkv53mjIHkuIDoh7TnmoTmoLzlvI/vvIzkvovlpoLigJzllYrmiYvliqjpmIDlo6vlpKflpKvigJ3lkozigJzniLHllp3msLTnmoTkurrvvIzkuIDlrprmmK/mnInlk4HlkbPnmoTigJ3kuI7lhbbku5bnq6DoioLnmoTmoLzlvI/kuI3kuIDoh7TvvIzlu7rorq7nu5/kuIDmoLzlvI/ku6Xlop7lvLrmlofnq6DnmoTkuJPkuJrmgKfjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOivreiogOmjjuagvO+8muaWh+eroOS4reWHuueOsOS6huS4gOS6m+mdnuato+W8j+aIluWPo+ivreWMlueahOihqOi+vu+8jOWmguKAnOWrqee7meWkn+epv+i2iuaXtuepuueahOWKm+mHj+KAneWSjOKAnOWMhemfqeS6huWvueeUn+WRveaEj+S5ieeahOa3seWIu+WPjeaAneKAne+8jOW7uuiuruS9v+eUqOabtOato+W8j+eahOivreiogOS7peespuWQiOS4k+S4muaWh+eroOeahOagh+WHhuOAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g5L+h5oGv6YeN5aSN77ya5Zyo5LuL57uN44CK5pe25YWJ55qE6KOC57yd44CL55qE6YOo5YiG77yM5pyJ5YWz5pe26Ze05peF6KGM55qE5o+P6L+w6KKr5aSa5qyh5o+Q5Y+K77yM5bu66K6u5ZCI5bm255u45Ly85YaF5a655Lul6YG/5YWN6YeN5aSN44CCXHJcbiAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g5qCH6aKY5LiA6Ie05oCn77ya5paH56ug5Lit55qE56ug6IqC5qCH6aKY5bqU5L+d5oyB5LiA6Ie055qE5qC85byP77yM5L6L5aaC4oCc5ZWK5omL5Yqo6ZiA5aOr5aSn5aSr4oCd5ZKM4oCc54ix5Zad5rC055qE5Lq677yM5LiA5a6a5piv5pyJ5ZOB5ZGz55qE4oCd5LiO5YW25LuW56ug6IqC55qE5qC85byP5LiN5LiA6Ie077yM5bu66K6u57uf5LiA5qC85byP5Lul5aKe5by65paH56ug55qE5LiT5Lia5oCn44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDor63oqIDpo47moLzvvJrmlofnq6DkuK3lh7rnjrDkuobkuIDkupvpnZ7mraPlvI/miJblj6Por63ljJbnmoTooajovr7vvIzlpoLigJzlq6nnu5nlpJ/nqb/otorml7bnqbrnmoTlipvph4/igJ3lkozigJzljIXpn6nkuoblr7nnlJ/lkb3mhI/kuYnnmoTmt7HliLvlj43mgJ3igJ3vvIzlu7rorq7kvb/nlKjmm7TmraPlvI/nmoTor63oqIDku6XnrKblkIjkuJPkuJrmlofnq6DnmoTmoIflh4bjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOS/oeaBr+mHjeWkje+8muWcqOS7i+e7jeOAiuaXtuWFieeahOijgue8neOAi+eahOmDqOWIhu+8jOacieWFs+aXtumXtOaXheihjOeahOaPj+i/sOiiq+WkmuasoeaPkOWPiu+8jOW7uuiuruWQiOW5tuebuOS8vOWGheWuueS7pemBv+WFjemHjeWkjeOAglxyXG4gICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOagh+mimOS4gOiHtOaAp++8muaWh+eroOS4reeahOeroOiKguagh+mimOW6lOS/neaMgeS4gOiHtOeahOagvOW8j++8jOS+i+WmguKAnOWViuaJi+WKqOmYgOWjq+Wkp+Wkq+KAneWSjOKAnOeIseWWneawtOeahOS6uu+8jOS4gOWumuaYr+acieWTgeWRs+eahOKAneS4juWFtuS7lueroOiKgueahOagvOW8j+S4jeS4gOiHtO+8jOW7uuiurue7n+S4gOagvOW8j+S7peWinuW8uuaWh+eroOeahOS4k+S4muaAp+OAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g6K+t6KiA6aOO5qC877ya5paH56ug5Lit5Ye6546w5LqG5LiA5Lqb6Z2e5q2j5byP5oiW5Y+j6K+t5YyW55qE6KGo6L6+77yM5aaC4oCc5aup57uZ5aSf56m/6LaK5pe256m655qE5Yqb6YeP4oCd5ZKM4oCc5YyF6Z+p5LqG5a+555Sf5ZG95oSP5LmJ55qE5rex5Yi75Y+N5oCd4oCd77yM5bu66K6u5L2/55So5pu05q2j5byP55qE6K+t6KiA5Lul56ym5ZCI5LiT5Lia5paH56ug55qE5qCH5YeG44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDkv6Hmga/ph43lpI3vvJrlnKjku4vnu43jgIrml7blhYnnmoToo4LnvJ3jgIvnmoTpg6jliIbvvIzmnInlhbPml7bpl7Tml4XooYznmoTmj4/ov7DooqvlpJrmrKHmj5Dlj4rvvIzlu7rorq7lkIjlubbnm7jkvLzlhoXlrrnku6Xpgb/lhY3ph43lpI3jgIJcclxuICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDwvb2w+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjbGlja3RhYj09J+S6i+WunumqjOivgSdcIiBjbGFzcz1cInZlcmlmeS1wYW5lbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKGNsaWNrKT1cImRhc2hib2FyZFRhYign5YWo6YOoJylcIiBbbmdDbGFzc109XCJ7J2l0ZW1DaG9vc2UnOiBkYXNoYm9hcmR0YWI9PSflhajpg6gnfVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXNJY29uXCIgc3R5bGU9XCJib3JkZXI6IDFweCBzb2xpZCBibGFjazsgYm94LXNpemluZzogYm9yZGVyLWJveDtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+5YWo6YOoPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJudW1iZXJcIj4yODwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAoY2xpY2spPVwiZGFzaGJvYXJkVGFiKCfpgJrov4cnKVwiIFtuZ0NsYXNzXT1cInsnaXRlbUNob29zZSc6IGRhc2hib2FyZHRhYj09J+mAmui/hyd9XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c0ljb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHJnYigxOCwgMTgzLCAxMDYpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfOTk4N18yMTI1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNy41TDEwIDE3LjVMNSAxMi41XCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzk5ODdfMjEyNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC41KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiBzdHlsZT1cImNvbG9yOiByZ2IoMTgsIDE4MywgMTA2KTtcIj7pgJrov4c8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm51bWJlclwiPjk8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKGNsaWNrKT1cImRhc2hib2FyZFRhYign5LiN6YCa6L+HJylcIiBbbmdDbGFzc109XCJ7J2l0ZW1DaG9vc2UnOiBkYXNoYm9hcmR0YWI9PSfkuI3pgJrov4cnfVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXNJY29uXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE3LCA0NSwgMzIpO1wiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTcgMTdMMTcgN1wiIHN0cm9rZT1cIiNmZmZmZmZcIiBzdHJva2Utd2lkdGg9XCIzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNyA3TDE3IDE3XCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiBzdHlsZT1cImNvbG9yOiByZ2IoMjE3LCA0NSwgMzIpO1wiPuS4jemAmui/hzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibnVtYmVyXCI+MTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiIChjbGljayk9XCJkYXNoYm9hcmRUYWIoJ+aXoOazleWIpOaWrScpXCIgW25nQ2xhc3NdPVwieydpdGVtQ2hvb3NlJzogZGFzaGJvYXJkdGFiPT0n5peg5rOV5Yik5patJ31cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMyAzIDE4IDE4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuODgyNCA4LjY3OUM3Ljg4MDM1IDguNzI3NDQgNy44ODgyMiA4Ljc3NTc5IDcuOTA1NTUgOC44MjEwN0M3LjkyMjg3IDguODY2MzYgNy45NDkyNyA4LjkwNzYyIDcuOTgzMTMgOC45NDIzMkM4LjAxNjk5IDguOTc3MDMgOC4wNTc1OSA5LjAwNDQ0IDguMTAyNDQgOS4wMjI4N0M4LjE0NzI4IDkuMDQxMyA4LjE5NTQyIDkuMDUwMzYgOC4yNDM5IDkuMDQ5NUg5LjQ4MTRDOS42ODg0IDkuMDQ5NSA5Ljg1MzQgOC44OCA5Ljg4MDQgOC42NzQ1QzEwLjAxNTQgNy42OTA1IDEwLjY5MDQgNi45NzM1IDExLjg5MzQgNi45NzM1QzEyLjkyMjQgNi45NzM1IDEzLjg2NDQgNy40ODggMTMuODY0NCA4LjcyNTVDMTMuODY0NCA5LjY3OCAxMy4zMDM0IDEwLjExNiAxMi40MTY5IDEwLjc4MkMxMS40MDc0IDExLjUxNTUgMTAuNjA3OSAxMi4zNzIgMTAuNjY0OSAxMy43NjI1TDEwLjY2OTQgMTQuMDg4QzEwLjY3MSAxNC4xODY0IDEwLjcxMTIgMTQuMjgwMyAxMC43ODEzIDE0LjM0OTNDMTAuODUxNSAxNC40MTgzIDEwLjk0NiAxNC40NTcgMTEuMDQ0NCAxNC40NTdIMTIuMjYwOUMxMi4zNjA0IDE0LjQ1NyAxMi40NTU3IDE0LjQxNzUgMTIuNTI2MSAxNC4zNDcyQzEyLjU5NjQgMTQuMjc2OCAxMi42MzU5IDE0LjE4MTUgMTIuNjM1OSAxNC4wODJWMTMuOTI0NUMxMi42MzU5IDEyLjg0NzUgMTMuMDQ1NCAxMi41MzQgMTQuMTUwOSAxMS42OTU1QzE1LjA2NDQgMTEuMDAxIDE2LjAxNjkgMTAuMjMgMTYuMDE2OSA4LjYxMTVDMTYuMDE2OSA2LjM0NSAxNC4xMDI5IDUuMjUgMTIuMDA3NCA1LjI1QzEwLjEwNjkgNS4yNSA4LjAyNDkgNi4xMzUgNy44ODI0IDguNjc5Wk0xMC4yMTc5IDE3LjMyMzVDMTAuMjE3OSAxOC4xMjMgMTAuODU1NCAxOC43MTQgMTEuNzMyOSAxOC43MTRDMTIuNjQ2NCAxOC43MTQgMTMuMjc0OSAxOC4xMjMgMTMuMjc0OSAxNy4zMjM1QzEzLjI3NDkgMTYuNDk1NSAxMi42NDQ5IDE1LjkxMzUgMTEuNzMxNCAxNS45MTM1QzEwLjg1NTQgMTUuOTEzNSAxMC4yMTc5IDE2LjQ5NTUgMTAuMjE3OSAxNy4zMjM1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNDc1NDY3XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPuaXoOazleWIpOaWrTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibnVtYmVyXCI+MTg8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVyaWZ5LWNhcmQtbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c0ljb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHJnYigxOCwgMTgzLCAxMDYpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzk5ODdfMjEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNy41TDEwIDE3LjVMNSAxMi41XCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfOTk4N18yMTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiBzdHlsZT1cImNvbG9yOiByZ2IoMTgsIDE4MywgMTA2KTtcIj7pgJrov4c8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pys5Lmm5YiG5Li65Zub5Liq6YOo5YiG77ya56ys5LqM6YOo5YiG6K6y6L+w5Lit5Zu957uP5rWO5L2T5Yi25pS56Z2p6L+H56iL5Lit77yM5LuW5piv5aaC5L2V5Zyo4oCc5pG4552A55+z5aS06L+H5rKz4oCd55qE6L+H56iL5Lit5LiN5pat5o6i57Si44CB5LiN5pat5Yib5paw44CCXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c0ljb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHJnYigxOCwgMTgzLCAxMDYpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzk5ODdfMjEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNy41TDEwIDE3LjVMNSAxMi41XCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfOTk4N18yMTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiBzdHlsZT1cImNvbG9yOiByZ2IoMTgsIDE4MywgMTA2KTtcIj7pgJrov4c8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pys5Lmm5YiG5Li65Zub5Liq6YOo5YiG77ya56ys5LqM6YOo5YiG6K6y6L+w5Lit5Zu957uP5rWO5L2T5Yi25pS56Z2p6L+H56iL5Lit77yM5LuW5piv5aaC5L2V5Zyo4oCc5pG4552A55+z5aS06L+H5rKz4oCd55qE6L+H56iL5Lit5LiN5pat5o6i57Si44CB5LiN5pat5Yib5paw44CCXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c0ljb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHJnYigxOCwgMTgzLCAxMDYpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzk5ODdfMjEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNy41TDEwIDE3LjVMNSAxMi41XCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfOTk4N18yMTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiBzdHlsZT1cImNvbG9yOiByZ2IoMTgsIDE4MywgMTA2KTtcIj7pgJrov4c8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pys5Lmm5YiG5Li65Zub5Liq6YOo5YiG77ya56ys5LqM6YOo5YiG6K6y6L+w5Lit5Zu957uP5rWO5L2T5Yi25pS56Z2p6L+H56iL5Lit77yM5LuW5piv5aaC5L2V5Zyo4oCc5pG4552A55+z5aS06L+H5rKz4oCd55qE6L+H56iL5Lit5LiN5pat5o6i57Si44CB5LiN5pat5Yib5paw44CCXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c0ljb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHJnYigxOCwgMTgzLCAxMDYpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzk5ODdfMjEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNy41TDEwIDE3LjVMNSAxMi41XCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfOTk4N18yMTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiBzdHlsZT1cImNvbG9yOiByZ2IoMTgsIDE4MywgMTA2KTtcIj7pgJrov4c8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pys5Lmm5YiG5Li65Zub5Liq6YOo5YiG77ya56ys5LqM6YOo5YiG6K6y6L+w5Lit5Zu957uP5rWO5L2T5Yi25pS56Z2p6L+H56iL5Lit77yM5LuW5piv5aaC5L2V5Zyo4oCc5pG4552A55+z5aS06L+H5rKz4oCd55qE6L+H56iL5Lit5LiN5pat5o6i57Si44CB5LiN5pat5Yib5paw44CCXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c0ljb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHJnYigxOCwgMTgzLCAxMDYpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzk5ODdfMjEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNy41TDEwIDE3LjVMNSAxMi41XCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfOTk4N18yMTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiBzdHlsZT1cImNvbG9yOiByZ2IoMTgsIDE4MywgMTA2KTtcIj7pgJrov4c8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pys5Lmm5YiG5Li65Zub5Liq6YOo5YiG77ya56ys5LqM6YOo5YiG6K6y6L+w5Lit5Zu957uP5rWO5L2T5Yi25pS56Z2p6L+H56iL5Lit77yM5LuW5piv5aaC5L2V5Zyo4oCc5pG4552A55+z5aS06L+H5rKz4oCd55qE6L+H56iL5Lit5LiN5pat5o6i57Si44CB5LiN5pat5Yib5paw44CCXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c0ljb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHJnYigxOCwgMTgzLCAxMDYpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzk5ODdfMjEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNy41TDEwIDE3LjVMNSAxMi41XCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfOTk4N18yMTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiBzdHlsZT1cImNvbG9yOiByZ2IoMTgsIDE4MywgMTA2KTtcIj7pgJrov4c8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pys5Lmm5YiG5Li65Zub5Liq6YOo5YiG77ya56ys5LqM6YOo5YiG6K6y6L+w5Lit5Zu957uP5rWO5L2T5Yi25pS56Z2p6L+H56iL5Lit77yM5LuW5piv5aaC5L2V5Zyo4oCc5pG4552A55+z5aS06L+H5rKz4oCd55qE6L+H56iL5Lit5LiN5pat5o6i57Si44CB5LiN5pat5Yib5paw44CCXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c0ljb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHJnYigxOCwgMTgzLCAxMDYpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzk5ODdfMjEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNy41TDEwIDE3LjVMNSAxMi41XCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfOTk4N18yMTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiBzdHlsZT1cImNvbG9yOiByZ2IoMTgsIDE4MywgMTA2KTtcIj7pgJrov4c8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pys5Lmm5YiG5Li65Zub5Liq6YOo5YiG77ya56ys5LqM6YOo5YiG6K6y6L+w5Lit5Zu957uP5rWO5L2T5Yi25pS56Z2p6L+H56iL5Lit77yM5LuW5piv5aaC5L2V5Zyo4oCc5pG4552A55+z5aS06L+H5rKz4oCd55qE6L+H56iL5Lit5LiN5pat5o6i57Si44CB5LiN5pat5Yib5paw44CCXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c0ljb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHJnYigxOCwgMTgzLCAxMDYpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzk5ODdfMjEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNy41TDEwIDE3LjVMNSAxMi41XCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHN0cm9rZS13aWR0aD1cIjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfOTk4N18yMTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiBzdHlsZT1cImNvbG9yOiByZ2IoMTgsIDE4MywgMTA2KTtcIj7pgJrov4c8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pys5Lmm5YiG5Li65Zub5Liq6YOo5YiG77ya56ys5LqM6YOo5YiG6K6y6L+w5Lit5Zu957uP5rWO5L2T5Yi25pS56Z2p6L+H56iL5Lit77yM5LuW5piv5aaC5L2V5Zyo4oCc5pG4552A55+z5aS06L+H5rKz4oCd55qE6L+H56iL5Lit5LiN5pat5o6i57Si44CB5LiN5pat5Yib5paw44CCXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNsaWNrdGFiPT0n5YWo5paH5oC757uTJ1wiIGNsYXNzPVwic3VtbWFyeS1wYW5lbFwiPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdW1tYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibGluZS1oZWlnaHQ6IDEycHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAxNiAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjE2NjggNS44MzMyOVY1LjY2NjYzQzE0LjE2NjggNC4yNjY0OSAxNC4xNjY4IDMuNTY2NDMgMTMuODk0MyAzLjAzMTY1QzEzLjY1NDcgMi41NjEyNCAxMy4yNzIyIDIuMTc4NzkgMTIuODAxOCAxLjkzOTExQzEyLjI2NyAxLjY2NjYzIDExLjU2NyAxLjY2NjYzIDEwLjE2NjggMS42NjY2M0g0LjgzMzVDMy40MzMzNiAxLjY2NjYzIDIuNzMzMyAxLjY2NjYzIDIuMTk4NTIgMS45MzkxMUMxLjcyODExIDIuMTc4NzkgMS4zNDU2NiAyLjU2MTI0IDEuMTA1OTggMy4wMzE2NUMwLjgzMzQ5NiAzLjU2NjQzIDAuODMzNDk2IDQuMjY2NDkgMC44MzM0OTYgNS42NjY2M1YxNC4zMzMzQzAuODMzNDk2IDE1LjczMzQgMC44MzM0OTYgMTYuNDMzNSAxLjEwNTk4IDE2Ljk2ODNDMS4zNDU2NiAxNy40Mzg3IDEuNzI4MTEgMTcuODIxMSAyLjE5ODUyIDE4LjA2MDhDMi43MzMzIDE4LjMzMzMgMy40MzMzNiAxOC4zMzMzIDQuODMzNSAxOC4zMzMzSDcuOTE2ODNNNy45MTY4MyA5LjE2NjYzSDQuMTY2ODNNNy4wODM1IDEyLjVINC4xNjY4M00xMC44MzM1IDUuODMzMjlINC4xNjY4M00xMi41MDAyIDE1VjEwLjQxNjZDMTIuNTAwMiA5LjcyNjI3IDEzLjA1OTggOS4xNjY2MyAxMy43NTAyIDkuMTY2NjNDMTQuNDQwNSA5LjE2NjYzIDE1LjAwMDIgOS43MjYyNyAxNS4wMDAyIDEwLjQxNjZWMTVDMTUuMDAwMiAxNi4zODA3IDEzLjg4MDkgMTcuNSAxMi41MDAyIDE3LjVDMTEuMTE5NSAxNy41IDEwLjAwMDIgMTYuMzgwNyAxMC4wMDAyIDE1VjExLjY2NjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0Y3OTAwOVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdW1tYXJ5LXRpdGxlXCI+5YWo5paH5oC757uTPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC10aXRsZVwiPuamguaLrO+8mjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICDov5nmnKzoh6rkvKDlsI/or7TnlLHkvIHkuJrlrrbmm7nlm73nhormkrDlhpnvvIzorrLov7Dkuobku5blpoLkvZXku47otKvnqbflranlrZDmiJDplb/kuLrmiJDlip/kvIHkuJrlrrbnmoTnu4/ljoblkoznrqHnkIbmmbrmhafvvIzlkIzml7bpgJrov4fkuI3lkIznq6DoioLmjqLorqjkuobkvIHkuJrlrrbnmoTmiJDplb/jgIHlm6LpmJ/lkIjkvZzjgIHliJvmlrDpqbHliqjjgIHpooblr7zlipvln7nlhbvjgIHpnaLlr7nljbHmnLrlkozlj6/mjIHnu63lj5HlsZXnrYnkuLvpopjjgIJcclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRpdGxlXCI+6KaB54K577yaPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT7mm7nlm73nhormmK/kuK3lm73nmoTkvIHkuJrlrrbjgIHkvZzlrrbvvIzku5bnmoToh6rkvKDorrDlvZXkuobku47otKvnqbfliLDmiJDlip/nmoTljobnqIvjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOeroOiKguOAiuS7juWwj+aipuaDs+WIsOWkp+S6i+S4muOAi+WbnumhvuS6huS9nOiAheS7juWwkeW5tOaXtuS7o+aAgOaPo+WIm+S4muaipuaDs++8jOWFi+acjeWbsOmavuWSjOaMkeaImOeahOi/h+eoi+OAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g44CK5pe25YWJ55qE6KOC57yd44CL5piv5LiA6YOo57uT5ZCI5oKs55aR44CB5aWH5bm75ZKM5ZOy5oCd55qE5bCP6K+077yM6YCa6L+H5p2w5YWL55qE6KeG6KeS5o6i57Si5Lq65oCn44CB6YCJ5oup5ZKM5oiQ6ZW/44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDkuabkuK3ov5jmtonlj4rkuoblpoLkvZXln7nlhbvkvIHkuJrlrrbnmoTpgZPlvrfmk43lrojlkoznpL7kvJrotKPku7vmhJ/jgIHlm6LpmJ/lkIjkvZznmoTph43opoHmgKfjgIHnp5HmioDliJvmlrDnmoTmjqjliqjjgIHpooblr7zlipvnmoTln7nlhbvku6Xlj4rlpoLkvZXpnaLlr7nlkozljJbop6PljbHmnLrjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOacgOWQjuS4gOeroOOAiue7v+iJsui9rOWei+eahOWFiOmUi+OAi+aOouiuqOS6huS9nOiAheS9nOS4uuS8geS4muWutuWcqOekvuS8mui0o+S7u+aWuemdoueahOWKquWKm++8jOWMheaLrOaOqOWKqOS8geS4mue7v+iJsui9rOWei+WSjOWPr+aMgee7reWPkeWxleOAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT7mm7nlm73nhormmK/kuK3lm73nmoTkvIHkuJrlrrbjgIHkvZzlrrbvvIzku5bnmoToh6rkvKDorrDlvZXkuobku47otKvnqbfliLDmiJDlip/nmoTljobnqIvjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOeroOiKguOAiuS7juWwj+aipuaDs+WIsOWkp+S6i+S4muOAi+WbnumhvuS6huS9nOiAheS7juWwkeW5tOaXtuS7o+aAgOaPo+WIm+S4muaipuaDs++8jOWFi+acjeWbsOmavuWSjOaMkeaImOeahOi/h+eoi+OAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g44CK5pe25YWJ55qE6KOC57yd44CL5piv5LiA6YOo57uT5ZCI5oKs55aR44CB5aWH5bm75ZKM5ZOy5oCd55qE5bCP6K+077yM6YCa6L+H5p2w5YWL55qE6KeG6KeS5o6i57Si5Lq65oCn44CB6YCJ5oup5ZKM5oiQ6ZW/44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDkuabkuK3ov5jmtonlj4rkuoblpoLkvZXln7nlhbvkvIHkuJrlrrbnmoTpgZPlvrfmk43lrojlkoznpL7kvJrotKPku7vmhJ/jgIHlm6LpmJ/lkIjkvZznmoTph43opoHmgKfjgIHnp5HmioDliJvmlrDnmoTmjqjliqjjgIHpooblr7zlipvnmoTln7nlhbvku6Xlj4rlpoLkvZXpnaLlr7nlkozljJbop6PljbHmnLrjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOacgOWQjuS4gOeroOOAiue7v+iJsui9rOWei+eahOWFiOmUi+OAi+aOouiuqOS6huS9nOiAheS9nOS4uuS8geS4muWutuWcqOekvuS8mui0o+S7u+aWuemdoueahOWKquWKm++8jOWMheaLrOaOqOWKqOS8geS4mue7v+iJsui9rOWei+WSjOWPr+aMgee7reWPkeWxleOAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT7mm7nlm73nhormmK/kuK3lm73nmoTkvIHkuJrlrrbjgIHkvZzlrrbvvIzku5bnmoToh6rkvKDorrDlvZXkuobku47otKvnqbfliLDmiJDlip/nmoTljobnqIvjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOeroOiKguOAiuS7juWwj+aipuaDs+WIsOWkp+S6i+S4muOAi+WbnumhvuS6huS9nOiAheS7juWwkeW5tOaXtuS7o+aAgOaPo+WIm+S4muaipuaDs++8jOWFi+acjeWbsOmavuWSjOaMkeaImOeahOi/h+eoi+OAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g44CK5pe25YWJ55qE6KOC57yd44CL5piv5LiA6YOo57uT5ZCI5oKs55aR44CB5aWH5bm75ZKM5ZOy5oCd55qE5bCP6K+077yM6YCa6L+H5p2w5YWL55qE6KeG6KeS5o6i57Si5Lq65oCn44CB6YCJ5oup5ZKM5oiQ6ZW/44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDkuabkuK3ov5jmtonlj4rkuoblpoLkvZXln7nlhbvkvIHkuJrlrrbnmoTpgZPlvrfmk43lrojlkoznpL7kvJrotKPku7vmhJ/jgIHlm6LpmJ/lkIjkvZznmoTph43opoHmgKfjgIHnp5HmioDliJvmlrDnmoTmjqjliqjjgIHpooblr7zlipvnmoTln7nlhbvku6Xlj4rlpoLkvZXpnaLlr7nlkozljJbop6PljbHmnLrjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+5pu55Zu954aK5piv5Lit5Zu955qE5LyB5Lia5a6244CB5L2c5a6277yM5LuW55qE6Ieq5Lyg6K6w5b2V5LqG5LuO6LSr56m35Yiw5oiQ5Yqf55qE5Y6G56iL44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDnq6DoioLjgIrku47lsI/moqbmg7PliLDlpKfkuovkuJrjgIvlm57pob7kuobkvZzogIXku47lsJHlubTml7bku6PmgIDmj6PliJvkuJrmoqbmg7PvvIzlhYvmnI3lm7Dpmr7lkozmjJHmiJjnmoTov4fnqIvjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOOAiuaXtuWFieeahOijgue8neOAi+aYr+S4gOmDqOe7k+WQiOaCrOeWkeOAgeWlh+W5u+WSjOWTsuaAneeahOWwj+ivtO+8jOmAmui/h+adsOWFi+eahOinhuinkuaOoue0ouS6uuaAp+OAgemAieaLqeWSjOaIkOmVv+OAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g5Lmm5Lit6L+Y5raJ5Y+K5LqG5aaC5L2V5Z+55YW75LyB5Lia5a6255qE6YGT5b635pON5a6I5ZKM56S+5Lya6LSj5Lu75oSf44CB5Zui6Zif5ZCI5L2c55qE6YeN6KaB5oCn44CB56eR5oqA5Yib5paw55qE5o6o5Yqo44CB6aKG5a+85Yqb55qE5Z+55YW75Lul5Y+K5aaC5L2V6Z2i5a+55ZKM5YyW6Kej5Y2x5py644CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDmnIDlkI7kuIDnq6DjgIrnu7/oibLovazlnovnmoTlhYjplIvjgIvmjqLorqjkuobkvZzogIXkvZzkuLrkvIHkuJrlrrblnKjnpL7kvJrotKPku7vmlrnpnaLnmoTliqrlipvvvIzljIXmi6zmjqjliqjkvIHkuJrnu7/oibLovazlnovlkozlj6/mjIHnu63lj5HlsZXjgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+5pu55Zu954aK5piv5Lit5Zu955qE5LyB5Lia5a6244CB5L2c5a6277yM5LuW55qE6Ieq5Lyg6K6w5b2V5LqG5LuO6LSr56m35Yiw5oiQ5Yqf55qE5Y6G56iL44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPuabueWbveeGiuaYr+S4reWbveeahOS8geS4muWutuOAgeS9nOWutu+8jOS7lueahOiHquS8oOiusOW9leS6huS7jui0q+ept+WIsOaIkOWKn+eahOWOhueoi+OAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g56ug6IqC44CK5LuO5bCP5qKm5oOz5Yiw5aSn5LqL5Lia44CL5Zue6aG+5LqG5L2c6ICF5LuO5bCR5bm05pe25Luj5oCA5o+j5Yib5Lia5qKm5oOz77yM5YWL5pyN5Zuw6Zq+5ZKM5oyR5oiY55qE6L+H56iL44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPiDjgIrml7blhYnnmoToo4LnvJ3jgIvmmK/kuIDpg6jnu5PlkIjmgqznlpHjgIHlpYflubvlkozlk7LmgJ3nmoTlsI/or7TvvIzpgJrov4fmnbDlhYvnmoTop4bop5LmjqLntKLkurrmgKfjgIHpgInmi6nlkozmiJDplb/jgII8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+IOS5puS4rei/mOa2ieWPiuS6huWmguS9leWfueWFu+S8geS4muWutueahOmBk+W+t+aTjeWuiOWSjOekvuS8mui0o+S7u+aEn+OAgeWboumYn+WQiOS9nOeahOmHjeimgeaAp+OAgeenkeaKgOWIm+aWsOeahOaOqOWKqOOAgemihuWvvOWKm+eahOWfueWFu+S7peWPiuWmguS9lemdouWvueWSjOWMluino+WNseacuuOAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g5pyA5ZCO5LiA56ug44CK57u/6Imy6L2s5Z6L55qE5YWI6ZSL44CL5o6i6K6o5LqG5L2c6ICF5L2c5Li65LyB5Lia5a625Zyo56S+5Lya6LSj5Lu75pa56Z2i55qE5Yqq5Yqb77yM5YyF5ous5o6o5Yqo5LyB5Lia57u/6Imy6L2s5Z6L5ZKM5Y+v5oyB57ut5Y+R5bGV44CCPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpPuabueWbveeGiuaYr+S4reWbveeahOS8geS4muWutuOAgeS9nOWutu+8jOS7lueahOiHquS8oOiusOW9leS6huS7jui0q+ept+WIsOaIkOWKn+eahOWOhueoi+OAgjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT4g5pyA5ZCO5LiA56ug44CK57u/6Imy6L2s5Z6L55qE5YWI6ZSL44CL5o6i6K6o5LqG5L2c6ICF5L2c5Li65LyB5Lia5a625Zyo56S+5Lya6LSj5Lu75pa56Z2i55qE5Yqq5Yqb77yM5YyF5ous5o6o5Yqo5LyB5Lia57u/6Imy6L2s5Z6L5ZKM5Y+v5oyB57ut5Y+R5bGV44CCPC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFpdGFiPT0nQUnphY3lm74nXCIgY2xhc3M9XCJhaS1pbWdcIj5cclxuICAgICAgICAgIDxtYXQtYWNjb3JkaW9uIG11bHRpPlxyXG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBleHBhbmRlZD1cInRydWVcIj5cclxuICAgICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPuaWh+eroOWwgemdojwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCIgKGNsaWNrKT1cInVwbG9hZEltYWdlKClcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJhcnRpY2xlPy5nZXQoJ2ltYWdlJykgfHwgJy9hc3NldHMvaW1nL2ljb24vYWRkcGhvdG8ucG5nJ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblxyXG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBleHBhbmRlZD1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1wYW5lbC10aXRsZT7mrrXokL3mj5Llm748L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWktaW1nLXNlYXJjaFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWktaW1nLXNlYXJjaC1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbnotaW5wdXQgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXlm77niYfmj4/ov7BcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWktaW1nLXNlYXJjaC1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInNlYXJjaC1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5p+l5om+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWctdGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImJnLWltZ1wiIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMv54Gr566tMi5wbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhaS1pbWctdGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPui+k+WFpeaPj+i/sO+8jOiHquWKqOmFjeWbvjwvaDE+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhaS1pbWctdGlwLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGNlLWlubmVyLXRpcC1wb2ludFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5qC55o2u5oKo5a+55Zu+54mH55qE5o+P6L+w77yM5pm66IO95Yy56YWN55u45YWz5Zu+54mHXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgICAgICAgPC9tYXQtYWNjb3JkaW9uPlxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
8
+ import{CommonModule}from"@angular/common";import{Component,ViewChild,Input,Output,EventEmitter,ElementRef,ChangeDetectorRef}from"@angular/core";import{IonicModule}from"@ionic/angular";import{NzToolTipModule}from"ng-zorro-antd/tooltip";import{NzInputModule}from"ng-zorro-antd/input";import{NzDividerModule}from"ng-zorro-antd/divider";import{NzDropDownModule}from"ng-zorro-antd/dropdown";import{NzEmptyModule}from"ng-zorro-antd/empty";import{NzAvatarModule}from"ng-zorro-antd/avatar";import{NzPopoverModule}from"ng-zorro-antd/popover";import{NzPipesModule}from"ng-zorro-antd/pipes";import{FormGroup,FormsModule,ReactiveFormsModule}from"@angular/forms";import{ArticleEditorTopbarComponent}from"./article-editor-topbar/article-editor-topbar.component";import{MatDialog,MatDialogModule}from"@angular/material/dialog";import{TaskDocumentSelect}from"./tasks/task-document-select";import{FmAgentTaskComponent}from"../../aigc/agent/fm-agent-task/fm-agent-task.component";import{TaskArticleWritingOptions}from"./tasks/task-article-writing-options";import{TaskArticleOutline}from"./tasks/task-article-outline";import{MatFormFieldModule}from"@angular/material/form-field";import{MatInputModule}from"@angular/material/input";import{MatButtonModule}from"@angular/material/button";import{ClipboardService,FmodeChatCompletion}from"../../aigc";import{MatIconModule}from"@angular/material/icon";import{finalize}from"rxjs";import{AlertController,ModalController}from"@ionic/angular/standalone";import{TaskArticleOutlineEdit}from"./tasks/task-article-outline-edit";import{MatChipsModule}from"@angular/material/chips";import{TaskArticleDraft}from"./tasks/task-article-draft-create";import{DraftService}from"./draft.service";import{FmTextQuillComponent}from"../fm-text-quill/fm-text-quill.component";import{OutlineCountPipe}from"./outline-count.pipe";import{FmArticleOutlineLeftitemComponent}from"./fm-article-outline-leftitem/fm-article-outline-leftitem.component";import{Router}from"@angular/router";import{TaskArticlePreview}from"./tasks/task-article-preview";import{FmodeParse,FmodeObject}from"@fmode/parse";import{MatExpansionModule}from"@angular/material/expansion";import{NovaUploadService}from"../../storage/service-upload/nova-upload.service";import{Diagnostic}from"@awesome-cordova-plugins/diagnostic/ngx";import{addIcons}from"ionicons";import{closeOutline,copyOutline,cloudDoneOutline,createOutline}from"ionicons/icons";import{taskArticleGeneration}from"./task-article-generation";import{PersonService}from"../../person/person.service";import*as i0 from"@angular/core";import*as i1 from"@ionic/angular/standalone";import*as i2 from"@angular/material/dialog";import*as i3 from"../../aigc";import*as i4 from"./draft.service";import*as i5 from"@angular/router";import*as i6 from"../../storage/service-upload/nova-upload.service";import*as i7 from"../../person/person.service";import*as i8 from"@angular/common";import*as i9 from"@angular/forms";import*as i10 from"@ionic/angular";import*as i11 from"ng-zorro-antd/input";import*as i12 from"@angular/material/form-field";import*as i13 from"@angular/material/input";import*as i14 from"@angular/material/button";import*as i15 from"@angular/material/icon";import*as i16 from"@angular/material/chips";import*as i17 from"@angular/material/expansion";const Parse=FmodeParse.with("nova");addIcons({closeOutline:closeOutline,copyOutline:copyOutline,cloudDoneOutline:cloudDoneOutline,createOutline:createOutline});export class FmArticleEditorComponent{async ngOnInit(){this.article?.id&&this.draftServ?.loadArticleDraft(this.article)}setContent(n,e){e?e.content=n:this.article?.set("content",n),this.contentChanged=!0}selectChange(n){this.selectRange=n?.range,this.selectText=n?.text,this.selectQuill=n?.quill,this.cdRef.detectChanges()}goOptimizeText(n){this.selectChange(n),this.aitab="AI润色",this.optimizeContent()}cancelOptimize(){this.isOptimizing=!1,this.optimize$?.unsubscribe()}optimizeContent(){if(!this.selectText)return;this.isOptimizing=!0;let n=[{role:"user",content:`有段文字要润色,目的是提高其专业性和清晰度。请您调整语言,确保逻辑流畅,并使用行业相关术语。同时,请检查并修正任何语法错误。直接返回润色后内容。这是原文:${this.selectText}`}],e=new FmodeChatCompletion(n);e.model="fmode-4.0-cn-256k",this.optimize$=e.sendCompletion().pipe(finalize((()=>{undefined.complete=!0}))).subscribe((n=>{this.optimizeText=n.content,n?.complete&&(this.isOptimizing=!1,this.optimize$?.unsubscribe(),this.cdRef.detectChanges())}))}copyOptimize(){this.clipboard.copyToClipboard(this.optimizeText)}applyOptimize(){this.selectRange&&(this.selectQuill?.deleteText(this.selectRange?.index,this.selectRange.length),this.selectQuill?.insertText(this.selectRange?.index,this.optimizeText),this.selectRange=void 0)}handleNavEvent(n,e){if("preview"==n&&this.article?.id&&TaskArticlePreview({modal:this.modalCtrl,dialog:this.dialog,article:this.article}),"backmenu"==n&&(this.article?.get("chapter")?.get("book")?.id||this.router.navigateByUrl("/editor/my/home"),this.onClose.emit(!0)),"toggle-aitool"==n&&(this.isDivHidden=!this.isDivHidden),"save"==n&&this.saveArticleContent(),"options"==n){if(this.readOnly)return;let n={};this.doArticleTask([TaskArticleWritingOptions({shareData:n,dialog:this.dialog,editOnly:!0})],n)}if("outline"==n){if(this.readOnly)return;let n={};this.doArticleTask([TaskArticleOutlineEdit({shareData:n,dialog:this.dialog})],n)}if("draft"==n){let n={};if(this.readOnly)return;this.doArticleTask([TaskArticleDraft({isSelectedMode:!0,shareData:n,dialog:this.dialog,modalCtrl:this.modalCtrl})],n,(()=>{}))}}async saveArticleContent(){this.isSaving=!0,this.article?.get("author")?.id||this.article?.set("author",Parse.User.current()?.toPointer()),await(this.article?.save()),this.contentChanged=!1,this.isSaving=!1}close(){this.onClose.emit(!0)}async presentAlert(n){const e=await this.alertController.create({header:"提示",subHeader:n?.message,buttons:["好的"]});await e.present()}async aiTab(n){this.aitab=n}async clickTab(n){this.clicktab=n}async dashboardTab(n){this.dashboardtab=n}showContent(n){this.selectedContent=n}constructor(n,e,t,i,a,o,r,l,s){this.modalCtrl=n,this.alertController=e,this.dialog=t,this.cdRef=i,this.clipboard=a,this.draftServ=o,this.router=r,this.nupload=l,this.personServ=s,this.onClose=new EventEmitter,this.readOnly=!1,this.title="此处是标题",this.content="",this.contentChanged=!1,this.selectText="",this.optimizeText="",this.isOptimizing=!1,this.isSaving=!1,this.isDivHidden=!1,this.aitab="AI写作",this.clicktab="语法错误",this.dashboardtab="全部",this.cards=[{title:"全文创作",handle:()=>{this.taskArticleGeneration()},content:"按步骤快速创作一篇完整的文章",imageurl:"../../../assets/images/write.png"},{title:"润色改写",handle:()=>{this.aitab="AI润色"},content:"根据选段,调整语言,逻辑顺畅表达清晰",imageurl:"../../../assets/images/句子续写.png"},{title:"智能摘要(未开放)",handle:()=>{this.presentAlert({message:"暂未开放,敬请期待"})},content:"快速生成文章摘要",imageurl:"../../../assets/images/智能摘要.png"},{title:"句子续写(未开放)",handle:()=>{this.presentAlert({message:"暂未开放,敬请期待"})},content:"根据上文,续写多个句子",imageurl:"../../../assets/images/句子续写.png"},{title:"段落评论(未开放)",handle:()=>{this.presentAlert({message:"暂未开放,敬请期待"})},content:"根据段落特点,进行有针对性的评论",imageurl:"../../../assets/images/产品评论.png"},{title:"模板建议(未开放)",handle:()=>{this.presentAlert({message:"暂未开放,敬请期待"})},content:"欢迎与我们反馈您的需求",imageurl:"../../../assets/images/模板建议.png"}],this.tempFormGroup=new FormGroup({}),this.selectedContent="图片"}enableButton(){document.getElementById("start").disabled=!0}async taskArticleGeneration(n){let e={createNewDraft:!0};taskArticleGeneration((()=>{}),{modalCtrl:this.modalCtrl,article:this.article,person:this.book?.get("person"),book:this.book,shareData:e,dialog:this.dialog,personServ:this.personServ})}doArticleTask(n,e,t){e.article=this.article;let i=this.article?.get("writingOptions");i&&(e.writingOptions=i);let a=n;this.dialog.open(FmAgentTaskComponent,{data:{shareData:e,stepsList:a},disableClose:!0}).afterClosed().subscribe((n=>{t&&t()}))}uploadImage(){let n=this,e=document.createElement("input");e.type="file",e.accept="image/*",e.multiple=!1,e.addEventListener("change",(async()=>{let t=e?.files?.[0];if(t){let e=await n.nupload.upload(t);e?.url&&(this.article?.set("image",e?.url),this.article?.save())}})),e.click()}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:FmArticleEditorComponent,deps:[{token:i1.ModalController},{token:i1.AlertController},{token:i2.MatDialog},{token:i0.ChangeDetectorRef},{token:i3.ClipboardService},{token:i4.DraftService},{token:i5.Router},{token:i6.NovaUploadService},{token:i7.PersonService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:"14.0.0",version:"17.3.12",type:FmArticleEditorComponent,isStandalone:!0,selector:"fm-article-editor",inputs:{article:"article",book:"book",readOnly:"readOnly"},outputs:{onClose:"onClose"},providers:[DraftService,NovaUploadService,Diagnostic],viewQueries:[{propertyName:"editorComp",first:!0,predicate:["editorComp"],descendants:!0}],ngImport:i0,template:'<div class="page">\n\n \x3c!-- 导航栏 --\x3e\n <div class="nav" *ngIf="!readOnly">\n <fm-article-editor-topbar #topbar [article]="article" [isSaving]="isSaving" [contentChanged]="contentChanged" (onNavEvent)="handleNavEvent($event)"></fm-article-editor-topbar>\n </div>\n\n <div class="page-container">\n \x3c!-- (scroll)="onScroll($event)" --\x3e\n\n \x3c!-- 编辑文本 --\x3e\n \x3c!-- --\x3e\n <div class="editor-text" [ngClass]="{\'center\':isDivHidden}">\n <div class="editor-main">\n\n <div role="toolbar" class="ql-toolbar ql-snow" *ngIf="false">\n <span class="ql-formats"><span class="ql-header ql-picker"><span class="ql-picker-label" tabindex="0" role="button" aria-expanded="false" aria-controls="ql-picker-options-0"><svg viewBox="0 0 18 18"><polygon class="ql-stroke" points="7 11 9 13 11 11 7 11"></polygon><polygon class="ql-stroke" points="7 7 9 5 11 7 7 7"></polygon></svg></span><span class="ql-picker-options" aria-hidden="true" tabindex="-1" id="ql-picker-options-0"><span tabindex="0" role="button" class="ql-picker-item" data-value="1"></span><span tabindex="0" role="button" class="ql-picker-item" data-value="2"></span><span tabindex="0" role="button" class="ql-picker-item" data-value="3"></span><span tabindex="0" role="button" class="ql-picker-item" data-value="4"></span><span tabindex="0" role="button" class="ql-picker-item"></span></span></span><select class="ql-header" style="display: none;"><option value="1"></option><option value="2"></option><option value="3"></option><option value="4"></option><option selected="selected"></option></select></span>\n <span class="ql-formats"><button type="button" class="ql-bold" aria-pressed="false" aria-label="bold"><svg viewBox="0 0 18 18"><path class="ql-stroke" d="M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z"></path><path class="ql-stroke" d="M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z"></path></svg></button><button type="button" class="ql-italic" aria-pressed="false" aria-label="italic"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="7" x2="13" y1="4" y2="4"></line><line class="ql-stroke" x1="5" x2="11" y1="14" y2="14"></line><line class="ql-stroke" x1="8" x2="10" y1="14" y2="4"></line></svg></button><button type="button" class="ql-underline" aria-pressed="false" aria-label="underline"><svg viewBox="0 0 18 18"><path class="ql-stroke" d="M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3"></path><rect class="ql-fill" height="1" rx="0.5" ry="0.5" width="12" x="3" y="15"></rect></svg></button></span>\n <span class="ql-formats"><button type="button" class="ql-list" aria-pressed="false" value="bullet" aria-label="list: bullet"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="6" x2="15" y1="4" y2="4"></line><line class="ql-stroke" x1="6" x2="15" y1="9" y2="9"></line><line class="ql-stroke" x1="6" x2="15" y1="14" y2="14"></line><line class="ql-stroke" x1="3" x2="3" y1="4" y2="4"></line><line class="ql-stroke" x1="3" x2="3" y1="9" y2="9"></line><line class="ql-stroke" x1="3" x2="3" y1="14" y2="14"></line></svg></button></span>\n <span class="ql-formats"><span class="ql-align ql-picker ql-icon-picker"><span class="ql-picker-label" tabindex="0" role="button" aria-expanded="false" aria-controls="ql-picker-options-1"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="3" x2="15" y1="9" y2="9"></line><line class="ql-stroke" x1="3" x2="13" y1="14" y2="14"></line><line class="ql-stroke" x1="3" x2="9" y1="4" y2="4"></line></svg></span><span class="ql-picker-options" aria-hidden="true" tabindex="-1" id="ql-picker-options-1"><span tabindex="0" role="button" class="ql-picker-item"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="3" x2="15" y1="9" y2="9"></line><line class="ql-stroke" x1="3" x2="13" y1="14" y2="14"></line><line class="ql-stroke" x1="3" x2="9" y1="4" y2="4"></line></svg></span><span tabindex="0" role="button" class="ql-picker-item" data-value="center"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="15" x2="3" y1="9" y2="9"></line><line class="ql-stroke" x1="14" x2="4" y1="14" y2="14"></line><line class="ql-stroke" x1="12" x2="6" y1="4" y2="4"></line></svg></span><span tabindex="0" role="button" class="ql-picker-item" data-value="right"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="15" x2="3" y1="9" y2="9"></line><line class="ql-stroke" x1="15" x2="5" y1="14" y2="14"></line><line class="ql-stroke" x1="15" x2="9" y1="4" y2="4"></line></svg></span><span tabindex="0" role="button" class="ql-picker-item" data-value="justify"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="15" x2="3" y1="9" y2="9"></line><line class="ql-stroke" x1="15" x2="3" y1="14" y2="14"></line><line class="ql-stroke" x1="15" x2="3" y1="4" y2="4"></line></svg></span></span></span><select class="ql-align" style="display: none;"><option selected="selected"></option><option value="center"></option><option value="right"></option><option value="justify"></option></select></span>\n <span class="ql-formats"><button type="button" class="ql-code-block" aria-pressed="false" aria-label="code-block"><svg viewBox="0 0 18 18"><polyline class="ql-even ql-stroke" points="5 7 3 9 5 11"></polyline><polyline class="ql-even ql-stroke" points="13 7 15 9 13 11"></polyline><line class="ql-stroke" x1="10" x2="8" y1="5" y2="13"></line></svg></button></span>\n <span class="ql-formats"><button class="ql-ai-optimize">AI</button></span>\n </div>\n\n <div class="text-header">\n <input [ngModel]="article?.get(\'title\')" (ngModelChange)="article?.set(\'title\',$event)" type="text" />\n \x3c!-- <quill-editor [(ngModel)]="title" [modules]="{toolbar: true}"></quill-editor> --\x3e\n </div>\n <div class="article-info">\n <ng-container *ngIf="article?.get(\'keywords\')?.length">\n <div>关键字:<mat-chip *ngFor="let key of article?.get(\'keywords\')">{{key}}</mat-chip></div>\n </ng-container>\n <ng-container *ngIf="article?.get(\'writingOptions\')">\n <div (click)="handleNavEvent(\'options\')">设 定:\n <mat-chip *ngIf="article?.get(\'writingOptions\')?.writingStyle">{{article?.get(\'writingOptions\')?.writingStyle}}</mat-chip>\n <mat-chip *ngIf="article?.get(\'writingOptions\')?.wordCount">约{{article?.get(\'writingOptions\')?.wordCount}}字</mat-chip></div>\n </ng-container>\n <ng-container *ngIf="article?.get(\'outlineJson\')?.length">\n <div (click)="handleNavEvent(\'outline\')">提 纲:<mat-chip>{{article?.get(\'outlineJson\') | outlineCount}}字</mat-chip></div>\n </ng-container>\n <div *ngIf="article?.id" (click)="handleNavEvent(\'draft\')">稿件箱:<mat-chip>{{draftServ.DraftCountMap?.[article?.id||\'\']?.total || 0}}篇</mat-chip></div>\n </div>\n\n <div class="article-content">\n \x3c!-- 文本编辑区域:仅content正文 --\x3e\n <ng-container *ngIf="!article?.get(\'contentArray\')?.length">\n <fm-text-quill #textQuill [readOnly]="readOnly" [content]="article?.get(\'content\')" (onContentChange)="setContent($event)"\n (onAIClick)="goOptimizeText($event)" (onSelectChange)="selectChange($event)"\n ></fm-text-quill>\n </ng-container>\n \x3c!-- 文本编辑区域:含大纲正文 --\x3e\n <ng-container *ngIf="article?.get(\'contentArray\')?.length">\n <ng-container *ngFor="let item of article?.get(\'contentArray\');let index=index;">\n \x3c!-- 章节信息 --\x3e\n \x3c!-- <h2 style="margin:0px;padding-left:12px;" *ngIf="article?.get(\'outlineJson\')?.sections?.[index]?.title">{{article?.get(\'outlineJson\')?.sections?.[index]?.title}}</h2> --\x3e\n <fm-text-quill #textQuill [readOnly]="readOnly" [content]="item?.content" (onContentChange)="setContent($event,item)"\n (onAIClick)="goOptimizeText($event)" (onSelectChange)="selectChange($event)"\n ></fm-text-quill>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n\n\n\n \x3c!-- AI工具 --\x3e\n <div *ngIf="!readOnly && !isDivHidden" class="page-right">\n <div class="nav-ai">\n \x3c!-- AI功能按钮 --\x3e\n \x3c!-- <div class="ai-btn">\n <button (click)="showContent(\'AI-写作\')">AI写作</button>\n <button (click)="showContent(\'AI-润色\')">AI润色</button>\n <button (click)="showContent(\'校阅\')">校阅</button>\n <button (click)="showContent(\'图片\')">图片</button>\n <button (click)="showContent(\'评论\')">评论</button>\n </div> --\x3e\n\n <ul class="ai-btn">\n <li class="active0" (click)="aiTab(\'AI写作\')" [ngClass]="{ \'active1\': aitab == \'AI写作\' }">\n <div>AI写作</div>\n </li>\n <li class="active0" (click)="aiTab(\'AI润色\')" [ngClass]="{ \'active1\': aitab == \'AI润色\' }">\n <div>AI润色</div>\n </li>\n \x3c!-- <li class="active0" (click)="aiTab(\'校阅\')" [ngClass]="{ \'active1\': aitab == \'校阅\' }">\n <div>校阅</div>\n </li> --\x3e\n <li class="active0" (click)="aiTab(\'AI配图\')" [ngClass]="{ \'active1\': aitab == \'AI配图\' }">\n <div>AI配图</div>\n </li>\n\n </ul>\n \x3c!-- AI功能退出按钮 --\x3e\n <div>\n <ion-icon class="icon" name="close-outline" (click)="this.isDivHidden = !this.isDivHidden;"></ion-icon>\n </div>\n\n </div>\n\n\n \x3c!-- 工具面板 --\x3e\n <div class="ai-panel">\n\n <div *ngIf="aitab==\'AI写作\'" class="ai-write">\n \x3c!-- 搜索 --\x3e\n <div class="search-bar">\n <ion-searchbar color="light" placeholder="搜索模板"></ion-searchbar>\n </div>\n\n <div class="ai-tool-grid">\n <ng-container *ngFor="let card of cards">\n <ion-card class="card" style="margin-left: 5%;max-width:215px;" (click)="card?.handle()">\n <ion-card-header>\n <ion-card-title class="card-image">\n <img src="{{card.imageurl}}" width="25" height="25" alt="write">\n </ion-card-title>\n <ion-card-subtitle>{{card.title}}</ion-card-subtitle>\n </ion-card-header>\n\n <ion-card-content>\n {{card.content}}\n </ion-card-content>\n </ion-card>\n </ng-container>\n </div>\n\n </div>\n <div *ngIf="aitab==\'AI润色\'" class="ai-polish" [formGroup]="tempFormGroup">\n <div class="ai-polish-input">\n <mat-form-field style="width:95%;">\n <mat-label>输入或选中左侧文本开始润色</mat-label>\n <textarea matInput [(ngModel)]="selectText" [ngModelOptions]="{standalone: true}" rows="10"></textarea>\n </mat-form-field>\n\n \x3c!-- <textarea [(ngModel)]="selectText" rows="10" formControlName="comment" nz-input placeholder="输入或选中左侧文本开始润色"></textarea> --\x3e\n </div>\n <div class="ai-polish-button">\n <button *ngIf="!isOptimizing" mat-raised-button color="primary" (click)="optimizeContent()">开始润色</button>\n <button *ngIf="isOptimizing" mat-raised-button color="warn" (click)="cancelOptimize()">停止润色</button>\n \x3c!-- <ion-button id="start" [disabled]="false" (click)="enableButton()">开始润色</ion-button> --\x3e\n </div>\n <div class="ai-polish-input">\n <mat-form-field style="width:95%;">\n <mat-label>生成内容</mat-label>\n <textarea matInput [(ngModel)]="optimizeText" [ngModelOptions]="{standalone: true}" rows="10"></textarea>\n </mat-form-field>\n </div>\n <div class="ai-polish-button">\n <button *ngIf="selectRange?.length" mat-raised-button (click)="applyOptimize()"><mat-icon fontIcon="flip"></mat-icon>替换</button>\n <button mat-raised-button (click)="copyOptimize()"><mat-icon fontIcon="content_copy"></mat-icon>复制</button>\n \x3c!-- <ion-button id="start" [disabled]="false" (click)="enableButton()">开始润色</ion-button> --\x3e\n </div>\n \x3c!-- <div class="copy">\n <ion-icon name="copy-outline" style="color:#4e80f4" (click)="Copy(polishContent)"></ion-icon>\n </div> --\x3e\n </div>\n <div *ngIf="aitab==\'校阅\'" class="ai-proofread">\n\n <div class="showItems-container">\n <div class="showItems">\n\n <div class="showItem" (click)="clickTab(\'内容建议\')" [ngClass]="{ \'active1\': clicktab == \'内容建议\' }">\n <div style="line-height: 12px;">\n <svg width="20" height="22" viewBox="0 0 20 22" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M11 10H5M7 14H5M13 6H5M17 9.5V5.8C17 4.11984 17 3.27976 16.673 2.63803C16.3854 2.07354 15.9265 1.6146 15.362 1.32698C14.7202 1 13.8802 1 12.2 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H8.5M19 21L17.5 19.5M18.5 17C18.5 18.933 16.933 20.5 15 20.5C13.067 20.5 11.5 18.933 11.5 17C11.5 15.067 13.067 13.5 15 13.5C16.933 13.5 18.5 15.067 18.5 17Z"\n stroke="#1570EF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>\n </svg>\n </div>\n <span>内容建议</span>\n\n\n </div>\n\n <div class="showItem" (click)="clickTab(\'事实验证\')" [ngClass]="{\'active1\': clicktab==\'事实验证\'}">\n <div style="line-height: 12px;">\n <svg width="18" height="22" viewBox="0 0 18 22" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M11 1.26953V5.40007C11 5.96012 11 6.24015 11.109 6.45406C11.2049 6.64222 11.3578 6.7952 11.546 6.89108C11.7599 7.00007 12.0399 7.00007 12.6 7.00007H16.7305M6 15L8 17L12.5 12.5M11 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H12.2C13.8802 21 14.7202 21 15.362 20.673C15.9265 20.3854 16.3854 19.9265 16.673 19.362C17 18.7202 17 17.8802 17 16.2V7L11 1Z"\n stroke="#D92D20" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>\n </svg>\n </div>\n <span>事实验证</span>\n </div>\n\n <div class="showItem" (click)="clickTab(\'全文总结\')" [ngClass]="{\'active1\': clicktab==\'全文总结\'}">\n <div style="line-height: 12px;"> <svg width="20" height="22" viewBox="0 0 16 20" fill="none"\n xmlns="http://www.w3.org/2000/svg">\n <path\n d="M14.1668 5.83329V5.66663C14.1668 4.26649 14.1668 3.56643 13.8943 3.03165C13.6547 2.56124 13.2722 2.17879 12.8018 1.93911C12.267 1.66663 11.567 1.66663 10.1668 1.66663H4.8335C3.43336 1.66663 2.7333 1.66663 2.19852 1.93911C1.72811 2.17879 1.34566 2.56124 1.10598 3.03165C0.833496 3.56643 0.833496 4.26649 0.833496 5.66663V14.3333C0.833496 15.7334 0.833496 16.4335 1.10598 16.9683C1.34566 17.4387 1.72811 17.8211 2.19852 18.0608C2.7333 18.3333 3.43336 18.3333 4.8335 18.3333H7.91683M7.91683 9.16663H4.16683M7.0835 12.5H4.16683M10.8335 5.83329H4.16683M12.5002 15V10.4166C12.5002 9.72627 13.0598 9.16663 13.7502 9.16663C14.4405 9.16663 15.0002 9.72627 15.0002 10.4166V15C15.0002 16.3807 13.8809 17.5 12.5002 17.5C11.1195 17.5 10.0002 16.3807 10.0002 15V11.6666"\n stroke="#F79009" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path>\n </svg>\n </div>\n <span>全文总结</span>\n </div>\n\n </div>\n </div>\n\n <div class="showItem-content">\n <div *ngIf="clicktab==\'语法错误\'" class="grammar-panel">\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n\n </div>\n <div *ngIf="clicktab==\'内容建议\'" class="suggest-panel">\n\n <div class="content-suggest">\n <div style="line-height: 12px;">\n <svg width="20" height="22" viewBox="0 0 20 22" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M11 10H5M7 14H5M13 6H5M17 9.5V5.8C17 4.11984 17 3.27976 16.673 2.63803C16.3854 2.07354 15.9265 1.6146 15.362 1.32698C14.7202 1 13.8802 1 12.2 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H8.5M19 21L17.5 19.5M18.5 17C18.5 18.933 16.933 20.5 15 20.5C13.067 20.5 11.5 18.933 11.5 17C11.5 15.067 13.067 13.5 15 13.5C16.933 13.5 18.5 15.067 18.5 17Z"\n stroke="#1570EF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>\n </svg>\n </div>\n <div class="content-suggest-title">内容建议</div>\n </div>\n\n <div class="content">\n <div class="content-title"> 这篇文章介绍的是七个关于中国企业家的管理之道的自传小说章节标题,旨在展示企业家们的个人经历、管理理念和人生哲学。\n </div>\n <div class="content-title">改进建议:</div>\n <ol>\n <li> 标题一致性:文章中的章节标题应保持一致的格式,例如“啊手动阀士大夫”和“爱喝水的人,一定是有品味的”与其他章节的格式不一致,建议统一格式以增强文章的专业性。</li>\n <li> 语言风格:文章中出现了一些非正式或口语化的表达,如“嫩给够穿越时空的力量”和“包韩了对生命意义的深刻反思”,建议使用更正式的语言以符合专业文章的标准。</li>\n <li> 信息重复:在介绍《时光的裂缝》的部分,有关时间旅行的描述被多次提及,建议合并相似内容以避免重复。\n </li>\n <li> 标题一致性:文章中的章节标题应保持一致的格式,例如“啊手动阀士大夫”和“爱喝水的人,一定是有品味的”与其他章节的格式不一致,建议统一格式以增强文章的专业性。</li>\n <li> 语言风格:文章中出现了一些非正式或口语化的表达,如“嫩给够穿越时空的力量”和“包韩了对生命意义的深刻反思”,建议使用更正式的语言以符合专业文章的标准。</li>\n <li> 信息重复:在介绍《时光的裂缝》的部分,有关时间旅行的描述被多次提及,建议合并相似内容以避免重复。\n </li>\n <li> 标题一致性:文章中的章节标题应保持一致的格式,例如“啊手动阀士大夫”和“爱喝水的人,一定是有品味的”与其他章节的格式不一致,建议统一格式以增强文章的专业性。</li>\n <li> 语言风格:文章中出现了一些非正式或口语化的表达,如“嫩给够穿越时空的力量”和“包韩了对生命意义的深刻反思”,建议使用更正式的语言以符合专业文章的标准。</li>\n <li> 信息重复:在介绍《时光的裂缝》的部分,有关时间旅行的描述被多次提及,建议合并相似内容以避免重复。\n </li>\n <li> 标题一致性:文章中的章节标题应保持一致的格式,例如“啊手动阀士大夫”和“爱喝水的人,一定是有品味的”与其他章节的格式不一致,建议统一格式以增强文章的专业性。</li>\n <li> 语言风格:文章中出现了一些非正式或口语化的表达,如“嫩给够穿越时空的力量”和“包韩了对生命意义的深刻反思”,建议使用更正式的语言以符合专业文章的标准。</li>\n <li> 信息重复:在介绍《时光的裂缝》的部分,有关时间旅行的描述被多次提及,建议合并相似内容以避免重复。\n </li>\n <li> 标题一致性:文章中的章节标题应保持一致的格式,例如“啊手动阀士大夫”和“爱喝水的人,一定是有品味的”与其他章节的格式不一致,建议统一格式以增强文章的专业性。</li>\n <li> 语言风格:文章中出现了一些非正式或口语化的表达,如“嫩给够穿越时空的力量”和“包韩了对生命意义的深刻反思”,建议使用更正式的语言以符合专业文章的标准。</li>\n <li> 信息重复:在介绍《时光的裂缝》的部分,有关时间旅行的描述被多次提及,建议合并相似内容以避免重复。\n </li>\n </ol>\n\n\n </div>\n </div>\n <div *ngIf="clicktab==\'事实验证\'" class="verify-panel">\n <div class="dashboard">\n <div class="item" (click)="dashboardTab(\'全部\')" [ngClass]="{\'itemChoose\': dashboardtab==\'全部\'}">\n <div class="icon">\n <div class="statusIcon" style="border: 1px solid black; box-sizing: border-box;"></div>\n </div>\n <div class="text">全部</div>\n <div class="number">28</div>\n </div>\n\n <div class="item" (click)="dashboardTab(\'通过\')" [ngClass]="{\'itemChoose\': dashboardtab==\'通过\'}">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n <div class="number">9</div>\n </div>\n\n <div class="item" (click)="dashboardTab(\'不通过\')" [ngClass]="{\'itemChoose\': dashboardtab==\'不通过\'}">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(217, 45, 32);"><svg\n xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">\n <path d="M7 17L17 7" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n <path d="M7 7L17 17" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </svg></div>\n </div>\n <div class="text" style="color: rgb(217, 45, 32);">不通过</div>\n <div class="number">1</div>\n </div>\n <div class="item" (click)="dashboardTab(\'无法判断\')" [ngClass]="{\'itemChoose\': dashboardtab==\'无法判断\'}">\n <div class="icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="3 3 18 18"\n fill="none">\n <path\n d="M7.8824 8.679C7.88035 8.72744 7.88822 8.77579 7.90555 8.82107C7.92287 8.86636 7.94927 8.90762 7.98313 8.94232C8.01699 8.97703 8.05759 9.00444 8.10244 9.02287C8.14728 9.0413 8.19542 9.05036 8.2439 9.0495H9.4814C9.6884 9.0495 9.8534 8.88 9.8804 8.6745C10.0154 7.6905 10.6904 6.9735 11.8934 6.9735C12.9224 6.9735 13.8644 7.488 13.8644 8.7255C13.8644 9.678 13.3034 10.116 12.4169 10.782C11.4074 11.5155 10.6079 12.372 10.6649 13.7625L10.6694 14.088C10.671 14.1864 10.7112 14.2803 10.7813 14.3493C10.8515 14.4183 10.946 14.457 11.0444 14.457H12.2609C12.3604 14.457 12.4557 14.4175 12.5261 14.3472C12.5964 14.2768 12.6359 14.1815 12.6359 14.082V13.9245C12.6359 12.8475 13.0454 12.534 14.1509 11.6955C15.0644 11.001 16.0169 10.23 16.0169 8.6115C16.0169 6.345 14.1029 5.25 12.0074 5.25C10.1069 5.25 8.0249 6.135 7.8824 8.679ZM10.2179 17.3235C10.2179 18.123 10.8554 18.714 11.7329 18.714C12.6464 18.714 13.2749 18.123 13.2749 17.3235C13.2749 16.4955 12.6449 15.9135 11.7314 15.9135C10.8554 15.9135 10.2179 16.4955 10.2179 17.3235Z"\n fill="#475467"></path>\n </svg></div>\n <div class="text">无法判断</div>\n <div class="number">18</div>\n </div>\n </div>\n\n <div class="verify-card-list">\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n </div>\n </div>\n <div *ngIf="clicktab==\'全文总结\'" class="summary-panel">\n\n <div class="text-summary">\n <div style="line-height: 12px;">\n <svg width="20" height="22" viewBox="0 0 16 20" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M14.1668 5.83329V5.66663C14.1668 4.26649 14.1668 3.56643 13.8943 3.03165C13.6547 2.56124 13.2722 2.17879 12.8018 1.93911C12.267 1.66663 11.567 1.66663 10.1668 1.66663H4.8335C3.43336 1.66663 2.7333 1.66663 2.19852 1.93911C1.72811 2.17879 1.34566 2.56124 1.10598 3.03165C0.833496 3.56643 0.833496 4.26649 0.833496 5.66663V14.3333C0.833496 15.7334 0.833496 16.4335 1.10598 16.9683C1.34566 17.4387 1.72811 17.8211 2.19852 18.0608C2.7333 18.3333 3.43336 18.3333 4.8335 18.3333H7.91683M7.91683 9.16663H4.16683M7.0835 12.5H4.16683M10.8335 5.83329H4.16683M12.5002 15V10.4166C12.5002 9.72627 13.0598 9.16663 13.7502 9.16663C14.4405 9.16663 15.0002 9.72627 15.0002 10.4166V15C15.0002 16.3807 13.8809 17.5 12.5002 17.5C11.1195 17.5 10.0002 16.3807 10.0002 15V11.6666"\n stroke="#F79009" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path>\n </svg>\n </div>\n <div class="text-summary-title">全文总结</div>\n </div>\n\n <div class="text">\n <div class="text-title">概括:</div>\n\n <p>\n 这本自传小说由企业家曹国熊撰写,讲述了他如何从贫穷孩子成长为成功企业家的经历和管理智慧,同时通过不同章节探讨了企业家的成长、团队合作、创新驱动、领导力培养、面对危机和可持续发展等主题。\n </p>\n <div class="text-title">要点:</div>\n <ul>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 章节《从小梦想到大事业》回顾了作者从少年时代怀揣创业梦想,克服困难和挑战的过程。</li>\n <li> 《时光的裂缝》是一部结合悬疑、奇幻和哲思的小说,通过杰克的视角探索人性、选择和成长。</li>\n <li> 书中还涉及了如何培养企业家的道德操守和社会责任感、团队合作的重要性、科技创新的推动、领导力的培养以及如何面对和化解危机。</li>\n <li> 最后一章《绿色转型的先锋》探讨了作者作为企业家在社会责任方面的努力,包括推动企业绿色转型和可持续发展。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 章节《从小梦想到大事业》回顾了作者从少年时代怀揣创业梦想,克服困难和挑战的过程。</li>\n <li> 《时光的裂缝》是一部结合悬疑、奇幻和哲思的小说,通过杰克的视角探索人性、选择和成长。</li>\n <li> 书中还涉及了如何培养企业家的道德操守和社会责任感、团队合作的重要性、科技创新的推动、领导力的培养以及如何面对和化解危机。</li>\n <li> 最后一章《绿色转型的先锋》探讨了作者作为企业家在社会责任方面的努力,包括推动企业绿色转型和可持续发展。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 章节《从小梦想到大事业》回顾了作者从少年时代怀揣创业梦想,克服困难和挑战的过程。</li>\n <li> 《时光的裂缝》是一部结合悬疑、奇幻和哲思的小说,通过杰克的视角探索人性、选择和成长。</li>\n <li> 书中还涉及了如何培养企业家的道德操守和社会责任感、团队合作的重要性、科技创新的推动、领导力的培养以及如何面对和化解危机。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 章节《从小梦想到大事业》回顾了作者从少年时代怀揣创业梦想,克服困难和挑战的过程。</li>\n <li> 《时光的裂缝》是一部结合悬疑、奇幻和哲思的小说,通过杰克的视角探索人性、选择和成长。</li>\n <li> 书中还涉及了如何培养企业家的道德操守和社会责任感、团队合作的重要性、科技创新的推动、领导力的培养以及如何面对和化解危机。</li>\n <li> 最后一章《绿色转型的先锋》探讨了作者作为企业家在社会责任方面的努力,包括推动企业绿色转型和可持续发展。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 章节《从小梦想到大事业》回顾了作者从少年时代怀揣创业梦想,克服困难和挑战的过程。</li>\n <li> 《时光的裂缝》是一部结合悬疑、奇幻和哲思的小说,通过杰克的视角探索人性、选择和成长。</li>\n <li> 书中还涉及了如何培养企业家的道德操守和社会责任感、团队合作的重要性、科技创新的推动、领导力的培养以及如何面对和化解危机。</li>\n <li> 最后一章《绿色转型的先锋》探讨了作者作为企业家在社会责任方面的努力,包括推动企业绿色转型和可持续发展。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 最后一章《绿色转型的先锋》探讨了作者作为企业家在社会责任方面的努力,包括推动企业绿色转型和可持续发展。</li>\n </ul>\n\n\n\n\n\n\n </div>\n </div>\n </div>\n\n\n\n </div>\n <div *ngIf="aitab==\'AI配图\'" class="ai-img">\n <mat-accordion multi>\n <mat-expansion-panel expanded="true">\n <mat-expansion-panel-header>\n <mat-panel-title>文章封面</mat-panel-title>\n </mat-expansion-panel-header>\n <div class="image" (click)="uploadImage()">\n <img [src]="article?.get(\'image\') || \'/assets/img/icon/addphoto.png\'" alt="">\n </div>\n </mat-expansion-panel>\n\n <mat-expansion-panel expanded="false">\n <mat-expansion-panel-header>\n <mat-panel-title>段落插图</mat-panel-title>\n </mat-expansion-panel-header>\n \n <div class="ai-img-search">\n\n <div class="ai-img-search-input">\n <input type="text" nz-input placeholder="请输入图片描述" />\n </div>\n\n <div class="ai-img-search-button">\n <ion-button>\n <ion-icon name="search-outline"></ion-icon>\n 查找\n </ion-button>\n </div>\n\n </div>\n\n <div class="img-tip">\n <img class="bg-img" src="../../../assets/images/火箭2.png">\n </div>\n <div class="ai-img-tip">\n <h1>输入描述,自动配图</h1>\n\n </div>\n\n <div class="ai-img-tip-list">\n <div class="pce-inner-tip-point"></div>\n <span>\n 根据您对图片的描述,智能匹配相关图片\n </span>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n\n\n </div>\n\n\n </div>\n </div>\n\n\n\n\n </div>\n</div>',styles:['@charset "UTF-8";.image{width:100%;height:240px;overflow:hidden;display:flex;justify-content:center;align-items:center}.image img{height:100%;object-fit:contain;height:auto;transition:transform .2s}.image:hover img{transform:scale(1.2)}.page{background-color:#fafafa;height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden}.page .nav{position:sticky;top:0;z-index:3}.page .icon{width:20px;height:20px;margin:0 10px 0 5%}.page .page-container{display:flex;height:calc(100vh - 120px)}.page .page-container .center{margin:5vh auto!important}.page .page-container .editor-text{display:flex;justify-content:center;flex:1;right:0;height:auto;min-height:75vh;min-width:35%;box-shadow:#00000026 1px 2px 8px;background-color:#fff;overflow:visible}.page .page-container .editor-text .editor-main{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.page .page-container .editor-text .editor-main .text-header{display:flex;justify-content:center;padding-top:10px}.page .page-container .editor-text .editor-main .text-header input,.page .page-container .editor-text .editor-main .text-header input:focus{width:100%;text-align:center;border:none;font-size:22px;font-weight:700;box-shadow:none;outline:none}.page .page-container .editor-text .editor-main .article-info{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.page .page-container .editor-text .editor-main .article-info div{padding-left:5px;padding-right:5px;margin-bottom:3px}.page .page-container .editor-text .editor-main .article-info div mat-chip{margin-right:3px}.page .page-container .editor-text .editor-main .article-content{flex:1;min-height:50vh;overflow-y:auto}.page .page-container .page-right{height:calc(80vh - 10px);margin-top:6px;margin-left:3px;min-width:480px;background-color:#fafafa;opacity:1;transition:opacity 2s ease-in-out;overflow-y:hidden;overflow-x:hidden}.page .page-container .page-right .nav-ai{background-color:#fafafa;display:flex;width:100%;justify-content:space-between;z-index:3;position:sticky;top:0}.page .page-container .page-right .nav-ai ul{width:100%;list-style-type:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:space-around}.page .page-container .page-right .nav-ai ul .active0{position:relative;padding:5px 15px;margin:0 5px 10px;font-size:18px;font-weight:700;color:#8e8e8e;border-radius:5px;transition:.3s}.page .page-container .page-right .nav-ai ul .active1{color:#333}.page .page-container .page-right .nav-ai ul .active1 div:after{content:"";position:absolute;left:0;bottom:0;width:100%;border-bottom:4px solid #8e8e8e;border-radius:10px;margin-bottom:-6px}.page .page-container .page-right .nav-ai ul li div{cursor:pointer;text-align:center;position:relative}.page .page-container .page-right .nav-ai .icon{cursor:pointer;margin-top:20%;width:25px;height:25px;align-content:center}.page .page-container .page-right .ai-panel{right:2%;background-color:#fafafa;width:95%;z-index:1}.page .page-container .page-right .ai-panel .ai-tool-grid{display:flex;flex-wrap:wrap}.page .page-container .page-right .ai-panel .ai-tool-grid ion-card{max-width:33%}.page .page-container .page-right .ai-panel div::-webkit-scrollbar{display:none}.page .page-container .page-right .ai-panel .ai-write{width:515px}.page .page-container .page-right .ai-panel .ai-write .search-bar{height:40px;width:100%;margin-left:15px}.page .page-container .page-right .ai-panel .ai-write ion-col{background-color:#fafafa;border:solid 2px #fafafa;text-align:center;padding:0;margin-left:3%}.page .page-container .page-right .ai-panel .ai-write .card{max-height:150px;max-width:220px;height:15vh;width:16vw;cursor:pointer}.page .page-container .page-right .ai-panel .ai-write .card .card-image{margin-right:80%}.page .page-container .page-right .ai-panel .ai-write .card ion-card-header{padding:6%}.page .page-container .page-right .ai-panel .ai-write .card ion-card-subtitle{font-weight:600;text-align:left}.page .page-container .page-right .ai-panel .ai-write .card ion-card-content{text-align:left;white-space:pre-line;font-size:12px;margin-left:6%;padding:0}.page .page-container .page-right .ai-panel .ai-write .card-image{background:#fff;box-shadow:0 1px 4px #0000000a,0 4px 10px #00000014;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}.page .page-container .page-right .ai-panel .ai-polish{margin-top:10px;background-color:#fafafa}.page .page-container .page-right .ai-panel .ai-polish textarea.ant-input{max-width:93%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.page .page-container .page-right .ai-panel .ai-polish ::-webkit-scrollbar{width:4px;border-radius:3px}.page .page-container .page-right .ai-panel .ai-polish ::-webkit-scrollbar-thumb{background-color:#dddee0;border-radius:2px}.page .page-container .page-right .ai-panel .ai-polish .ai-polish-button{text-align:right;margin-right:21px}.page .page-container .page-right .ai-panel .ai-polish .ai-polish-button button{margin-left:15px}.page .page-container .page-right .ai-panel .ai-polish .copy{text-align:right;margin-right:7%;cursor:pointer}.page .page-container .page-right .ai-panel .ai-proofread{height:73vh;margin-top:2%;position:sticky;top:0}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container{width:100%;z-index:2}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems{display:flex;justify-content:space-around;position:sticky;top:0;padding-left:15px;padding-right:15px}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems .showItem{display:flex;flex-shrink:0;cursor:pointer;gap:8px;padding:12px 15px;background:#fff;border:1px solid #f9fafb;box-shadow:0 1px 2px #1018280d;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems .active1{color:#333;font-weight:700}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel{margin-top:10%;margin-left:2.3%;height:61vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error{display:flex;text-align:center;margin-bottom:5%;width:90%;height:6vh;margin-left:4%;background:#fff;border:1px solid #f9fafb;box-shadow:0 1px 2px #1018280d;line-height:6vh}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .alert-point{color:#ff7a7a;margin-left:6%;margin-right:5%;font-size:20px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .alert-point-gray{color:#8189a9;font-size:10px;margin-right:1%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .error-content{margin-right:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .right-content{margin-left:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel{position:sticky;top:0;margin-top:4%;margin-left:6.8%;width:91%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content-suggest{display:flex;cursor:pointer;padding:5% 3%;height:6%;width:100%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content-suggest .content-suggest-title{margin-left:3%;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content{width:98%;height:55vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content .content-title{margin:3% 4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content ol{margin:3% 4%;counter-reset:section}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content li:before{counter-increment:section;content:"Section " counter(section) ". "}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel{margin-top:2%;margin-left:6.8%;width:95%;margin-bottom:2%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .icon{width:16px;height:16px;display:inline-block;margin-top:3px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard{display:flex;margin-left:-1%;margin-top:3%;height:5%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .itemChoose{background-color:#eaecf0}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item{display:flex;height:76%;width:23%;padding:6px 8px;cursor:pointer}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item .text{font-weight:bolder;margin-right:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item .number{font-weight:bolder;margin-right:1%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .statusIcon{border-radius:50%;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:18px;height:18px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list{height:61vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card{box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a;width:95%;height:auto;margin-top:3%;padding:2% 3%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card .item{display:flex}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card .card-content{margin-top:3%;margin-bottom:3%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .statusIcon{border-radius:50%;width:18px;height:18px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel{margin-top:2%;margin-left:6.8%;width:91%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text-summary{display:flex;cursor:pointer;padding:5% 3%;height:6%;width:100%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text-summary .text-summary-title{margin-left:3%;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text{width:100%;height:57vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text .text-title{margin:3% 4%;font-weight:700}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text p{margin:3% 4%}.page .page-container .page-right .ai-panel .ai-img{width:480px}.page .page-container .page-right .ai-panel .ai-img .ai-img-search{display:flex;height:4%;width:100%;margin-left:4%;margin-top:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-input{width:65%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-input input{height:100%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-button{margin-left:5%;margin-top:-.8%}.page .page-container .page-right .ai-panel .ai-img .img-tip{display:flex;text-align:center;justify-content:center;margin-top:20%;width:95%}.page .page-container .page-right .ai-panel .ai-img .img-tip .bg-img{width:65%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip{display:flex;justify-content:center;text-align:center;margin-top:2%;margin-right:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip h1{font-weight:600}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip-list{display:flex;justify-content:center;text-align:center;margin-top:2%;margin-right:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip-list .pce-inner-tip-point{display:inline-block;margin-top:2%;margin-right:1%;height:8px;width:8px;border-radius:50%;background-color:#4b4b4b}\n'],dependencies:[{kind:"ngmodule",type:CommonModule},{kind:"directive",type:i8.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{kind:"directive",type:i8.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{kind:"directive",type:i8.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{kind:"ngmodule",type:FormsModule},{kind:"directive",type:i9.NgSelectOption,selector:"option",inputs:["ngValue","value"]},{kind:"directive",type:i9.ɵNgSelectMultipleOption,selector:"option",inputs:["ngValue","value"]},{kind:"directive",type:i9.DefaultValueAccessor,selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]"},{kind:"directive",type:i9.NgControlStatus,selector:"[formControlName],[ngModel],[formControl]"},{kind:"directive",type:i9.NgControlStatusGroup,selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]"},{kind:"directive",type:i9.NgModel,selector:"[ngModel]:not([formControlName]):not([formControl])",inputs:["name","disabled","ngModel","ngModelOptions"],outputs:["ngModelChange"],exportAs:["ngModel"]},{kind:"ngmodule",type:ReactiveFormsModule},{kind:"directive",type:i9.FormGroupDirective,selector:"[formGroup]",inputs:["formGroup"],outputs:["ngSubmit"],exportAs:["ngForm"]},{kind:"ngmodule",type:IonicModule},{kind:"component",type:i10.IonButton,selector:"ion-button",inputs:["buttonType","color","disabled","download","expand","fill","form","href","mode","rel","routerAnimation","routerDirection","shape","size","strong","target","type"]},{kind:"component",type:i10.IonCard,selector:"ion-card",inputs:["button","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","target","type"]},{kind:"component",type:i10.IonCardContent,selector:"ion-card-content",inputs:["mode"]},{kind:"component",type:i10.IonCardHeader,selector:"ion-card-header",inputs:["color","mode","translucent"]},{kind:"component",type:i10.IonCardSubtitle,selector:"ion-card-subtitle",inputs:["color","mode"]},{kind:"component",type:i10.IonCardTitle,selector:"ion-card-title",inputs:["color","mode"]},{kind:"component",type:i10.IonIcon,selector:"ion-icon",inputs:["color","flipRtl","icon","ios","lazy","md","mode","name","sanitize","size","src"]},{kind:"component",type:i10.IonSearchbar,selector:"ion-searchbar",inputs:["animated","autocapitalize","autocomplete","autocorrect","cancelButtonIcon","cancelButtonText","clearIcon","color","debounce","disabled","enterkeyhint","inputmode","maxlength","minlength","mode","name","placeholder","searchIcon","showCancelButton","showClearButton","spellcheck","type","value"]},{kind:"directive",type:i10.TextValueAccessor,selector:"ion-input:not([type=number]),ion-textarea,ion-searchbar"},{kind:"ngmodule",type:NzInputModule},{kind:"directive",type:i11.NzInputDirective,selector:"input[nz-input],textarea[nz-input]",inputs:["nzBorderless","nzSize","nzStepperless","nzStatus","disabled"],exportAs:["nzInput"]},{kind:"ngmodule",type:NzDropDownModule},{kind:"ngmodule",type:NzDividerModule},{kind:"ngmodule",type:NzEmptyModule},{kind:"ngmodule",type:NzAvatarModule},{kind:"ngmodule",type:NzPopoverModule},{kind:"ngmodule",type:NzToolTipModule},{kind:"ngmodule",type:NzPipesModule},{kind:"ngmodule",type:MatDialogModule},{kind:"ngmodule",type:MatFormFieldModule},{kind:"component",type:i12.MatFormField,selector:"mat-form-field",inputs:["hideRequiredMarker","color","floatLabel","appearance","subscriptSizing","hintLabel"],exportAs:["matFormField"]},{kind:"directive",type:i12.MatLabel,selector:"mat-label"},{kind:"ngmodule",type:MatInputModule},{kind:"directive",type:i13.MatInput,selector:"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]",inputs:["disabled","id","placeholder","name","required","type","errorStateMatcher","aria-describedby","value","readonly"],exportAs:["matInput"]},{kind:"ngmodule",type:MatButtonModule},{kind:"component",type:i14.MatButton,selector:" button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ",exportAs:["matButton"]},{kind:"ngmodule",type:MatIconModule},{kind:"component",type:i15.MatIcon,selector:"mat-icon",inputs:["color","inline","svgIcon","fontSet","fontIcon"],exportAs:["matIcon"]},{kind:"ngmodule",type:MatChipsModule},{kind:"component",type:i16.MatChip,selector:"mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]",inputs:["role","id","aria-label","aria-description","value","color","removable","highlighted","disableRipple","disabled","tabIndex"],outputs:["removed","destroyed"],exportAs:["matChip"]},{kind:"ngmodule",type:MatExpansionModule},{kind:"directive",type:i17.MatAccordion,selector:"mat-accordion",inputs:["hideToggle","displayMode","togglePosition"],exportAs:["matAccordion"]},{kind:"component",type:i17.MatExpansionPanel,selector:"mat-expansion-panel",inputs:["hideToggle","togglePosition"],outputs:["afterExpand","afterCollapse"],exportAs:["matExpansionPanel"]},{kind:"component",type:i17.MatExpansionPanelHeader,selector:"mat-expansion-panel-header",inputs:["expandedHeight","collapsedHeight","tabIndex"]},{kind:"directive",type:i17.MatExpansionPanelTitle,selector:"mat-panel-title"},{kind:"component",type:ArticleEditorTopbarComponent,selector:"fm-article-editor-topbar",inputs:["article","contentChanged","isSaving"],outputs:["onNavEvent"]},{kind:"component",type:FmTextQuillComponent,selector:"fm-text-quill",inputs:["readOnly","content","theme","toolbar"],outputs:["onAIClick","onContentChange","onSelectChange"]},{kind:"pipe",type:OutlineCountPipe,name:"outlineCount"}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:FmArticleEditorComponent,decorators:[{type:Component,args:[{selector:"fm-article-editor",standalone:!0,imports:[CommonModule,FormsModule,ReactiveFormsModule,IonicModule,NzInputModule,NzDropDownModule,NzDividerModule,NzEmptyModule,NzAvatarModule,NzPopoverModule,NzToolTipModule,NzPipesModule,MatDialogModule,MatFormFieldModule,MatInputModule,MatButtonModule,MatIconModule,MatChipsModule,MatExpansionModule,ArticleEditorTopbarComponent,FmTextQuillComponent,OutlineCountPipe,FmArticleOutlineLeftitemComponent],providers:[DraftService,NovaUploadService,Diagnostic],template:'<div class="page">\n\n \x3c!-- 导航栏 --\x3e\n <div class="nav" *ngIf="!readOnly">\n <fm-article-editor-topbar #topbar [article]="article" [isSaving]="isSaving" [contentChanged]="contentChanged" (onNavEvent)="handleNavEvent($event)"></fm-article-editor-topbar>\n </div>\n\n <div class="page-container">\n \x3c!-- (scroll)="onScroll($event)" --\x3e\n\n \x3c!-- 编辑文本 --\x3e\n \x3c!-- --\x3e\n <div class="editor-text" [ngClass]="{\'center\':isDivHidden}">\n <div class="editor-main">\n\n <div role="toolbar" class="ql-toolbar ql-snow" *ngIf="false">\n <span class="ql-formats"><span class="ql-header ql-picker"><span class="ql-picker-label" tabindex="0" role="button" aria-expanded="false" aria-controls="ql-picker-options-0"><svg viewBox="0 0 18 18"><polygon class="ql-stroke" points="7 11 9 13 11 11 7 11"></polygon><polygon class="ql-stroke" points="7 7 9 5 11 7 7 7"></polygon></svg></span><span class="ql-picker-options" aria-hidden="true" tabindex="-1" id="ql-picker-options-0"><span tabindex="0" role="button" class="ql-picker-item" data-value="1"></span><span tabindex="0" role="button" class="ql-picker-item" data-value="2"></span><span tabindex="0" role="button" class="ql-picker-item" data-value="3"></span><span tabindex="0" role="button" class="ql-picker-item" data-value="4"></span><span tabindex="0" role="button" class="ql-picker-item"></span></span></span><select class="ql-header" style="display: none;"><option value="1"></option><option value="2"></option><option value="3"></option><option value="4"></option><option selected="selected"></option></select></span>\n <span class="ql-formats"><button type="button" class="ql-bold" aria-pressed="false" aria-label="bold"><svg viewBox="0 0 18 18"><path class="ql-stroke" d="M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z"></path><path class="ql-stroke" d="M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z"></path></svg></button><button type="button" class="ql-italic" aria-pressed="false" aria-label="italic"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="7" x2="13" y1="4" y2="4"></line><line class="ql-stroke" x1="5" x2="11" y1="14" y2="14"></line><line class="ql-stroke" x1="8" x2="10" y1="14" y2="4"></line></svg></button><button type="button" class="ql-underline" aria-pressed="false" aria-label="underline"><svg viewBox="0 0 18 18"><path class="ql-stroke" d="M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3"></path><rect class="ql-fill" height="1" rx="0.5" ry="0.5" width="12" x="3" y="15"></rect></svg></button></span>\n <span class="ql-formats"><button type="button" class="ql-list" aria-pressed="false" value="bullet" aria-label="list: bullet"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="6" x2="15" y1="4" y2="4"></line><line class="ql-stroke" x1="6" x2="15" y1="9" y2="9"></line><line class="ql-stroke" x1="6" x2="15" y1="14" y2="14"></line><line class="ql-stroke" x1="3" x2="3" y1="4" y2="4"></line><line class="ql-stroke" x1="3" x2="3" y1="9" y2="9"></line><line class="ql-stroke" x1="3" x2="3" y1="14" y2="14"></line></svg></button></span>\n <span class="ql-formats"><span class="ql-align ql-picker ql-icon-picker"><span class="ql-picker-label" tabindex="0" role="button" aria-expanded="false" aria-controls="ql-picker-options-1"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="3" x2="15" y1="9" y2="9"></line><line class="ql-stroke" x1="3" x2="13" y1="14" y2="14"></line><line class="ql-stroke" x1="3" x2="9" y1="4" y2="4"></line></svg></span><span class="ql-picker-options" aria-hidden="true" tabindex="-1" id="ql-picker-options-1"><span tabindex="0" role="button" class="ql-picker-item"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="3" x2="15" y1="9" y2="9"></line><line class="ql-stroke" x1="3" x2="13" y1="14" y2="14"></line><line class="ql-stroke" x1="3" x2="9" y1="4" y2="4"></line></svg></span><span tabindex="0" role="button" class="ql-picker-item" data-value="center"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="15" x2="3" y1="9" y2="9"></line><line class="ql-stroke" x1="14" x2="4" y1="14" y2="14"></line><line class="ql-stroke" x1="12" x2="6" y1="4" y2="4"></line></svg></span><span tabindex="0" role="button" class="ql-picker-item" data-value="right"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="15" x2="3" y1="9" y2="9"></line><line class="ql-stroke" x1="15" x2="5" y1="14" y2="14"></line><line class="ql-stroke" x1="15" x2="9" y1="4" y2="4"></line></svg></span><span tabindex="0" role="button" class="ql-picker-item" data-value="justify"><svg viewBox="0 0 18 18"><line class="ql-stroke" x1="15" x2="3" y1="9" y2="9"></line><line class="ql-stroke" x1="15" x2="3" y1="14" y2="14"></line><line class="ql-stroke" x1="15" x2="3" y1="4" y2="4"></line></svg></span></span></span><select class="ql-align" style="display: none;"><option selected="selected"></option><option value="center"></option><option value="right"></option><option value="justify"></option></select></span>\n <span class="ql-formats"><button type="button" class="ql-code-block" aria-pressed="false" aria-label="code-block"><svg viewBox="0 0 18 18"><polyline class="ql-even ql-stroke" points="5 7 3 9 5 11"></polyline><polyline class="ql-even ql-stroke" points="13 7 15 9 13 11"></polyline><line class="ql-stroke" x1="10" x2="8" y1="5" y2="13"></line></svg></button></span>\n <span class="ql-formats"><button class="ql-ai-optimize">AI</button></span>\n </div>\n\n <div class="text-header">\n <input [ngModel]="article?.get(\'title\')" (ngModelChange)="article?.set(\'title\',$event)" type="text" />\n \x3c!-- <quill-editor [(ngModel)]="title" [modules]="{toolbar: true}"></quill-editor> --\x3e\n </div>\n <div class="article-info">\n <ng-container *ngIf="article?.get(\'keywords\')?.length">\n <div>关键字:<mat-chip *ngFor="let key of article?.get(\'keywords\')">{{key}}</mat-chip></div>\n </ng-container>\n <ng-container *ngIf="article?.get(\'writingOptions\')">\n <div (click)="handleNavEvent(\'options\')">设 定:\n <mat-chip *ngIf="article?.get(\'writingOptions\')?.writingStyle">{{article?.get(\'writingOptions\')?.writingStyle}}</mat-chip>\n <mat-chip *ngIf="article?.get(\'writingOptions\')?.wordCount">约{{article?.get(\'writingOptions\')?.wordCount}}字</mat-chip></div>\n </ng-container>\n <ng-container *ngIf="article?.get(\'outlineJson\')?.length">\n <div (click)="handleNavEvent(\'outline\')">提 纲:<mat-chip>{{article?.get(\'outlineJson\') | outlineCount}}字</mat-chip></div>\n </ng-container>\n <div *ngIf="article?.id" (click)="handleNavEvent(\'draft\')">稿件箱:<mat-chip>{{draftServ.DraftCountMap?.[article?.id||\'\']?.total || 0}}篇</mat-chip></div>\n </div>\n\n <div class="article-content">\n \x3c!-- 文本编辑区域:仅content正文 --\x3e\n <ng-container *ngIf="!article?.get(\'contentArray\')?.length">\n <fm-text-quill #textQuill [readOnly]="readOnly" [content]="article?.get(\'content\')" (onContentChange)="setContent($event)"\n (onAIClick)="goOptimizeText($event)" (onSelectChange)="selectChange($event)"\n ></fm-text-quill>\n </ng-container>\n \x3c!-- 文本编辑区域:含大纲正文 --\x3e\n <ng-container *ngIf="article?.get(\'contentArray\')?.length">\n <ng-container *ngFor="let item of article?.get(\'contentArray\');let index=index;">\n \x3c!-- 章节信息 --\x3e\n \x3c!-- <h2 style="margin:0px;padding-left:12px;" *ngIf="article?.get(\'outlineJson\')?.sections?.[index]?.title">{{article?.get(\'outlineJson\')?.sections?.[index]?.title}}</h2> --\x3e\n <fm-text-quill #textQuill [readOnly]="readOnly" [content]="item?.content" (onContentChange)="setContent($event,item)"\n (onAIClick)="goOptimizeText($event)" (onSelectChange)="selectChange($event)"\n ></fm-text-quill>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n\n\n\n \x3c!-- AI工具 --\x3e\n <div *ngIf="!readOnly && !isDivHidden" class="page-right">\n <div class="nav-ai">\n \x3c!-- AI功能按钮 --\x3e\n \x3c!-- <div class="ai-btn">\n <button (click)="showContent(\'AI-写作\')">AI写作</button>\n <button (click)="showContent(\'AI-润色\')">AI润色</button>\n <button (click)="showContent(\'校阅\')">校阅</button>\n <button (click)="showContent(\'图片\')">图片</button>\n <button (click)="showContent(\'评论\')">评论</button>\n </div> --\x3e\n\n <ul class="ai-btn">\n <li class="active0" (click)="aiTab(\'AI写作\')" [ngClass]="{ \'active1\': aitab == \'AI写作\' }">\n <div>AI写作</div>\n </li>\n <li class="active0" (click)="aiTab(\'AI润色\')" [ngClass]="{ \'active1\': aitab == \'AI润色\' }">\n <div>AI润色</div>\n </li>\n \x3c!-- <li class="active0" (click)="aiTab(\'校阅\')" [ngClass]="{ \'active1\': aitab == \'校阅\' }">\n <div>校阅</div>\n </li> --\x3e\n <li class="active0" (click)="aiTab(\'AI配图\')" [ngClass]="{ \'active1\': aitab == \'AI配图\' }">\n <div>AI配图</div>\n </li>\n\n </ul>\n \x3c!-- AI功能退出按钮 --\x3e\n <div>\n <ion-icon class="icon" name="close-outline" (click)="this.isDivHidden = !this.isDivHidden;"></ion-icon>\n </div>\n\n </div>\n\n\n \x3c!-- 工具面板 --\x3e\n <div class="ai-panel">\n\n <div *ngIf="aitab==\'AI写作\'" class="ai-write">\n \x3c!-- 搜索 --\x3e\n <div class="search-bar">\n <ion-searchbar color="light" placeholder="搜索模板"></ion-searchbar>\n </div>\n\n <div class="ai-tool-grid">\n <ng-container *ngFor="let card of cards">\n <ion-card class="card" style="margin-left: 5%;max-width:215px;" (click)="card?.handle()">\n <ion-card-header>\n <ion-card-title class="card-image">\n <img src="{{card.imageurl}}" width="25" height="25" alt="write">\n </ion-card-title>\n <ion-card-subtitle>{{card.title}}</ion-card-subtitle>\n </ion-card-header>\n\n <ion-card-content>\n {{card.content}}\n </ion-card-content>\n </ion-card>\n </ng-container>\n </div>\n\n </div>\n <div *ngIf="aitab==\'AI润色\'" class="ai-polish" [formGroup]="tempFormGroup">\n <div class="ai-polish-input">\n <mat-form-field style="width:95%;">\n <mat-label>输入或选中左侧文本开始润色</mat-label>\n <textarea matInput [(ngModel)]="selectText" [ngModelOptions]="{standalone: true}" rows="10"></textarea>\n </mat-form-field>\n\n \x3c!-- <textarea [(ngModel)]="selectText" rows="10" formControlName="comment" nz-input placeholder="输入或选中左侧文本开始润色"></textarea> --\x3e\n </div>\n <div class="ai-polish-button">\n <button *ngIf="!isOptimizing" mat-raised-button color="primary" (click)="optimizeContent()">开始润色</button>\n <button *ngIf="isOptimizing" mat-raised-button color="warn" (click)="cancelOptimize()">停止润色</button>\n \x3c!-- <ion-button id="start" [disabled]="false" (click)="enableButton()">开始润色</ion-button> --\x3e\n </div>\n <div class="ai-polish-input">\n <mat-form-field style="width:95%;">\n <mat-label>生成内容</mat-label>\n <textarea matInput [(ngModel)]="optimizeText" [ngModelOptions]="{standalone: true}" rows="10"></textarea>\n </mat-form-field>\n </div>\n <div class="ai-polish-button">\n <button *ngIf="selectRange?.length" mat-raised-button (click)="applyOptimize()"><mat-icon fontIcon="flip"></mat-icon>替换</button>\n <button mat-raised-button (click)="copyOptimize()"><mat-icon fontIcon="content_copy"></mat-icon>复制</button>\n \x3c!-- <ion-button id="start" [disabled]="false" (click)="enableButton()">开始润色</ion-button> --\x3e\n </div>\n \x3c!-- <div class="copy">\n <ion-icon name="copy-outline" style="color:#4e80f4" (click)="Copy(polishContent)"></ion-icon>\n </div> --\x3e\n </div>\n <div *ngIf="aitab==\'校阅\'" class="ai-proofread">\n\n <div class="showItems-container">\n <div class="showItems">\n\n <div class="showItem" (click)="clickTab(\'内容建议\')" [ngClass]="{ \'active1\': clicktab == \'内容建议\' }">\n <div style="line-height: 12px;">\n <svg width="20" height="22" viewBox="0 0 20 22" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M11 10H5M7 14H5M13 6H5M17 9.5V5.8C17 4.11984 17 3.27976 16.673 2.63803C16.3854 2.07354 15.9265 1.6146 15.362 1.32698C14.7202 1 13.8802 1 12.2 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H8.5M19 21L17.5 19.5M18.5 17C18.5 18.933 16.933 20.5 15 20.5C13.067 20.5 11.5 18.933 11.5 17C11.5 15.067 13.067 13.5 15 13.5C16.933 13.5 18.5 15.067 18.5 17Z"\n stroke="#1570EF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>\n </svg>\n </div>\n <span>内容建议</span>\n\n\n </div>\n\n <div class="showItem" (click)="clickTab(\'事实验证\')" [ngClass]="{\'active1\': clicktab==\'事实验证\'}">\n <div style="line-height: 12px;">\n <svg width="18" height="22" viewBox="0 0 18 22" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M11 1.26953V5.40007C11 5.96012 11 6.24015 11.109 6.45406C11.2049 6.64222 11.3578 6.7952 11.546 6.89108C11.7599 7.00007 12.0399 7.00007 12.6 7.00007H16.7305M6 15L8 17L12.5 12.5M11 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H12.2C13.8802 21 14.7202 21 15.362 20.673C15.9265 20.3854 16.3854 19.9265 16.673 19.362C17 18.7202 17 17.8802 17 16.2V7L11 1Z"\n stroke="#D92D20" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>\n </svg>\n </div>\n <span>事实验证</span>\n </div>\n\n <div class="showItem" (click)="clickTab(\'全文总结\')" [ngClass]="{\'active1\': clicktab==\'全文总结\'}">\n <div style="line-height: 12px;"> <svg width="20" height="22" viewBox="0 0 16 20" fill="none"\n xmlns="http://www.w3.org/2000/svg">\n <path\n d="M14.1668 5.83329V5.66663C14.1668 4.26649 14.1668 3.56643 13.8943 3.03165C13.6547 2.56124 13.2722 2.17879 12.8018 1.93911C12.267 1.66663 11.567 1.66663 10.1668 1.66663H4.8335C3.43336 1.66663 2.7333 1.66663 2.19852 1.93911C1.72811 2.17879 1.34566 2.56124 1.10598 3.03165C0.833496 3.56643 0.833496 4.26649 0.833496 5.66663V14.3333C0.833496 15.7334 0.833496 16.4335 1.10598 16.9683C1.34566 17.4387 1.72811 17.8211 2.19852 18.0608C2.7333 18.3333 3.43336 18.3333 4.8335 18.3333H7.91683M7.91683 9.16663H4.16683M7.0835 12.5H4.16683M10.8335 5.83329H4.16683M12.5002 15V10.4166C12.5002 9.72627 13.0598 9.16663 13.7502 9.16663C14.4405 9.16663 15.0002 9.72627 15.0002 10.4166V15C15.0002 16.3807 13.8809 17.5 12.5002 17.5C11.1195 17.5 10.0002 16.3807 10.0002 15V11.6666"\n stroke="#F79009" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path>\n </svg>\n </div>\n <span>全文总结</span>\n </div>\n\n </div>\n </div>\n\n <div class="showItem-content">\n <div *ngIf="clicktab==\'语法错误\'" class="grammar-panel">\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n <div class="grammar-error">\n\n <span class="alert-point">\n •\n </span>\n <div class="error-content">\n <span>古老</span>\n </div>\n <span class="alert-point-gray">\n •\n </span>\n\n <span style="color:#8189a9">\n 建议替换为\n </span>\n\n <div class="right-content">\n <span>古老</span>\n </div>\n\n </div>\n\n </div>\n <div *ngIf="clicktab==\'内容建议\'" class="suggest-panel">\n\n <div class="content-suggest">\n <div style="line-height: 12px;">\n <svg width="20" height="22" viewBox="0 0 20 22" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M11 10H5M7 14H5M13 6H5M17 9.5V5.8C17 4.11984 17 3.27976 16.673 2.63803C16.3854 2.07354 15.9265 1.6146 15.362 1.32698C14.7202 1 13.8802 1 12.2 1H5.8C4.11984 1 3.27976 1 2.63803 1.32698C2.07354 1.6146 1.6146 2.07354 1.32698 2.63803C1 3.27976 1 4.11984 1 5.8V16.2C1 17.8802 1 18.7202 1.32698 19.362C1.6146 19.9265 2.07354 20.3854 2.63803 20.673C3.27976 21 4.11984 21 5.8 21H8.5M19 21L17.5 19.5M18.5 17C18.5 18.933 16.933 20.5 15 20.5C13.067 20.5 11.5 18.933 11.5 17C11.5 15.067 13.067 13.5 15 13.5C16.933 13.5 18.5 15.067 18.5 17Z"\n stroke="#1570EF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>\n </svg>\n </div>\n <div class="content-suggest-title">内容建议</div>\n </div>\n\n <div class="content">\n <div class="content-title"> 这篇文章介绍的是七个关于中国企业家的管理之道的自传小说章节标题,旨在展示企业家们的个人经历、管理理念和人生哲学。\n </div>\n <div class="content-title">改进建议:</div>\n <ol>\n <li> 标题一致性:文章中的章节标题应保持一致的格式,例如“啊手动阀士大夫”和“爱喝水的人,一定是有品味的”与其他章节的格式不一致,建议统一格式以增强文章的专业性。</li>\n <li> 语言风格:文章中出现了一些非正式或口语化的表达,如“嫩给够穿越时空的力量”和“包韩了对生命意义的深刻反思”,建议使用更正式的语言以符合专业文章的标准。</li>\n <li> 信息重复:在介绍《时光的裂缝》的部分,有关时间旅行的描述被多次提及,建议合并相似内容以避免重复。\n </li>\n <li> 标题一致性:文章中的章节标题应保持一致的格式,例如“啊手动阀士大夫”和“爱喝水的人,一定是有品味的”与其他章节的格式不一致,建议统一格式以增强文章的专业性。</li>\n <li> 语言风格:文章中出现了一些非正式或口语化的表达,如“嫩给够穿越时空的力量”和“包韩了对生命意义的深刻反思”,建议使用更正式的语言以符合专业文章的标准。</li>\n <li> 信息重复:在介绍《时光的裂缝》的部分,有关时间旅行的描述被多次提及,建议合并相似内容以避免重复。\n </li>\n <li> 标题一致性:文章中的章节标题应保持一致的格式,例如“啊手动阀士大夫”和“爱喝水的人,一定是有品味的”与其他章节的格式不一致,建议统一格式以增强文章的专业性。</li>\n <li> 语言风格:文章中出现了一些非正式或口语化的表达,如“嫩给够穿越时空的力量”和“包韩了对生命意义的深刻反思”,建议使用更正式的语言以符合专业文章的标准。</li>\n <li> 信息重复:在介绍《时光的裂缝》的部分,有关时间旅行的描述被多次提及,建议合并相似内容以避免重复。\n </li>\n <li> 标题一致性:文章中的章节标题应保持一致的格式,例如“啊手动阀士大夫”和“爱喝水的人,一定是有品味的”与其他章节的格式不一致,建议统一格式以增强文章的专业性。</li>\n <li> 语言风格:文章中出现了一些非正式或口语化的表达,如“嫩给够穿越时空的力量”和“包韩了对生命意义的深刻反思”,建议使用更正式的语言以符合专业文章的标准。</li>\n <li> 信息重复:在介绍《时光的裂缝》的部分,有关时间旅行的描述被多次提及,建议合并相似内容以避免重复。\n </li>\n <li> 标题一致性:文章中的章节标题应保持一致的格式,例如“啊手动阀士大夫”和“爱喝水的人,一定是有品味的”与其他章节的格式不一致,建议统一格式以增强文章的专业性。</li>\n <li> 语言风格:文章中出现了一些非正式或口语化的表达,如“嫩给够穿越时空的力量”和“包韩了对生命意义的深刻反思”,建议使用更正式的语言以符合专业文章的标准。</li>\n <li> 信息重复:在介绍《时光的裂缝》的部分,有关时间旅行的描述被多次提及,建议合并相似内容以避免重复。\n </li>\n </ol>\n\n\n </div>\n </div>\n <div *ngIf="clicktab==\'事实验证\'" class="verify-panel">\n <div class="dashboard">\n <div class="item" (click)="dashboardTab(\'全部\')" [ngClass]="{\'itemChoose\': dashboardtab==\'全部\'}">\n <div class="icon">\n <div class="statusIcon" style="border: 1px solid black; box-sizing: border-box;"></div>\n </div>\n <div class="text">全部</div>\n <div class="number">28</div>\n </div>\n\n <div class="item" (click)="dashboardTab(\'通过\')" [ngClass]="{\'itemChoose\': dashboardtab==\'通过\'}">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n <div class="number">9</div>\n </div>\n\n <div class="item" (click)="dashboardTab(\'不通过\')" [ngClass]="{\'itemChoose\': dashboardtab==\'不通过\'}">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(217, 45, 32);"><svg\n xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">\n <path d="M7 17L17 7" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n <path d="M7 7L17 17" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </svg></div>\n </div>\n <div class="text" style="color: rgb(217, 45, 32);">不通过</div>\n <div class="number">1</div>\n </div>\n <div class="item" (click)="dashboardTab(\'无法判断\')" [ngClass]="{\'itemChoose\': dashboardtab==\'无法判断\'}">\n <div class="icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="3 3 18 18"\n fill="none">\n <path\n d="M7.8824 8.679C7.88035 8.72744 7.88822 8.77579 7.90555 8.82107C7.92287 8.86636 7.94927 8.90762 7.98313 8.94232C8.01699 8.97703 8.05759 9.00444 8.10244 9.02287C8.14728 9.0413 8.19542 9.05036 8.2439 9.0495H9.4814C9.6884 9.0495 9.8534 8.88 9.8804 8.6745C10.0154 7.6905 10.6904 6.9735 11.8934 6.9735C12.9224 6.9735 13.8644 7.488 13.8644 8.7255C13.8644 9.678 13.3034 10.116 12.4169 10.782C11.4074 11.5155 10.6079 12.372 10.6649 13.7625L10.6694 14.088C10.671 14.1864 10.7112 14.2803 10.7813 14.3493C10.8515 14.4183 10.946 14.457 11.0444 14.457H12.2609C12.3604 14.457 12.4557 14.4175 12.5261 14.3472C12.5964 14.2768 12.6359 14.1815 12.6359 14.082V13.9245C12.6359 12.8475 13.0454 12.534 14.1509 11.6955C15.0644 11.001 16.0169 10.23 16.0169 8.6115C16.0169 6.345 14.1029 5.25 12.0074 5.25C10.1069 5.25 8.0249 6.135 7.8824 8.679ZM10.2179 17.3235C10.2179 18.123 10.8554 18.714 11.7329 18.714C12.6464 18.714 13.2749 18.123 13.2749 17.3235C13.2749 16.4955 12.6449 15.9135 11.7314 15.9135C10.8554 15.9135 10.2179 16.4955 10.2179 17.3235Z"\n fill="#475467"></path>\n </svg></div>\n <div class="text">无法判断</div>\n <div class="number">18</div>\n </div>\n </div>\n\n <div class="verify-card-list">\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n <div class="card">\n <div class="item">\n <div class="icon">\n <div class="statusIcon" style="background-color: rgb(18, 183, 106);">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" fill="none">\n <g clip-path="url(#clip0_9987_2125)">\n <path d="M20 7.5L10 17.5L5 12.5" stroke="#ffffff" stroke-width="3" stroke-linecap="round"\n stroke-linejoin="round"></path>\n </g>\n <defs>\n <clipPath id="clip0_9987_2125">\n <rect width="24" height="24" fill="white" transform="translate(0 0.5)">\n </rect>\n </clipPath>\n </defs>\n </svg>\n </div>\n </div>\n <div class="text" style="color: rgb(18, 183, 106);">通过</div>\n\n </div>\n <div class="card-content">\n 本书分为四个部分:第二部分讲述中国经济体制改革过程中,他是如何在“摸着石头过河”的过程中不断探索、不断创新。\n </div>\n </div>\n\n </div>\n </div>\n <div *ngIf="clicktab==\'全文总结\'" class="summary-panel">\n\n <div class="text-summary">\n <div style="line-height: 12px;">\n <svg width="20" height="22" viewBox="0 0 16 20" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M14.1668 5.83329V5.66663C14.1668 4.26649 14.1668 3.56643 13.8943 3.03165C13.6547 2.56124 13.2722 2.17879 12.8018 1.93911C12.267 1.66663 11.567 1.66663 10.1668 1.66663H4.8335C3.43336 1.66663 2.7333 1.66663 2.19852 1.93911C1.72811 2.17879 1.34566 2.56124 1.10598 3.03165C0.833496 3.56643 0.833496 4.26649 0.833496 5.66663V14.3333C0.833496 15.7334 0.833496 16.4335 1.10598 16.9683C1.34566 17.4387 1.72811 17.8211 2.19852 18.0608C2.7333 18.3333 3.43336 18.3333 4.8335 18.3333H7.91683M7.91683 9.16663H4.16683M7.0835 12.5H4.16683M10.8335 5.83329H4.16683M12.5002 15V10.4166C12.5002 9.72627 13.0598 9.16663 13.7502 9.16663C14.4405 9.16663 15.0002 9.72627 15.0002 10.4166V15C15.0002 16.3807 13.8809 17.5 12.5002 17.5C11.1195 17.5 10.0002 16.3807 10.0002 15V11.6666"\n stroke="#F79009" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path>\n </svg>\n </div>\n <div class="text-summary-title">全文总结</div>\n </div>\n\n <div class="text">\n <div class="text-title">概括:</div>\n\n <p>\n 这本自传小说由企业家曹国熊撰写,讲述了他如何从贫穷孩子成长为成功企业家的经历和管理智慧,同时通过不同章节探讨了企业家的成长、团队合作、创新驱动、领导力培养、面对危机和可持续发展等主题。\n </p>\n <div class="text-title">要点:</div>\n <ul>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 章节《从小梦想到大事业》回顾了作者从少年时代怀揣创业梦想,克服困难和挑战的过程。</li>\n <li> 《时光的裂缝》是一部结合悬疑、奇幻和哲思的小说,通过杰克的视角探索人性、选择和成长。</li>\n <li> 书中还涉及了如何培养企业家的道德操守和社会责任感、团队合作的重要性、科技创新的推动、领导力的培养以及如何面对和化解危机。</li>\n <li> 最后一章《绿色转型的先锋》探讨了作者作为企业家在社会责任方面的努力,包括推动企业绿色转型和可持续发展。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 章节《从小梦想到大事业》回顾了作者从少年时代怀揣创业梦想,克服困难和挑战的过程。</li>\n <li> 《时光的裂缝》是一部结合悬疑、奇幻和哲思的小说,通过杰克的视角探索人性、选择和成长。</li>\n <li> 书中还涉及了如何培养企业家的道德操守和社会责任感、团队合作的重要性、科技创新的推动、领导力的培养以及如何面对和化解危机。</li>\n <li> 最后一章《绿色转型的先锋》探讨了作者作为企业家在社会责任方面的努力,包括推动企业绿色转型和可持续发展。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 章节《从小梦想到大事业》回顾了作者从少年时代怀揣创业梦想,克服困难和挑战的过程。</li>\n <li> 《时光的裂缝》是一部结合悬疑、奇幻和哲思的小说,通过杰克的视角探索人性、选择和成长。</li>\n <li> 书中还涉及了如何培养企业家的道德操守和社会责任感、团队合作的重要性、科技创新的推动、领导力的培养以及如何面对和化解危机。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 章节《从小梦想到大事业》回顾了作者从少年时代怀揣创业梦想,克服困难和挑战的过程。</li>\n <li> 《时光的裂缝》是一部结合悬疑、奇幻和哲思的小说,通过杰克的视角探索人性、选择和成长。</li>\n <li> 书中还涉及了如何培养企业家的道德操守和社会责任感、团队合作的重要性、科技创新的推动、领导力的培养以及如何面对和化解危机。</li>\n <li> 最后一章《绿色转型的先锋》探讨了作者作为企业家在社会责任方面的努力,包括推动企业绿色转型和可持续发展。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 章节《从小梦想到大事业》回顾了作者从少年时代怀揣创业梦想,克服困难和挑战的过程。</li>\n <li> 《时光的裂缝》是一部结合悬疑、奇幻和哲思的小说,通过杰克的视角探索人性、选择和成长。</li>\n <li> 书中还涉及了如何培养企业家的道德操守和社会责任感、团队合作的重要性、科技创新的推动、领导力的培养以及如何面对和化解危机。</li>\n <li> 最后一章《绿色转型的先锋》探讨了作者作为企业家在社会责任方面的努力,包括推动企业绿色转型和可持续发展。</li>\n <li>曹国熊是中国的企业家、作家,他的自传记录了从贫穷到成功的历程。</li>\n <li> 最后一章《绿色转型的先锋》探讨了作者作为企业家在社会责任方面的努力,包括推动企业绿色转型和可持续发展。</li>\n </ul>\n\n\n\n\n\n\n </div>\n </div>\n </div>\n\n\n\n </div>\n <div *ngIf="aitab==\'AI配图\'" class="ai-img">\n <mat-accordion multi>\n <mat-expansion-panel expanded="true">\n <mat-expansion-panel-header>\n <mat-panel-title>文章封面</mat-panel-title>\n </mat-expansion-panel-header>\n <div class="image" (click)="uploadImage()">\n <img [src]="article?.get(\'image\') || \'/assets/img/icon/addphoto.png\'" alt="">\n </div>\n </mat-expansion-panel>\n\n <mat-expansion-panel expanded="false">\n <mat-expansion-panel-header>\n <mat-panel-title>段落插图</mat-panel-title>\n </mat-expansion-panel-header>\n \n <div class="ai-img-search">\n\n <div class="ai-img-search-input">\n <input type="text" nz-input placeholder="请输入图片描述" />\n </div>\n\n <div class="ai-img-search-button">\n <ion-button>\n <ion-icon name="search-outline"></ion-icon>\n 查找\n </ion-button>\n </div>\n\n </div>\n\n <div class="img-tip">\n <img class="bg-img" src="../../../assets/images/火箭2.png">\n </div>\n <div class="ai-img-tip">\n <h1>输入描述,自动配图</h1>\n\n </div>\n\n <div class="ai-img-tip-list">\n <div class="pce-inner-tip-point"></div>\n <span>\n 根据您对图片的描述,智能匹配相关图片\n </span>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n\n\n </div>\n\n\n </div>\n </div>\n\n\n\n\n </div>\n</div>',styles:['@charset "UTF-8";.image{width:100%;height:240px;overflow:hidden;display:flex;justify-content:center;align-items:center}.image img{height:100%;object-fit:contain;height:auto;transition:transform .2s}.image:hover img{transform:scale(1.2)}.page{background-color:#fafafa;height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden}.page .nav{position:sticky;top:0;z-index:3}.page .icon{width:20px;height:20px;margin:0 10px 0 5%}.page .page-container{display:flex;height:calc(100vh - 120px)}.page .page-container .center{margin:5vh auto!important}.page .page-container .editor-text{display:flex;justify-content:center;flex:1;right:0;height:auto;min-height:75vh;min-width:35%;box-shadow:#00000026 1px 2px 8px;background-color:#fff;overflow:visible}.page .page-container .editor-text .editor-main{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.page .page-container .editor-text .editor-main .text-header{display:flex;justify-content:center;padding-top:10px}.page .page-container .editor-text .editor-main .text-header input,.page .page-container .editor-text .editor-main .text-header input:focus{width:100%;text-align:center;border:none;font-size:22px;font-weight:700;box-shadow:none;outline:none}.page .page-container .editor-text .editor-main .article-info{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.page .page-container .editor-text .editor-main .article-info div{padding-left:5px;padding-right:5px;margin-bottom:3px}.page .page-container .editor-text .editor-main .article-info div mat-chip{margin-right:3px}.page .page-container .editor-text .editor-main .article-content{flex:1;min-height:50vh;overflow-y:auto}.page .page-container .page-right{height:calc(80vh - 10px);margin-top:6px;margin-left:3px;min-width:480px;background-color:#fafafa;opacity:1;transition:opacity 2s ease-in-out;overflow-y:hidden;overflow-x:hidden}.page .page-container .page-right .nav-ai{background-color:#fafafa;display:flex;width:100%;justify-content:space-between;z-index:3;position:sticky;top:0}.page .page-container .page-right .nav-ai ul{width:100%;list-style-type:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:space-around}.page .page-container .page-right .nav-ai ul .active0{position:relative;padding:5px 15px;margin:0 5px 10px;font-size:18px;font-weight:700;color:#8e8e8e;border-radius:5px;transition:.3s}.page .page-container .page-right .nav-ai ul .active1{color:#333}.page .page-container .page-right .nav-ai ul .active1 div:after{content:"";position:absolute;left:0;bottom:0;width:100%;border-bottom:4px solid #8e8e8e;border-radius:10px;margin-bottom:-6px}.page .page-container .page-right .nav-ai ul li div{cursor:pointer;text-align:center;position:relative}.page .page-container .page-right .nav-ai .icon{cursor:pointer;margin-top:20%;width:25px;height:25px;align-content:center}.page .page-container .page-right .ai-panel{right:2%;background-color:#fafafa;width:95%;z-index:1}.page .page-container .page-right .ai-panel .ai-tool-grid{display:flex;flex-wrap:wrap}.page .page-container .page-right .ai-panel .ai-tool-grid ion-card{max-width:33%}.page .page-container .page-right .ai-panel div::-webkit-scrollbar{display:none}.page .page-container .page-right .ai-panel .ai-write{width:515px}.page .page-container .page-right .ai-panel .ai-write .search-bar{height:40px;width:100%;margin-left:15px}.page .page-container .page-right .ai-panel .ai-write ion-col{background-color:#fafafa;border:solid 2px #fafafa;text-align:center;padding:0;margin-left:3%}.page .page-container .page-right .ai-panel .ai-write .card{max-height:150px;max-width:220px;height:15vh;width:16vw;cursor:pointer}.page .page-container .page-right .ai-panel .ai-write .card .card-image{margin-right:80%}.page .page-container .page-right .ai-panel .ai-write .card ion-card-header{padding:6%}.page .page-container .page-right .ai-panel .ai-write .card ion-card-subtitle{font-weight:600;text-align:left}.page .page-container .page-right .ai-panel .ai-write .card ion-card-content{text-align:left;white-space:pre-line;font-size:12px;margin-left:6%;padding:0}.page .page-container .page-right .ai-panel .ai-write .card-image{background:#fff;box-shadow:0 1px 4px #0000000a,0 4px 10px #00000014;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}.page .page-container .page-right .ai-panel .ai-polish{margin-top:10px;background-color:#fafafa}.page .page-container .page-right .ai-panel .ai-polish textarea.ant-input{max-width:93%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.page .page-container .page-right .ai-panel .ai-polish ::-webkit-scrollbar{width:4px;border-radius:3px}.page .page-container .page-right .ai-panel .ai-polish ::-webkit-scrollbar-thumb{background-color:#dddee0;border-radius:2px}.page .page-container .page-right .ai-panel .ai-polish .ai-polish-button{text-align:right;margin-right:21px}.page .page-container .page-right .ai-panel .ai-polish .ai-polish-button button{margin-left:15px}.page .page-container .page-right .ai-panel .ai-polish .copy{text-align:right;margin-right:7%;cursor:pointer}.page .page-container .page-right .ai-panel .ai-proofread{height:73vh;margin-top:2%;position:sticky;top:0}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container{width:100%;z-index:2}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems{display:flex;justify-content:space-around;position:sticky;top:0;padding-left:15px;padding-right:15px}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems .showItem{display:flex;flex-shrink:0;cursor:pointer;gap:8px;padding:12px 15px;background:#fff;border:1px solid #f9fafb;box-shadow:0 1px 2px #1018280d;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItems-container .showItems .active1{color:#333;font-weight:700}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel{margin-top:10%;margin-left:2.3%;height:61vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error{display:flex;text-align:center;margin-bottom:5%;width:90%;height:6vh;margin-left:4%;background:#fff;border:1px solid #f9fafb;box-shadow:0 1px 2px #1018280d;line-height:6vh}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .alert-point{color:#ff7a7a;margin-left:6%;margin-right:5%;font-size:20px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .alert-point-gray{color:#8189a9;font-size:10px;margin-right:1%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .error-content{margin-right:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .grammar-panel .grammar-error .right-content{margin-left:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel{position:sticky;top:0;margin-top:4%;margin-left:6.8%;width:91%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content-suggest{display:flex;cursor:pointer;padding:5% 3%;height:6%;width:100%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content-suggest .content-suggest-title{margin-left:3%;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content{width:98%;height:55vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content .content-title{margin:3% 4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content ol{margin:3% 4%;counter-reset:section}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .suggest-panel .content li:before{counter-increment:section;content:"Section " counter(section) ". "}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel{margin-top:2%;margin-left:6.8%;width:95%;margin-bottom:2%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .icon{width:16px;height:16px;display:inline-block;margin-top:3px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard{display:flex;margin-left:-1%;margin-top:3%;height:5%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .itemChoose{background-color:#eaecf0}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item{display:flex;height:76%;width:23%;padding:6px 8px;cursor:pointer}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item .text{font-weight:bolder;margin-right:4%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .item .number{font-weight:bolder;margin-right:1%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .dashboard .statusIcon{border-radius:50%;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:18px;height:18px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list{height:61vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card{box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a;width:95%;height:auto;margin-top:3%;padding:2% 3%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card .item{display:flex}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .card .card-content{margin-top:3%;margin-bottom:3%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .verify-panel .verify-card-list .statusIcon{border-radius:50%;width:18px;height:18px}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel{margin-top:2%;margin-left:6.8%;width:91%;background-color:#fff}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text-summary{display:flex;cursor:pointer;padding:5% 3%;height:6%;width:100%}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text-summary .text-summary-title{margin-left:3%;font-size:16px;font-weight:400}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text{width:100%;height:57vh;overflow-y:scroll}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text .text-title{margin:3% 4%;font-weight:700}.page .page-container .page-right .ai-panel .ai-proofread .showItem-content .summary-panel .text p{margin:3% 4%}.page .page-container .page-right .ai-panel .ai-img{width:480px}.page .page-container .page-right .ai-panel .ai-img .ai-img-search{display:flex;height:4%;width:100%;margin-left:4%;margin-top:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-input{width:65%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-input input{height:100%}.page .page-container .page-right .ai-panel .ai-img .ai-img-search .ai-img-search-button{margin-left:5%;margin-top:-.8%}.page .page-container .page-right .ai-panel .ai-img .img-tip{display:flex;text-align:center;justify-content:center;margin-top:20%;width:95%}.page .page-container .page-right .ai-panel .ai-img .img-tip .bg-img{width:65%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip{display:flex;justify-content:center;text-align:center;margin-top:2%;margin-right:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip h1{font-weight:600}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip-list{display:flex;justify-content:center;text-align:center;margin-top:2%;margin-right:5%}.page .page-container .page-right .ai-panel .ai-img .ai-img-tip-list .pce-inner-tip-point{display:inline-block;margin-top:2%;margin-right:1%;height:8px;width:8px;border-radius:50%;background-color:#4b4b4b}\n']}]}],ctorParameters:()=>[{type:i1.ModalController},{type:i1.AlertController},{type:i2.MatDialog},{type:i0.ChangeDetectorRef},{type:i3.ClipboardService},{type:i4.DraftService},{type:i5.Router},{type:i6.NovaUploadService},{type:i7.PersonService}],propDecorators:{editorComp:[{type:ViewChild,args:["editorComp"]}],article:[{type:Input}],onClose:[{type:Output}],book:[{type:Input}],readOnly:[{type:Input}]}});
9
+ var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi90ZXh0L2ZtLWFydGljbGUtZWRpdG9yL2ZtLWFydGljbGUtZWRpdG9yLmNvbXBvbmVudC5tanM=`
10
+