st-comp 0.0.276 → 0.0.278

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 (627) hide show
  1. package/.argus/backups/.argus/20260727_072225.525_patch_klinebasic.py +339 -0
  2. package/.argus/backups/.argus/20260727_072458.864_fix_klinebasic.py +42 -0
  3. package/.argus/backups/.argus/20260727_072554.676_fix_klinebasic.py +45 -0
  4. package/.argus/backups/20260727_020847.846_package.json +48 -0
  5. package/.argus/backups/20260727_021018.627_vitest.config.ts +37 -0
  6. package/.argus/backups/20260727_021033.462_vitest.config.ts +37 -0
  7. package/.argus/backups/20260727_021041.704_vitest.config.ts +37 -0
  8. package/.argus/backups/20260727_021122.389_vitest.config.ts +36 -0
  9. package/.argus/backups/20260727_021159.250_vitest.config.ts +36 -0
  10. package/.argus/backups/20260727_065913.421_vitest.config.ts +38 -0
  11. package/.argus/backups/20260727_071318.099_vitest.config.ts +42 -0
  12. package/.argus/backups/20260728_005238.495_vitest.config.ts +53 -0
  13. package/.argus/backups/20260728_005424.767_vitest.config.ts +58 -0
  14. package/.argus/backups/20260728_005444.216_vitest.config.ts +58 -0
  15. package/.argus/backups/20260728_005613.603_vitest.config.ts +57 -0
  16. package/.argus/backups/docs/20260727_012301.521_tasks.md +22 -0
  17. package/.argus/backups/docs/20260727_013404.413_requirements.md +61 -0
  18. package/.argus/backups/docs/20260727_013916.866_tasks.md +22 -0
  19. package/.argus/backups/docs/20260727_015657.696_tasks.md +22 -0
  20. package/.argus/backups/docs/20260727_015737.998_tasks.md +22 -0
  21. package/.argus/backups/docs/20260727_021309.668_tasks.md +88 -0
  22. package/.argus/backups/docs/20260727_023430.573_tasks.md +88 -0
  23. package/.argus/backups/docs/20260727_031705.498_tasks.md +88 -0
  24. package/.argus/backups/docs/20260727_033858.862_tasks.md +88 -0
  25. package/.argus/backups/docs/20260727_033909.221_tasks.md +88 -0
  26. package/.argus/backups/docs/20260727_065645.168_tasks.md +90 -0
  27. package/.argus/backups/docs/20260728_005711.090_tasks.md +90 -0
  28. package/.argus/backups/docs/20260728_093519.026_tasks.md +96 -0
  29. package/.argus/backups/docs/20260728_093845.838_tasks.md +95 -0
  30. package/.argus/backups/docs/20260728_093956.037_tasks.md +95 -0
  31. package/.argus/backups/docs/20260728_094111.219_tasks.md +95 -0
  32. package/.argus/backups/docs/20260802_082651.083_tasks.md +95 -0
  33. package/.argus/backups/docs/20260802_082659.919_tasks.md +95 -0
  34. package/.argus/backups/docs/20260802_082817.843_test-plan.md +119 -0
  35. package/.argus/backups/docs/20260802_082825.291_test-plan.md +119 -0
  36. package/.argus/backups/tests/20260727_020937.620_smoke.spec.ts +12 -0
  37. package/.argus/backups/tests/20260727_021105.040_smoke.spec.ts +12 -0
  38. package/.argus/backups/tests/20260727_021129.257_smoke.spec.ts +12 -0
  39. package/.argus/backups/tests/components/20260727_021655.533_Pagination.spec.ts +59 -0
  40. package/.argus/backups/tests/components/20260727_021718.547_Pagination.spec.ts +59 -0
  41. package/.argus/backups/tests/components/20260727_021858.422_Table.spec.ts +71 -0
  42. package/.argus/backups/tests/components/20260727_022144.098_VirtualTable.spec.ts +90 -0
  43. package/.argus/backups/tests/components/20260727_022154.585_VirtualTable.spec.ts +88 -0
  44. package/.argus/backups/tests/components/20260727_022225.501_VirtualTable.spec.ts +89 -0
  45. package/.argus/backups/tests/components/20260727_022502.366_PasswordPrompt.spec.ts +72 -0
  46. package/.argus/backups/tests/components/20260727_022512.945_PasswordPrompt.spec.ts +72 -0
  47. package/.argus/backups/tests/components/20260727_023011.481_VarietyTextCopy.spec.ts +86 -0
  48. package/.argus/backups/tests/components/20260727_023108.189_VarietyTextCopy.spec.ts +89 -0
  49. package/.argus/backups/tests/components/20260727_024356.151_ConfigProvider.spec.ts +101 -0
  50. package/.argus/backups/tests/components/20260727_024430.348_ConfigProvider.spec.ts +100 -0
  51. package/.argus/backups/tests/components/20260727_024635.923_User.spec.ts +82 -0
  52. package/.argus/backups/tests/components/20260727_024836.707_VarSelectDialog.spec.ts +131 -0
  53. package/.argus/backups/tests/components/20260727_024852.191_VarSelectDialog.spec.ts +111 -0
  54. package/.argus/backups/tests/components/20260727_024858.884_VarSelectDialog.spec.ts +130 -0
  55. package/.argus/backups/tests/components/20260727_024905.552_VarSelectDialog.spec.ts +130 -0
  56. package/.argus/backups/tests/components/20260727_024935.877_VarSelectDialog.spec.ts +130 -0
  57. package/.argus/backups/tests/components/20260727_025017.207_VarSelectDialog.spec.ts +131 -0
  58. package/.argus/backups/tests/components/20260727_025222.178_CustomFunction.spec.ts +107 -0
  59. package/.argus/backups/tests/components/20260727_025533.944_VarietySearch.spec.ts +238 -0
  60. package/.argus/backups/tests/components/20260727_025738.354_VarietySearch.spec.ts +233 -0
  61. package/.argus/backups/tests/components/20260727_025853.506_VarietySearch.spec.ts +242 -0
  62. package/.argus/backups/tests/components/20260727_030036.628_VarietySearch.spec.ts +242 -0
  63. package/.argus/backups/tests/components/20260727_030236.640_VarietySearch.spec.ts +244 -0
  64. package/.argus/backups/tests/components/20260727_030355.487_VarietySearch.spec.ts +253 -0
  65. package/.argus/backups/tests/components/20260727_031231.694_VarietySearch.spec.ts +258 -0
  66. package/.argus/backups/tests/components/20260727_031334.734_VarietySearch.spec.ts +260 -0
  67. package/.argus/backups/tests/components/20260727_031351.660_VarietySearch.spec.ts +259 -0
  68. package/.argus/backups/tests/components/20260727_031410.450_VarietySearch.spec.ts +260 -0
  69. package/.argus/backups/tests/components/20260727_031425.598_VarietySearch.spec.ts +259 -0
  70. package/.argus/backups/tests/components/20260727_031456.187_VarietySearch.spec.ts +258 -0
  71. package/.argus/backups/tests/components/20260727_031508.243_VarietySearch.spec.ts +257 -0
  72. package/.argus/backups/tests/components/20260727_035911.421_FactorWarning.spec.ts +45 -0
  73. package/.argus/backups/tests/components/20260727_040217.402_FactorWarning.spec.ts +44 -0
  74. package/.argus/backups/tests/components/20260727_040313.577_FactorWarning.spec.ts +115 -0
  75. package/.argus/backups/tests/components/20260727_040443.842_FactorWarning.spec.ts +116 -0
  76. package/.argus/backups/tests/components/20260727_040543.676_FactorWarning.spec.ts +119 -0
  77. package/.argus/backups/tests/components/20260727_040552.567_FactorWarning.spec.ts +120 -0
  78. package/.argus/backups/tests/components/20260727_040615.706_FactorWarning.spec.ts +122 -0
  79. package/.argus/backups/tests/components/20260727_040626.121_FactorWarning.spec.ts +123 -0
  80. package/.argus/backups/tests/components/20260727_040717.265_MonacoEditor.spec.ts +83 -0
  81. package/.argus/backups/tests/components/20260727_040828.121_MonacoEditor.spec.ts +76 -0
  82. package/.argus/backups/tests/components/20260727_040904.972_MonacoEditor.spec.ts +78 -0
  83. package/.argus/backups/tests/components/20260727_041018.032_MonacoEditor.spec.ts +81 -0
  84. package/.argus/backups/tests/components/20260727_041314.621_VarietyAiHelper.spec.ts +163 -0
  85. package/.argus/backups/tests/components/20260727_041325.276_VarietyAiHelper.spec.ts +163 -0
  86. package/.argus/backups/tests/components/20260727_041334.762_VarietyAiHelper.spec.ts +165 -0
  87. package/.argus/backups/tests/components/20260727_041343.202_VarietyAiHelper.spec.ts +166 -0
  88. package/.argus/backups/tests/components/20260727_044733.056_KlineBasic.spec.ts +143 -0
  89. package/.argus/backups/tests/components/20260727_045002.981_KlineBasic.spec.ts +143 -0
  90. package/.argus/backups/tests/components/20260727_045140.574_KlineBasic.spec.ts +144 -0
  91. package/.argus/backups/tests/components/20260727_045425.611_KlineBasic.spec.ts +145 -0
  92. package/.argus/backups/tests/components/20260727_045715.412_Kline.spec.ts +113 -0
  93. package/.argus/backups/tests/components/20260727_045724.184_Kline.spec.ts +125 -0
  94. package/.argus/backups/tests/components/20260727_045825.069_Kline.spec.ts +126 -0
  95. package/.argus/backups/tests/components/20260727_045834.378_Kline.spec.ts +136 -0
  96. package/.argus/backups/tests/components/20260727_045841.348_Kline.spec.ts +137 -0
  97. package/.argus/backups/tests/components/20260727_045940.821_Kline.spec.ts +136 -0
  98. package/.argus/backups/tests/components/20260727_045949.967_Kline.spec.ts +137 -0
  99. package/.argus/backups/tests/components/20260727_050143.995_Kline.spec.ts +138 -0
  100. package/.argus/backups/tests/components/20260727_050209.308_Kline.spec.ts +142 -0
  101. package/.argus/backups/tests/components/20260727_050232.575_Kline.spec.ts +145 -0
  102. package/.argus/backups/tests/components/20260727_050520.150_Kline.spec.ts +149 -0
  103. package/.argus/backups/tests/components/20260727_050528.961_Kline.spec.ts +144 -0
  104. package/.argus/backups/tests/components/20260727_050539.132_Kline.spec.ts +140 -0
  105. package/.argus/backups/tests/components/20260727_050600.606_Kline.spec.ts +141 -0
  106. package/.argus/backups/tests/components/20260727_051012.712_Kline.spec.ts +145 -0
  107. package/.argus/backups/tests/components/20260727_051030.112_Kline.spec.ts +140 -0
  108. package/.argus/backups/tests/components/20260727_051039.759_Kline.spec.ts +140 -0
  109. package/.argus/backups/tests/components/20260727_064959.298_KlineNew.spec.ts +265 -0
  110. package/.argus/backups/tests/components/20260727_065038.479_KlineNew.spec.ts +278 -0
  111. package/.argus/backups/tests/components/20260727_065213.245_KlinePlus.spec.ts +151 -0
  112. package/.argus/backups/tests/components/20260727_065245.945_KlinePlus.spec.ts +151 -0
  113. package/.argus/backups/tests/components/20260727_070847.720_MonacoEditor.spec.ts +105 -0
  114. package/.argus/backups/tests/components/20260727_070916.945_MonacoEditor.spec.ts +473 -0
  115. package/.argus/backups/tests/components/20260727_070928.260_MonacoEditor.spec.ts +516 -0
  116. package/.argus/backups/tests/components/20260727_071228.326_MonacoEditor.spec.ts +517 -0
  117. package/.argus/backups/tests/components/20260727_071243.734_MonacoEditor.spec.ts +521 -0
  118. package/.argus/backups/tests/components/20260727_071305.582_MonacoEditor.spec.ts +521 -0
  119. package/.argus/backups/tests/components/20260727_071350.809_MonacoEditor.spec.ts +525 -0
  120. package/.argus/backups/tests/components/20260727_071407.272_MonacoEditor.spec.ts +525 -0
  121. package/.argus/backups/tests/components/20260727_071425.763_MonacoEditor.spec.ts +525 -0
  122. package/.argus/backups/tests/components/20260727_071444.203_MonacoEditor.spec.ts +525 -0
  123. package/.argus/backups/tests/components/20260727_071813.277_Kline2.spec.ts +269 -0
  124. package/.argus/backups/tests/components/20260727_071825.633_Kline2.spec.ts +275 -0
  125. package/.argus/backups/tests/components/20260727_071836.063_Kline2.spec.ts +275 -0
  126. package/.argus/backups/tests/components/20260727_071926.767_Kline2.spec.ts +275 -0
  127. package/.argus/backups/tests/components/20260727_072027.172_Kline2.spec.ts +285 -0
  128. package/.argus/backups/tests/components/20260727_123101.129_Kline2.spec.ts +292 -0
  129. package/.argus/backups/tests/components/20260727_135819.231_Kline2.spec.ts +293 -0
  130. package/.argus/backups/tests/components/20260727_135858.777_Kline2.spec.ts +304 -0
  131. package/.argus/backups/tests/components/20260727_141205.699_KlineBasic.spec.ts +429 -0
  132. package/.argus/backups/tests/components/20260727_141254.206_Kline2.spec.ts +304 -0
  133. package/.argus/backups/tests/components/20260727_141349.322_KlineBasic.spec.ts +437 -0
  134. package/.argus/backups/tests/components/20260727_141447.163_KlineBasic.spec.ts +439 -0
  135. package/.argus/backups/tests/components/20260727_141505.454_KlineBasic.spec.ts +427 -0
  136. package/.argus/backups/tests/components/20260728_010148.792_User.spec.ts +126 -0
  137. package/.argus/backups/tests/components/20260728_010436.092_TreeMap.spec.ts +100 -0
  138. package/.argus/backups/tests/components/20260728_010546.696_CustomFunction.spec.ts +185 -0
  139. package/.argus/backups/tests/components/20260728_010606.217_CustomFunction.spec.ts +185 -0
  140. package/.argus/backups/tests/components/20260728_010739.144_FactorWarning.spec.ts +285 -0
  141. package/.argus/backups/tests/components/20260728_050815.875_VirtualTable.spec.ts +234 -0
  142. package/.argus/backups/tests/components/20260728_092436.589_KlinePlus.spec.ts +151 -0
  143. package/.argus/backups/tests/components/20260728_092516.096_KlinePlus.spec.ts +273 -0
  144. package/.argus/backups/tests/components/20260728_092531.745_KlinePlus.spec.ts +274 -0
  145. package/.argus/backups/tests/components/20260728_092545.921_KlinePlus.spec.ts +275 -0
  146. package/.argus/backups/tests/components/20260728_092605.498_KlinePlus.spec.ts +276 -0
  147. package/.argus/backups/tests/components/20260728_092659.872_KlinePlus.spec.ts +277 -0
  148. package/.argus/backups/tests/components/20260728_092713.040_KlinePlus.spec.ts +278 -0
  149. package/.argus/backups/tests/components/20260728_092726.343_KlinePlus.spec.ts +279 -0
  150. package/.argus/backups/tests/components/20260728_092750.935_KlinePlus.spec.ts +281 -0
  151. package/.argus/backups/tests/components/20260728_092800.572_KlinePlus.spec.ts +283 -0
  152. package/.argus/backups/tests/components/20260728_092837.797_KlinePlus.spec.ts +284 -0
  153. package/.argus/backups/tests/mocks/20260727_023418.231_st-func.mock.ts +29 -0
  154. package/.argus/backups/tests/mocks/20260727_024337.409_st-func.mock.ts +37 -0
  155. package/.argus/backups/tests/mocks/20260727_024344.807_st-func.mock.ts +40 -0
  156. package/.argus/backups/tests/mocks/20260727_041047.900_monaco.mock.ts +27 -0
  157. package/.argus/backups/tests/mocks/20260727_041129.076_monaco.mock.ts +31 -0
  158. package/.argus/backups/tests/mocks/20260727_044924.603_st-func.mock.ts +44 -0
  159. package/.argus/backups/tests/mocks/20260727_045612.059_echarts.kline.mock.ts +33 -0
  160. package/.argus/backups/tests/mocks/20260727_050955.894_echarts.kline.mock.ts +35 -0
  161. package/.argus/backups/tests/mocks/20260727_065402.557_st-func.mock.ts +52 -0
  162. package/.argus/backups/tests/mocks/20260727_065525.410_st-func.mock.ts +52 -0
  163. package/.argus/backups/tests/mocks/20260727_140844.233_echarts.kline.mock.ts +40 -0
  164. package/.argus/backups/tests/mocks/20260727_140913.119_echarts.kline.mock.ts +42 -0
  165. package/.argus/backups/tests/mocks/20260727_140921.846_echarts.kline.mock.ts +42 -0
  166. package/.argus/backups/tests/mocks/20260727_140939.427_echarts.kline.mock.ts +41 -0
  167. package/.argus/bgtasks.json +229 -0
  168. package/.argus/coldstore/013c3c794e7b7c29.jsonl +2 -0
  169. package/.argus/coldstore/0e331b8a3b0d8880.jsonl +16 -0
  170. package/.argus/coldstore/5d9a9409cc3f63f2.jsonl +7 -0
  171. package/.argus/coldstore/5f928dc976ac6d8a.jsonl +1 -0
  172. package/.argus/coldstore/60094b3c17412a84.jsonl +3 -0
  173. package/.argus/coldstore/76b2ec805ca5837c.jsonl +1 -0
  174. package/.argus/coldstore/859e7008fa48fc1b.jsonl +1 -0
  175. package/.argus/coldstore/85f91d3daeab41ca.jsonl +1595 -0
  176. package/.argus/coldstore/9278244bf4eaf9c6.jsonl +2 -0
  177. package/.argus/coldstore/9bb5e3ec04a11742.jsonl +1 -0
  178. package/.argus/coldstore/9c00baba2fa5f259.jsonl +3 -0
  179. package/.argus/coldstore/b72af6a1286c4ff8.jsonl +3 -0
  180. package/.argus/coldstore/cf0c7a7843dd408d.jsonl +1 -0
  181. package/.argus/coldstore/d1638960d5dc3db4.jsonl +4 -0
  182. package/.argus/coldstore/e6432235b17215cb.jsonl +6 -0
  183. package/.argus/coldstore/fae1501de047b46f.jsonl +1 -0
  184. package/.argus/compress_context/20260727T013726.528Z_classifier_9c00baba2fa5f259.txt +16 -0
  185. package/.argus/compress_context/20260727T020603.082Z_classifier_85f91d3daeab41ca.txt +2339 -0
  186. package/.argus/compress_context/20260727T023245.640Z_classifier_fae1501de047b46f.txt +16 -0
  187. package/.argus/compress_context/20260727T030908.737Z_classifier_e6432235b17215cb.txt +16 -0
  188. package/.argus/compress_context/20260727T032428.553Z_classifier_cf0c7a7843dd408d.txt +16 -0
  189. package/.argus/compress_context/20260727T032636.912Z_classifier_85f91d3daeab41ca.txt +7419 -0
  190. package/.argus/compress_context/20260727T041443.286Z_classifier_5d9a9409cc3f63f2.txt +16 -0
  191. package/.argus/compress_context/20260727T050601.474Z_classifier_60094b3c17412a84.txt +16 -0
  192. package/.argus/compress_context/20260727T052133.391Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  193. package/.argus/compress_context/20260727T052212.178Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  194. package/.argus/compress_context/20260727T052324.111Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  195. package/.argus/compress_context/20260727T054653.767Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  196. package/.argus/compress_context/20260727T071236.629Z_classifier_85f91d3daeab41ca.txt +16527 -0
  197. package/.argus/compress_context/20260727T072148.598Z_classifier_0e331b8a3b0d8880.txt +16 -0
  198. package/.argus/compress_context/20260727T073105.913Z_classifier_76b2ec805ca5837c.txt +16 -0
  199. package/.argus/compress_context/20260727T073345.593Z_classifier_d1638960d5dc3db4.txt +16 -0
  200. package/.argus/compress_context/20260727T092505.960Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  201. package/.argus/compress_context/20260727T113928.931Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  202. package/.argus/compress_context/20260727T123224.070Z_classifier_85f91d3daeab41ca.txt +10993 -0
  203. package/.argus/compress_context/20260727T141545.843Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  204. package/.argus/compress_context/20260728T010629.442Z_classifier_85f91d3daeab41ca.txt +24561 -0
  205. package/.argus/compress_context/20260728T010950.439Z_classifier_9278244bf4eaf9c6.txt +16 -0
  206. package/.argus/compress_context/20260728T011152.613Z_classifier_013c3c794e7b7c29.txt +16 -0
  207. package/.argus/compress_context/20260728T085939.340Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  208. package/.argus/compress_context/20260728T091110.581Z_classifier_b72af6a1286c4ff8.txt +16 -0
  209. package/.argus/compress_context/20260728T091324.113Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  210. package/.argus/compress_context/20260728T093934.076Z_classifier_85f91d3daeab41ca.txt +26262 -0
  211. package/.argus/compress_context/20260729T011307.637Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  212. package/.argus/compress_context/20260802T081344.640Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  213. package/.argus/compress_context/20260802T082844.660Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  214. package/.argus/compress_context/20260802T083022.436Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  215. package/.argus/compress_context/20260802T083336.095Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  216. package/.argus/compress_context/20260903T053304.203Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  217. package/.argus/compress_context/20260903T053851.653Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  218. package/.argus/compress_context/20260903T054344.177Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  219. package/.argus/compress_context/20260903T060025.617Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  220. package/.argus/compress_context/20260903T060858.200Z_classifier_FAILED_85f91d3daeab41ca.txt +30 -0
  221. package/.argus/config.toml +15 -0
  222. package/.argus/memory/.INDEX.md.lock +0 -0
  223. package/.argus/memory/INDEX.md +166 -0
  224. package/.argus/memory/dev_build_commands_build_targets_lib_vs_demo.md +14 -0
  225. package/.argus/memory/dev_build_commands_st_comp_build_scripts.md +13 -0
  226. package/.argus/memory/dev_coding_conventions_component_test_setupstate_override_pattern.md +14 -0
  227. package/.argus/memory/dev_coding_conventions_customfunction_ai_query_no_prefix.md +14 -0
  228. package/.argus/memory/dev_coding_conventions_fix_tests_not_packages_source.md +14 -0
  229. package/.argus/memory/dev_coding_conventions_git_workflow_branch_nds.md +14 -0
  230. package/.argus/memory/dev_coding_conventions_managedialog_ai_dialog_test_pattern.md +8 -0
  231. package/.argus/memory/dev_coding_conventions_no_packages_source_changes.md +14 -0
  232. package/.argus/memory/dev_coding_conventions_st_comp_component_spec_conventions.md +13 -0
  233. package/.argus/memory/dev_coding_conventions_st_comp_component_test_mocking_pattern.md +14 -0
  234. package/.argus/memory/dev_coding_conventions_st_comp_coverage_scope_rules.md +14 -0
  235. package/.argus/memory/dev_coding_conventions_st_comp_exposed_methods_via_wrapper_vm.md +13 -0
  236. package/.argus/memory/dev_coding_conventions_st_comp_full_import_only.md +13 -0
  237. package/.argus/memory/dev_coding_conventions_st_comp_klinebasic_error_rethrow.md +13 -0
  238. package/.argus/memory/dev_coding_conventions_st_comp_monaco_mock_extend.md +13 -0
  239. package/.argus/memory/dev_coding_conventions_st_comp_no_modify_packages_constraint.md +14 -0
  240. package/.argus/memory/dev_coding_conventions_st_comp_no_packages_changes.md +14 -0
  241. package/.argus/memory/dev_coding_conventions_st_comp_no_packages_code_changes.md +14 -0
  242. package/.argus/memory/dev_coding_conventions_st_comp_no_packages_modification.md +14 -0
  243. package/.argus/memory/dev_coding_conventions_st_comp_no_packages_source_changes.md +14 -0
  244. package/.argus/memory/dev_coding_conventions_st_comp_packages_read_only_for_test_work.md +13 -0
  245. package/.argus/memory/dev_coding_conventions_st_comp_packages_readonly_when_testing.md +13 -0
  246. package/.argus/memory/dev_coding_conventions_st_comp_seven_phase_workflow.md +13 -0
  247. package/.argus/memory/dev_coding_conventions_st_comp_spec_mock_patterns.md +13 -0
  248. package/.argus/memory/dev_coding_conventions_st_comp_spec_mount_pattern.md +13 -0
  249. package/.argus/memory/dev_coding_conventions_st_comp_test_component_patterns.md +13 -0
  250. package/.argus/memory/dev_coding_conventions_st_comp_test_constraint_no_packages_changes.md +14 -0
  251. package/.argus/memory/dev_coding_conventions_st_comp_test_conventions.md +13 -0
  252. package/.argus/memory/dev_coding_conventions_st_comp_test_mock_conventions.md +13 -0
  253. package/.argus/memory/dev_coding_conventions_st_comp_test_phase_constraints.md +14 -0
  254. package/.argus/memory/dev_coding_conventions_st_comp_test_work_no_packages_changes.md +14 -0
  255. package/.argus/memory/dev_coding_conventions_st_comp_testing_exposed_methods.md +13 -0
  256. package/.argus/memory/dev_coding_conventions_st_comp_tests_must_not_touch_packages.md +14 -0
  257. package/.argus/memory/dev_coding_conventions_st_comp_varietysearch_setupstate.md +13 -0
  258. package/.argus/memory/dev_coding_conventions_st_comp_vi_mock_pattern.md +13 -0
  259. package/.argus/memory/dev_coding_conventions_st_comp_vitest_cache_handlers_false.md +14 -0
  260. package/.argus/memory/dev_coding_conventions_stcomp_props_emits_conventions.md +13 -0
  261. package/.argus/memory/dev_coding_conventions_stconfig_request_injection.md +14 -0
  262. package/.argus/memory/dev_coding_conventions_test_isolation_and_coverage_thresholds.md +14 -0
  263. package/.argus/memory/dev_coding_conventions_test_mock_strategy_layers.md +14 -0
  264. package/.argus/memory/dev_deps_project_ui_deps_echarts_monaco.md +14 -0
  265. package/.argus/memory/dev_deps_st_comp_tech_stack.md +13 -0
  266. package/.argus/memory/dev_deps_st_comp_test_stack.md +13 -0
  267. package/.argus/memory/dev_deps_st_comp_test_stack_versions.md +13 -0
  268. package/.argus/memory/dev_deps_stcomp_heavy_deps_per_component.md +13 -0
  269. package/.argus/memory/dev_deps_variety_ai_helper_api.md +14 -0
  270. package/.argus/memory/dev_deps_variety_ai_helper_endpoint.md +14 -0
  271. package/.argus/memory/dev_deps_vitest_034_coverage_threshold_format.md +14 -0
  272. package/.argus/memory/dev_key_modules_ai_helper_streaming_api.md +14 -0
  273. package/.argus/memory/dev_key_modules_ai_tools_sse_client.md +14 -0
  274. package/.argus/memory/dev_key_modules_custom_function_api_endpoints.md +14 -0
  275. package/.argus/memory/dev_key_modules_custom_function_manage_dialog.md +14 -0
  276. package/.argus/memory/dev_key_modules_custom_function_panel_structure.md +14 -0
  277. package/.argus/memory/dev_key_modules_customfunction_manage_dialog.md +14 -0
  278. package/.argus/memory/dev_key_modules_kline_echarts_mock_requirements.md +14 -0
  279. package/.argus/memory/dev_key_modules_shared_editor_varselect_components.md +14 -0
  280. package/.argus/memory/dev_key_modules_st_comp_extractvariables_syntax.md +13 -0
  281. package/.argus/memory/dev_key_modules_st_comp_kline_component_family.md +13 -0
  282. package/.argus/memory/dev_key_modules_st_comp_kline_components_test_mocks.md +14 -0
  283. package/.argus/memory/dev_key_modules_st_comp_l2_kline_components.md +14 -0
  284. package/.argus/memory/dev_key_modules_st_comp_packages_components.md +13 -0
  285. package/.argus/memory/dev_key_modules_st_comp_test_mocks_behavior.md +13 -0
  286. package/.argus/memory/dev_key_modules_st_comp_vite_plugins.md +13 -0
  287. package/.argus/memory/dev_key_modules_st_func_mock_helper.md +14 -0
  288. package/.argus/memory/dev_key_modules_stcomp_http_via_stfunc_no_axios.md +13 -0
  289. package/.argus/memory/dev_key_modules_stcomp_stconfig_provide_inject_contract.md +13 -0
  290. package/.argus/memory/dev_key_modules_test_shared_helpers.md +14 -0
  291. package/.argus/memory/dev_key_modules_vitest_vue_cachehandlers_false.md +14 -0
  292. package/.argus/memory/dev_known_issues_klinebasic_unhandled_rejection_noise.md +14 -0
  293. package/.argus/memory/dev_known_issues_low_func_coverage_components.md +14 -0
  294. package/.argus/memory/dev_known_issues_low_function_coverage_components.md +14 -0
  295. package/.argus/memory/dev_known_issues_missing_component_tests_backlog.md +14 -0
  296. package/.argus/memory/dev_known_issues_monaco_editor_baseline_test_failures.md +14 -0
  297. package/.argus/memory/dev_known_issues_pending_component_test_coverage.md +14 -0
  298. package/.argus/memory/dev_known_issues_st_comp_baseline_failing_specs.md +14 -0
  299. package/.argus/memory/dev_known_issues_st_comp_build_gaps.md +13 -0
  300. package/.argus/memory/dev_known_issues_st_comp_contextmenu_attachto_breaks.md +13 -0
  301. package/.argus/memory/dev_known_issues_st_comp_deferred_tests_factorwarning_monacoeditor_varietyaihelper.md +14 -0
  302. package/.argus/memory/dev_known_issues_st_comp_definemodel_setupstate_test_pitfall.md +13 -0
  303. package/.argus/memory/dev_known_issues_st_comp_elmessage_auto_import_tests.md +13 -0
  304. package/.argus/memory/dev_known_issues_st_comp_elmessage_missing_in_tests.md +13 -0
  305. package/.argus/memory/dev_known_issues_st_comp_eltable_render_timing.md +13 -0
  306. package/.argus/memory/dev_known_issues_st_comp_hardcoded_server_password.md +13 -0
  307. package/.argus/memory/dev_known_issues_st_comp_jsdom_resizeobserver_stub.md +13 -0
  308. package/.argus/memory/dev_known_issues_st_comp_klinebasic_resize_coverage_gap.md +13 -0
  309. package/.argus/memory/dev_known_issues_st_comp_klinebasic_unhandled_rejection_noise.md +13 -0
  310. package/.argus/memory/dev_known_issues_st_comp_known_gaps.md +13 -0
  311. package/.argus/memory/dev_known_issues_st_comp_preexisting_spec_failures.md +13 -0
  312. package/.argus/memory/dev_known_issues_st_comp_stfunc_mock_stmath_incomplete.md +13 -0
  313. package/.argus/memory/dev_known_issues_st_comp_test_elmessage_autoimport.md +13 -0
  314. package/.argus/memory/dev_known_issues_st_comp_test_env_pitfalls.md +13 -0
  315. package/.argus/memory/dev_known_issues_st_comp_test_teleport_cleanup.md +13 -0
  316. package/.argus/memory/dev_known_issues_st_comp_varietytextcopy_global_elmessage.md +13 -0
  317. package/.argus/memory/dev_known_issues_st_comp_vitest_cache_handlers_false.md +13 -0
  318. package/.argus/memory/dev_known_issues_st_comp_vitest_cachehandlers_coverage.md +13 -0
  319. package/.argus/memory/dev_known_issues_st_func_mock_addresizelistener_return_shape.md +14 -0
  320. package/.argus/memory/dev_known_issues_stcomp_klineconfig_defineemits_string_bug.md +13 -0
  321. package/.argus/memory/dev_known_issues_t1_uncovered_test_gaps.md +14 -0
  322. package/.argus/memory/dev_known_issues_vitest_034_windows_import_meta_url.md +14 -0
  323. package/.argus/memory/dev_known_issues_vitest_baseline_failing_specs.md +14 -0
  324. package/.argus/memory/dev_known_issues_vitest_vue_plugin_cache_handlers_false.md +14 -0
  325. package/.argus/memory/dev_project_layout_custom_function_manage_dialog.md +14 -0
  326. package/.argus/memory/dev_project_layout_docs_phase_artifacts.md +14 -0
  327. package/.argus/memory/dev_project_layout_docs_tasks_md_planning_file.md +14 -0
  328. package/.argus/memory/dev_project_layout_frontend_component_test_scope.md +14 -0
  329. package/.argus/memory/dev_project_layout_local_only_dirs_not_committed.md +14 -0
  330. package/.argus/memory/dev_project_layout_nds_local_tool_dirs_untracked.md +14 -0
  331. package/.argus/memory/dev_project_layout_packages_component_layout.md +14 -0
  332. package/.argus/memory/dev_project_layout_packages_dir_always_empty.md +14 -0
  333. package/.argus/memory/dev_project_layout_phased_workflow_docs.md +14 -0
  334. package/.argus/memory/dev_project_layout_st_comp_docs_phase_workflow.md +14 -0
  335. package/.argus/memory/dev_project_layout_st_comp_docs_task_tracking.md +14 -0
  336. package/.argus/memory/dev_project_layout_st_comp_layout_and_aliases.md +13 -0
  337. package/.argus/memory/dev_project_layout_st_comp_layout_and_docs_plan.md +14 -0
  338. package/.argus/memory/dev_project_layout_st_comp_layout_and_stack.md +13 -0
  339. package/.argus/memory/dev_project_layout_st_comp_layout_and_task_tracking.md +14 -0
  340. package/.argus/memory/dev_project_layout_st_comp_project_layout.md +13 -0
  341. package/.argus/memory/dev_project_layout_st_comp_project_overview.md +14 -0
  342. package/.argus/memory/dev_project_layout_st_comp_project_root_and_purpose.md +14 -0
  343. package/.argus/memory/dev_project_layout_st_comp_repo_layout.md +13 -0
  344. package/.argus/memory/dev_project_layout_st_comp_test_layout.md +13 -0
  345. package/.argus/memory/dev_project_layout_st_comp_test_layout_and_aliases.md +13 -0
  346. package/.argus/memory/dev_project_layout_st_comp_top_level_layout.md +13 -0
  347. package/.argus/memory/dev_project_layout_stcomp_packages_layout.md +13 -0
  348. package/.argus/memory/dev_project_layout_test_release_plugin_sftp_config.md +14 -0
  349. package/.argus/memory/dev_project_layout_tests_dir_and_vitest_config.md +14 -0
  350. package/.argus/memory/dev_test_commands_component_test_baseline_and_layout.md +14 -0
  351. package/.argus/memory/dev_test_commands_coverage_gate_80_baseline_exclusions.md +14 -0
  352. package/.argus/memory/dev_test_commands_coverage_thresholds.md +14 -0
  353. package/.argus/memory/dev_test_commands_coverage_thresholds_enforced.md +14 -0
  354. package/.argus/memory/dev_test_commands_func_coverage_threshold_80.md +14 -0
  355. package/.argus/memory/dev_test_commands_st_comp_component_test_command.md +14 -0
  356. package/.argus/memory/dev_test_commands_st_comp_coverage_commands.md +14 -0
  357. package/.argus/memory/dev_test_commands_st_comp_coverage_scope_and_threshold.md +13 -0
  358. package/.argus/memory/dev_test_commands_st_comp_coverage_thresholds.md +14 -0
  359. package/.argus/memory/dev_test_commands_st_comp_run_component_tests.md +14 -0
  360. package/.argus/memory/dev_test_commands_st_comp_vitest_commands.md +13 -0
  361. package/.argus/memory/dev_test_commands_st_comp_vitest_component_suite.md +14 -0
  362. package/.argus/memory/dev_test_commands_st_comp_vitest_component_tests.md +14 -0
  363. package/.argus/memory/dev_test_commands_st_comp_vitest_components.md +14 -0
  364. package/.argus/memory/dev_test_commands_st_comp_vitest_coverage_config.md +14 -0
  365. package/.argus/memory/dev_test_commands_st_comp_vitest_coverage_thresholds.md +14 -0
  366. package/.argus/memory/dev_test_commands_st_comp_vitest_must_use_local_bin.md +13 -0
  367. package/.argus/memory/dev_test_commands_st_comp_vitest_run.md +13 -0
  368. package/.argus/memory/dev_test_commands_st_comp_vitest_run_and_coverage.md +14 -0
  369. package/.argus/memory/dev_test_commands_st_comp_vitest_run_command.md +13 -0
  370. package/.argus/memory/dev_test_commands_st_comp_vitest_run_commands.md +13 -0
  371. package/.argus/memory/dev_test_commands_st_comp_vitest_run_coverage.md +14 -0
  372. package/.argus/memory/dev_test_commands_st_comp_vitest_run_spec.md +13 -0
  373. package/.argus/memory/dev_test_commands_test_stack_vitest_vue.md +14 -0
  374. package/.argus/memory/dev_test_commands_test_suite_baseline.md +14 -0
  375. package/.argus/memory/dev_test_commands_vitest_cache_handlers_disabled_for_coverage.md +14 -0
  376. package/.argus/memory/dev_test_commands_vitest_component_test_plan_tiers.md +14 -0
  377. package/.argus/memory/dev_test_commands_vitest_component_testing_setup.md +14 -0
  378. package/.argus/memory/dev_test_commands_vitest_run_and_coverage.md +14 -0
  379. package/.argus/memory/dev_test_commands_vitest_test_infra_setup.md +14 -0
  380. package/.argus/memory/ops_credentials_locations_sftp_cred_testrelese_ts.md +14 -0
  381. package/.argus/memory/ops_credentials_locations_st_comp_test_server_root_password_hardcoded.md +13 -0
  382. package/.argus/memory/ops_deploy_workflow_build_outputs_lib_vs_demo.md +14 -0
  383. package/.argus/memory/ops_deploy_workflow_sftp_deploy_via_vite_plugin.md +14 -0
  384. package/.argus/memory/ops_deploy_workflow_st_comp_test_deploy_via_testrelese_plugin.md +13 -0
  385. package/.argus/memory/ops_servers_test_server_192_168_12_49.md +14 -0
  386. package/.argus/scheduled_tasks.json +467 -0
  387. package/.cliworks/.cliworks/input_history.jsonl +44 -0
  388. package/.cliworks/chat/acp/39525acf-0832-40e4-90e5-f058f1bccb8d/2026-07-27.json +17623 -0
  389. package/.cliworks/chat/acp/39525acf-0832-40e4-90e5-f058f1bccb8d/2026-07-28.json +6349 -0
  390. package/.cliworks/chat/acp/39525acf-0832-40e4-90e5-f058f1bccb8d/2026-07-29.json +33 -0
  391. package/.cliworks/chat/acp/39525acf-0832-40e4-90e5-f058f1bccb8d/2026-08-02.json +1174 -0
  392. package/.cliworks/chat/acp/39525acf-0832-40e4-90e5-f058f1bccb8d/2026-09-03.json +2354 -0
  393. package/.cliworks/hooks/on_create.md +6 -0
  394. package/.cliworks/hooks/on_open.md +11 -0
  395. package/.cliworks/project.json +5 -0
  396. package/coverage/ChartLayout/index.html +116 -0
  397. package/coverage/ChartLayout/index.vue.html +274 -0
  398. package/coverage/ConfigProvider/index.html +116 -0
  399. package/coverage/ConfigProvider/index.vue.html +283 -0
  400. package/coverage/Contextmenu/index.html +116 -0
  401. package/coverage/Contextmenu/index.vue.html +487 -0
  402. package/coverage/CustomFunction/index.html +116 -0
  403. package/coverage/CustomFunction/index.vue.html +685 -0
  404. package/coverage/FactorWarning/index.html +116 -0
  405. package/coverage/FactorWarning/index.vue.html +2347 -0
  406. package/coverage/HeatMap/index.html +116 -0
  407. package/coverage/HeatMap/index.vue.html +508 -0
  408. package/coverage/Kline/index.html +116 -0
  409. package/coverage/Kline/index.vue.html +2758 -0
  410. package/coverage/KlineBasic/index.html +116 -0
  411. package/coverage/KlineBasic/index.vue.html +2602 -0
  412. package/coverage/KlineConfig/index.html +116 -0
  413. package/coverage/KlineConfig/index.vue.html +1153 -0
  414. package/coverage/KlinePlus/index.html +116 -0
  415. package/coverage/KlinePlus/index.vue.html +3286 -0
  416. package/coverage/LinearLegend/index.html +116 -0
  417. package/coverage/LinearLegend/index.vue.html +418 -0
  418. package/coverage/Map/index.html +116 -0
  419. package/coverage/Map/index.vue.html +526 -0
  420. package/coverage/MonacoEditor/index.html +116 -0
  421. package/coverage/MonacoEditor/index.vue.html +3508 -0
  422. package/coverage/Pagination/index.html +116 -0
  423. package/coverage/Pagination/index.vue.html +346 -0
  424. package/coverage/PasswordPrompt/index.html +116 -0
  425. package/coverage/PasswordPrompt/index.vue.html +886 -0
  426. package/coverage/Pie/index.html +116 -0
  427. package/coverage/Pie/index.vue.html +529 -0
  428. package/coverage/Table/index.html +116 -0
  429. package/coverage/Table/index.vue.html +484 -0
  430. package/coverage/TreeMap/index.html +116 -0
  431. package/coverage/TreeMap/index.vue.html +643 -0
  432. package/coverage/User/index.html +116 -0
  433. package/coverage/User/index.vue.html +436 -0
  434. package/coverage/VarSelectDialog/index.html +116 -0
  435. package/coverage/VarSelectDialog/index.vue.html +1054 -0
  436. package/coverage/VarietyAiHelper/index.html +116 -0
  437. package/coverage/VarietyAiHelper/index.vue.html +2815 -0
  438. package/coverage/VarietyAutoComplete/index.html +116 -0
  439. package/coverage/VarietyAutoComplete/index.vue.html +352 -0
  440. package/coverage/VarietySearch/index.html +116 -0
  441. package/coverage/VarietySearch/index.vue.html +2149 -0
  442. package/coverage/VarietyTextCopy/index.html +116 -0
  443. package/coverage/VarietyTextCopy/index.vue.html +493 -0
  444. package/coverage/VirtualTable/index.html +116 -0
  445. package/coverage/VirtualTable/index.vue.html +808 -0
  446. package/coverage/base.css +224 -0
  447. package/coverage/block-navigation.js +87 -0
  448. package/coverage/clover.xml +9392 -0
  449. package/coverage/coverage-final.json +26 -0
  450. package/coverage/favicon.png +0 -0
  451. package/coverage/index.html +476 -0
  452. package/coverage/prettify.css +1 -0
  453. package/coverage/prettify.js +2 -0
  454. package/coverage/sort-arrow-sprite.png +0 -0
  455. package/coverage/sorter.js +210 -0
  456. package/docs/api-design.md +120 -0
  457. package/docs/architecture.md +110 -0
  458. package/docs/bugs.md +13 -0
  459. package/docs/requirements.md +63 -0
  460. package/docs/review.md +80 -0
  461. package/docs/security.md +83 -0
  462. package/docs/tasks.md +112 -0
  463. package/docs/test-plan.md +119 -0
  464. package/es/CustomFunction.cjs +2 -2
  465. package/es/CustomFunction.js +514 -308
  466. package/es/FactorWarning.cjs +1 -1
  467. package/es/FactorWarning.js +25 -25
  468. package/es/Kline.cjs +1 -1
  469. package/es/Kline.js +10 -10
  470. package/es/KlineBasic.cjs +1 -1
  471. package/es/KlineBasic.js +18 -18
  472. package/es/KlineConfig.cjs +1 -1
  473. package/es/KlineConfig.js +15 -15
  474. package/es/KlineNew.cjs +1 -1
  475. package/es/KlineNew.js +9 -9
  476. package/es/KlinePlus.cjs +1 -1
  477. package/es/KlinePlus.js +11 -11
  478. package/es/MonacoEditor.cjs +1 -1
  479. package/es/MonacoEditor.js +17 -17
  480. package/es/Pagination.cjs +1 -1
  481. package/es/Pagination.js +76 -76
  482. package/es/PasswordPrompt.cjs +1 -1
  483. package/es/PasswordPrompt.js +2 -2
  484. package/es/Table.cjs +1 -1
  485. package/es/Table.js +22 -22
  486. package/es/User.cjs +1 -1
  487. package/es/User.js +18 -18
  488. package/es/VarSelectDialog.cjs +1 -1
  489. package/es/VarSelectDialog.js +18 -18
  490. package/es/VarietyAiHelper.cjs +7 -7
  491. package/es/VarietyAiHelper.js +306 -279
  492. package/es/VarietyAutoComplete.cjs +1 -1
  493. package/es/VarietyAutoComplete.js +7 -7
  494. package/es/VarietySearch.cjs +1 -1
  495. package/es/VarietySearch.js +30 -30
  496. package/es/{VarietySelect-610903f0.cjs → VarietySelect-5fee5520.cjs} +1 -1
  497. package/es/{VarietySelect-6a166293.js → VarietySelect-e563b7a6.js} +3 -3
  498. package/es/VarietyTextCopy.cjs +1 -1
  499. package/es/VarietyTextCopy.js +10 -10
  500. package/es/VirtualTable.cjs +1 -1
  501. package/es/VirtualTable.js +5 -5
  502. package/es/{_initCloneObject-152b4f4e.js → _initCloneObject-5e73c9c8.js} +2 -2
  503. package/es/{_initCloneObject-76e116d0.cjs → _initCloneObject-a5832933.cjs} +1 -1
  504. package/es/{aiTools-d7bd47c3.js → aiTools-a3b095f6.js} +19 -19
  505. package/es/aiTools-f36136a4.cjs +2 -0
  506. package/es/aiTools.js +4 -0
  507. package/es/{config-provider-4c784baf.cjs → config-provider-06ea6b42.cjs} +1 -1
  508. package/es/{config-provider-7a3aca55.js → config-provider-88b637a8.js} +3 -3
  509. package/es/{dropdown-987c47fb.cjs → dropdown-4ce4c3e2.cjs} +1 -1
  510. package/es/{dropdown-01e09205.js → dropdown-72fbc15d.js} +2 -2
  511. package/es/{el-autocomplete-342ae823.js → el-autocomplete-6cafcdf1.js} +5 -5
  512. package/es/{el-autocomplete-16f66b34.cjs → el-autocomplete-e0857c5b.cjs} +1 -1
  513. package/es/{el-button-13dc915f.cjs → el-button-613e0bb2.cjs} +1 -1
  514. package/es/{el-button-314171a0.js → el-button-94d3de38.js} +3 -3
  515. package/es/{el-checkbox-5899681f.js → el-checkbox-6d4cb393.js} +3 -3
  516. package/es/{el-checkbox-bdf64663.cjs → el-checkbox-e90762df.cjs} +1 -1
  517. package/es/{el-dialog-0ef95df6.cjs → el-dialog-02942e22.cjs} +1 -1
  518. package/es/{el-dialog-86a3eec2.js → el-dialog-5e30161f.js} +4 -4
  519. package/es/{el-form-item-77ef6784.cjs → el-form-item-44f060d8.cjs} +1 -1
  520. package/es/{el-form-item-cda4d93c.js → el-form-item-9e8969ea.js} +5 -5
  521. package/es/{el-input-fa1445ad.js → el-input-342b2def.js} +13 -13
  522. package/es/{el-input-89222943.cjs → el-input-9a9a7f7f.cjs} +1 -1
  523. package/es/{el-input-number-d3338e5e.cjs → el-input-number-65c847d6.cjs} +1 -1
  524. package/es/{el-input-number-8f6dbf74.js → el-input-number-c22b803a.js} +35 -35
  525. package/es/{el-loading-84dde1a8.cjs → el-loading-8179b497.cjs} +1 -1
  526. package/es/{el-loading-9b671203.js → el-loading-bcc51e3d.js} +1 -1
  527. package/es/{el-menu-item-535fef90.js → el-menu-item-339baf6d.js} +21 -21
  528. package/es/{el-menu-item-4531fd0e.cjs → el-menu-item-83186444.cjs} +1 -1
  529. package/es/{el-message-box-621ed2f1.js → el-message-box-035b699c.js} +9 -9
  530. package/es/{el-message-box-f5717070.cjs → el-message-box-c62d3217.cjs} +1 -1
  531. package/es/{el-overlay-23de4324.js → el-overlay-3e17604b.js} +3 -3
  532. package/es/{el-overlay-151708cb.cjs → el-overlay-8f1da9e8.cjs} +1 -1
  533. package/es/{el-popconfirm-b8aa490e.cjs → el-popconfirm-4e32ec1b.cjs} +1 -1
  534. package/es/{el-popconfirm-bcff0aa5.js → el-popconfirm-f8a86e2c.js} +4 -4
  535. package/es/{el-popper-43ec37f4.cjs → el-popper-a4f3ae4d.cjs} +1 -1
  536. package/es/{el-popper-03988662.js → el-popper-fbd0dcea.js} +1 -1
  537. package/es/{el-segmented-db3a86be.js → el-segmented-56bd58a8.js} +2 -2
  538. package/es/{el-segmented-79a1367c.cjs → el-segmented-833ac177.cjs} +1 -1
  539. package/es/{el-select-4bd0010d.js → el-select-44fa547d.js} +8 -8
  540. package/es/{el-select-ec04e7ce.cjs → el-select-70806166.cjs} +1 -1
  541. package/es/{el-table-column-35e47229.cjs → el-table-column-3e2cdfca.cjs} +1 -1
  542. package/es/{el-table-column-7af2bec7.js → el-table-column-b74a857d.js} +9 -9
  543. package/es/{el-tag-bef9e83d.js → el-tag-66c83156.js} +2 -2
  544. package/es/{el-tag-5d5608e0.cjs → el-tag-9c2f329f.cjs} +1 -1
  545. package/es/{el-text-f998902c.js → el-text-034bd3f4.js} +1 -1
  546. package/es/{el-text-abf10fdf.cjs → el-text-6b2374bb.cjs} +1 -1
  547. package/es/index-00f6ca75.cjs +1 -0
  548. package/es/{index-a00e0534.cjs → index-185792a7.cjs} +1 -1
  549. package/es/{index-d1b554ac.js → index-1e2a38ab.js} +2 -2
  550. package/es/{index-f3f6ee27.js → index-27416486.js} +9 -9
  551. package/es/{index-2d7ac156.cjs → index-47c9eb63.cjs} +2 -2
  552. package/es/{index-0986e373.cjs → index-4cd74df9.cjs} +1 -1
  553. package/es/{index-ce21e2ce.js → index-5216d5f5.js} +5 -5
  554. package/es/{index-cfcd60ca.cjs → index-5c0dd943.cjs} +1 -1
  555. package/es/{index-cfd00899.cjs → index-870b6c9d.cjs} +1 -1
  556. package/es/{index-a83ec4b7.js → index-8c2d7e05.js} +1 -1
  557. package/es/{index-db846633.cjs → index-9d16cea8.cjs} +1 -1
  558. package/es/{index-936e7dec.js → index-a9785a4f.js} +1 -1
  559. package/es/{index-60c69dd1.cjs → index-ac8dc53d.cjs} +1 -1
  560. package/es/{index-102edf6c.js → index-c5f2d372.js} +2 -2
  561. package/es/{index-6290ae0f.js → index-c6584658.js} +2 -2
  562. package/es/{index-5c44d71a.js → index-eb96e074.js} +149 -119
  563. package/es/{index-5ed42e9c.js → index-f034b910.js} +2 -2
  564. package/es/{index-c58e90e9.cjs → index-f58b2920.cjs} +1 -1
  565. package/es/{python-71f59893.cjs → python-2623e545.cjs} +1 -1
  566. package/es/{python-6cc6ec1b.js → python-85a62852.js} +17 -17
  567. package/es/style.css +1 -1
  568. package/es/{use-form-common-props-02be4928.cjs → use-form-common-props-ac666630.cjs} +1 -1
  569. package/es/{use-form-common-props-76a09d89.js → use-form-common-props-ed72e914.js} +11 -11
  570. package/es/{use-global-config-31b3ec57.cjs → use-global-config-23472471.cjs} +1 -1
  571. package/es/{use-global-config-0f43458b.js → use-global-config-ee406d58.js} +2 -2
  572. package/es/{validator-ea292506.cjs → validator-366dbf39.cjs} +1 -1
  573. package/es/{validator-0e037618.js → validator-c60a8956.js} +1 -1
  574. package/es/{zh-cn-1227eb8a.js → zh-cn-b59a0910.js} +1 -1
  575. package/es/{zh-cn-0edc7234.cjs → zh-cn-c21d12d8.cjs} +1 -1
  576. package/introduce.md +41 -0
  577. package/lib/aiTools.js +4 -0
  578. package/lib/bundle.js +1 -1
  579. package/lib/bundle.umd.cjs +189 -189
  580. package/lib/{index-8b55d8c8.js → index-72506c43.js} +20695 -20434
  581. package/lib/{python-f164f783.js → python-d3119b5a.js} +1 -1
  582. package/lib/style.css +1 -1
  583. package/package.json +9 -2
  584. package/packages/CustomFunction/components/ManageDialog.vue +300 -3
  585. package/packages/VarietyAiHelper/index.vue +42 -6
  586. package/public/aiTools.js +4 -0
  587. package/src/App.vue +16 -16
  588. package/tests/components/ChartLayout.spec.ts +67 -0
  589. package/tests/components/ConfigProvider.spec.ts +99 -0
  590. package/tests/components/Contextmenu.spec.ts +79 -0
  591. package/tests/components/CustomFunction.spec.ts +185 -0
  592. package/tests/components/FactorWarning.spec.ts +287 -0
  593. package/tests/components/HeatMap.spec.ts +83 -0
  594. package/tests/components/Kline.spec.ts +140 -0
  595. package/tests/components/Kline2.spec.ts +311 -0
  596. package/tests/components/KlineBasic.spec.ts +429 -0
  597. package/tests/components/KlineConfig.spec.ts +278 -0
  598. package/tests/components/KlineNew.spec.ts +278 -0
  599. package/tests/components/KlinePlus.spec.ts +284 -0
  600. package/tests/components/LinearLegend.spec.ts +69 -0
  601. package/tests/components/ManageDialog.spec.ts +253 -0
  602. package/tests/components/Map.spec.ts +71 -0
  603. package/tests/components/MonacoEditor.spec.ts +530 -0
  604. package/tests/components/Pagination.spec.ts +59 -0
  605. package/tests/components/PasswordPrompt.spec.ts +72 -0
  606. package/tests/components/Pie.spec.ts +96 -0
  607. package/tests/components/Table.spec.ts +186 -0
  608. package/tests/components/TreeMap.spec.ts +100 -0
  609. package/tests/components/User.spec.ts +130 -0
  610. package/tests/components/VarSelectDialog.spec.ts +131 -0
  611. package/tests/components/VarietyAiHelper.spec.ts +164 -0
  612. package/tests/components/VarietyAutoComplete.spec.ts +110 -0
  613. package/tests/components/VarietySearch.spec.ts +526 -0
  614. package/tests/components/VarietyTextCopy.spec.ts +86 -0
  615. package/tests/components/VirtualTable.spec.ts +285 -0
  616. package/tests/helpers/mountWithPlugins.ts +19 -0
  617. package/tests/mocks/echarts.kline.mock.ts +41 -0
  618. package/tests/mocks/echarts.mock.ts +38 -0
  619. package/tests/mocks/monaco.mock.ts +37 -0
  620. package/tests/mocks/st-func.mock.ts +52 -0
  621. package/tests/mocks/talib.mock.ts +13 -0
  622. package/tests/setup.ts +65 -0
  623. package/tests/smoke.spec.ts +12 -0
  624. package/vitest.config.ts +56 -0
  625. package/workflow.md +33 -0
  626. package/es/aiTools-9fd42de8.cjs +0 -2
  627. package/es/index-476c4459.cjs +0 -1
@@ -0,0 +1,2815 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for VarietyAiHelper/index.vue</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">VarietyAiHelper</a> index.vue</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">91.97% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>837/910</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">83.63% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>46/55</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">76.47% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>13/17</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">91.97% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>837/910</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a>
599
+ <a name='L534'></a><a href='#L534'>534</a>
600
+ <a name='L535'></a><a href='#L535'>535</a>
601
+ <a name='L536'></a><a href='#L536'>536</a>
602
+ <a name='L537'></a><a href='#L537'>537</a>
603
+ <a name='L538'></a><a href='#L538'>538</a>
604
+ <a name='L539'></a><a href='#L539'>539</a>
605
+ <a name='L540'></a><a href='#L540'>540</a>
606
+ <a name='L541'></a><a href='#L541'>541</a>
607
+ <a name='L542'></a><a href='#L542'>542</a>
608
+ <a name='L543'></a><a href='#L543'>543</a>
609
+ <a name='L544'></a><a href='#L544'>544</a>
610
+ <a name='L545'></a><a href='#L545'>545</a>
611
+ <a name='L546'></a><a href='#L546'>546</a>
612
+ <a name='L547'></a><a href='#L547'>547</a>
613
+ <a name='L548'></a><a href='#L548'>548</a>
614
+ <a name='L549'></a><a href='#L549'>549</a>
615
+ <a name='L550'></a><a href='#L550'>550</a>
616
+ <a name='L551'></a><a href='#L551'>551</a>
617
+ <a name='L552'></a><a href='#L552'>552</a>
618
+ <a name='L553'></a><a href='#L553'>553</a>
619
+ <a name='L554'></a><a href='#L554'>554</a>
620
+ <a name='L555'></a><a href='#L555'>555</a>
621
+ <a name='L556'></a><a href='#L556'>556</a>
622
+ <a name='L557'></a><a href='#L557'>557</a>
623
+ <a name='L558'></a><a href='#L558'>558</a>
624
+ <a name='L559'></a><a href='#L559'>559</a>
625
+ <a name='L560'></a><a href='#L560'>560</a>
626
+ <a name='L561'></a><a href='#L561'>561</a>
627
+ <a name='L562'></a><a href='#L562'>562</a>
628
+ <a name='L563'></a><a href='#L563'>563</a>
629
+ <a name='L564'></a><a href='#L564'>564</a>
630
+ <a name='L565'></a><a href='#L565'>565</a>
631
+ <a name='L566'></a><a href='#L566'>566</a>
632
+ <a name='L567'></a><a href='#L567'>567</a>
633
+ <a name='L568'></a><a href='#L568'>568</a>
634
+ <a name='L569'></a><a href='#L569'>569</a>
635
+ <a name='L570'></a><a href='#L570'>570</a>
636
+ <a name='L571'></a><a href='#L571'>571</a>
637
+ <a name='L572'></a><a href='#L572'>572</a>
638
+ <a name='L573'></a><a href='#L573'>573</a>
639
+ <a name='L574'></a><a href='#L574'>574</a>
640
+ <a name='L575'></a><a href='#L575'>575</a>
641
+ <a name='L576'></a><a href='#L576'>576</a>
642
+ <a name='L577'></a><a href='#L577'>577</a>
643
+ <a name='L578'></a><a href='#L578'>578</a>
644
+ <a name='L579'></a><a href='#L579'>579</a>
645
+ <a name='L580'></a><a href='#L580'>580</a>
646
+ <a name='L581'></a><a href='#L581'>581</a>
647
+ <a name='L582'></a><a href='#L582'>582</a>
648
+ <a name='L583'></a><a href='#L583'>583</a>
649
+ <a name='L584'></a><a href='#L584'>584</a>
650
+ <a name='L585'></a><a href='#L585'>585</a>
651
+ <a name='L586'></a><a href='#L586'>586</a>
652
+ <a name='L587'></a><a href='#L587'>587</a>
653
+ <a name='L588'></a><a href='#L588'>588</a>
654
+ <a name='L589'></a><a href='#L589'>589</a>
655
+ <a name='L590'></a><a href='#L590'>590</a>
656
+ <a name='L591'></a><a href='#L591'>591</a>
657
+ <a name='L592'></a><a href='#L592'>592</a>
658
+ <a name='L593'></a><a href='#L593'>593</a>
659
+ <a name='L594'></a><a href='#L594'>594</a>
660
+ <a name='L595'></a><a href='#L595'>595</a>
661
+ <a name='L596'></a><a href='#L596'>596</a>
662
+ <a name='L597'></a><a href='#L597'>597</a>
663
+ <a name='L598'></a><a href='#L598'>598</a>
664
+ <a name='L599'></a><a href='#L599'>599</a>
665
+ <a name='L600'></a><a href='#L600'>600</a>
666
+ <a name='L601'></a><a href='#L601'>601</a>
667
+ <a name='L602'></a><a href='#L602'>602</a>
668
+ <a name='L603'></a><a href='#L603'>603</a>
669
+ <a name='L604'></a><a href='#L604'>604</a>
670
+ <a name='L605'></a><a href='#L605'>605</a>
671
+ <a name='L606'></a><a href='#L606'>606</a>
672
+ <a name='L607'></a><a href='#L607'>607</a>
673
+ <a name='L608'></a><a href='#L608'>608</a>
674
+ <a name='L609'></a><a href='#L609'>609</a>
675
+ <a name='L610'></a><a href='#L610'>610</a>
676
+ <a name='L611'></a><a href='#L611'>611</a>
677
+ <a name='L612'></a><a href='#L612'>612</a>
678
+ <a name='L613'></a><a href='#L613'>613</a>
679
+ <a name='L614'></a><a href='#L614'>614</a>
680
+ <a name='L615'></a><a href='#L615'>615</a>
681
+ <a name='L616'></a><a href='#L616'>616</a>
682
+ <a name='L617'></a><a href='#L617'>617</a>
683
+ <a name='L618'></a><a href='#L618'>618</a>
684
+ <a name='L619'></a><a href='#L619'>619</a>
685
+ <a name='L620'></a><a href='#L620'>620</a>
686
+ <a name='L621'></a><a href='#L621'>621</a>
687
+ <a name='L622'></a><a href='#L622'>622</a>
688
+ <a name='L623'></a><a href='#L623'>623</a>
689
+ <a name='L624'></a><a href='#L624'>624</a>
690
+ <a name='L625'></a><a href='#L625'>625</a>
691
+ <a name='L626'></a><a href='#L626'>626</a>
692
+ <a name='L627'></a><a href='#L627'>627</a>
693
+ <a name='L628'></a><a href='#L628'>628</a>
694
+ <a name='L629'></a><a href='#L629'>629</a>
695
+ <a name='L630'></a><a href='#L630'>630</a>
696
+ <a name='L631'></a><a href='#L631'>631</a>
697
+ <a name='L632'></a><a href='#L632'>632</a>
698
+ <a name='L633'></a><a href='#L633'>633</a>
699
+ <a name='L634'></a><a href='#L634'>634</a>
700
+ <a name='L635'></a><a href='#L635'>635</a>
701
+ <a name='L636'></a><a href='#L636'>636</a>
702
+ <a name='L637'></a><a href='#L637'>637</a>
703
+ <a name='L638'></a><a href='#L638'>638</a>
704
+ <a name='L639'></a><a href='#L639'>639</a>
705
+ <a name='L640'></a><a href='#L640'>640</a>
706
+ <a name='L641'></a><a href='#L641'>641</a>
707
+ <a name='L642'></a><a href='#L642'>642</a>
708
+ <a name='L643'></a><a href='#L643'>643</a>
709
+ <a name='L644'></a><a href='#L644'>644</a>
710
+ <a name='L645'></a><a href='#L645'>645</a>
711
+ <a name='L646'></a><a href='#L646'>646</a>
712
+ <a name='L647'></a><a href='#L647'>647</a>
713
+ <a name='L648'></a><a href='#L648'>648</a>
714
+ <a name='L649'></a><a href='#L649'>649</a>
715
+ <a name='L650'></a><a href='#L650'>650</a>
716
+ <a name='L651'></a><a href='#L651'>651</a>
717
+ <a name='L652'></a><a href='#L652'>652</a>
718
+ <a name='L653'></a><a href='#L653'>653</a>
719
+ <a name='L654'></a><a href='#L654'>654</a>
720
+ <a name='L655'></a><a href='#L655'>655</a>
721
+ <a name='L656'></a><a href='#L656'>656</a>
722
+ <a name='L657'></a><a href='#L657'>657</a>
723
+ <a name='L658'></a><a href='#L658'>658</a>
724
+ <a name='L659'></a><a href='#L659'>659</a>
725
+ <a name='L660'></a><a href='#L660'>660</a>
726
+ <a name='L661'></a><a href='#L661'>661</a>
727
+ <a name='L662'></a><a href='#L662'>662</a>
728
+ <a name='L663'></a><a href='#L663'>663</a>
729
+ <a name='L664'></a><a href='#L664'>664</a>
730
+ <a name='L665'></a><a href='#L665'>665</a>
731
+ <a name='L666'></a><a href='#L666'>666</a>
732
+ <a name='L667'></a><a href='#L667'>667</a>
733
+ <a name='L668'></a><a href='#L668'>668</a>
734
+ <a name='L669'></a><a href='#L669'>669</a>
735
+ <a name='L670'></a><a href='#L670'>670</a>
736
+ <a name='L671'></a><a href='#L671'>671</a>
737
+ <a name='L672'></a><a href='#L672'>672</a>
738
+ <a name='L673'></a><a href='#L673'>673</a>
739
+ <a name='L674'></a><a href='#L674'>674</a>
740
+ <a name='L675'></a><a href='#L675'>675</a>
741
+ <a name='L676'></a><a href='#L676'>676</a>
742
+ <a name='L677'></a><a href='#L677'>677</a>
743
+ <a name='L678'></a><a href='#L678'>678</a>
744
+ <a name='L679'></a><a href='#L679'>679</a>
745
+ <a name='L680'></a><a href='#L680'>680</a>
746
+ <a name='L681'></a><a href='#L681'>681</a>
747
+ <a name='L682'></a><a href='#L682'>682</a>
748
+ <a name='L683'></a><a href='#L683'>683</a>
749
+ <a name='L684'></a><a href='#L684'>684</a>
750
+ <a name='L685'></a><a href='#L685'>685</a>
751
+ <a name='L686'></a><a href='#L686'>686</a>
752
+ <a name='L687'></a><a href='#L687'>687</a>
753
+ <a name='L688'></a><a href='#L688'>688</a>
754
+ <a name='L689'></a><a href='#L689'>689</a>
755
+ <a name='L690'></a><a href='#L690'>690</a>
756
+ <a name='L691'></a><a href='#L691'>691</a>
757
+ <a name='L692'></a><a href='#L692'>692</a>
758
+ <a name='L693'></a><a href='#L693'>693</a>
759
+ <a name='L694'></a><a href='#L694'>694</a>
760
+ <a name='L695'></a><a href='#L695'>695</a>
761
+ <a name='L696'></a><a href='#L696'>696</a>
762
+ <a name='L697'></a><a href='#L697'>697</a>
763
+ <a name='L698'></a><a href='#L698'>698</a>
764
+ <a name='L699'></a><a href='#L699'>699</a>
765
+ <a name='L700'></a><a href='#L700'>700</a>
766
+ <a name='L701'></a><a href='#L701'>701</a>
767
+ <a name='L702'></a><a href='#L702'>702</a>
768
+ <a name='L703'></a><a href='#L703'>703</a>
769
+ <a name='L704'></a><a href='#L704'>704</a>
770
+ <a name='L705'></a><a href='#L705'>705</a>
771
+ <a name='L706'></a><a href='#L706'>706</a>
772
+ <a name='L707'></a><a href='#L707'>707</a>
773
+ <a name='L708'></a><a href='#L708'>708</a>
774
+ <a name='L709'></a><a href='#L709'>709</a>
775
+ <a name='L710'></a><a href='#L710'>710</a>
776
+ <a name='L711'></a><a href='#L711'>711</a>
777
+ <a name='L712'></a><a href='#L712'>712</a>
778
+ <a name='L713'></a><a href='#L713'>713</a>
779
+ <a name='L714'></a><a href='#L714'>714</a>
780
+ <a name='L715'></a><a href='#L715'>715</a>
781
+ <a name='L716'></a><a href='#L716'>716</a>
782
+ <a name='L717'></a><a href='#L717'>717</a>
783
+ <a name='L718'></a><a href='#L718'>718</a>
784
+ <a name='L719'></a><a href='#L719'>719</a>
785
+ <a name='L720'></a><a href='#L720'>720</a>
786
+ <a name='L721'></a><a href='#L721'>721</a>
787
+ <a name='L722'></a><a href='#L722'>722</a>
788
+ <a name='L723'></a><a href='#L723'>723</a>
789
+ <a name='L724'></a><a href='#L724'>724</a>
790
+ <a name='L725'></a><a href='#L725'>725</a>
791
+ <a name='L726'></a><a href='#L726'>726</a>
792
+ <a name='L727'></a><a href='#L727'>727</a>
793
+ <a name='L728'></a><a href='#L728'>728</a>
794
+ <a name='L729'></a><a href='#L729'>729</a>
795
+ <a name='L730'></a><a href='#L730'>730</a>
796
+ <a name='L731'></a><a href='#L731'>731</a>
797
+ <a name='L732'></a><a href='#L732'>732</a>
798
+ <a name='L733'></a><a href='#L733'>733</a>
799
+ <a name='L734'></a><a href='#L734'>734</a>
800
+ <a name='L735'></a><a href='#L735'>735</a>
801
+ <a name='L736'></a><a href='#L736'>736</a>
802
+ <a name='L737'></a><a href='#L737'>737</a>
803
+ <a name='L738'></a><a href='#L738'>738</a>
804
+ <a name='L739'></a><a href='#L739'>739</a>
805
+ <a name='L740'></a><a href='#L740'>740</a>
806
+ <a name='L741'></a><a href='#L741'>741</a>
807
+ <a name='L742'></a><a href='#L742'>742</a>
808
+ <a name='L743'></a><a href='#L743'>743</a>
809
+ <a name='L744'></a><a href='#L744'>744</a>
810
+ <a name='L745'></a><a href='#L745'>745</a>
811
+ <a name='L746'></a><a href='#L746'>746</a>
812
+ <a name='L747'></a><a href='#L747'>747</a>
813
+ <a name='L748'></a><a href='#L748'>748</a>
814
+ <a name='L749'></a><a href='#L749'>749</a>
815
+ <a name='L750'></a><a href='#L750'>750</a>
816
+ <a name='L751'></a><a href='#L751'>751</a>
817
+ <a name='L752'></a><a href='#L752'>752</a>
818
+ <a name='L753'></a><a href='#L753'>753</a>
819
+ <a name='L754'></a><a href='#L754'>754</a>
820
+ <a name='L755'></a><a href='#L755'>755</a>
821
+ <a name='L756'></a><a href='#L756'>756</a>
822
+ <a name='L757'></a><a href='#L757'>757</a>
823
+ <a name='L758'></a><a href='#L758'>758</a>
824
+ <a name='L759'></a><a href='#L759'>759</a>
825
+ <a name='L760'></a><a href='#L760'>760</a>
826
+ <a name='L761'></a><a href='#L761'>761</a>
827
+ <a name='L762'></a><a href='#L762'>762</a>
828
+ <a name='L763'></a><a href='#L763'>763</a>
829
+ <a name='L764'></a><a href='#L764'>764</a>
830
+ <a name='L765'></a><a href='#L765'>765</a>
831
+ <a name='L766'></a><a href='#L766'>766</a>
832
+ <a name='L767'></a><a href='#L767'>767</a>
833
+ <a name='L768'></a><a href='#L768'>768</a>
834
+ <a name='L769'></a><a href='#L769'>769</a>
835
+ <a name='L770'></a><a href='#L770'>770</a>
836
+ <a name='L771'></a><a href='#L771'>771</a>
837
+ <a name='L772'></a><a href='#L772'>772</a>
838
+ <a name='L773'></a><a href='#L773'>773</a>
839
+ <a name='L774'></a><a href='#L774'>774</a>
840
+ <a name='L775'></a><a href='#L775'>775</a>
841
+ <a name='L776'></a><a href='#L776'>776</a>
842
+ <a name='L777'></a><a href='#L777'>777</a>
843
+ <a name='L778'></a><a href='#L778'>778</a>
844
+ <a name='L779'></a><a href='#L779'>779</a>
845
+ <a name='L780'></a><a href='#L780'>780</a>
846
+ <a name='L781'></a><a href='#L781'>781</a>
847
+ <a name='L782'></a><a href='#L782'>782</a>
848
+ <a name='L783'></a><a href='#L783'>783</a>
849
+ <a name='L784'></a><a href='#L784'>784</a>
850
+ <a name='L785'></a><a href='#L785'>785</a>
851
+ <a name='L786'></a><a href='#L786'>786</a>
852
+ <a name='L787'></a><a href='#L787'>787</a>
853
+ <a name='L788'></a><a href='#L788'>788</a>
854
+ <a name='L789'></a><a href='#L789'>789</a>
855
+ <a name='L790'></a><a href='#L790'>790</a>
856
+ <a name='L791'></a><a href='#L791'>791</a>
857
+ <a name='L792'></a><a href='#L792'>792</a>
858
+ <a name='L793'></a><a href='#L793'>793</a>
859
+ <a name='L794'></a><a href='#L794'>794</a>
860
+ <a name='L795'></a><a href='#L795'>795</a>
861
+ <a name='L796'></a><a href='#L796'>796</a>
862
+ <a name='L797'></a><a href='#L797'>797</a>
863
+ <a name='L798'></a><a href='#L798'>798</a>
864
+ <a name='L799'></a><a href='#L799'>799</a>
865
+ <a name='L800'></a><a href='#L800'>800</a>
866
+ <a name='L801'></a><a href='#L801'>801</a>
867
+ <a name='L802'></a><a href='#L802'>802</a>
868
+ <a name='L803'></a><a href='#L803'>803</a>
869
+ <a name='L804'></a><a href='#L804'>804</a>
870
+ <a name='L805'></a><a href='#L805'>805</a>
871
+ <a name='L806'></a><a href='#L806'>806</a>
872
+ <a name='L807'></a><a href='#L807'>807</a>
873
+ <a name='L808'></a><a href='#L808'>808</a>
874
+ <a name='L809'></a><a href='#L809'>809</a>
875
+ <a name='L810'></a><a href='#L810'>810</a>
876
+ <a name='L811'></a><a href='#L811'>811</a>
877
+ <a name='L812'></a><a href='#L812'>812</a>
878
+ <a name='L813'></a><a href='#L813'>813</a>
879
+ <a name='L814'></a><a href='#L814'>814</a>
880
+ <a name='L815'></a><a href='#L815'>815</a>
881
+ <a name='L816'></a><a href='#L816'>816</a>
882
+ <a name='L817'></a><a href='#L817'>817</a>
883
+ <a name='L818'></a><a href='#L818'>818</a>
884
+ <a name='L819'></a><a href='#L819'>819</a>
885
+ <a name='L820'></a><a href='#L820'>820</a>
886
+ <a name='L821'></a><a href='#L821'>821</a>
887
+ <a name='L822'></a><a href='#L822'>822</a>
888
+ <a name='L823'></a><a href='#L823'>823</a>
889
+ <a name='L824'></a><a href='#L824'>824</a>
890
+ <a name='L825'></a><a href='#L825'>825</a>
891
+ <a name='L826'></a><a href='#L826'>826</a>
892
+ <a name='L827'></a><a href='#L827'>827</a>
893
+ <a name='L828'></a><a href='#L828'>828</a>
894
+ <a name='L829'></a><a href='#L829'>829</a>
895
+ <a name='L830'></a><a href='#L830'>830</a>
896
+ <a name='L831'></a><a href='#L831'>831</a>
897
+ <a name='L832'></a><a href='#L832'>832</a>
898
+ <a name='L833'></a><a href='#L833'>833</a>
899
+ <a name='L834'></a><a href='#L834'>834</a>
900
+ <a name='L835'></a><a href='#L835'>835</a>
901
+ <a name='L836'></a><a href='#L836'>836</a>
902
+ <a name='L837'></a><a href='#L837'>837</a>
903
+ <a name='L838'></a><a href='#L838'>838</a>
904
+ <a name='L839'></a><a href='#L839'>839</a>
905
+ <a name='L840'></a><a href='#L840'>840</a>
906
+ <a name='L841'></a><a href='#L841'>841</a>
907
+ <a name='L842'></a><a href='#L842'>842</a>
908
+ <a name='L843'></a><a href='#L843'>843</a>
909
+ <a name='L844'></a><a href='#L844'>844</a>
910
+ <a name='L845'></a><a href='#L845'>845</a>
911
+ <a name='L846'></a><a href='#L846'>846</a>
912
+ <a name='L847'></a><a href='#L847'>847</a>
913
+ <a name='L848'></a><a href='#L848'>848</a>
914
+ <a name='L849'></a><a href='#L849'>849</a>
915
+ <a name='L850'></a><a href='#L850'>850</a>
916
+ <a name='L851'></a><a href='#L851'>851</a>
917
+ <a name='L852'></a><a href='#L852'>852</a>
918
+ <a name='L853'></a><a href='#L853'>853</a>
919
+ <a name='L854'></a><a href='#L854'>854</a>
920
+ <a name='L855'></a><a href='#L855'>855</a>
921
+ <a name='L856'></a><a href='#L856'>856</a>
922
+ <a name='L857'></a><a href='#L857'>857</a>
923
+ <a name='L858'></a><a href='#L858'>858</a>
924
+ <a name='L859'></a><a href='#L859'>859</a>
925
+ <a name='L860'></a><a href='#L860'>860</a>
926
+ <a name='L861'></a><a href='#L861'>861</a>
927
+ <a name='L862'></a><a href='#L862'>862</a>
928
+ <a name='L863'></a><a href='#L863'>863</a>
929
+ <a name='L864'></a><a href='#L864'>864</a>
930
+ <a name='L865'></a><a href='#L865'>865</a>
931
+ <a name='L866'></a><a href='#L866'>866</a>
932
+ <a name='L867'></a><a href='#L867'>867</a>
933
+ <a name='L868'></a><a href='#L868'>868</a>
934
+ <a name='L869'></a><a href='#L869'>869</a>
935
+ <a name='L870'></a><a href='#L870'>870</a>
936
+ <a name='L871'></a><a href='#L871'>871</a>
937
+ <a name='L872'></a><a href='#L872'>872</a>
938
+ <a name='L873'></a><a href='#L873'>873</a>
939
+ <a name='L874'></a><a href='#L874'>874</a>
940
+ <a name='L875'></a><a href='#L875'>875</a>
941
+ <a name='L876'></a><a href='#L876'>876</a>
942
+ <a name='L877'></a><a href='#L877'>877</a>
943
+ <a name='L878'></a><a href='#L878'>878</a>
944
+ <a name='L879'></a><a href='#L879'>879</a>
945
+ <a name='L880'></a><a href='#L880'>880</a>
946
+ <a name='L881'></a><a href='#L881'>881</a>
947
+ <a name='L882'></a><a href='#L882'>882</a>
948
+ <a name='L883'></a><a href='#L883'>883</a>
949
+ <a name='L884'></a><a href='#L884'>884</a>
950
+ <a name='L885'></a><a href='#L885'>885</a>
951
+ <a name='L886'></a><a href='#L886'>886</a>
952
+ <a name='L887'></a><a href='#L887'>887</a>
953
+ <a name='L888'></a><a href='#L888'>888</a>
954
+ <a name='L889'></a><a href='#L889'>889</a>
955
+ <a name='L890'></a><a href='#L890'>890</a>
956
+ <a name='L891'></a><a href='#L891'>891</a>
957
+ <a name='L892'></a><a href='#L892'>892</a>
958
+ <a name='L893'></a><a href='#L893'>893</a>
959
+ <a name='L894'></a><a href='#L894'>894</a>
960
+ <a name='L895'></a><a href='#L895'>895</a>
961
+ <a name='L896'></a><a href='#L896'>896</a>
962
+ <a name='L897'></a><a href='#L897'>897</a>
963
+ <a name='L898'></a><a href='#L898'>898</a>
964
+ <a name='L899'></a><a href='#L899'>899</a>
965
+ <a name='L900'></a><a href='#L900'>900</a>
966
+ <a name='L901'></a><a href='#L901'>901</a>
967
+ <a name='L902'></a><a href='#L902'>902</a>
968
+ <a name='L903'></a><a href='#L903'>903</a>
969
+ <a name='L904'></a><a href='#L904'>904</a>
970
+ <a name='L905'></a><a href='#L905'>905</a>
971
+ <a name='L906'></a><a href='#L906'>906</a>
972
+ <a name='L907'></a><a href='#L907'>907</a>
973
+ <a name='L908'></a><a href='#L908'>908</a>
974
+ <a name='L909'></a><a href='#L909'>909</a>
975
+ <a name='L910'></a><a href='#L910'>910</a>
976
+ <a name='L911'></a><a href='#L911'>911</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
977
+ <span class="cline-any cline-yes">1x</span>
978
+ <span class="cline-any cline-yes">1x</span>
979
+ <span class="cline-any cline-yes">1x</span>
980
+ <span class="cline-any cline-yes">1x</span>
981
+ <span class="cline-any cline-yes">1x</span>
982
+ <span class="cline-any cline-yes">1x</span>
983
+ <span class="cline-any cline-yes">1x</span>
984
+ <span class="cline-any cline-yes">1x</span>
985
+ <span class="cline-any cline-yes">1x</span>
986
+ <span class="cline-any cline-yes">1x</span>
987
+ <span class="cline-any cline-yes">1x</span>
988
+ <span class="cline-any cline-yes">1x</span>
989
+ <span class="cline-any cline-yes">1x</span>
990
+ <span class="cline-any cline-yes">1x</span>
991
+ <span class="cline-any cline-yes">1x</span>
992
+ <span class="cline-any cline-yes">1x</span>
993
+ <span class="cline-any cline-yes">1x</span>
994
+ <span class="cline-any cline-yes">1x</span>
995
+ <span class="cline-any cline-yes">1x</span>
996
+ <span class="cline-any cline-yes">1x</span>
997
+ <span class="cline-any cline-yes">1x</span>
998
+ <span class="cline-any cline-yes">1x</span>
999
+ <span class="cline-any cline-yes">1x</span>
1000
+ <span class="cline-any cline-yes">1x</span>
1001
+ <span class="cline-any cline-yes">1x</span>
1002
+ <span class="cline-any cline-yes">1x</span>
1003
+ <span class="cline-any cline-yes">1x</span>
1004
+ <span class="cline-any cline-yes">1x</span>
1005
+ <span class="cline-any cline-yes">1x</span>
1006
+ <span class="cline-any cline-yes">1x</span>
1007
+ <span class="cline-any cline-yes">1x</span>
1008
+ <span class="cline-any cline-yes">1x</span>
1009
+ <span class="cline-any cline-yes">1x</span>
1010
+ <span class="cline-any cline-yes">1x</span>
1011
+ <span class="cline-any cline-yes">1x</span>
1012
+ <span class="cline-any cline-yes">1x</span>
1013
+ <span class="cline-any cline-yes">1x</span>
1014
+ <span class="cline-any cline-yes">1x</span>
1015
+ <span class="cline-any cline-yes">1x</span>
1016
+ <span class="cline-any cline-yes">1x</span>
1017
+ <span class="cline-any cline-yes">1x</span>
1018
+ <span class="cline-any cline-yes">1x</span>
1019
+ <span class="cline-any cline-yes">1x</span>
1020
+ <span class="cline-any cline-yes">1x</span>
1021
+ <span class="cline-any cline-yes">1x</span>
1022
+ <span class="cline-any cline-yes">1x</span>
1023
+ <span class="cline-any cline-yes">1x</span>
1024
+ <span class="cline-any cline-yes">1x</span>
1025
+ <span class="cline-any cline-yes">1x</span>
1026
+ <span class="cline-any cline-yes">1x</span>
1027
+ <span class="cline-any cline-no">&nbsp;</span>
1028
+ <span class="cline-any cline-no">&nbsp;</span>
1029
+ <span class="cline-any cline-yes">1x</span>
1030
+ <span class="cline-any cline-yes">1x</span>
1031
+ <span class="cline-any cline-yes">1x</span>
1032
+ <span class="cline-any cline-yes">1x</span>
1033
+ <span class="cline-any cline-yes">4x</span>
1034
+ <span class="cline-any cline-yes">4x</span>
1035
+ <span class="cline-any cline-yes">4x</span>
1036
+ <span class="cline-any cline-yes">3x</span>
1037
+ <span class="cline-any cline-yes">3x</span>
1038
+ <span class="cline-any cline-yes">3x</span>
1039
+ <span class="cline-any cline-yes">3x</span>
1040
+ <span class="cline-any cline-yes">3x</span>
1041
+ <span class="cline-any cline-yes">3x</span>
1042
+ <span class="cline-any cline-yes">3x</span>
1043
+ <span class="cline-any cline-yes">3x</span>
1044
+ <span class="cline-any cline-yes">3x</span>
1045
+ <span class="cline-any cline-yes">3x</span>
1046
+ <span class="cline-any cline-yes">3x</span>
1047
+ <span class="cline-any cline-yes">3x</span>
1048
+ <span class="cline-any cline-yes">3x</span>
1049
+ <span class="cline-any cline-yes">3x</span>
1050
+ <span class="cline-any cline-yes">3x</span>
1051
+ <span class="cline-any cline-yes">3x</span>
1052
+ <span class="cline-any cline-yes">3x</span>
1053
+ <span class="cline-any cline-yes">3x</span>
1054
+ <span class="cline-any cline-yes">3x</span>
1055
+ <span class="cline-any cline-yes">3x</span>
1056
+ <span class="cline-any cline-yes">3x</span>
1057
+ <span class="cline-any cline-yes">3x</span>
1058
+ <span class="cline-any cline-yes">3x</span>
1059
+ <span class="cline-any cline-yes">3x</span>
1060
+ <span class="cline-any cline-yes">3x</span>
1061
+ <span class="cline-any cline-yes">3x</span>
1062
+ <span class="cline-any cline-yes">3x</span>
1063
+ <span class="cline-any cline-yes">3x</span>
1064
+ <span class="cline-any cline-yes">3x</span>
1065
+ <span class="cline-any cline-yes">3x</span>
1066
+ <span class="cline-any cline-yes">3x</span>
1067
+ <span class="cline-any cline-yes">3x</span>
1068
+ <span class="cline-any cline-yes">3x</span>
1069
+ <span class="cline-any cline-yes">3x</span>
1070
+ <span class="cline-any cline-yes">3x</span>
1071
+ <span class="cline-any cline-yes">3x</span>
1072
+ <span class="cline-any cline-yes">3x</span>
1073
+ <span class="cline-any cline-yes">3x</span>
1074
+ <span class="cline-any cline-yes">3x</span>
1075
+ <span class="cline-any cline-yes">8x</span>
1076
+ <span class="cline-any cline-yes">1x</span>
1077
+ <span class="cline-any cline-yes">1x</span>
1078
+ <span class="cline-any cline-yes">8x</span>
1079
+ <span class="cline-any cline-no">&nbsp;</span>
1080
+ <span class="cline-any cline-no">&nbsp;</span>
1081
+ <span class="cline-any cline-no">&nbsp;</span>
1082
+ <span class="cline-any cline-yes">8x</span>
1083
+ <span class="cline-any cline-no">&nbsp;</span>
1084
+ <span class="cline-any cline-no">&nbsp;</span>
1085
+ <span class="cline-any cline-no">&nbsp;</span>
1086
+ <span class="cline-any cline-yes">8x</span>
1087
+ <span class="cline-any cline-yes">2x</span>
1088
+ <span class="cline-any cline-yes">1x</span>
1089
+ <span class="cline-any cline-yes">1x</span>
1090
+ <span class="cline-any cline-yes">1x</span>
1091
+ <span class="cline-any cline-yes">1x</span>
1092
+ <span class="cline-any cline-yes">1x</span>
1093
+ <span class="cline-any cline-yes">1x</span>
1094
+ <span class="cline-any cline-yes">1x</span>
1095
+ <span class="cline-any cline-yes">2x</span>
1096
+ <span class="cline-any cline-yes">2x</span>
1097
+ <span class="cline-any cline-yes">2x</span>
1098
+ <span class="cline-any cline-yes">1x</span>
1099
+ <span class="cline-any cline-yes">1x</span>
1100
+ <span class="cline-any cline-yes">1x</span>
1101
+ <span class="cline-any cline-yes">1x</span>
1102
+ <span class="cline-any cline-yes">2x</span>
1103
+ <span class="cline-any cline-yes">2x</span>
1104
+ <span class="cline-any cline-yes">2x</span>
1105
+ <span class="cline-any cline-yes">8x</span>
1106
+ <span class="cline-any cline-yes">2x</span>
1107
+ <span class="cline-any cline-yes">2x</span>
1108
+ <span class="cline-any cline-yes">2x</span>
1109
+ <span class="cline-any cline-yes">2x</span>
1110
+ <span class="cline-any cline-yes">2x</span>
1111
+ <span class="cline-any cline-yes">2x</span>
1112
+ <span class="cline-any cline-yes">2x</span>
1113
+ <span class="cline-any cline-yes">8x</span>
1114
+ <span class="cline-any cline-yes">2x</span>
1115
+ <span class="cline-any cline-yes">2x</span>
1116
+ <span class="cline-any cline-yes">2x</span>
1117
+ <span class="cline-any cline-yes">2x</span>
1118
+ <span class="cline-any cline-yes">2x</span>
1119
+ <span class="cline-any cline-yes">2x</span>
1120
+ <span class="cline-any cline-yes">2x</span>
1121
+ <span class="cline-any cline-yes">2x</span>
1122
+ <span class="cline-any cline-yes">2x</span>
1123
+ <span class="cline-any cline-yes">2x</span>
1124
+ <span class="cline-any cline-yes">8x</span>
1125
+ <span class="cline-any cline-yes">1x</span>
1126
+ <span class="cline-any cline-yes">1x</span>
1127
+ <span class="cline-any cline-yes">1x</span>
1128
+ <span class="cline-any cline-yes">1x</span>
1129
+ <span class="cline-any cline-yes">1x</span>
1130
+ <span class="cline-any cline-yes">1x</span>
1131
+ <span class="cline-any cline-yes">1x</span>
1132
+ <span class="cline-any cline-yes">1x</span>
1133
+ <span class="cline-any cline-yes">1x</span>
1134
+ <span class="cline-any cline-yes">1x</span>
1135
+ <span class="cline-any cline-yes">1x</span>
1136
+ <span class="cline-any cline-yes">1x</span>
1137
+ <span class="cline-any cline-yes">1x</span>
1138
+ <span class="cline-any cline-yes">1x</span>
1139
+ <span class="cline-any cline-yes">1x</span>
1140
+ <span class="cline-any cline-yes">1x</span>
1141
+ <span class="cline-any cline-yes">3x</span>
1142
+ <span class="cline-any cline-yes">3x</span>
1143
+ <span class="cline-any cline-yes">4x</span>
1144
+ <span class="cline-any cline-no">&nbsp;</span>
1145
+ <span class="cline-any cline-no">&nbsp;</span>
1146
+ <span class="cline-any cline-no">&nbsp;</span>
1147
+ <span class="cline-any cline-no">&nbsp;</span>
1148
+ <span class="cline-any cline-no">&nbsp;</span>
1149
+ <span class="cline-any cline-no">&nbsp;</span>
1150
+ <span class="cline-any cline-no">&nbsp;</span>
1151
+ <span class="cline-any cline-no">&nbsp;</span>
1152
+ <span class="cline-any cline-no">&nbsp;</span>
1153
+ <span class="cline-any cline-no">&nbsp;</span>
1154
+ <span class="cline-any cline-no">&nbsp;</span>
1155
+ <span class="cline-any cline-no">&nbsp;</span>
1156
+ <span class="cline-any cline-no">&nbsp;</span>
1157
+ <span class="cline-any cline-no">&nbsp;</span>
1158
+ <span class="cline-any cline-no">&nbsp;</span>
1159
+ <span class="cline-any cline-no">&nbsp;</span>
1160
+ <span class="cline-any cline-yes">4x</span>
1161
+ <span class="cline-any cline-yes">1x</span>
1162
+ <span class="cline-any cline-yes">1x</span>
1163
+ <span class="cline-any cline-yes">1x</span>
1164
+ <span class="cline-any cline-yes">1x</span>
1165
+ <span class="cline-any cline-yes">1x</span>
1166
+ <span class="cline-any cline-yes">1x</span>
1167
+ <span class="cline-any cline-yes">1x</span>
1168
+ <span class="cline-any cline-yes">1x</span>
1169
+ <span class="cline-any cline-yes">3x</span>
1170
+ <span class="cline-any cline-yes">3x</span>
1171
+ <span class="cline-any cline-yes">3x</span>
1172
+ <span class="cline-any cline-no">&nbsp;</span>
1173
+ <span class="cline-any cline-no">&nbsp;</span>
1174
+ <span class="cline-any cline-no">&nbsp;</span>
1175
+ <span class="cline-any cline-no">&nbsp;</span>
1176
+ <span class="cline-any cline-no">&nbsp;</span>
1177
+ <span class="cline-any cline-no">&nbsp;</span>
1178
+ <span class="cline-any cline-no">&nbsp;</span>
1179
+ <span class="cline-any cline-no">&nbsp;</span>
1180
+ <span class="cline-any cline-no">&nbsp;</span>
1181
+ <span class="cline-any cline-no">&nbsp;</span>
1182
+ <span class="cline-any cline-no">&nbsp;</span>
1183
+ <span class="cline-any cline-no">&nbsp;</span>
1184
+ <span class="cline-any cline-no">&nbsp;</span>
1185
+ <span class="cline-any cline-no">&nbsp;</span>
1186
+ <span class="cline-any cline-no">&nbsp;</span>
1187
+ <span class="cline-any cline-no">&nbsp;</span>
1188
+ <span class="cline-any cline-no">&nbsp;</span>
1189
+ <span class="cline-any cline-no">&nbsp;</span>
1190
+ <span class="cline-any cline-no">&nbsp;</span>
1191
+ <span class="cline-any cline-yes">3x</span>
1192
+ <span class="cline-any cline-yes">3x</span>
1193
+ <span class="cline-any cline-no">&nbsp;</span>
1194
+ <span class="cline-any cline-no">&nbsp;</span>
1195
+ <span class="cline-any cline-no">&nbsp;</span>
1196
+ <span class="cline-any cline-no">&nbsp;</span>
1197
+ <span class="cline-any cline-yes">3x</span>
1198
+ <span class="cline-any cline-yes">3x</span>
1199
+ <span class="cline-any cline-no">&nbsp;</span>
1200
+ <span class="cline-any cline-no">&nbsp;</span>
1201
+ <span class="cline-any cline-no">&nbsp;</span>
1202
+ <span class="cline-any cline-no">&nbsp;</span>
1203
+ <span class="cline-any cline-no">&nbsp;</span>
1204
+ <span class="cline-any cline-no">&nbsp;</span>
1205
+ <span class="cline-any cline-no">&nbsp;</span>
1206
+ <span class="cline-any cline-no">&nbsp;</span>
1207
+ <span class="cline-any cline-no">&nbsp;</span>
1208
+ <span class="cline-any cline-no">&nbsp;</span>
1209
+ <span class="cline-any cline-no">&nbsp;</span>
1210
+ <span class="cline-any cline-no">&nbsp;</span>
1211
+ <span class="cline-any cline-no">&nbsp;</span>
1212
+ <span class="cline-any cline-no">&nbsp;</span>
1213
+ <span class="cline-any cline-no">&nbsp;</span>
1214
+ <span class="cline-any cline-no">&nbsp;</span>
1215
+ <span class="cline-any cline-no">&nbsp;</span>
1216
+ <span class="cline-any cline-no">&nbsp;</span>
1217
+ <span class="cline-any cline-no">&nbsp;</span>
1218
+ <span class="cline-any cline-no">&nbsp;</span>
1219
+ <span class="cline-any cline-no">&nbsp;</span>
1220
+ <span class="cline-any cline-yes">3x</span>
1221
+ <span class="cline-any cline-yes">3x</span>
1222
+ <span class="cline-any cline-yes">3x</span>
1223
+ <span class="cline-any cline-yes">3x</span>
1224
+ <span class="cline-any cline-yes">3x</span>
1225
+ <span class="cline-any cline-yes">3x</span>
1226
+ <span class="cline-any cline-yes">3x</span>
1227
+ <span class="cline-any cline-yes">3x</span>
1228
+ <span class="cline-any cline-yes">3x</span>
1229
+ <span class="cline-any cline-yes">3x</span>
1230
+ <span class="cline-any cline-yes">3x</span>
1231
+ <span class="cline-any cline-yes">3x</span>
1232
+ <span class="cline-any cline-yes">3x</span>
1233
+ <span class="cline-any cline-yes">3x</span>
1234
+ <span class="cline-any cline-yes">3x</span>
1235
+ <span class="cline-any cline-yes">3x</span>
1236
+ <span class="cline-any cline-yes">3x</span>
1237
+ <span class="cline-any cline-yes">3x</span>
1238
+ <span class="cline-any cline-yes">3x</span>
1239
+ <span class="cline-any cline-yes">3x</span>
1240
+ <span class="cline-any cline-yes">3x</span>
1241
+ <span class="cline-any cline-yes">3x</span>
1242
+ <span class="cline-any cline-yes">3x</span>
1243
+ <span class="cline-any cline-yes">3x</span>
1244
+ <span class="cline-any cline-yes">3x</span>
1245
+ <span class="cline-any cline-yes">3x</span>
1246
+ <span class="cline-any cline-yes">3x</span>
1247
+ <span class="cline-any cline-yes">3x</span>
1248
+ <span class="cline-any cline-yes">3x</span>
1249
+ <span class="cline-any cline-yes">3x</span>
1250
+ <span class="cline-any cline-yes">3x</span>
1251
+ <span class="cline-any cline-yes">3x</span>
1252
+ <span class="cline-any cline-yes">3x</span>
1253
+ <span class="cline-any cline-yes">3x</span>
1254
+ <span class="cline-any cline-yes">1x</span>
1255
+ <span class="cline-any cline-yes">1x</span>
1256
+ <span class="cline-any cline-yes">5x</span>
1257
+ <span class="cline-any cline-yes">5x</span>
1258
+ <span class="cline-any cline-yes">1x</span>
1259
+ <span class="cline-any cline-yes">1x</span>
1260
+ <span class="cline-any cline-yes">1x</span>
1261
+ <span class="cline-any cline-yes">1x</span>
1262
+ <span class="cline-any cline-yes">1x</span>
1263
+ <span class="cline-any cline-yes">1x</span>
1264
+ <span class="cline-any cline-yes">1x</span>
1265
+ <span class="cline-any cline-yes">1x</span>
1266
+ <span class="cline-any cline-yes">5x</span>
1267
+ <span class="cline-any cline-yes">4x</span>
1268
+ <span class="cline-any cline-yes">4x</span>
1269
+ <span class="cline-any cline-yes">4x</span>
1270
+ <span class="cline-any cline-yes">5x</span>
1271
+ <span class="cline-any cline-yes">5x</span>
1272
+ <span class="cline-any cline-yes">1x</span>
1273
+ <span class="cline-any cline-yes">1x</span>
1274
+ <span class="cline-any cline-yes">26x</span>
1275
+ <span class="cline-any cline-yes">26x</span>
1276
+ <span class="cline-any cline-yes">26x</span>
1277
+ <span class="cline-any cline-yes">26x</span>
1278
+ <span class="cline-any cline-yes">26x</span>
1279
+ <span class="cline-any cline-yes">1x</span>
1280
+ <span class="cline-any cline-yes">1x</span>
1281
+ <span class="cline-any cline-yes">36x</span>
1282
+ <span class="cline-any cline-yes">36x</span>
1283
+ <span class="cline-any cline-yes">36x</span>
1284
+ <span class="cline-any cline-yes">36x</span>
1285
+ <span class="cline-any cline-yes">36x</span>
1286
+ <span class="cline-any cline-yes">34x</span>
1287
+ <span class="cline-any cline-yes">34x</span>
1288
+ <span class="cline-any cline-yes">36x</span>
1289
+ <span class="cline-any cline-yes">1x</span>
1290
+ <span class="cline-any cline-yes">1x</span>
1291
+ <span class="cline-any cline-yes">1x</span>
1292
+ <span class="cline-any cline-yes">1x</span>
1293
+ <span class="cline-any cline-yes">1x</span>
1294
+ <span class="cline-any cline-yes">1x</span>
1295
+ <span class="cline-any cline-yes">1x</span>
1296
+ <span class="cline-any cline-yes">1x</span>
1297
+ <span class="cline-any cline-yes">1x</span>
1298
+ <span class="cline-any cline-yes">1x</span>
1299
+ <span class="cline-any cline-yes">1x</span>
1300
+ <span class="cline-any cline-yes">1x</span>
1301
+ <span class="cline-any cline-yes">1x</span>
1302
+ <span class="cline-any cline-yes">1x</span>
1303
+ <span class="cline-any cline-yes">1x</span>
1304
+ <span class="cline-any cline-yes">1x</span>
1305
+ <span class="cline-any cline-yes">1x</span>
1306
+ <span class="cline-any cline-yes">1x</span>
1307
+ <span class="cline-any cline-yes">9x</span>
1308
+ <span class="cline-any cline-yes">1x</span>
1309
+ <span class="cline-any cline-yes">1x</span>
1310
+ <span class="cline-any cline-yes">1x</span>
1311
+ <span class="cline-any cline-yes">1x</span>
1312
+ <span class="cline-any cline-yes">1x</span>
1313
+ <span class="cline-any cline-yes">1x</span>
1314
+ <span class="cline-any cline-no">&nbsp;</span>
1315
+ <span class="cline-any cline-yes">1x</span>
1316
+ <span class="cline-any cline-yes">1x</span>
1317
+ <span class="cline-any cline-yes">1x</span>
1318
+ <span class="cline-any cline-yes">1x</span>
1319
+ <span class="cline-any cline-yes">1x</span>
1320
+ <span class="cline-any cline-yes">6x</span>
1321
+ <span class="cline-any cline-yes">6x</span>
1322
+ <span class="cline-any cline-yes">6x</span>
1323
+ <span class="cline-any cline-yes">6x</span>
1324
+ <span class="cline-any cline-yes">1x</span>
1325
+ <span class="cline-any cline-yes">1x</span>
1326
+ <span class="cline-any cline-yes">1x</span>
1327
+ <span class="cline-any cline-yes">1x</span>
1328
+ <span class="cline-any cline-yes">1x</span>
1329
+ <span class="cline-any cline-yes">1x</span>
1330
+ <span class="cline-any cline-yes">1x</span>
1331
+ <span class="cline-any cline-yes">1x</span>
1332
+ <span class="cline-any cline-yes">1x</span>
1333
+ <span class="cline-any cline-yes">1x</span>
1334
+ <span class="cline-any cline-yes">1x</span>
1335
+ <span class="cline-any cline-yes">1x</span>
1336
+ <span class="cline-any cline-yes">1x</span>
1337
+ <span class="cline-any cline-yes">1x</span>
1338
+ <span class="cline-any cline-yes">1x</span>
1339
+ <span class="cline-any cline-yes">1x</span>
1340
+ <span class="cline-any cline-yes">1x</span>
1341
+ <span class="cline-any cline-yes">1x</span>
1342
+ <span class="cline-any cline-yes">1x</span>
1343
+ <span class="cline-any cline-yes">1x</span>
1344
+ <span class="cline-any cline-yes">1x</span>
1345
+ <span class="cline-any cline-yes">1x</span>
1346
+ <span class="cline-any cline-yes">1x</span>
1347
+ <span class="cline-any cline-yes">1x</span>
1348
+ <span class="cline-any cline-yes">1x</span>
1349
+ <span class="cline-any cline-yes">1x</span>
1350
+ <span class="cline-any cline-yes">1x</span>
1351
+ <span class="cline-any cline-yes">1x</span>
1352
+ <span class="cline-any cline-yes">1x</span>
1353
+ <span class="cline-any cline-yes">1x</span>
1354
+ <span class="cline-any cline-yes">1x</span>
1355
+ <span class="cline-any cline-yes">1x</span>
1356
+ <span class="cline-any cline-yes">1x</span>
1357
+ <span class="cline-any cline-yes">1x</span>
1358
+ <span class="cline-any cline-yes">1x</span>
1359
+ <span class="cline-any cline-yes">1x</span>
1360
+ <span class="cline-any cline-yes">1x</span>
1361
+ <span class="cline-any cline-yes">1x</span>
1362
+ <span class="cline-any cline-yes">1x</span>
1363
+ <span class="cline-any cline-no">&nbsp;</span>
1364
+ <span class="cline-any cline-no">&nbsp;</span>
1365
+ <span class="cline-any cline-no">&nbsp;</span>
1366
+ <span class="cline-any cline-no">&nbsp;</span>
1367
+ <span class="cline-any cline-yes">1x</span>
1368
+ <span class="cline-any cline-yes">1x</span>
1369
+ <span class="cline-any cline-yes">1x</span>
1370
+ <span class="cline-any cline-yes">1x</span>
1371
+ <span class="cline-any cline-yes">1x</span>
1372
+ <span class="cline-any cline-yes">1x</span>
1373
+ <span class="cline-any cline-yes">1x</span>
1374
+ <span class="cline-any cline-yes">1x</span>
1375
+ <span class="cline-any cline-yes">1x</span>
1376
+ <span class="cline-any cline-yes">1x</span>
1377
+ <span class="cline-any cline-yes">1x</span>
1378
+ <span class="cline-any cline-yes">1x</span>
1379
+ <span class="cline-any cline-yes">1x</span>
1380
+ <span class="cline-any cline-yes">1x</span>
1381
+ <span class="cline-any cline-yes">1x</span>
1382
+ <span class="cline-any cline-yes">1x</span>
1383
+ <span class="cline-any cline-yes">1x</span>
1384
+ <span class="cline-any cline-yes">1x</span>
1385
+ <span class="cline-any cline-yes">1x</span>
1386
+ <span class="cline-any cline-yes">1x</span>
1387
+ <span class="cline-any cline-yes">1x</span>
1388
+ <span class="cline-any cline-yes">1x</span>
1389
+ <span class="cline-any cline-yes">1x</span>
1390
+ <span class="cline-any cline-yes">1x</span>
1391
+ <span class="cline-any cline-yes">1x</span>
1392
+ <span class="cline-any cline-yes">1x</span>
1393
+ <span class="cline-any cline-yes">1x</span>
1394
+ <span class="cline-any cline-yes">1x</span>
1395
+ <span class="cline-any cline-yes">1x</span>
1396
+ <span class="cline-any cline-yes">1x</span>
1397
+ <span class="cline-any cline-yes">1x</span>
1398
+ <span class="cline-any cline-yes">1x</span>
1399
+ <span class="cline-any cline-yes">1x</span>
1400
+ <span class="cline-any cline-yes">1x</span>
1401
+ <span class="cline-any cline-yes">1x</span>
1402
+ <span class="cline-any cline-yes">1x</span>
1403
+ <span class="cline-any cline-yes">1x</span>
1404
+ <span class="cline-any cline-yes">1x</span>
1405
+ <span class="cline-any cline-yes">1x</span>
1406
+ <span class="cline-any cline-yes">1x</span>
1407
+ <span class="cline-any cline-yes">1x</span>
1408
+ <span class="cline-any cline-yes">1x</span>
1409
+ <span class="cline-any cline-yes">1x</span>
1410
+ <span class="cline-any cline-yes">1x</span>
1411
+ <span class="cline-any cline-yes">1x</span>
1412
+ <span class="cline-any cline-yes">1x</span>
1413
+ <span class="cline-any cline-yes">1x</span>
1414
+ <span class="cline-any cline-yes">1x</span>
1415
+ <span class="cline-any cline-yes">1x</span>
1416
+ <span class="cline-any cline-yes">1x</span>
1417
+ <span class="cline-any cline-yes">1x</span>
1418
+ <span class="cline-any cline-yes">1x</span>
1419
+ <span class="cline-any cline-yes">1x</span>
1420
+ <span class="cline-any cline-yes">1x</span>
1421
+ <span class="cline-any cline-yes">1x</span>
1422
+ <span class="cline-any cline-yes">1x</span>
1423
+ <span class="cline-any cline-yes">1x</span>
1424
+ <span class="cline-any cline-yes">1x</span>
1425
+ <span class="cline-any cline-yes">1x</span>
1426
+ <span class="cline-any cline-yes">1x</span>
1427
+ <span class="cline-any cline-yes">1x</span>
1428
+ <span class="cline-any cline-yes">1x</span>
1429
+ <span class="cline-any cline-yes">1x</span>
1430
+ <span class="cline-any cline-yes">1x</span>
1431
+ <span class="cline-any cline-yes">1x</span>
1432
+ <span class="cline-any cline-yes">1x</span>
1433
+ <span class="cline-any cline-yes">1x</span>
1434
+ <span class="cline-any cline-yes">1x</span>
1435
+ <span class="cline-any cline-yes">1x</span>
1436
+ <span class="cline-any cline-yes">1x</span>
1437
+ <span class="cline-any cline-yes">1x</span>
1438
+ <span class="cline-any cline-yes">1x</span>
1439
+ <span class="cline-any cline-yes">1x</span>
1440
+ <span class="cline-any cline-yes">1x</span>
1441
+ <span class="cline-any cline-yes">1x</span>
1442
+ <span class="cline-any cline-yes">1x</span>
1443
+ <span class="cline-any cline-yes">1x</span>
1444
+ <span class="cline-any cline-yes">1x</span>
1445
+ <span class="cline-any cline-yes">1x</span>
1446
+ <span class="cline-any cline-yes">1x</span>
1447
+ <span class="cline-any cline-yes">1x</span>
1448
+ <span class="cline-any cline-yes">1x</span>
1449
+ <span class="cline-any cline-yes">1x</span>
1450
+ <span class="cline-any cline-yes">1x</span>
1451
+ <span class="cline-any cline-yes">1x</span>
1452
+ <span class="cline-any cline-yes">1x</span>
1453
+ <span class="cline-any cline-yes">1x</span>
1454
+ <span class="cline-any cline-yes">1x</span>
1455
+ <span class="cline-any cline-yes">1x</span>
1456
+ <span class="cline-any cline-yes">1x</span>
1457
+ <span class="cline-any cline-yes">1x</span>
1458
+ <span class="cline-any cline-yes">1x</span>
1459
+ <span class="cline-any cline-yes">1x</span>
1460
+ <span class="cline-any cline-yes">1x</span>
1461
+ <span class="cline-any cline-yes">1x</span>
1462
+ <span class="cline-any cline-yes">1x</span>
1463
+ <span class="cline-any cline-yes">1x</span>
1464
+ <span class="cline-any cline-yes">1x</span>
1465
+ <span class="cline-any cline-yes">1x</span>
1466
+ <span class="cline-any cline-yes">1x</span>
1467
+ <span class="cline-any cline-yes">1x</span>
1468
+ <span class="cline-any cline-yes">1x</span>
1469
+ <span class="cline-any cline-yes">1x</span>
1470
+ <span class="cline-any cline-yes">1x</span>
1471
+ <span class="cline-any cline-yes">1x</span>
1472
+ <span class="cline-any cline-yes">1x</span>
1473
+ <span class="cline-any cline-yes">1x</span>
1474
+ <span class="cline-any cline-yes">1x</span>
1475
+ <span class="cline-any cline-yes">1x</span>
1476
+ <span class="cline-any cline-yes">1x</span>
1477
+ <span class="cline-any cline-yes">1x</span>
1478
+ <span class="cline-any cline-yes">1x</span>
1479
+ <span class="cline-any cline-yes">1x</span>
1480
+ <span class="cline-any cline-yes">1x</span>
1481
+ <span class="cline-any cline-yes">1x</span>
1482
+ <span class="cline-any cline-yes">1x</span>
1483
+ <span class="cline-any cline-yes">1x</span>
1484
+ <span class="cline-any cline-yes">1x</span>
1485
+ <span class="cline-any cline-yes">1x</span>
1486
+ <span class="cline-any cline-yes">1x</span>
1487
+ <span class="cline-any cline-yes">1x</span>
1488
+ <span class="cline-any cline-yes">1x</span>
1489
+ <span class="cline-any cline-yes">1x</span>
1490
+ <span class="cline-any cline-yes">1x</span>
1491
+ <span class="cline-any cline-yes">1x</span>
1492
+ <span class="cline-any cline-yes">1x</span>
1493
+ <span class="cline-any cline-yes">1x</span>
1494
+ <span class="cline-any cline-yes">1x</span>
1495
+ <span class="cline-any cline-yes">1x</span>
1496
+ <span class="cline-any cline-yes">1x</span>
1497
+ <span class="cline-any cline-yes">1x</span>
1498
+ <span class="cline-any cline-yes">1x</span>
1499
+ <span class="cline-any cline-yes">1x</span>
1500
+ <span class="cline-any cline-yes">1x</span>
1501
+ <span class="cline-any cline-yes">1x</span>
1502
+ <span class="cline-any cline-yes">1x</span>
1503
+ <span class="cline-any cline-yes">1x</span>
1504
+ <span class="cline-any cline-yes">1x</span>
1505
+ <span class="cline-any cline-yes">1x</span>
1506
+ <span class="cline-any cline-yes">1x</span>
1507
+ <span class="cline-any cline-yes">1x</span>
1508
+ <span class="cline-any cline-yes">1x</span>
1509
+ <span class="cline-any cline-yes">1x</span>
1510
+ <span class="cline-any cline-yes">1x</span>
1511
+ <span class="cline-any cline-yes">1x</span>
1512
+ <span class="cline-any cline-yes">1x</span>
1513
+ <span class="cline-any cline-yes">1x</span>
1514
+ <span class="cline-any cline-yes">1x</span>
1515
+ <span class="cline-any cline-yes">1x</span>
1516
+ <span class="cline-any cline-yes">1x</span>
1517
+ <span class="cline-any cline-yes">1x</span>
1518
+ <span class="cline-any cline-yes">1x</span>
1519
+ <span class="cline-any cline-yes">1x</span>
1520
+ <span class="cline-any cline-yes">1x</span>
1521
+ <span class="cline-any cline-yes">1x</span>
1522
+ <span class="cline-any cline-yes">1x</span>
1523
+ <span class="cline-any cline-yes">1x</span>
1524
+ <span class="cline-any cline-yes">1x</span>
1525
+ <span class="cline-any cline-yes">1x</span>
1526
+ <span class="cline-any cline-yes">1x</span>
1527
+ <span class="cline-any cline-yes">1x</span>
1528
+ <span class="cline-any cline-yes">1x</span>
1529
+ <span class="cline-any cline-yes">1x</span>
1530
+ <span class="cline-any cline-yes">1x</span>
1531
+ <span class="cline-any cline-yes">1x</span>
1532
+ <span class="cline-any cline-yes">1x</span>
1533
+ <span class="cline-any cline-yes">1x</span>
1534
+ <span class="cline-any cline-yes">1x</span>
1535
+ <span class="cline-any cline-yes">1x</span>
1536
+ <span class="cline-any cline-yes">1x</span>
1537
+ <span class="cline-any cline-yes">1x</span>
1538
+ <span class="cline-any cline-yes">1x</span>
1539
+ <span class="cline-any cline-yes">1x</span>
1540
+ <span class="cline-any cline-yes">1x</span>
1541
+ <span class="cline-any cline-yes">1x</span>
1542
+ <span class="cline-any cline-yes">1x</span>
1543
+ <span class="cline-any cline-yes">1x</span>
1544
+ <span class="cline-any cline-yes">1x</span>
1545
+ <span class="cline-any cline-yes">1x</span>
1546
+ <span class="cline-any cline-yes">1x</span>
1547
+ <span class="cline-any cline-yes">1x</span>
1548
+ <span class="cline-any cline-yes">1x</span>
1549
+ <span class="cline-any cline-yes">1x</span>
1550
+ <span class="cline-any cline-yes">1x</span>
1551
+ <span class="cline-any cline-yes">1x</span>
1552
+ <span class="cline-any cline-yes">1x</span>
1553
+ <span class="cline-any cline-yes">1x</span>
1554
+ <span class="cline-any cline-yes">1x</span>
1555
+ <span class="cline-any cline-yes">1x</span>
1556
+ <span class="cline-any cline-yes">1x</span>
1557
+ <span class="cline-any cline-yes">1x</span>
1558
+ <span class="cline-any cline-yes">1x</span>
1559
+ <span class="cline-any cline-yes">1x</span>
1560
+ <span class="cline-any cline-yes">1x</span>
1561
+ <span class="cline-any cline-yes">1x</span>
1562
+ <span class="cline-any cline-yes">1x</span>
1563
+ <span class="cline-any cline-yes">1x</span>
1564
+ <span class="cline-any cline-yes">1x</span>
1565
+ <span class="cline-any cline-yes">1x</span>
1566
+ <span class="cline-any cline-yes">1x</span>
1567
+ <span class="cline-any cline-yes">1x</span>
1568
+ <span class="cline-any cline-yes">1x</span>
1569
+ <span class="cline-any cline-yes">1x</span>
1570
+ <span class="cline-any cline-yes">1x</span>
1571
+ <span class="cline-any cline-yes">1x</span>
1572
+ <span class="cline-any cline-yes">1x</span>
1573
+ <span class="cline-any cline-yes">1x</span>
1574
+ <span class="cline-any cline-yes">1x</span>
1575
+ <span class="cline-any cline-yes">1x</span>
1576
+ <span class="cline-any cline-yes">1x</span>
1577
+ <span class="cline-any cline-yes">1x</span>
1578
+ <span class="cline-any cline-yes">1x</span>
1579
+ <span class="cline-any cline-yes">1x</span>
1580
+ <span class="cline-any cline-yes">1x</span>
1581
+ <span class="cline-any cline-yes">1x</span>
1582
+ <span class="cline-any cline-yes">1x</span>
1583
+ <span class="cline-any cline-yes">1x</span>
1584
+ <span class="cline-any cline-yes">1x</span>
1585
+ <span class="cline-any cline-yes">1x</span>
1586
+ <span class="cline-any cline-yes">1x</span>
1587
+ <span class="cline-any cline-yes">1x</span>
1588
+ <span class="cline-any cline-yes">1x</span>
1589
+ <span class="cline-any cline-yes">1x</span>
1590
+ <span class="cline-any cline-yes">1x</span>
1591
+ <span class="cline-any cline-yes">1x</span>
1592
+ <span class="cline-any cline-yes">1x</span>
1593
+ <span class="cline-any cline-yes">1x</span>
1594
+ <span class="cline-any cline-yes">1x</span>
1595
+ <span class="cline-any cline-yes">1x</span>
1596
+ <span class="cline-any cline-yes">1x</span>
1597
+ <span class="cline-any cline-yes">1x</span>
1598
+ <span class="cline-any cline-yes">1x</span>
1599
+ <span class="cline-any cline-yes">1x</span>
1600
+ <span class="cline-any cline-yes">1x</span>
1601
+ <span class="cline-any cline-yes">1x</span>
1602
+ <span class="cline-any cline-yes">1x</span>
1603
+ <span class="cline-any cline-yes">1x</span>
1604
+ <span class="cline-any cline-yes">1x</span>
1605
+ <span class="cline-any cline-yes">1x</span>
1606
+ <span class="cline-any cline-yes">1x</span>
1607
+ <span class="cline-any cline-yes">1x</span>
1608
+ <span class="cline-any cline-yes">1x</span>
1609
+ <span class="cline-any cline-yes">1x</span>
1610
+ <span class="cline-any cline-yes">1x</span>
1611
+ <span class="cline-any cline-yes">1x</span>
1612
+ <span class="cline-any cline-yes">1x</span>
1613
+ <span class="cline-any cline-yes">1x</span>
1614
+ <span class="cline-any cline-yes">1x</span>
1615
+ <span class="cline-any cline-yes">1x</span>
1616
+ <span class="cline-any cline-yes">1x</span>
1617
+ <span class="cline-any cline-yes">1x</span>
1618
+ <span class="cline-any cline-yes">1x</span>
1619
+ <span class="cline-any cline-yes">1x</span>
1620
+ <span class="cline-any cline-yes">1x</span>
1621
+ <span class="cline-any cline-yes">1x</span>
1622
+ <span class="cline-any cline-yes">1x</span>
1623
+ <span class="cline-any cline-yes">1x</span>
1624
+ <span class="cline-any cline-yes">1x</span>
1625
+ <span class="cline-any cline-yes">1x</span>
1626
+ <span class="cline-any cline-yes">1x</span>
1627
+ <span class="cline-any cline-yes">1x</span>
1628
+ <span class="cline-any cline-yes">1x</span>
1629
+ <span class="cline-any cline-yes">1x</span>
1630
+ <span class="cline-any cline-yes">1x</span>
1631
+ <span class="cline-any cline-yes">1x</span>
1632
+ <span class="cline-any cline-yes">1x</span>
1633
+ <span class="cline-any cline-yes">1x</span>
1634
+ <span class="cline-any cline-yes">1x</span>
1635
+ <span class="cline-any cline-yes">1x</span>
1636
+ <span class="cline-any cline-yes">1x</span>
1637
+ <span class="cline-any cline-yes">1x</span>
1638
+ <span class="cline-any cline-yes">1x</span>
1639
+ <span class="cline-any cline-yes">1x</span>
1640
+ <span class="cline-any cline-yes">1x</span>
1641
+ <span class="cline-any cline-yes">1x</span>
1642
+ <span class="cline-any cline-yes">1x</span>
1643
+ <span class="cline-any cline-yes">1x</span>
1644
+ <span class="cline-any cline-yes">1x</span>
1645
+ <span class="cline-any cline-yes">1x</span>
1646
+ <span class="cline-any cline-yes">1x</span>
1647
+ <span class="cline-any cline-yes">1x</span>
1648
+ <span class="cline-any cline-yes">1x</span>
1649
+ <span class="cline-any cline-yes">1x</span>
1650
+ <span class="cline-any cline-yes">1x</span>
1651
+ <span class="cline-any cline-yes">1x</span>
1652
+ <span class="cline-any cline-yes">1x</span>
1653
+ <span class="cline-any cline-yes">1x</span>
1654
+ <span class="cline-any cline-yes">1x</span>
1655
+ <span class="cline-any cline-yes">1x</span>
1656
+ <span class="cline-any cline-yes">1x</span>
1657
+ <span class="cline-any cline-yes">1x</span>
1658
+ <span class="cline-any cline-yes">1x</span>
1659
+ <span class="cline-any cline-yes">1x</span>
1660
+ <span class="cline-any cline-yes">1x</span>
1661
+ <span class="cline-any cline-yes">1x</span>
1662
+ <span class="cline-any cline-yes">1x</span>
1663
+ <span class="cline-any cline-yes">1x</span>
1664
+ <span class="cline-any cline-yes">1x</span>
1665
+ <span class="cline-any cline-yes">1x</span>
1666
+ <span class="cline-any cline-yes">1x</span>
1667
+ <span class="cline-any cline-yes">1x</span>
1668
+ <span class="cline-any cline-yes">1x</span>
1669
+ <span class="cline-any cline-yes">1x</span>
1670
+ <span class="cline-any cline-yes">1x</span>
1671
+ <span class="cline-any cline-yes">1x</span>
1672
+ <span class="cline-any cline-yes">1x</span>
1673
+ <span class="cline-any cline-yes">1x</span>
1674
+ <span class="cline-any cline-yes">1x</span>
1675
+ <span class="cline-any cline-yes">1x</span>
1676
+ <span class="cline-any cline-yes">1x</span>
1677
+ <span class="cline-any cline-yes">1x</span>
1678
+ <span class="cline-any cline-yes">1x</span>
1679
+ <span class="cline-any cline-yes">1x</span>
1680
+ <span class="cline-any cline-yes">1x</span>
1681
+ <span class="cline-any cline-yes">1x</span>
1682
+ <span class="cline-any cline-yes">1x</span>
1683
+ <span class="cline-any cline-yes">1x</span>
1684
+ <span class="cline-any cline-yes">1x</span>
1685
+ <span class="cline-any cline-yes">1x</span>
1686
+ <span class="cline-any cline-yes">1x</span>
1687
+ <span class="cline-any cline-yes">1x</span>
1688
+ <span class="cline-any cline-yes">1x</span>
1689
+ <span class="cline-any cline-yes">1x</span>
1690
+ <span class="cline-any cline-yes">1x</span>
1691
+ <span class="cline-any cline-yes">1x</span>
1692
+ <span class="cline-any cline-yes">1x</span>
1693
+ <span class="cline-any cline-yes">1x</span>
1694
+ <span class="cline-any cline-yes">1x</span>
1695
+ <span class="cline-any cline-yes">1x</span>
1696
+ <span class="cline-any cline-yes">1x</span>
1697
+ <span class="cline-any cline-yes">1x</span>
1698
+ <span class="cline-any cline-yes">1x</span>
1699
+ <span class="cline-any cline-yes">1x</span>
1700
+ <span class="cline-any cline-yes">1x</span>
1701
+ <span class="cline-any cline-yes">1x</span>
1702
+ <span class="cline-any cline-yes">1x</span>
1703
+ <span class="cline-any cline-yes">1x</span>
1704
+ <span class="cline-any cline-yes">1x</span>
1705
+ <span class="cline-any cline-yes">1x</span>
1706
+ <span class="cline-any cline-yes">1x</span>
1707
+ <span class="cline-any cline-yes">1x</span>
1708
+ <span class="cline-any cline-yes">1x</span>
1709
+ <span class="cline-any cline-yes">1x</span>
1710
+ <span class="cline-any cline-yes">1x</span>
1711
+ <span class="cline-any cline-yes">1x</span>
1712
+ <span class="cline-any cline-yes">1x</span>
1713
+ <span class="cline-any cline-yes">1x</span>
1714
+ <span class="cline-any cline-yes">1x</span>
1715
+ <span class="cline-any cline-yes">1x</span>
1716
+ <span class="cline-any cline-yes">1x</span>
1717
+ <span class="cline-any cline-yes">1x</span>
1718
+ <span class="cline-any cline-yes">1x</span>
1719
+ <span class="cline-any cline-yes">1x</span>
1720
+ <span class="cline-any cline-yes">1x</span>
1721
+ <span class="cline-any cline-yes">1x</span>
1722
+ <span class="cline-any cline-yes">1x</span>
1723
+ <span class="cline-any cline-yes">1x</span>
1724
+ <span class="cline-any cline-yes">1x</span>
1725
+ <span class="cline-any cline-yes">1x</span>
1726
+ <span class="cline-any cline-yes">1x</span>
1727
+ <span class="cline-any cline-yes">1x</span>
1728
+ <span class="cline-any cline-yes">1x</span>
1729
+ <span class="cline-any cline-yes">1x</span>
1730
+ <span class="cline-any cline-yes">1x</span>
1731
+ <span class="cline-any cline-yes">1x</span>
1732
+ <span class="cline-any cline-yes">1x</span>
1733
+ <span class="cline-any cline-yes">1x</span>
1734
+ <span class="cline-any cline-yes">1x</span>
1735
+ <span class="cline-any cline-yes">1x</span>
1736
+ <span class="cline-any cline-yes">1x</span>
1737
+ <span class="cline-any cline-yes">1x</span>
1738
+ <span class="cline-any cline-yes">1x</span>
1739
+ <span class="cline-any cline-yes">1x</span>
1740
+ <span class="cline-any cline-yes">1x</span>
1741
+ <span class="cline-any cline-yes">1x</span>
1742
+ <span class="cline-any cline-yes">1x</span>
1743
+ <span class="cline-any cline-yes">1x</span>
1744
+ <span class="cline-any cline-yes">1x</span>
1745
+ <span class="cline-any cline-yes">1x</span>
1746
+ <span class="cline-any cline-yes">1x</span>
1747
+ <span class="cline-any cline-yes">1x</span>
1748
+ <span class="cline-any cline-yes">1x</span>
1749
+ <span class="cline-any cline-yes">1x</span>
1750
+ <span class="cline-any cline-yes">1x</span>
1751
+ <span class="cline-any cline-yes">1x</span>
1752
+ <span class="cline-any cline-yes">1x</span>
1753
+ <span class="cline-any cline-yes">1x</span>
1754
+ <span class="cline-any cline-yes">1x</span>
1755
+ <span class="cline-any cline-yes">1x</span>
1756
+ <span class="cline-any cline-yes">1x</span>
1757
+ <span class="cline-any cline-yes">1x</span>
1758
+ <span class="cline-any cline-yes">1x</span>
1759
+ <span class="cline-any cline-yes">1x</span>
1760
+ <span class="cline-any cline-yes">1x</span>
1761
+ <span class="cline-any cline-yes">1x</span>
1762
+ <span class="cline-any cline-yes">1x</span>
1763
+ <span class="cline-any cline-yes">1x</span>
1764
+ <span class="cline-any cline-yes">1x</span>
1765
+ <span class="cline-any cline-yes">1x</span>
1766
+ <span class="cline-any cline-yes">1x</span>
1767
+ <span class="cline-any cline-yes">1x</span>
1768
+ <span class="cline-any cline-yes">1x</span>
1769
+ <span class="cline-any cline-yes">1x</span>
1770
+ <span class="cline-any cline-yes">1x</span>
1771
+ <span class="cline-any cline-yes">1x</span>
1772
+ <span class="cline-any cline-yes">1x</span>
1773
+ <span class="cline-any cline-yes">1x</span>
1774
+ <span class="cline-any cline-yes">1x</span>
1775
+ <span class="cline-any cline-yes">1x</span>
1776
+ <span class="cline-any cline-yes">1x</span>
1777
+ <span class="cline-any cline-yes">1x</span>
1778
+ <span class="cline-any cline-yes">1x</span>
1779
+ <span class="cline-any cline-yes">1x</span>
1780
+ <span class="cline-any cline-yes">1x</span>
1781
+ <span class="cline-any cline-yes">1x</span>
1782
+ <span class="cline-any cline-yes">1x</span>
1783
+ <span class="cline-any cline-yes">1x</span>
1784
+ <span class="cline-any cline-yes">1x</span>
1785
+ <span class="cline-any cline-yes">1x</span>
1786
+ <span class="cline-any cline-yes">1x</span>
1787
+ <span class="cline-any cline-yes">1x</span>
1788
+ <span class="cline-any cline-yes">1x</span>
1789
+ <span class="cline-any cline-yes">1x</span>
1790
+ <span class="cline-any cline-yes">1x</span>
1791
+ <span class="cline-any cline-yes">1x</span>
1792
+ <span class="cline-any cline-yes">1x</span>
1793
+ <span class="cline-any cline-yes">1x</span>
1794
+ <span class="cline-any cline-yes">1x</span>
1795
+ <span class="cline-any cline-yes">1x</span>
1796
+ <span class="cline-any cline-yes">1x</span>
1797
+ <span class="cline-any cline-yes">1x</span>
1798
+ <span class="cline-any cline-yes">1x</span>
1799
+ <span class="cline-any cline-yes">1x</span>
1800
+ <span class="cline-any cline-yes">1x</span>
1801
+ <span class="cline-any cline-yes">1x</span>
1802
+ <span class="cline-any cline-yes">1x</span>
1803
+ <span class="cline-any cline-yes">1x</span>
1804
+ <span class="cline-any cline-yes">1x</span>
1805
+ <span class="cline-any cline-yes">1x</span>
1806
+ <span class="cline-any cline-yes">1x</span>
1807
+ <span class="cline-any cline-yes">1x</span>
1808
+ <span class="cline-any cline-yes">1x</span>
1809
+ <span class="cline-any cline-yes">1x</span>
1810
+ <span class="cline-any cline-yes">1x</span>
1811
+ <span class="cline-any cline-yes">1x</span>
1812
+ <span class="cline-any cline-yes">1x</span>
1813
+ <span class="cline-any cline-yes">1x</span>
1814
+ <span class="cline-any cline-yes">1x</span>
1815
+ <span class="cline-any cline-yes">1x</span>
1816
+ <span class="cline-any cline-yes">1x</span>
1817
+ <span class="cline-any cline-yes">1x</span>
1818
+ <span class="cline-any cline-yes">1x</span>
1819
+ <span class="cline-any cline-yes">1x</span>
1820
+ <span class="cline-any cline-yes">1x</span>
1821
+ <span class="cline-any cline-yes">1x</span>
1822
+ <span class="cline-any cline-yes">1x</span>
1823
+ <span class="cline-any cline-yes">1x</span>
1824
+ <span class="cline-any cline-yes">1x</span>
1825
+ <span class="cline-any cline-yes">1x</span>
1826
+ <span class="cline-any cline-yes">1x</span>
1827
+ <span class="cline-any cline-yes">1x</span>
1828
+ <span class="cline-any cline-yes">1x</span>
1829
+ <span class="cline-any cline-yes">1x</span>
1830
+ <span class="cline-any cline-yes">1x</span>
1831
+ <span class="cline-any cline-yes">1x</span>
1832
+ <span class="cline-any cline-yes">1x</span>
1833
+ <span class="cline-any cline-yes">1x</span>
1834
+ <span class="cline-any cline-yes">1x</span>
1835
+ <span class="cline-any cline-yes">1x</span>
1836
+ <span class="cline-any cline-yes">1x</span>
1837
+ <span class="cline-any cline-yes">1x</span>
1838
+ <span class="cline-any cline-yes">1x</span>
1839
+ <span class="cline-any cline-yes">1x</span>
1840
+ <span class="cline-any cline-yes">1x</span>
1841
+ <span class="cline-any cline-yes">1x</span>
1842
+ <span class="cline-any cline-yes">1x</span>
1843
+ <span class="cline-any cline-yes">1x</span>
1844
+ <span class="cline-any cline-yes">1x</span>
1845
+ <span class="cline-any cline-yes">1x</span>
1846
+ <span class="cline-any cline-yes">1x</span>
1847
+ <span class="cline-any cline-yes">1x</span>
1848
+ <span class="cline-any cline-yes">1x</span>
1849
+ <span class="cline-any cline-yes">1x</span>
1850
+ <span class="cline-any cline-yes">1x</span>
1851
+ <span class="cline-any cline-yes">1x</span>
1852
+ <span class="cline-any cline-yes">1x</span>
1853
+ <span class="cline-any cline-yes">1x</span>
1854
+ <span class="cline-any cline-yes">1x</span>
1855
+ <span class="cline-any cline-yes">1x</span>
1856
+ <span class="cline-any cline-yes">1x</span>
1857
+ <span class="cline-any cline-yes">1x</span>
1858
+ <span class="cline-any cline-yes">1x</span>
1859
+ <span class="cline-any cline-yes">1x</span>
1860
+ <span class="cline-any cline-yes">1x</span>
1861
+ <span class="cline-any cline-yes">1x</span>
1862
+ <span class="cline-any cline-yes">1x</span>
1863
+ <span class="cline-any cline-yes">1x</span>
1864
+ <span class="cline-any cline-yes">1x</span>
1865
+ <span class="cline-any cline-yes">1x</span>
1866
+ <span class="cline-any cline-yes">1x</span>
1867
+ <span class="cline-any cline-yes">1x</span>
1868
+ <span class="cline-any cline-yes">1x</span>
1869
+ <span class="cline-any cline-yes">1x</span>
1870
+ <span class="cline-any cline-yes">1x</span>
1871
+ <span class="cline-any cline-yes">1x</span>
1872
+ <span class="cline-any cline-yes">1x</span>
1873
+ <span class="cline-any cline-yes">1x</span>
1874
+ <span class="cline-any cline-yes">1x</span>
1875
+ <span class="cline-any cline-yes">1x</span>
1876
+ <span class="cline-any cline-yes">1x</span>
1877
+ <span class="cline-any cline-yes">1x</span>
1878
+ <span class="cline-any cline-yes">1x</span>
1879
+ <span class="cline-any cline-yes">1x</span>
1880
+ <span class="cline-any cline-yes">1x</span>
1881
+ <span class="cline-any cline-yes">1x</span>
1882
+ <span class="cline-any cline-yes">1x</span>
1883
+ <span class="cline-any cline-yes">1x</span>
1884
+ <span class="cline-any cline-yes">1x</span>
1885
+ <span class="cline-any cline-yes">1x</span>
1886
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;script setup&gt;
1887
+ import dayjs from "dayjs";
1888
+ import { ElMessage } from "element-plus";
1889
+ import { getUserData, getToken } from "st-func";
1890
+ import { inject, ref, nextTick, watch, reactive, computed } from "vue";
1891
+ import { sendToNodeVarietyAiHelper } from "../../public/aiTools";
1892
+ import { UserFilled, Service, Promotion, Refresh, SuccessFilled } from "@element-plus/icons-vue";
1893
+ &nbsp;
1894
+ const stConfig = inject("stConfig");
1895
+ const userData = reactive(getUserData());
1896
+ const visible = ref(false);
1897
+ const emit = defineEmits(["callBack"]);
1898
+ const props = defineProps({
1899
+ defaultMessage: {
1900
+ type: String,
1901
+ default:
1902
+ "你好呀!我是你的品种池AI助手,会根据您的自然语言去进行品种的条件查询\n\n示例: \n帮我查A股科创板下品种转价差上证50并且总市值大于1千万, 最近一次红箱的开盘价大于前5根K线的最高价, 并按照总市值升序进行排序",
1903
+ },
1904
+ });
1905
+ &nbsp;
1906
+ const isSending = ref(false);
1907
+ const isThinking = ref(false);
1908
+ const showFinalResult = ref(false);
1909
+ const messageListRef = ref(null);
1910
+ const messageList = ref([
1911
+ {
1912
+ role: "defaultMessage", // defaultMessage-组件内置, assistant-智能体, user-用户
1913
+ content: props.defaultMessage,
1914
+ fullQuery: "",
1915
+ historyList: [],
1916
+ userContent: null,
1917
+ showFeedback: false,
1918
+ createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
1919
+ resTime: 0,
1920
+ firstPackageTime: 0,
1921
+ },
1922
+ ]);
1923
+ const sessionId = ref(null);
1924
+ const userInput = ref("");
1925
+ &nbsp;
1926
+ // 反馈相关
1927
+ const feedbackDialogVisible = ref(false);
1928
+ const feedbackContent = ref("");
1929
+ const feedbackMessageIndex = ref({});
1930
+ &nbsp;
1931
+ // 节点相关
1932
+ const nodeProgressList = ref([]);
1933
+ const totalCount = computed(() =&gt; nodeProgressList.value.length);
1934
+ const completedCount = computed(() =&gt; nodeProgressList.value.filter((n) =&gt; n.status === "success").length);
1935
+ const progressPercent = computed(() =&gt; (totalCount.value ? (completedCount.value / totalCount.value) * 100 : 0));
1936
+ const currentStepName = computed(() =&gt; {
1937
+ <span class="cstat-no" title="statement not covered" > const running = nodeProgressList.value.find((n) =&gt; n.status === "executing");</span>
1938
+ <span class="cstat-no" title="statement not covered" > return running ? running.name : "处理中";</span>
1939
+ });
1940
+ &nbsp;
1941
+ // 发送消息
1942
+ const sendMessage = async () =&gt; {
1943
+ const content = userInput.value.trim();
1944
+ if (!content) return ElMessage.warning("请输入消息内容");
1945
+ if (isSending.value) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
1946
+ &nbsp;
1947
+ nodeProgressList.value = [];
1948
+ showFinalResult.value = false;
1949
+ &nbsp;
1950
+ messageList.value.push({
1951
+ role: "user",
1952
+ content: content,
1953
+ createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
1954
+ });
1955
+ userInput.value = "";
1956
+ await scrollToBottom();
1957
+ &nbsp;
1958
+ messageList.value.push({
1959
+ role: "assistant",
1960
+ content: "",
1961
+ fullQuery: "",
1962
+ historyList: [],
1963
+ userContent: content,
1964
+ showFeedback: false,
1965
+ createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
1966
+ resTime: 0,
1967
+ firstPackageTime: 0,
1968
+ });
1969
+ await scrollToBottom();
1970
+ &nbsp;
1971
+ isSending.value = true;
1972
+ isThinking.value = true;
1973
+ &nbsp;
1974
+ let fullResponse = "";
1975
+ let resTime = new Date().getTime();
1976
+ let firstNodeReceived = false;
1977
+ &nbsp;
1978
+ try {
1979
+ await sendToNodeVarietyAiHelper({
1980
+ baseUrl: stConfig.env.VITE_BASE_URL,
1981
+ token: getToken(),
1982
+ value: content,
1983
+ sessionId: sessionId.value,
1984
+ callback: (type, data) =&gt; {
1985
+ if (type === "session") {
1986
+ sessionId.value = data;
1987
+ }
1988
+ if (type === "historyList") <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1989
+ <span class="cstat-no" title="statement not covered" > const lastMessage = messageList.value[messageList.value.length - 1];</span>
1990
+ <span class="cstat-no" title="statement not covered" > lastMessage.historyList = data;</span>
1991
+ <span class="cstat-no" title="statement not covered" > }</span>
1992
+ if (type === "fullQuery") <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1993
+ <span class="cstat-no" title="statement not covered" > const lastMessage = messageList.value[messageList.value.length - 1];</span>
1994
+ <span class="cstat-no" title="statement not covered" > lastMessage.fullQuery = data;</span>
1995
+ <span class="cstat-no" title="statement not covered" > }</span>
1996
+ if (type === "node") {
1997
+ if (!firstNodeReceived) {
1998
+ firstNodeReceived = true;
1999
+ isThinking.value = false;
2000
+ const lastMessage = messageList.value[messageList.value.length - 1];
2001
+ if (lastMessage &amp;&amp; lastMessage.role === "assistant" &amp;&amp; lastMessage.firstPackageTime === 0) {
2002
+ lastMessage.firstPackageTime = new Date().getTime() - resTime;
2003
+ }
2004
+ }
2005
+ &nbsp;
2006
+ const existing = nodeProgressList.value.find((n) =&gt; n.name === data.name);
2007
+ if (existing) {
2008
+ existing.status = data.status;
2009
+ } else {
2010
+ nodeProgressList.value.push({ name: data.name, status: data.status });
2011
+ }
2012
+ scrollToBottom();
2013
+ return;
2014
+ }
2015
+ if (type === "message") {
2016
+ fullResponse = data;
2017
+ const lastMessage = messageList.value[messageList.value.length - 1];
2018
+ if (lastMessage &amp;&amp; lastMessage.role === "assistant") {
2019
+ lastMessage.content = fullResponse;
2020
+ scrollToBottom();
2021
+ }
2022
+ }
2023
+ if (type === "finish") {
2024
+ isSending.value = false;
2025
+ showFinalResult.value = true;
2026
+ const lastMessage = messageList.value[messageList.value.length - 1];
2027
+ &nbsp;
2028
+ if (lastMessage &amp;&amp; lastMessage.role === "assistant") {
2029
+ lastMessage.showFeedback = true;
2030
+ lastMessage.resTime = new Date().getTime() - resTime;
2031
+ handleFeedbackAction("default", messageList.value.length - 1);
2032
+ }
2033
+ }
2034
+ if (type === "error") {
2035
+ isThinking.value = false;
2036
+ isSending.value = false;
2037
+ messageList.value.pop();
2038
+ messageList.value.push({
2039
+ role: "assistant",
2040
+ userContent: content,
2041
+ content: `❌ ${data}`,
2042
+ showFeedback: false,
2043
+ createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
2044
+ resTime: new Date().getTime() - resTime,
2045
+ firstPackageTime: 0,
2046
+ });
2047
+ handleFeedbackAction("default", messageList.value.length - 1);
2048
+ scrollToBottom();
2049
+ return;
2050
+ }
2051
+ },
2052
+ });
2053
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
2054
+ <span class="cstat-no" title="statement not covered" > ElMessage.error(`AI响应异常: ${error}`);</span>
2055
+ <span class="cstat-no" title="statement not covered" > messageList.value.pop();</span>
2056
+ <span class="cstat-no" title="statement not covered" > messageList.value.push({</span>
2057
+ <span class="cstat-no" title="statement not covered" > role: "assistant",</span>
2058
+ <span class="cstat-no" title="statement not covered" > userContent: content,</span>
2059
+ <span class="cstat-no" title="statement not covered" > content: "❌ 抱歉,AI服务响应异常,请稍后重试。",</span>
2060
+ <span class="cstat-no" title="statement not covered" > showFeedback: true,</span>
2061
+ <span class="cstat-no" title="statement not covered" > createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),</span>
2062
+ <span class="cstat-no" title="statement not covered" > resTime: new Date().getTime() - resTime,</span>
2063
+ <span class="cstat-no" title="statement not covered" > firstPackageTime: 0,</span>
2064
+ <span class="cstat-no" title="statement not covered" > });</span>
2065
+ <span class="cstat-no" title="statement not covered" > handleFeedbackAction("default", messageList.value.length - 1);</span>
2066
+ <span class="cstat-no" title="statement not covered" > await scrollToBottom();</span>
2067
+ <span class="cstat-no" title="statement not covered" > isSending.value = false;</span>
2068
+ <span class="cstat-no" title="statement not covered" > isThinking.value = false;</span>
2069
+ <span class="cstat-no" title="statement not covered" > }</span>
2070
+ };
2071
+ // 确认查询
2072
+ const lookResult = (content) =&gt; {
2073
+ const { parsedConditions, ...webParams } = JSON.parse(content);
2074
+ console.log({ parsedConditions, webParams });
2075
+ emit("callBack", webParams);
2076
+ };
2077
+ // 用户反馈
2078
+ const handleFeedbackAction = async (action, messageIndex) =&gt; {
2079
+ switch (action) {
2080
+ // 满意
2081
+ <span class="branch-0 cbranch-no" title="branch not covered" > case "satisfied": {</span>
2082
+ <span class="cstat-no" title="statement not covered" > const message = messageList.value[messageIndex];</span>
2083
+ <span class="cstat-no" title="statement not covered" > await stConfig.request.post("/alarm/deliversign/addVarietyAiHelperLog", {</span>
2084
+ <span class="cstat-no" title="statement not covered" > userName: userData.username,</span>
2085
+ <span class="cstat-no" title="statement not covered" > userContent: message.userContent,</span>
2086
+ <span class="cstat-no" title="statement not covered" > sessionId: sessionId.value,</span>
2087
+ <span class="cstat-no" title="statement not covered" > fullQuery: message.fullQuery,</span>
2088
+ <span class="cstat-no" title="statement not covered" > historyList: JSON.stringify(message.historyList ?? []),</span>
2089
+ <span class="cstat-no" title="statement not covered" > aiContent: message.content,</span>
2090
+ <span class="cstat-no" title="statement not covered" > type: 1,</span>
2091
+ <span class="cstat-no" title="statement not covered" > createTime: message.createTime,</span>
2092
+ <span class="cstat-no" title="statement not covered" > resTime: message.resTime,</span>
2093
+ <span class="cstat-no" title="statement not covered" > firstPackageTime: message.firstPackageTime,</span>
2094
+ <span class="cstat-no" title="statement not covered" > isSolved: 1,</span>
2095
+ <span class="cstat-no" title="statement not covered" > logOrigin: 1,</span>
2096
+ <span class="cstat-no" title="statement not covered" > });</span>
2097
+ <span class="cstat-no" title="statement not covered" > ElMessage.success("感谢您的评价!");</span>
2098
+ <span class="cstat-no" title="statement not covered" > messageList.value[messageIndex].showFeedback = false;</span>
2099
+ <span class="cstat-no" title="statement not covered" > break;</span>
2100
+ <span class="cstat-no" title="statement not covered" > }</span>
2101
+ // 不满意-打开窗口
2102
+ <span class="branch-0 cbranch-no" title="branch not covered" > case "open": {</span>
2103
+ <span class="cstat-no" title="statement not covered" > feedbackMessageIndex.value = messageIndex;</span>
2104
+ <span class="cstat-no" title="statement not covered" > feedbackDialogVisible.value = true;</span>
2105
+ <span class="cstat-no" title="statement not covered" > break;</span>
2106
+ <span class="cstat-no" title="statement not covered" > }</span>
2107
+ // 不满意-确认提交
2108
+ <span class="branch-0 cbranch-no" title="branch not covered" > case "unsatisfied": {</span>
2109
+ <span class="cstat-no" title="statement not covered" > const message = messageList.value[messageIndex];</span>
2110
+ <span class="cstat-no" title="statement not covered" > await stConfig.request.post("/alarm/deliversign/addVarietyAiHelperLog", {</span>
2111
+ <span class="cstat-no" title="statement not covered" > userName: userData.username,</span>
2112
+ <span class="cstat-no" title="statement not covered" > userContent: message.userContent,</span>
2113
+ <span class="cstat-no" title="statement not covered" > sessionId: sessionId.value,</span>
2114
+ <span class="cstat-no" title="statement not covered" > fullQuery: message.fullQuery,</span>
2115
+ <span class="cstat-no" title="statement not covered" > historyList: JSON.stringify(message.historyList ?? []),</span>
2116
+ <span class="cstat-no" title="statement not covered" > userSuggestion: feedbackContent.value,</span>
2117
+ <span class="cstat-no" title="statement not covered" > aiContent: message.content,</span>
2118
+ <span class="cstat-no" title="statement not covered" > type: 2,</span>
2119
+ <span class="cstat-no" title="statement not covered" > resTime: message.resTime,</span>
2120
+ <span class="cstat-no" title="statement not covered" > createTime: message.createTime,</span>
2121
+ <span class="cstat-no" title="statement not covered" > firstPackageTime: message.firstPackageTime,</span>
2122
+ <span class="cstat-no" title="statement not covered" > isSolved: 0,</span>
2123
+ <span class="cstat-no" title="statement not covered" > logOrigin: 1,</span>
2124
+ <span class="cstat-no" title="statement not covered" > });</span>
2125
+ <span class="cstat-no" title="statement not covered" > ElMessage.success("感谢您的反馈!我们将持续跟踪并进行优化");</span>
2126
+ <span class="cstat-no" title="statement not covered" > feedbackDialogVisible.value = false;</span>
2127
+ <span class="cstat-no" title="statement not covered" > messageList.value[messageIndex].showFeedback = false;</span>
2128
+ <span class="cstat-no" title="statement not covered" > break;</span>
2129
+ <span class="cstat-no" title="statement not covered" > }</span>
2130
+ // 默认记录
2131
+ case "default": {
2132
+ const message = messageList.value[messageIndex];
2133
+ console.log({
2134
+ userName: userData.username,
2135
+ userContent: message.userContent,
2136
+ sessionId: sessionId.value,
2137
+ fullQuery: message.fullQuery,
2138
+ historyList: JSON.stringify(message.historyList ?? []),
2139
+ aiContent: message.content,
2140
+ type: null,
2141
+ resTime: message.resTime,
2142
+ createTime: message.createTime,
2143
+ firstPackageTime: message.firstPackageTime,
2144
+ isSolved: 1,
2145
+ logOrigin: 1,
2146
+ });
2147
+ await stConfig.request.post("/alarm/deliversign/addVarietyAiHelperLog", {
2148
+ userName: userData.username,
2149
+ userContent: message.userContent,
2150
+ sessionId: sessionId.value,
2151
+ fullQuery: message.fullQuery,
2152
+ historyList: JSON.stringify(message.historyList ?? []),
2153
+ aiContent: message.content,
2154
+ type: null,
2155
+ resTime: message.resTime,
2156
+ createTime: message.createTime,
2157
+ firstPackageTime: message.firstPackageTime,
2158
+ isSolved: 1,
2159
+ logOrigin: 1,
2160
+ });
2161
+ }
2162
+ }
2163
+ };
2164
+ // 键盘事件
2165
+ const handleKeydown = (event) =&gt; {
2166
+ if (event.key === "Enter") {
2167
+ if (event.ctrlKey) {
2168
+ event.preventDefault();
2169
+ const textarea = event.target;
2170
+ const start = textarea.selectionStart;
2171
+ const end = textarea.selectionEnd;
2172
+ userInput.value = userInput.value.substring(0, start) + "\n" + userInput.value.substring(end);
2173
+ nextTick(() =&gt; {
2174
+ textarea.selectionStart = textarea.selectionEnd = start + 1;
2175
+ });
2176
+ } else {
2177
+ event.preventDefault();
2178
+ sendMessage();
2179
+ }
2180
+ }
2181
+ };
2182
+ // 滚动到底部
2183
+ const scrollToBottom = async () =&gt; {
2184
+ await nextTick();
2185
+ if (messageListRef.value) {
2186
+ messageListRef.value.scrollTop = messageListRef.value.scrollHeight;
2187
+ }
2188
+ };
2189
+ // 校验是否支持JSON解析
2190
+ const isJSONSerializable = (str) =&gt; {
2191
+ if (typeof str !== "string") <span class="branch-0 cbranch-no" title="branch not covered" >return false;</span>
2192
+ try {
2193
+ const parsed = JSON.parse(str);
2194
+ return parsed !== null &amp;&amp; typeof parsed === "object";
2195
+ } catch {
2196
+ return false;
2197
+ }
2198
+ };
2199
+ // 动态生成渲染DOM
2200
+ const renderJSONContent = (content) =&gt; {
2201
+ const { parsedConditions } = JSON.parse(content);
2202
+ // 创建DOM
2203
+ let html = "";
2204
+ if (parsedConditions?.length) {
2205
+ html += '&lt;div class="parsed-conditions"&gt;';
2206
+ parsedConditions.forEach((text) =&gt; {
2207
+ html += `&lt;div class="parsed-conditions-item"&gt;${text}&lt;/div&gt;`;
2208
+ });
2209
+ html += "&lt;/div&gt;";
2210
+ }
2211
+ return html;
2212
+ };
2213
+ &nbsp;
2214
+ watch(
2215
+ () =&gt; messageList.value,
2216
+ () =&gt; {
2217
+ scrollToBottom();
2218
+ },
2219
+ { deep: true },
2220
+ );
2221
+ watch(
2222
+ () =&gt; feedbackDialogVisible.value,
2223
+ (newValue) =&gt; {
2224
+ <span class="cstat-no" title="statement not covered" > if (!newValue) feedbackContent.value = "";</span>
2225
+ },
2226
+ );
2227
+ &nbsp;
2228
+ defineExpose({
2229
+ open: () =&gt; {
2230
+ visible.value = true;
2231
+ nextTick(() =&gt; {
2232
+ scrollToBottom();
2233
+ });
2234
+ },
2235
+ });
2236
+ &lt;/script&gt;
2237
+ &nbsp;
2238
+ &lt;template&gt;
2239
+ &lt;el-dialog
2240
+ class="ai-dialog"
2241
+ v-model="<span class="fstat-no" title="function not covered" >visible"</span>
2242
+ title="✨ 品种池参数解析AI助手"
2243
+ width="500px"
2244
+ center
2245
+ draggable
2246
+ overflow
2247
+ :modal="false"
2248
+ :modal-penetrable="true"
2249
+ &gt;
2250
+ &lt;div class="ai-dialog-body"&gt;
2251
+ &lt;!-- 对话展示 --&gt;
2252
+ &lt;div
2253
+ ref="messageListRef"
2254
+ class="message-list"
2255
+ &gt;
2256
+ &lt;div
2257
+ v-for="(message, index) in messageList"
2258
+ :key="index"
2259
+ :class="message.role"
2260
+ class="message-item"
2261
+ &gt;
2262
+ &lt;template v-if="message.content || (index === messageList.length - 1 &amp;&amp; message.role === 'assistant' &amp;&amp; nodeProgressList.length &gt; 0)"&gt;
2263
+ &lt;!-- 头像 --&gt;
2264
+ &lt;div class="avatar"&gt;
2265
+ &lt;el-avatar
2266
+ :size="32"
2267
+ :icon="message.role === 'user' ? UserFilled : Service"
2268
+ /&gt;
2269
+ &lt;/div&gt;
2270
+ &lt;!-- 响应 --&gt;
2271
+ &lt;div class="message-content"&gt;
2272
+ <span class="branch-0 cbranch-no" title="branch not covered" > &lt;div</span>
2273
+ <span class="cstat-no" title="statement not covered" > v-if="message.fullQuery"</span>
2274
+ <span class="cstat-no" title="statement not covered" > style="font-weight: bold; margin-bottom: 10px"</span>
2275
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
2276
+ <span class="cstat-no" title="statement not covered" > 筛选结果: {{ message.fullQuery }}</span>
2277
+ &lt;/div&gt;
2278
+ &lt;!-- 节点展示 --&gt;
2279
+ &lt;div
2280
+ v-if="index === messageList.length - 1 &amp;&amp; message.role === 'assistant' &amp;&amp; nodeProgressList.length &gt; 0 &amp;&amp; !showFinalResult"
2281
+ class="node-progress"
2282
+ &gt;
2283
+ &lt;div
2284
+ v-for="node in nodeProgressList"
2285
+ :key="node.name"
2286
+ class="node-progress-item"
2287
+ &gt;
2288
+ &lt;span class="node-status-icon"&gt;
2289
+ &lt;el-icon
2290
+ v-if="node.status === 'success'"
2291
+ class="node-icon done"
2292
+ &gt;&lt;SuccessFilled
2293
+ /&gt;&lt;/el-icon&gt;
2294
+ &lt;el-icon
2295
+ v-else
2296
+ class="node-icon running"
2297
+ &gt;&lt;Refresh
2298
+ /&gt;&lt;/el-icon&gt;
2299
+ &lt;/span&gt;
2300
+ &lt;span class="node-name"&gt;{{ node.name }}&lt;/span&gt;
2301
+ &lt;/div&gt;
2302
+ &nbsp;
2303
+ &lt;div class="progress-footer"&gt;
2304
+ &lt;el-progress
2305
+ :percentage="progressPercent"
2306
+ :show-text="false"
2307
+ :stroke-width="4"
2308
+ color="#667eea"
2309
+ /&gt;
2310
+ &lt;span class="progress-text"&gt;第 {{ completedCount }}/{{ totalCount }} 步 · {{ currentStepName }}&lt;/span&gt;
2311
+ &lt;/div&gt;
2312
+ &lt;/div&gt;
2313
+ &lt;!-- 成功结果展示 --&gt;
2314
+ &lt;div
2315
+ v-if="isJSONSerializable(message.content)"
2316
+ class="message-content-json"
2317
+ :class="{ 'result-animation': index === messageList.length - 1 &amp;&amp; showFinalResult }"
2318
+ v-html="renderJSONContent(message.content)"
2319
+ /&gt;
2320
+ &lt;!-- 失败结果展示 --&gt;
2321
+ &lt;div
2322
+ v-else-if="message.content"
2323
+ class="message-content-text"
2324
+ :class="{ 'result-animation': index === messageList.length - 1 &amp;&amp; showFinalResult }"
2325
+ &gt;
2326
+ {{ message.content }}
2327
+ &lt;/div&gt;
2328
+ &nbsp;
2329
+ &lt;!-- 消息底部按钮 --&gt;
2330
+ &lt;div
2331
+ v-if="message.role === 'assistant'"
2332
+ class="message-content-footer"
2333
+ &gt;
2334
+ &lt;!-- 反馈按钮 --&gt;
2335
+ &lt;div
2336
+ v-if="message.showFeedback"
2337
+ class="feedback-box"
2338
+ &gt;
2339
+ &lt;el-tooltip
2340
+ content="满意"
2341
+ placement="bottom"
2342
+ &gt;
2343
+ &lt;img
2344
+ src="./images/like.png"
2345
+ alt="满意"
2346
+ @click<span class="fstat-no" title="function not covered" >="handleFeedbackAction('satisfied', index)"</span>
2347
+ /&gt;
2348
+ &lt;/el-tooltip&gt;
2349
+ &lt;el-tooltip
2350
+ content="满意"
2351
+ placement="bottom"
2352
+ &gt;
2353
+ &lt;img
2354
+ src="./images/like_no.png"
2355
+ alt="不满意"
2356
+ @click<span class="fstat-no" title="function not covered" >="handleFeedbackAction('open', index)"</span>
2357
+ /&gt;
2358
+ &lt;/el-tooltip&gt;
2359
+ &lt;/div&gt;
2360
+ &lt;!-- 确认查询 --&gt;
2361
+ &lt;el-button
2362
+ v-if="isJSONSerializable(message.content)"
2363
+ class="confirm-btn"
2364
+ @click="lookResult(message.content)"
2365
+ &gt;
2366
+ 确认查询
2367
+ &lt;/el-button&gt;
2368
+ &lt;/div&gt;
2369
+ &lt;/div&gt;
2370
+ &lt;/template&gt;
2371
+ &lt;/div&gt;
2372
+ &lt;/div&gt;
2373
+ &lt;!-- 用户输入 --&gt;
2374
+ &lt;div class="input-area"&gt;
2375
+ &lt;el-input
2376
+ class="message-input"
2377
+ v-model="userInput"
2378
+ type="textarea"
2379
+ :rows="4"
2380
+ :autosize="{ minRows: 2, maxRows: 4 }"
2381
+ placeholder="输入您想查询的品种条件..."
2382
+ @keydown="handleKeydown"
2383
+ /&gt;
2384
+ &lt;div class="input-actions"&gt;
2385
+ &lt;div class="input-hint"&gt;
2386
+ &lt;span&gt;Enter 发送 | Ctrl + Enter 换行&lt;/span&gt;
2387
+ &lt;/div&gt;
2388
+ &lt;el-button
2389
+ class="send-btn"
2390
+ type="primary"
2391
+ :icon="Promotion"
2392
+ :loading="isSending"
2393
+ @click="sendMessage"
2394
+ round
2395
+ &gt;
2396
+ 发送
2397
+ &lt;/el-button&gt;
2398
+ &lt;/div&gt;
2399
+ &lt;/div&gt;
2400
+ &lt;/div&gt;
2401
+ &lt;/el-dialog&gt;
2402
+ &nbsp;
2403
+ &lt;!-- 窗口: 反馈意见 --&gt;
2404
+ &lt;el-dialog
2405
+ v-model="<span class="fstat-no" title="function not covered" >feedbackDialogVisible"</span>
2406
+ title="📝 反馈意见"
2407
+ width="400px"
2408
+ &gt;
2409
+ &lt;div class="feedback-dialog-content"&gt;
2410
+ &lt;div class="feedback-emoji"&gt;😟&lt;/div&gt;
2411
+ &lt;p class="feedback-tip"&gt;很抱歉没能帮到您,请告诉我们哪里需要改进:&lt;/p&gt;
2412
+ &lt;el-input
2413
+ v-model="feedbackContent"
2414
+ type="textarea"
2415
+ :rows="4"
2416
+ placeholder="[非必填]例如:回答不够准确、查询结果有误、界面体验不佳..."
2417
+ /&gt;
2418
+ &lt;/div&gt;
2419
+ &lt;template #footer&gt;
2420
+ &lt;span class="dialog-footer"&gt;
2421
+ &lt;el-button @click="feedbackDialogVisible = false"&gt;取消&lt;/el-button&gt;
2422
+ &lt;el-button
2423
+ type="primary"
2424
+ @click="handleFeedbackAction('unsatisfied', feedbackMessageIndex)"
2425
+ &gt;提交反馈&lt;/el-button
2426
+ &gt;
2427
+ &lt;/span&gt;
2428
+ &lt;/template&gt;
2429
+ &lt;/el-dialog&gt;
2430
+ &lt;/template&gt;
2431
+ &nbsp;
2432
+ &lt;style lang="scss" scoped&gt;
2433
+ .ai-dialog {
2434
+ .ai-dialog-body {
2435
+ display: flex;
2436
+ flex-direction: column;
2437
+ height: 480px;
2438
+ background: transparent;
2439
+ // 对话展示
2440
+ .message-list {
2441
+ flex: 1;
2442
+ overflow-y: auto;
2443
+ padding: 20px 24px;
2444
+ &amp;::-webkit-scrollbar {
2445
+ width: 6px;
2446
+ }
2447
+ &amp;::-webkit-scrollbar-track {
2448
+ background: rgba(0, 0, 0, 0.05);
2449
+ border-radius: 3px;
2450
+ }
2451
+ &amp;::-webkit-scrollbar-thumb {
2452
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
2453
+ border-radius: 3px;
2454
+ &amp;:hover {
2455
+ background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
2456
+ }
2457
+ }
2458
+ .message-item {
2459
+ display: flex;
2460
+ margin-bottom: 20px;
2461
+ .avatar {
2462
+ flex-shrink: 0;
2463
+ :deep(.el-avatar) {
2464
+ background: linear-gradient(135deg, #f0f2ff 0%, #e8ecff 100%);
2465
+ color: #667eea;
2466
+ svg {
2467
+ width: 18px;
2468
+ height: 18px;
2469
+ }
2470
+ }
2471
+ }
2472
+ .message-content {
2473
+ width: calc(100% - 88px);
2474
+ display: flex;
2475
+ flex-direction: column;
2476
+ }
2477
+ }
2478
+ // 智能体
2479
+ .defaultMessage,
2480
+ .assistant {
2481
+ .avatar {
2482
+ margin-right: 12px;
2483
+ }
2484
+ .message-content {
2485
+ align-items: flex-start;
2486
+ .node-progress {
2487
+ background: linear-gradient(135deg, #f8f9ff 0%, #f0f2ff 100%);
2488
+ border: 1px solid rgba(102, 126, 234, 0.15);
2489
+ border-radius: 16px;
2490
+ padding: 12px 16px;
2491
+ margin-bottom: 8px;
2492
+ min-width: 200px;
2493
+ animation: breathe 2s ease-in-out infinite;
2494
+ &nbsp;
2495
+ .node-progress-item {
2496
+ display: flex;
2497
+ align-items: center;
2498
+ gap: 10px;
2499
+ padding: 6px 0;
2500
+ position: relative;
2501
+ animation: slideIn 0.3s ease-out;
2502
+ &nbsp;
2503
+ &amp;:not(:last-child)::after {
2504
+ content: "";
2505
+ position: absolute;
2506
+ left: 9px;
2507
+ top: 28px;
2508
+ width: 2px;
2509
+ height: calc(100% - 8px);
2510
+ background: linear-gradient(to bottom, #c7d2fe, transparent);
2511
+ }
2512
+ &nbsp;
2513
+ .node-status-icon {
2514
+ position: relative;
2515
+ z-index: 1;
2516
+ border-radius: 50%;
2517
+ width: 20px;
2518
+ height: 20px;
2519
+ display: inline-flex;
2520
+ align-items: center;
2521
+ justify-content: center;
2522
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
2523
+ }
2524
+ &nbsp;
2525
+ .node-icon {
2526
+ font-size: 12px;
2527
+ &amp;.done {
2528
+ color: #22c55e;
2529
+ }
2530
+ &amp;.running {
2531
+ color: #667eea;
2532
+ animation: spin 0.6s linear infinite;
2533
+ }
2534
+ &amp;.waiting {
2535
+ color: #d1d5db;
2536
+ animation: spin 0.8s linear infinite;
2537
+ }
2538
+ }
2539
+ &nbsp;
2540
+ .node-name {
2541
+ font-size: 13px;
2542
+ color: #6b7280;
2543
+ line-height: 20px;
2544
+ }
2545
+ &nbsp;
2546
+ &amp;:has(.running) .node-name {
2547
+ font-weight: 500;
2548
+ color: #667eea;
2549
+ }
2550
+ }
2551
+ &nbsp;
2552
+ .progress-footer {
2553
+ margin-top: 12px;
2554
+ padding-top: 8px;
2555
+ border-top: 1px solid rgba(102, 126, 234, 0.1);
2556
+ &nbsp;
2557
+ :deep(.el-progress) {
2558
+ margin-bottom: 6px;
2559
+ }
2560
+ &nbsp;
2561
+ .progress-text {
2562
+ font-size: 11px;
2563
+ color: #9ca3af;
2564
+ display: block;
2565
+ text-align: center;
2566
+ }
2567
+ }
2568
+ }
2569
+ .message-content-json {
2570
+ width: 100%;
2571
+ overflow: hidden;
2572
+ :deep(.parsed-conditions) {
2573
+ margin: 0;
2574
+ padding: 0;
2575
+ .parsed-conditions-item {
2576
+ text-align: center;
2577
+ color: #f56c6c;
2578
+ margin-bottom: 8px;
2579
+ padding: 8px 12px;
2580
+ background: linear-gradient(135deg, #ffebeb 0%, #ffe0e0 100%);
2581
+ border-radius: 12px;
2582
+ font-weight: 500;
2583
+ transition: all 0.2s ease;
2584
+ &amp;:last-child {
2585
+ margin-bottom: 0;
2586
+ }
2587
+ }
2588
+ }
2589
+ }
2590
+ .message-content-footer {
2591
+ width: 100%;
2592
+ display: flex;
2593
+ align-items: center;
2594
+ justify-content: space-between;
2595
+ .feedback-box {
2596
+ display: flex;
2597
+ align-items: center;
2598
+ margin-top: 10px;
2599
+ img {
2600
+ cursor: pointer;
2601
+ width: 26px;
2602
+ height: 26px;
2603
+ margin-right: 10px;
2604
+ &amp;:hover {
2605
+ transition: 0.2s;
2606
+ transform: scale(1.1);
2607
+ }
2608
+ }
2609
+ }
2610
+ .confirm-btn {
2611
+ margin-left: auto;
2612
+ margin-top: 8px;
2613
+ padding: 6px 20px;
2614
+ font-size: 13px;
2615
+ border-radius: 20px;
2616
+ background: linear-gradient(135deg, #f8f9ff 0%, #f0f2ff 100%);
2617
+ color: #667eea;
2618
+ border: 1px solid rgba(102, 126, 234, 0.15);
2619
+ cursor: pointer;
2620
+ transition: all 0.2s ease;
2621
+ font-weight: 500;
2622
+ &nbsp;
2623
+ &amp;:hover {
2624
+ background: linear-gradient(135deg, #f0f2ff 0%, #e8ecff 100%);
2625
+ border-color: rgba(102, 126, 234, 0.3);
2626
+ transform: translateY(-1px);
2627
+ box-shadow: 0 2px 8px rgba(102, 126, 234, 0.1);
2628
+ }
2629
+ }
2630
+ }
2631
+ .result-animation {
2632
+ animation: resultAppear 0.5s cubic-bezier(0.2, 0.9, 0.4, 1.1);
2633
+ }
2634
+ }
2635
+ }
2636
+ // 用户
2637
+ .user {
2638
+ flex-direction: row-reverse;
2639
+ .avatar {
2640
+ margin-left: 12px;
2641
+ margin-right: 0;
2642
+ }
2643
+ .message-content {
2644
+ align-items: flex-end;
2645
+ .message-content-text {
2646
+ color: white;
2647
+ border-radius: 18px 18px 4px 18px;
2648
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
2649
+ }
2650
+ }
2651
+ }
2652
+ .message-content-json,
2653
+ .message-content-text {
2654
+ box-sizing: border-box;
2655
+ padding: 12px 16px;
2656
+ font-size: 14px;
2657
+ line-height: 1.6;
2658
+ word-wrap: break-word;
2659
+ white-space: pre-wrap;
2660
+ border-radius: 18px 18px 18px 4px;
2661
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
2662
+ border: 1px solid rgba(102, 126, 234, 0.2);
2663
+ transition: all 0.3s ease;
2664
+ }
2665
+ }
2666
+ &nbsp;
2667
+ // 用户输入
2668
+ .input-area {
2669
+ padding: 16px 24px 24px;
2670
+ backdrop-filter: blur(10px);
2671
+ &nbsp;
2672
+ .message-input {
2673
+ :deep(.el-textarea__inner) {
2674
+ border-radius: 16px;
2675
+ border: 1px solid rgba(102, 126, 234, 0.2);
2676
+ font-size: 14px;
2677
+ padding: 12px 16px;
2678
+ transition: all 0.3s ease;
2679
+ &amp;:focus {
2680
+ border-color: #667eea;
2681
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
2682
+ }
2683
+ }
2684
+ }
2685
+ &nbsp;
2686
+ .input-actions {
2687
+ display: flex;
2688
+ justify-content: space-between;
2689
+ align-items: center;
2690
+ margin-top: 12px;
2691
+ &nbsp;
2692
+ .input-hint {
2693
+ font-size: 11px;
2694
+ color: var(--el-color-info);
2695
+ }
2696
+ &nbsp;
2697
+ .send-btn {
2698
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
2699
+ border: none;
2700
+ padding: 8px 20px;
2701
+ font-weight: 500;
2702
+ transition: all 0.3s ease;
2703
+ &amp;:hover {
2704
+ transform: translateY(-2px);
2705
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
2706
+ }
2707
+ &amp;:active {
2708
+ transform: translateY(0);
2709
+ }
2710
+ }
2711
+ }
2712
+ }
2713
+ }
2714
+ }
2715
+ &nbsp;
2716
+ @keyframes slideIn {
2717
+ from {
2718
+ opacity: 0;
2719
+ transform: translateX(-8px);
2720
+ }
2721
+ to {
2722
+ opacity: 1;
2723
+ transform: translateX(0);
2724
+ }
2725
+ }
2726
+ &nbsp;
2727
+ @keyframes spin {
2728
+ to {
2729
+ transform: rotate(360deg);
2730
+ }
2731
+ }
2732
+ &nbsp;
2733
+ @keyframes breathe {
2734
+ 0%,
2735
+ 100% {
2736
+ border-color: rgba(102, 126, 234, 0.15);
2737
+ box-shadow: 0 2px 8px rgba(102, 126, 234, 0.05);
2738
+ }
2739
+ 50% {
2740
+ border-color: rgba(102, 126, 234, 0.35);
2741
+ box-shadow: 0 4px 16px rgba(102, 126, 234, 0.12);
2742
+ }
2743
+ }
2744
+ &nbsp;
2745
+ @keyframes resultAppear {
2746
+ 0% {
2747
+ opacity: 0;
2748
+ transform: scale(0.95);
2749
+ }
2750
+ 100% {
2751
+ opacity: 1;
2752
+ transform: scale(1);
2753
+ }
2754
+ }
2755
+ &nbsp;
2756
+ .feedback-dialog-content {
2757
+ text-align: center;
2758
+ padding: 12px 0;
2759
+ &nbsp;
2760
+ .feedback-emoji {
2761
+ font-size: 48px;
2762
+ margin-bottom: 16px;
2763
+ animation: shake 0.5s ease-in-out;
2764
+ }
2765
+ .feedback-tip {
2766
+ font-size: 14px;
2767
+ color: #666;
2768
+ margin-bottom: 20px;
2769
+ line-height: 1.6;
2770
+ }
2771
+ &nbsp;
2772
+ :deep(.el-textarea__inner) {
2773
+ border-radius: 12px;
2774
+ border: 1px solid rgba(102, 126, 234, 0.2);
2775
+ font-size: 14px;
2776
+ &amp;:focus {
2777
+ border-color: #667eea;
2778
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
2779
+ }
2780
+ }
2781
+ }
2782
+ &nbsp;
2783
+ @keyframes shake {
2784
+ 0%,
2785
+ 100% {
2786
+ transform: translateX(0);
2787
+ }
2788
+ 25% {
2789
+ transform: translateX(-5px);
2790
+ }
2791
+ 75% {
2792
+ transform: translateX(5px);
2793
+ }
2794
+ }
2795
+ &lt;/style&gt;
2796
+ &nbsp;</pre></td></tr></table></pre>
2797
+
2798
+ <div class='push'></div><!-- for sticky footer -->
2799
+ </div><!-- /wrapper -->
2800
+ <div class='footer quiet pad2 space-top1 center small'>
2801
+ Code coverage generated by
2802
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2803
+ at 2026-08-02T08:20:04.516Z
2804
+ </div>
2805
+ <script src="../prettify.js"></script>
2806
+ <script>
2807
+ window.onload = function () {
2808
+ prettyPrint();
2809
+ };
2810
+ </script>
2811
+ <script src="../sorter.js"></script>
2812
+ <script src="../block-navigation.js"></script>
2813
+ </body>
2814
+ </html>
2815
+