st-comp 0.0.277 → 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 (619) 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 +1 -1
  491. package/es/VarietyAiHelper.js +39 -39
  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 +29 -29
  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/{config-provider-4c784baf.cjs → config-provider-06ea6b42.cjs} +1 -1
  505. package/es/{config-provider-7a3aca55.js → config-provider-88b637a8.js} +3 -3
  506. package/es/{dropdown-987c47fb.cjs → dropdown-4ce4c3e2.cjs} +1 -1
  507. package/es/{dropdown-01e09205.js → dropdown-72fbc15d.js} +2 -2
  508. package/es/{el-autocomplete-342ae823.js → el-autocomplete-6cafcdf1.js} +5 -5
  509. package/es/{el-autocomplete-16f66b34.cjs → el-autocomplete-e0857c5b.cjs} +1 -1
  510. package/es/{el-button-13dc915f.cjs → el-button-613e0bb2.cjs} +1 -1
  511. package/es/{el-button-314171a0.js → el-button-94d3de38.js} +3 -3
  512. package/es/{el-checkbox-5899681f.js → el-checkbox-6d4cb393.js} +3 -3
  513. package/es/{el-checkbox-bdf64663.cjs → el-checkbox-e90762df.cjs} +1 -1
  514. package/es/{el-dialog-0ef95df6.cjs → el-dialog-02942e22.cjs} +1 -1
  515. package/es/{el-dialog-86a3eec2.js → el-dialog-5e30161f.js} +4 -4
  516. package/es/{el-form-item-77ef6784.cjs → el-form-item-44f060d8.cjs} +1 -1
  517. package/es/{el-form-item-cda4d93c.js → el-form-item-9e8969ea.js} +5 -5
  518. package/es/{el-input-fa1445ad.js → el-input-342b2def.js} +13 -13
  519. package/es/{el-input-89222943.cjs → el-input-9a9a7f7f.cjs} +1 -1
  520. package/es/{el-input-number-d3338e5e.cjs → el-input-number-65c847d6.cjs} +1 -1
  521. package/es/{el-input-number-8f6dbf74.js → el-input-number-c22b803a.js} +35 -35
  522. package/es/{el-loading-84dde1a8.cjs → el-loading-8179b497.cjs} +1 -1
  523. package/es/{el-loading-9b671203.js → el-loading-bcc51e3d.js} +1 -1
  524. package/es/{el-menu-item-535fef90.js → el-menu-item-339baf6d.js} +21 -21
  525. package/es/{el-menu-item-4531fd0e.cjs → el-menu-item-83186444.cjs} +1 -1
  526. package/es/{el-message-box-621ed2f1.js → el-message-box-035b699c.js} +9 -9
  527. package/es/{el-message-box-f5717070.cjs → el-message-box-c62d3217.cjs} +1 -1
  528. package/es/{el-overlay-23de4324.js → el-overlay-3e17604b.js} +3 -3
  529. package/es/{el-overlay-151708cb.cjs → el-overlay-8f1da9e8.cjs} +1 -1
  530. package/es/{el-popconfirm-b8aa490e.cjs → el-popconfirm-4e32ec1b.cjs} +1 -1
  531. package/es/{el-popconfirm-bcff0aa5.js → el-popconfirm-f8a86e2c.js} +4 -4
  532. package/es/{el-popper-43ec37f4.cjs → el-popper-a4f3ae4d.cjs} +1 -1
  533. package/es/{el-popper-03988662.js → el-popper-fbd0dcea.js} +1 -1
  534. package/es/{el-segmented-db3a86be.js → el-segmented-56bd58a8.js} +2 -2
  535. package/es/{el-segmented-79a1367c.cjs → el-segmented-833ac177.cjs} +1 -1
  536. package/es/{el-select-4bd0010d.js → el-select-44fa547d.js} +8 -8
  537. package/es/{el-select-ec04e7ce.cjs → el-select-70806166.cjs} +1 -1
  538. package/es/{el-table-column-35e47229.cjs → el-table-column-3e2cdfca.cjs} +1 -1
  539. package/es/{el-table-column-7af2bec7.js → el-table-column-b74a857d.js} +9 -9
  540. package/es/{el-tag-bef9e83d.js → el-tag-66c83156.js} +2 -2
  541. package/es/{el-tag-5d5608e0.cjs → el-tag-9c2f329f.cjs} +1 -1
  542. package/es/{el-text-f998902c.js → el-text-034bd3f4.js} +1 -1
  543. package/es/{el-text-abf10fdf.cjs → el-text-6b2374bb.cjs} +1 -1
  544. package/es/index-00f6ca75.cjs +1 -0
  545. package/es/{index-a00e0534.cjs → index-185792a7.cjs} +1 -1
  546. package/es/{index-d1b554ac.js → index-1e2a38ab.js} +2 -2
  547. package/es/{index-f3f6ee27.js → index-27416486.js} +9 -9
  548. package/es/{index-2d7ac156.cjs → index-47c9eb63.cjs} +2 -2
  549. package/es/{index-0986e373.cjs → index-4cd74df9.cjs} +1 -1
  550. package/es/{index-ce21e2ce.js → index-5216d5f5.js} +5 -5
  551. package/es/{index-cfcd60ca.cjs → index-5c0dd943.cjs} +1 -1
  552. package/es/{index-cfd00899.cjs → index-870b6c9d.cjs} +1 -1
  553. package/es/{index-a83ec4b7.js → index-8c2d7e05.js} +1 -1
  554. package/es/{index-db846633.cjs → index-9d16cea8.cjs} +1 -1
  555. package/es/{index-936e7dec.js → index-a9785a4f.js} +1 -1
  556. package/es/{index-60c69dd1.cjs → index-ac8dc53d.cjs} +1 -1
  557. package/es/{index-102edf6c.js → index-c5f2d372.js} +2 -2
  558. package/es/{index-6290ae0f.js → index-c6584658.js} +2 -2
  559. package/es/{index-5c44d71a.js → index-eb96e074.js} +149 -119
  560. package/es/{index-5ed42e9c.js → index-f034b910.js} +2 -2
  561. package/es/{index-c58e90e9.cjs → index-f58b2920.cjs} +1 -1
  562. package/es/{python-71f59893.cjs → python-2623e545.cjs} +1 -1
  563. package/es/{python-6cc6ec1b.js → python-85a62852.js} +17 -17
  564. package/es/style.css +1 -1
  565. package/es/{use-form-common-props-02be4928.cjs → use-form-common-props-ac666630.cjs} +1 -1
  566. package/es/{use-form-common-props-76a09d89.js → use-form-common-props-ed72e914.js} +11 -11
  567. package/es/{use-global-config-31b3ec57.cjs → use-global-config-23472471.cjs} +1 -1
  568. package/es/{use-global-config-0f43458b.js → use-global-config-ee406d58.js} +2 -2
  569. package/es/{validator-ea292506.cjs → validator-366dbf39.cjs} +1 -1
  570. package/es/{validator-0e037618.js → validator-c60a8956.js} +1 -1
  571. package/es/{zh-cn-1227eb8a.js → zh-cn-b59a0910.js} +1 -1
  572. package/es/{zh-cn-0edc7234.cjs → zh-cn-c21d12d8.cjs} +1 -1
  573. package/introduce.md +41 -0
  574. package/lib/bundle.js +1 -1
  575. package/lib/bundle.umd.cjs +189 -189
  576. package/lib/{index-2a269748.js → index-72506c43.js} +20667 -20433
  577. package/lib/{python-41da18e5.js → python-d3119b5a.js} +1 -1
  578. package/lib/style.css +1 -1
  579. package/package.json +9 -2
  580. package/packages/CustomFunction/components/ManageDialog.vue +300 -3
  581. package/tests/components/ChartLayout.spec.ts +67 -0
  582. package/tests/components/ConfigProvider.spec.ts +99 -0
  583. package/tests/components/Contextmenu.spec.ts +79 -0
  584. package/tests/components/CustomFunction.spec.ts +185 -0
  585. package/tests/components/FactorWarning.spec.ts +287 -0
  586. package/tests/components/HeatMap.spec.ts +83 -0
  587. package/tests/components/Kline.spec.ts +140 -0
  588. package/tests/components/Kline2.spec.ts +311 -0
  589. package/tests/components/KlineBasic.spec.ts +429 -0
  590. package/tests/components/KlineConfig.spec.ts +278 -0
  591. package/tests/components/KlineNew.spec.ts +278 -0
  592. package/tests/components/KlinePlus.spec.ts +284 -0
  593. package/tests/components/LinearLegend.spec.ts +69 -0
  594. package/tests/components/ManageDialog.spec.ts +253 -0
  595. package/tests/components/Map.spec.ts +71 -0
  596. package/tests/components/MonacoEditor.spec.ts +530 -0
  597. package/tests/components/Pagination.spec.ts +59 -0
  598. package/tests/components/PasswordPrompt.spec.ts +72 -0
  599. package/tests/components/Pie.spec.ts +96 -0
  600. package/tests/components/Table.spec.ts +186 -0
  601. package/tests/components/TreeMap.spec.ts +100 -0
  602. package/tests/components/User.spec.ts +130 -0
  603. package/tests/components/VarSelectDialog.spec.ts +131 -0
  604. package/tests/components/VarietyAiHelper.spec.ts +164 -0
  605. package/tests/components/VarietyAutoComplete.spec.ts +110 -0
  606. package/tests/components/VarietySearch.spec.ts +526 -0
  607. package/tests/components/VarietyTextCopy.spec.ts +86 -0
  608. package/tests/components/VirtualTable.spec.ts +285 -0
  609. package/tests/helpers/mountWithPlugins.ts +19 -0
  610. package/tests/mocks/echarts.kline.mock.ts +41 -0
  611. package/tests/mocks/echarts.mock.ts +38 -0
  612. package/tests/mocks/monaco.mock.ts +37 -0
  613. package/tests/mocks/st-func.mock.ts +52 -0
  614. package/tests/mocks/talib.mock.ts +13 -0
  615. package/tests/setup.ts +65 -0
  616. package/tests/smoke.spec.ts +12 -0
  617. package/vitest.config.ts +56 -0
  618. package/workflow.md +33 -0
  619. package/es/index-476c4459.cjs +0 -1
@@ -0,0 +1,3508 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for MonacoEditor/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">MonacoEditor</a> index.vue</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">96.93% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>1106/1141</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">64.84% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>83/128</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">82.75% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>24/29</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">96.93% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>1106/1141</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>
977
+ <a name='L912'></a><a href='#L912'>912</a>
978
+ <a name='L913'></a><a href='#L913'>913</a>
979
+ <a name='L914'></a><a href='#L914'>914</a>
980
+ <a name='L915'></a><a href='#L915'>915</a>
981
+ <a name='L916'></a><a href='#L916'>916</a>
982
+ <a name='L917'></a><a href='#L917'>917</a>
983
+ <a name='L918'></a><a href='#L918'>918</a>
984
+ <a name='L919'></a><a href='#L919'>919</a>
985
+ <a name='L920'></a><a href='#L920'>920</a>
986
+ <a name='L921'></a><a href='#L921'>921</a>
987
+ <a name='L922'></a><a href='#L922'>922</a>
988
+ <a name='L923'></a><a href='#L923'>923</a>
989
+ <a name='L924'></a><a href='#L924'>924</a>
990
+ <a name='L925'></a><a href='#L925'>925</a>
991
+ <a name='L926'></a><a href='#L926'>926</a>
992
+ <a name='L927'></a><a href='#L927'>927</a>
993
+ <a name='L928'></a><a href='#L928'>928</a>
994
+ <a name='L929'></a><a href='#L929'>929</a>
995
+ <a name='L930'></a><a href='#L930'>930</a>
996
+ <a name='L931'></a><a href='#L931'>931</a>
997
+ <a name='L932'></a><a href='#L932'>932</a>
998
+ <a name='L933'></a><a href='#L933'>933</a>
999
+ <a name='L934'></a><a href='#L934'>934</a>
1000
+ <a name='L935'></a><a href='#L935'>935</a>
1001
+ <a name='L936'></a><a href='#L936'>936</a>
1002
+ <a name='L937'></a><a href='#L937'>937</a>
1003
+ <a name='L938'></a><a href='#L938'>938</a>
1004
+ <a name='L939'></a><a href='#L939'>939</a>
1005
+ <a name='L940'></a><a href='#L940'>940</a>
1006
+ <a name='L941'></a><a href='#L941'>941</a>
1007
+ <a name='L942'></a><a href='#L942'>942</a>
1008
+ <a name='L943'></a><a href='#L943'>943</a>
1009
+ <a name='L944'></a><a href='#L944'>944</a>
1010
+ <a name='L945'></a><a href='#L945'>945</a>
1011
+ <a name='L946'></a><a href='#L946'>946</a>
1012
+ <a name='L947'></a><a href='#L947'>947</a>
1013
+ <a name='L948'></a><a href='#L948'>948</a>
1014
+ <a name='L949'></a><a href='#L949'>949</a>
1015
+ <a name='L950'></a><a href='#L950'>950</a>
1016
+ <a name='L951'></a><a href='#L951'>951</a>
1017
+ <a name='L952'></a><a href='#L952'>952</a>
1018
+ <a name='L953'></a><a href='#L953'>953</a>
1019
+ <a name='L954'></a><a href='#L954'>954</a>
1020
+ <a name='L955'></a><a href='#L955'>955</a>
1021
+ <a name='L956'></a><a href='#L956'>956</a>
1022
+ <a name='L957'></a><a href='#L957'>957</a>
1023
+ <a name='L958'></a><a href='#L958'>958</a>
1024
+ <a name='L959'></a><a href='#L959'>959</a>
1025
+ <a name='L960'></a><a href='#L960'>960</a>
1026
+ <a name='L961'></a><a href='#L961'>961</a>
1027
+ <a name='L962'></a><a href='#L962'>962</a>
1028
+ <a name='L963'></a><a href='#L963'>963</a>
1029
+ <a name='L964'></a><a href='#L964'>964</a>
1030
+ <a name='L965'></a><a href='#L965'>965</a>
1031
+ <a name='L966'></a><a href='#L966'>966</a>
1032
+ <a name='L967'></a><a href='#L967'>967</a>
1033
+ <a name='L968'></a><a href='#L968'>968</a>
1034
+ <a name='L969'></a><a href='#L969'>969</a>
1035
+ <a name='L970'></a><a href='#L970'>970</a>
1036
+ <a name='L971'></a><a href='#L971'>971</a>
1037
+ <a name='L972'></a><a href='#L972'>972</a>
1038
+ <a name='L973'></a><a href='#L973'>973</a>
1039
+ <a name='L974'></a><a href='#L974'>974</a>
1040
+ <a name='L975'></a><a href='#L975'>975</a>
1041
+ <a name='L976'></a><a href='#L976'>976</a>
1042
+ <a name='L977'></a><a href='#L977'>977</a>
1043
+ <a name='L978'></a><a href='#L978'>978</a>
1044
+ <a name='L979'></a><a href='#L979'>979</a>
1045
+ <a name='L980'></a><a href='#L980'>980</a>
1046
+ <a name='L981'></a><a href='#L981'>981</a>
1047
+ <a name='L982'></a><a href='#L982'>982</a>
1048
+ <a name='L983'></a><a href='#L983'>983</a>
1049
+ <a name='L984'></a><a href='#L984'>984</a>
1050
+ <a name='L985'></a><a href='#L985'>985</a>
1051
+ <a name='L986'></a><a href='#L986'>986</a>
1052
+ <a name='L987'></a><a href='#L987'>987</a>
1053
+ <a name='L988'></a><a href='#L988'>988</a>
1054
+ <a name='L989'></a><a href='#L989'>989</a>
1055
+ <a name='L990'></a><a href='#L990'>990</a>
1056
+ <a name='L991'></a><a href='#L991'>991</a>
1057
+ <a name='L992'></a><a href='#L992'>992</a>
1058
+ <a name='L993'></a><a href='#L993'>993</a>
1059
+ <a name='L994'></a><a href='#L994'>994</a>
1060
+ <a name='L995'></a><a href='#L995'>995</a>
1061
+ <a name='L996'></a><a href='#L996'>996</a>
1062
+ <a name='L997'></a><a href='#L997'>997</a>
1063
+ <a name='L998'></a><a href='#L998'>998</a>
1064
+ <a name='L999'></a><a href='#L999'>999</a>
1065
+ <a name='L1000'></a><a href='#L1000'>1000</a>
1066
+ <a name='L1001'></a><a href='#L1001'>1001</a>
1067
+ <a name='L1002'></a><a href='#L1002'>1002</a>
1068
+ <a name='L1003'></a><a href='#L1003'>1003</a>
1069
+ <a name='L1004'></a><a href='#L1004'>1004</a>
1070
+ <a name='L1005'></a><a href='#L1005'>1005</a>
1071
+ <a name='L1006'></a><a href='#L1006'>1006</a>
1072
+ <a name='L1007'></a><a href='#L1007'>1007</a>
1073
+ <a name='L1008'></a><a href='#L1008'>1008</a>
1074
+ <a name='L1009'></a><a href='#L1009'>1009</a>
1075
+ <a name='L1010'></a><a href='#L1010'>1010</a>
1076
+ <a name='L1011'></a><a href='#L1011'>1011</a>
1077
+ <a name='L1012'></a><a href='#L1012'>1012</a>
1078
+ <a name='L1013'></a><a href='#L1013'>1013</a>
1079
+ <a name='L1014'></a><a href='#L1014'>1014</a>
1080
+ <a name='L1015'></a><a href='#L1015'>1015</a>
1081
+ <a name='L1016'></a><a href='#L1016'>1016</a>
1082
+ <a name='L1017'></a><a href='#L1017'>1017</a>
1083
+ <a name='L1018'></a><a href='#L1018'>1018</a>
1084
+ <a name='L1019'></a><a href='#L1019'>1019</a>
1085
+ <a name='L1020'></a><a href='#L1020'>1020</a>
1086
+ <a name='L1021'></a><a href='#L1021'>1021</a>
1087
+ <a name='L1022'></a><a href='#L1022'>1022</a>
1088
+ <a name='L1023'></a><a href='#L1023'>1023</a>
1089
+ <a name='L1024'></a><a href='#L1024'>1024</a>
1090
+ <a name='L1025'></a><a href='#L1025'>1025</a>
1091
+ <a name='L1026'></a><a href='#L1026'>1026</a>
1092
+ <a name='L1027'></a><a href='#L1027'>1027</a>
1093
+ <a name='L1028'></a><a href='#L1028'>1028</a>
1094
+ <a name='L1029'></a><a href='#L1029'>1029</a>
1095
+ <a name='L1030'></a><a href='#L1030'>1030</a>
1096
+ <a name='L1031'></a><a href='#L1031'>1031</a>
1097
+ <a name='L1032'></a><a href='#L1032'>1032</a>
1098
+ <a name='L1033'></a><a href='#L1033'>1033</a>
1099
+ <a name='L1034'></a><a href='#L1034'>1034</a>
1100
+ <a name='L1035'></a><a href='#L1035'>1035</a>
1101
+ <a name='L1036'></a><a href='#L1036'>1036</a>
1102
+ <a name='L1037'></a><a href='#L1037'>1037</a>
1103
+ <a name='L1038'></a><a href='#L1038'>1038</a>
1104
+ <a name='L1039'></a><a href='#L1039'>1039</a>
1105
+ <a name='L1040'></a><a href='#L1040'>1040</a>
1106
+ <a name='L1041'></a><a href='#L1041'>1041</a>
1107
+ <a name='L1042'></a><a href='#L1042'>1042</a>
1108
+ <a name='L1043'></a><a href='#L1043'>1043</a>
1109
+ <a name='L1044'></a><a href='#L1044'>1044</a>
1110
+ <a name='L1045'></a><a href='#L1045'>1045</a>
1111
+ <a name='L1046'></a><a href='#L1046'>1046</a>
1112
+ <a name='L1047'></a><a href='#L1047'>1047</a>
1113
+ <a name='L1048'></a><a href='#L1048'>1048</a>
1114
+ <a name='L1049'></a><a href='#L1049'>1049</a>
1115
+ <a name='L1050'></a><a href='#L1050'>1050</a>
1116
+ <a name='L1051'></a><a href='#L1051'>1051</a>
1117
+ <a name='L1052'></a><a href='#L1052'>1052</a>
1118
+ <a name='L1053'></a><a href='#L1053'>1053</a>
1119
+ <a name='L1054'></a><a href='#L1054'>1054</a>
1120
+ <a name='L1055'></a><a href='#L1055'>1055</a>
1121
+ <a name='L1056'></a><a href='#L1056'>1056</a>
1122
+ <a name='L1057'></a><a href='#L1057'>1057</a>
1123
+ <a name='L1058'></a><a href='#L1058'>1058</a>
1124
+ <a name='L1059'></a><a href='#L1059'>1059</a>
1125
+ <a name='L1060'></a><a href='#L1060'>1060</a>
1126
+ <a name='L1061'></a><a href='#L1061'>1061</a>
1127
+ <a name='L1062'></a><a href='#L1062'>1062</a>
1128
+ <a name='L1063'></a><a href='#L1063'>1063</a>
1129
+ <a name='L1064'></a><a href='#L1064'>1064</a>
1130
+ <a name='L1065'></a><a href='#L1065'>1065</a>
1131
+ <a name='L1066'></a><a href='#L1066'>1066</a>
1132
+ <a name='L1067'></a><a href='#L1067'>1067</a>
1133
+ <a name='L1068'></a><a href='#L1068'>1068</a>
1134
+ <a name='L1069'></a><a href='#L1069'>1069</a>
1135
+ <a name='L1070'></a><a href='#L1070'>1070</a>
1136
+ <a name='L1071'></a><a href='#L1071'>1071</a>
1137
+ <a name='L1072'></a><a href='#L1072'>1072</a>
1138
+ <a name='L1073'></a><a href='#L1073'>1073</a>
1139
+ <a name='L1074'></a><a href='#L1074'>1074</a>
1140
+ <a name='L1075'></a><a href='#L1075'>1075</a>
1141
+ <a name='L1076'></a><a href='#L1076'>1076</a>
1142
+ <a name='L1077'></a><a href='#L1077'>1077</a>
1143
+ <a name='L1078'></a><a href='#L1078'>1078</a>
1144
+ <a name='L1079'></a><a href='#L1079'>1079</a>
1145
+ <a name='L1080'></a><a href='#L1080'>1080</a>
1146
+ <a name='L1081'></a><a href='#L1081'>1081</a>
1147
+ <a name='L1082'></a><a href='#L1082'>1082</a>
1148
+ <a name='L1083'></a><a href='#L1083'>1083</a>
1149
+ <a name='L1084'></a><a href='#L1084'>1084</a>
1150
+ <a name='L1085'></a><a href='#L1085'>1085</a>
1151
+ <a name='L1086'></a><a href='#L1086'>1086</a>
1152
+ <a name='L1087'></a><a href='#L1087'>1087</a>
1153
+ <a name='L1088'></a><a href='#L1088'>1088</a>
1154
+ <a name='L1089'></a><a href='#L1089'>1089</a>
1155
+ <a name='L1090'></a><a href='#L1090'>1090</a>
1156
+ <a name='L1091'></a><a href='#L1091'>1091</a>
1157
+ <a name='L1092'></a><a href='#L1092'>1092</a>
1158
+ <a name='L1093'></a><a href='#L1093'>1093</a>
1159
+ <a name='L1094'></a><a href='#L1094'>1094</a>
1160
+ <a name='L1095'></a><a href='#L1095'>1095</a>
1161
+ <a name='L1096'></a><a href='#L1096'>1096</a>
1162
+ <a name='L1097'></a><a href='#L1097'>1097</a>
1163
+ <a name='L1098'></a><a href='#L1098'>1098</a>
1164
+ <a name='L1099'></a><a href='#L1099'>1099</a>
1165
+ <a name='L1100'></a><a href='#L1100'>1100</a>
1166
+ <a name='L1101'></a><a href='#L1101'>1101</a>
1167
+ <a name='L1102'></a><a href='#L1102'>1102</a>
1168
+ <a name='L1103'></a><a href='#L1103'>1103</a>
1169
+ <a name='L1104'></a><a href='#L1104'>1104</a>
1170
+ <a name='L1105'></a><a href='#L1105'>1105</a>
1171
+ <a name='L1106'></a><a href='#L1106'>1106</a>
1172
+ <a name='L1107'></a><a href='#L1107'>1107</a>
1173
+ <a name='L1108'></a><a href='#L1108'>1108</a>
1174
+ <a name='L1109'></a><a href='#L1109'>1109</a>
1175
+ <a name='L1110'></a><a href='#L1110'>1110</a>
1176
+ <a name='L1111'></a><a href='#L1111'>1111</a>
1177
+ <a name='L1112'></a><a href='#L1112'>1112</a>
1178
+ <a name='L1113'></a><a href='#L1113'>1113</a>
1179
+ <a name='L1114'></a><a href='#L1114'>1114</a>
1180
+ <a name='L1115'></a><a href='#L1115'>1115</a>
1181
+ <a name='L1116'></a><a href='#L1116'>1116</a>
1182
+ <a name='L1117'></a><a href='#L1117'>1117</a>
1183
+ <a name='L1118'></a><a href='#L1118'>1118</a>
1184
+ <a name='L1119'></a><a href='#L1119'>1119</a>
1185
+ <a name='L1120'></a><a href='#L1120'>1120</a>
1186
+ <a name='L1121'></a><a href='#L1121'>1121</a>
1187
+ <a name='L1122'></a><a href='#L1122'>1122</a>
1188
+ <a name='L1123'></a><a href='#L1123'>1123</a>
1189
+ <a name='L1124'></a><a href='#L1124'>1124</a>
1190
+ <a name='L1125'></a><a href='#L1125'>1125</a>
1191
+ <a name='L1126'></a><a href='#L1126'>1126</a>
1192
+ <a name='L1127'></a><a href='#L1127'>1127</a>
1193
+ <a name='L1128'></a><a href='#L1128'>1128</a>
1194
+ <a name='L1129'></a><a href='#L1129'>1129</a>
1195
+ <a name='L1130'></a><a href='#L1130'>1130</a>
1196
+ <a name='L1131'></a><a href='#L1131'>1131</a>
1197
+ <a name='L1132'></a><a href='#L1132'>1132</a>
1198
+ <a name='L1133'></a><a href='#L1133'>1133</a>
1199
+ <a name='L1134'></a><a href='#L1134'>1134</a>
1200
+ <a name='L1135'></a><a href='#L1135'>1135</a>
1201
+ <a name='L1136'></a><a href='#L1136'>1136</a>
1202
+ <a name='L1137'></a><a href='#L1137'>1137</a>
1203
+ <a name='L1138'></a><a href='#L1138'>1138</a>
1204
+ <a name='L1139'></a><a href='#L1139'>1139</a>
1205
+ <a name='L1140'></a><a href='#L1140'>1140</a>
1206
+ <a name='L1141'></a><a href='#L1141'>1141</a>
1207
+ <a name='L1142'></a><a href='#L1142'>1142</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
1208
+ <span class="cline-any cline-yes">1x</span>
1209
+ <span class="cline-any cline-yes">1x</span>
1210
+ <span class="cline-any cline-yes">1x</span>
1211
+ <span class="cline-any cline-yes">1x</span>
1212
+ <span class="cline-any cline-yes">1x</span>
1213
+ <span class="cline-any cline-yes">1x</span>
1214
+ <span class="cline-any cline-yes">1x</span>
1215
+ <span class="cline-any cline-yes">1x</span>
1216
+ <span class="cline-any cline-yes">1x</span>
1217
+ <span class="cline-any cline-yes">1x</span>
1218
+ <span class="cline-any cline-yes">1x</span>
1219
+ <span class="cline-any cline-yes">1x</span>
1220
+ <span class="cline-any cline-yes">1x</span>
1221
+ <span class="cline-any cline-yes">1x</span>
1222
+ <span class="cline-any cline-yes">1x</span>
1223
+ <span class="cline-any cline-yes">1x</span>
1224
+ <span class="cline-any cline-yes">1x</span>
1225
+ <span class="cline-any cline-yes">1x</span>
1226
+ <span class="cline-any cline-yes">1x</span>
1227
+ <span class="cline-any cline-yes">1x</span>
1228
+ <span class="cline-any cline-yes">1x</span>
1229
+ <span class="cline-any cline-yes">1x</span>
1230
+ <span class="cline-any cline-yes">1x</span>
1231
+ <span class="cline-any cline-yes">1x</span>
1232
+ <span class="cline-any cline-yes">1x</span>
1233
+ <span class="cline-any cline-yes">1x</span>
1234
+ <span class="cline-any cline-yes">1x</span>
1235
+ <span class="cline-any cline-yes">1x</span>
1236
+ <span class="cline-any cline-yes">1x</span>
1237
+ <span class="cline-any cline-yes">1x</span>
1238
+ <span class="cline-any cline-yes">1x</span>
1239
+ <span class="cline-any cline-yes">1x</span>
1240
+ <span class="cline-any cline-yes">1x</span>
1241
+ <span class="cline-any cline-yes">1x</span>
1242
+ <span class="cline-any cline-yes">1x</span>
1243
+ <span class="cline-any cline-yes">1x</span>
1244
+ <span class="cline-any cline-yes">1x</span>
1245
+ <span class="cline-any cline-yes">1x</span>
1246
+ <span class="cline-any cline-yes">1x</span>
1247
+ <span class="cline-any cline-yes">1x</span>
1248
+ <span class="cline-any cline-yes">1x</span>
1249
+ <span class="cline-any cline-yes">1x</span>
1250
+ <span class="cline-any cline-yes">1x</span>
1251
+ <span class="cline-any cline-yes">1x</span>
1252
+ <span class="cline-any cline-yes">1x</span>
1253
+ <span class="cline-any cline-yes">1x</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">1x</span>
1257
+ <span class="cline-any cline-yes">1x</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">1x</span>
1267
+ <span class="cline-any cline-yes">1x</span>
1268
+ <span class="cline-any cline-yes">1x</span>
1269
+ <span class="cline-any cline-yes">1x</span>
1270
+ <span class="cline-any cline-yes">1x</span>
1271
+ <span class="cline-any cline-yes">1x</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">1x</span>
1275
+ <span class="cline-any cline-yes">6x</span>
1276
+ <span class="cline-any cline-yes">6x</span>
1277
+ <span class="cline-any cline-yes">6x</span>
1278
+ <span class="cline-any cline-yes">6x</span>
1279
+ <span class="cline-any cline-yes">12x</span>
1280
+ <span class="cline-any cline-yes">12x</span>
1281
+ <span class="cline-any cline-yes">12x</span>
1282
+ <span class="cline-any cline-yes">12x</span>
1283
+ <span class="cline-any cline-yes">12x</span>
1284
+ <span class="cline-any cline-yes">12x</span>
1285
+ <span class="cline-any cline-yes">12x</span>
1286
+ <span class="cline-any cline-yes">6x</span>
1287
+ <span class="cline-any cline-yes">6x</span>
1288
+ <span class="cline-any cline-yes">1x</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">22x</span>
1292
+ <span class="cline-any cline-yes">10x</span>
1293
+ <span class="cline-any cline-yes">10x</span>
1294
+ <span class="cline-any cline-yes">22x</span>
1295
+ <span class="cline-any cline-yes">22x</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">22x</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">8x</span>
1303
+ <span class="cline-any cline-yes">8x</span>
1304
+ <span class="cline-any cline-yes">8x</span>
1305
+ <span class="cline-any cline-yes">8x</span>
1306
+ <span class="cline-any cline-yes">8x</span>
1307
+ <span class="cline-any cline-yes">8x</span>
1308
+ <span class="cline-any cline-yes">8x</span>
1309
+ <span class="cline-any cline-yes">8x</span>
1310
+ <span class="cline-any cline-yes">8x</span>
1311
+ <span class="cline-any cline-yes">8x</span>
1312
+ <span class="cline-any cline-no">&nbsp;</span>
1313
+ <span class="cline-any cline-no">&nbsp;</span>
1314
+ <span class="cline-any cline-yes">1x</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">8x</span>
1319
+ <span class="cline-any cline-yes">8x</span>
1320
+ <span class="cline-any cline-yes">8x</span>
1321
+ <span class="cline-any cline-yes">8x</span>
1322
+ <span class="cline-any cline-yes">8x</span>
1323
+ <span class="cline-any cline-yes">8x</span>
1324
+ <span class="cline-any cline-yes">8x</span>
1325
+ <span class="cline-any cline-yes">8x</span>
1326
+ <span class="cline-any cline-yes">8x</span>
1327
+ <span class="cline-any cline-yes">8x</span>
1328
+ <span class="cline-any cline-yes">8x</span>
1329
+ <span class="cline-any cline-yes">8x</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">7x</span>
1334
+ <span class="cline-any cline-yes">6x</span>
1335
+ <span class="cline-any cline-yes">6x</span>
1336
+ <span class="cline-any cline-yes">6x</span>
1337
+ <span class="cline-any cline-yes">6x</span>
1338
+ <span class="cline-any cline-yes">6x</span>
1339
+ <span class="cline-any cline-yes">6x</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">11x</span>
1344
+ <span class="cline-any cline-yes">11x</span>
1345
+ <span class="cline-any cline-yes">11x</span>
1346
+ <span class="cline-any cline-yes">11x</span>
1347
+ <span class="cline-any cline-yes">11x</span>
1348
+ <span class="cline-any cline-yes">11x</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">8x</span>
1353
+ <span class="cline-any cline-yes">8x</span>
1354
+ <span class="cline-any cline-yes">8x</span>
1355
+ <span class="cline-any cline-yes">8x</span>
1356
+ <span class="cline-any cline-yes">8x</span>
1357
+ <span class="cline-any cline-yes">8x</span>
1358
+ <span class="cline-any cline-yes">8x</span>
1359
+ <span class="cline-any cline-yes">8x</span>
1360
+ <span class="cline-any cline-yes">8x</span>
1361
+ <span class="cline-any cline-yes">8x</span>
1362
+ <span class="cline-any cline-yes">8x</span>
1363
+ <span class="cline-any cline-yes">8x</span>
1364
+ <span class="cline-any cline-yes">8x</span>
1365
+ <span class="cline-any cline-yes">8x</span>
1366
+ <span class="cline-any cline-yes">8x</span>
1367
+ <span class="cline-any cline-yes">8x</span>
1368
+ <span class="cline-any cline-yes">8x</span>
1369
+ <span class="cline-any cline-yes">8x</span>
1370
+ <span class="cline-any cline-yes">8x</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">3x</span>
1375
+ <span class="cline-any cline-yes">3x</span>
1376
+ <span class="cline-any cline-yes">3x</span>
1377
+ <span class="cline-any cline-yes">3x</span>
1378
+ <span class="cline-any cline-yes">3x</span>
1379
+ <span class="cline-any cline-yes">4x</span>
1380
+ <span class="cline-any cline-yes">4x</span>
1381
+ <span class="cline-any cline-yes">4x</span>
1382
+ <span class="cline-any cline-yes">2x</span>
1383
+ <span class="cline-any cline-yes">2x</span>
1384
+ <span class="cline-any cline-yes">2x</span>
1385
+ <span class="cline-any cline-yes">4x</span>
1386
+ <span class="cline-any cline-yes">2x</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">4x</span>
1397
+ <span class="cline-any cline-yes">4x</span>
1398
+ <span class="cline-any cline-yes">2x</span>
1399
+ <span class="cline-any cline-yes">2x</span>
1400
+ <span class="cline-any cline-yes">2x</span>
1401
+ <span class="cline-any cline-yes">2x</span>
1402
+ <span class="cline-any cline-yes">2x</span>
1403
+ <span class="cline-any cline-yes">2x</span>
1404
+ <span class="cline-any cline-yes">2x</span>
1405
+ <span class="cline-any cline-yes">2x</span>
1406
+ <span class="cline-any cline-yes">2x</span>
1407
+ <span class="cline-any cline-yes">2x</span>
1408
+ <span class="cline-any cline-yes">2x</span>
1409
+ <span class="cline-any cline-yes">2x</span>
1410
+ <span class="cline-any cline-yes">2x</span>
1411
+ <span class="cline-any cline-yes">2x</span>
1412
+ <span class="cline-any cline-yes">2x</span>
1413
+ <span class="cline-any cline-yes">2x</span>
1414
+ <span class="cline-any cline-yes">2x</span>
1415
+ <span class="cline-any cline-yes">2x</span>
1416
+ <span class="cline-any cline-yes">2x</span>
1417
+ <span class="cline-any cline-yes">2x</span>
1418
+ <span class="cline-any cline-yes">2x</span>
1419
+ <span class="cline-any cline-yes">2x</span>
1420
+ <span class="cline-any cline-yes">2x</span>
1421
+ <span class="cline-any cline-yes">2x</span>
1422
+ <span class="cline-any cline-yes">2x</span>
1423
+ <span class="cline-any cline-yes">2x</span>
1424
+ <span class="cline-any cline-yes">2x</span>
1425
+ <span class="cline-any cline-yes">2x</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">2x</span>
1429
+ <span class="cline-any cline-yes">2x</span>
1430
+ <span class="cline-any cline-yes">2x</span>
1431
+ <span class="cline-any cline-yes">2x</span>
1432
+ <span class="cline-any cline-yes">2x</span>
1433
+ <span class="cline-any cline-yes">2x</span>
1434
+ <span class="cline-any cline-yes">2x</span>
1435
+ <span class="cline-any cline-yes">2x</span>
1436
+ <span class="cline-any cline-yes">2x</span>
1437
+ <span class="cline-any cline-yes">2x</span>
1438
+ <span class="cline-any cline-yes">2x</span>
1439
+ <span class="cline-any cline-yes">2x</span>
1440
+ <span class="cline-any cline-yes">2x</span>
1441
+ <span class="cline-any cline-yes">2x</span>
1442
+ <span class="cline-any cline-yes">2x</span>
1443
+ <span class="cline-any cline-yes">2x</span>
1444
+ <span class="cline-any cline-yes">2x</span>
1445
+ <span class="cline-any cline-yes">2x</span>
1446
+ <span class="cline-any cline-yes">2x</span>
1447
+ <span class="cline-any cline-yes">2x</span>
1448
+ <span class="cline-any cline-yes">2x</span>
1449
+ <span class="cline-any cline-yes">2x</span>
1450
+ <span class="cline-any cline-yes">2x</span>
1451
+ <span class="cline-any cline-yes">2x</span>
1452
+ <span class="cline-any cline-yes">2x</span>
1453
+ <span class="cline-any cline-yes">2x</span>
1454
+ <span class="cline-any cline-yes">2x</span>
1455
+ <span class="cline-any cline-yes">2x</span>
1456
+ <span class="cline-any cline-yes">2x</span>
1457
+ <span class="cline-any cline-yes">2x</span>
1458
+ <span class="cline-any cline-yes">2x</span>
1459
+ <span class="cline-any cline-yes">2x</span>
1460
+ <span class="cline-any cline-yes">3x</span>
1461
+ <span class="cline-any cline-yes">3x</span>
1462
+ <span class="cline-any cline-yes">3x</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">3x</span>
1467
+ <span class="cline-any cline-yes">3x</span>
1468
+ <span class="cline-any cline-yes">3x</span>
1469
+ <span class="cline-any cline-yes">3x</span>
1470
+ <span class="cline-any cline-yes">3x</span>
1471
+ <span class="cline-any cline-yes">3x</span>
1472
+ <span class="cline-any cline-yes">3x</span>
1473
+ <span class="cline-any cline-no">&nbsp;</span>
1474
+ <span class="cline-any cline-no">&nbsp;</span>
1475
+ <span class="cline-any cline-yes">3x</span>
1476
+ <span class="cline-any cline-no">&nbsp;</span>
1477
+ <span class="cline-any cline-no">&nbsp;</span>
1478
+ <span class="cline-any cline-no">&nbsp;</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">3x</span>
1484
+ <span class="cline-any cline-yes">3x</span>
1485
+ <span class="cline-any cline-yes">3x</span>
1486
+ <span class="cline-any cline-yes">3x</span>
1487
+ <span class="cline-any cline-yes">3x</span>
1488
+ <span class="cline-any cline-yes">3x</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">3x</span>
1493
+ <span class="cline-any cline-yes">3x</span>
1494
+ <span class="cline-any cline-yes">3x</span>
1495
+ <span class="cline-any cline-yes">3x</span>
1496
+ <span class="cline-any cline-yes">3x</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">3x</span>
1501
+ <span class="cline-any cline-yes">3x</span>
1502
+ <span class="cline-any cline-yes">3x</span>
1503
+ <span class="cline-any cline-yes">3x</span>
1504
+ <span class="cline-any cline-yes">3x</span>
1505
+ <span class="cline-any cline-yes">3x</span>
1506
+ <span class="cline-any cline-yes">3x</span>
1507
+ <span class="cline-any cline-yes">3x</span>
1508
+ <span class="cline-any cline-yes">3x</span>
1509
+ <span class="cline-any cline-yes">3x</span>
1510
+ <span class="cline-any cline-yes">3x</span>
1511
+ <span class="cline-any cline-yes">3x</span>
1512
+ <span class="cline-any cline-yes">3x</span>
1513
+ <span class="cline-any cline-yes">3x</span>
1514
+ <span class="cline-any cline-yes">3x</span>
1515
+ <span class="cline-any cline-yes">3x</span>
1516
+ <span class="cline-any cline-yes">3x</span>
1517
+ <span class="cline-any cline-yes">3x</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">2x</span>
1522
+ <span class="cline-any cline-yes">2x</span>
1523
+ <span class="cline-any cline-yes">2x</span>
1524
+ <span class="cline-any cline-yes">2x</span>
1525
+ <span class="cline-any cline-yes">2x</span>
1526
+ <span class="cline-any cline-yes">2x</span>
1527
+ <span class="cline-any cline-yes">2x</span>
1528
+ <span class="cline-any cline-yes">2x</span>
1529
+ <span class="cline-any cline-yes">3x</span>
1530
+ <span class="cline-any cline-yes">3x</span>
1531
+ <span class="cline-any cline-yes">3x</span>
1532
+ <span class="cline-any cline-yes">2x</span>
1533
+ <span class="cline-any cline-yes">2x</span>
1534
+ <span class="cline-any cline-yes">2x</span>
1535
+ <span class="cline-any cline-yes">2x</span>
1536
+ <span class="cline-any cline-yes">2x</span>
1537
+ <span class="cline-any cline-yes">2x</span>
1538
+ <span class="cline-any cline-yes">2x</span>
1539
+ <span class="cline-any cline-yes">2x</span>
1540
+ <span class="cline-any cline-yes">2x</span>
1541
+ <span class="cline-any cline-yes">2x</span>
1542
+ <span class="cline-any cline-yes">2x</span>
1543
+ <span class="cline-any cline-no">&nbsp;</span>
1544
+ <span class="cline-any cline-no">&nbsp;</span>
1545
+ <span class="cline-any cline-no">&nbsp;</span>
1546
+ <span class="cline-any cline-yes">2x</span>
1547
+ <span class="cline-any cline-yes">2x</span>
1548
+ <span class="cline-any cline-yes">2x</span>
1549
+ <span class="cline-any cline-yes">2x</span>
1550
+ <span class="cline-any cline-yes">2x</span>
1551
+ <span class="cline-any cline-yes">2x</span>
1552
+ <span class="cline-any cline-yes">2x</span>
1553
+ <span class="cline-any cline-yes">2x</span>
1554
+ <span class="cline-any cline-yes">2x</span>
1555
+ <span class="cline-any cline-yes">2x</span>
1556
+ <span class="cline-any cline-yes">2x</span>
1557
+ <span class="cline-any cline-yes">2x</span>
1558
+ <span class="cline-any cline-yes">2x</span>
1559
+ <span class="cline-any cline-yes">2x</span>
1560
+ <span class="cline-any cline-yes">2x</span>
1561
+ <span class="cline-any cline-yes">2x</span>
1562
+ <span class="cline-any cline-yes">2x</span>
1563
+ <span class="cline-any cline-yes">2x</span>
1564
+ <span class="cline-any cline-yes">2x</span>
1565
+ <span class="cline-any cline-yes">2x</span>
1566
+ <span class="cline-any cline-yes">2x</span>
1567
+ <span class="cline-any cline-yes">2x</span>
1568
+ <span class="cline-any cline-yes">2x</span>
1569
+ <span class="cline-any cline-yes">2x</span>
1570
+ <span class="cline-any cline-yes">2x</span>
1571
+ <span class="cline-any cline-yes">2x</span>
1572
+ <span class="cline-any cline-yes">2x</span>
1573
+ <span class="cline-any cline-yes">2x</span>
1574
+ <span class="cline-any cline-yes">2x</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">2x</span>
1579
+ <span class="cline-any cline-yes">2x</span>
1580
+ <span class="cline-any cline-yes">2x</span>
1581
+ <span class="cline-any cline-yes">2x</span>
1582
+ <span class="cline-any cline-yes">2x</span>
1583
+ <span class="cline-any cline-yes">2x</span>
1584
+ <span class="cline-any cline-yes">2x</span>
1585
+ <span class="cline-any cline-yes">2x</span>
1586
+ <span class="cline-any cline-yes">2x</span>
1587
+ <span class="cline-any cline-yes">2x</span>
1588
+ <span class="cline-any cline-yes">2x</span>
1589
+ <span class="cline-any cline-no">&nbsp;</span>
1590
+ <span class="cline-any cline-yes">2x</span>
1591
+ <span class="cline-any cline-no">&nbsp;</span>
1592
+ <span class="cline-any cline-no">&nbsp;</span>
1593
+ <span class="cline-any cline-yes">2x</span>
1594
+ <span class="cline-any cline-yes">2x</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">2x</span>
1599
+ <span class="cline-any cline-yes">2x</span>
1600
+ <span class="cline-any cline-yes">2x</span>
1601
+ <span class="cline-any cline-yes">2x</span>
1602
+ <span class="cline-any cline-yes">2x</span>
1603
+ <span class="cline-any cline-yes">2x</span>
1604
+ <span class="cline-any cline-yes">2x</span>
1605
+ <span class="cline-any cline-yes">2x</span>
1606
+ <span class="cline-any cline-yes">2x</span>
1607
+ <span class="cline-any cline-yes">2x</span>
1608
+ <span class="cline-any cline-yes">2x</span>
1609
+ <span class="cline-any cline-no">&nbsp;</span>
1610
+ <span class="cline-any cline-yes">2x</span>
1611
+ <span class="cline-any cline-no">&nbsp;</span>
1612
+ <span class="cline-any cline-no">&nbsp;</span>
1613
+ <span class="cline-any cline-yes">2x</span>
1614
+ <span class="cline-any cline-yes">2x</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">12x</span>
1619
+ <span class="cline-any cline-yes">12x</span>
1620
+ <span class="cline-any cline-yes">12x</span>
1621
+ <span class="cline-any cline-yes">12x</span>
1622
+ <span class="cline-any cline-yes">12x</span>
1623
+ <span class="cline-any cline-yes">12x</span>
1624
+ <span class="cline-any cline-yes">12x</span>
1625
+ <span class="cline-any cline-yes">12x</span>
1626
+ <span class="cline-any cline-yes">12x</span>
1627
+ <span class="cline-any cline-yes">3x</span>
1628
+ <span class="cline-any cline-yes">3x</span>
1629
+ <span class="cline-any cline-yes">3x</span>
1630
+ <span class="cline-any cline-yes">3x</span>
1631
+ <span class="cline-any cline-yes">3x</span>
1632
+ <span class="cline-any cline-no">&nbsp;</span>
1633
+ <span class="cline-any cline-no">&nbsp;</span>
1634
+ <span class="cline-any cline-yes">3x</span>
1635
+ <span class="cline-any cline-yes">3x</span>
1636
+ <span class="cline-any cline-yes">3x</span>
1637
+ <span class="cline-any cline-yes">3x</span>
1638
+ <span class="cline-any cline-yes">3x</span>
1639
+ <span class="cline-any cline-yes">3x</span>
1640
+ <span class="cline-any cline-yes">9x</span>
1641
+ <span class="cline-any cline-yes">9x</span>
1642
+ <span class="cline-any cline-yes">9x</span>
1643
+ <span class="cline-any cline-yes">9x</span>
1644
+ <span class="cline-any cline-yes">9x</span>
1645
+ <span class="cline-any cline-yes">9x</span>
1646
+ <span class="cline-any cline-yes">9x</span>
1647
+ <span class="cline-any cline-yes">9x</span>
1648
+ <span class="cline-any cline-yes">9x</span>
1649
+ <span class="cline-any cline-yes">9x</span>
1650
+ <span class="cline-any cline-no">&nbsp;</span>
1651
+ <span class="cline-any cline-no">&nbsp;</span>
1652
+ <span class="cline-any cline-yes">9x</span>
1653
+ <span class="cline-any cline-yes">9x</span>
1654
+ <span class="cline-any cline-yes">9x</span>
1655
+ <span class="cline-any cline-yes">8x</span>
1656
+ <span class="cline-any cline-yes">9x</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">9x</span>
1660
+ <span class="cline-any cline-yes">12x</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">6x</span>
1665
+ <span class="cline-any cline-yes">6x</span>
1666
+ <span class="cline-any cline-yes">3x</span>
1667
+ <span class="cline-any cline-yes">3x</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">3x</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">3x</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">3x</span>
1690
+ <span class="cline-any cline-no">&nbsp;</span>
1691
+ <span class="cline-any cline-yes">3x</span>
1692
+ <span class="cline-any cline-yes">3x</span>
1693
+ <span class="cline-any cline-yes">6x</span>
1694
+ <span class="cline-any cline-yes">6x</span>
1695
+ <span class="cline-any cline-yes">6x</span>
1696
+ <span class="cline-any cline-yes">3x</span>
1697
+ <span class="cline-any cline-yes">3x</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">3x</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">3x</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">3x</span>
1720
+ <span class="cline-any cline-no">&nbsp;</span>
1721
+ <span class="cline-any cline-no">&nbsp;</span>
1722
+ <span class="cline-any cline-no">&nbsp;</span>
1723
+ <span class="cline-any cline-no">&nbsp;</span>
1724
+ <span class="cline-any cline-no">&nbsp;</span>
1725
+ <span class="cline-any cline-no">&nbsp;</span>
1726
+ <span class="cline-any cline-yes">3x</span>
1727
+ <span class="cline-any cline-no">&nbsp;</span>
1728
+ <span class="cline-any cline-yes">3x</span>
1729
+ <span class="cline-any cline-yes">3x</span>
1730
+ <span class="cline-any cline-yes">6x</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">12x</span>
1735
+ <span class="cline-any cline-yes">12x</span>
1736
+ <span class="cline-any cline-yes">12x</span>
1737
+ <span class="cline-any cline-yes">12x</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-no">&nbsp;</span>
1742
+ <span class="cline-any cline-no">&nbsp;</span>
1743
+ <span class="cline-any cline-no">&nbsp;</span>
1744
+ <span class="cline-any cline-no">&nbsp;</span>
1745
+ <span class="cline-any cline-no">&nbsp;</span>
1746
+ <span class="cline-any cline-no">&nbsp;</span>
1747
+ <span class="cline-any cline-no">&nbsp;</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">101x</span>
1752
+ <span class="cline-any cline-yes">101x</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">101x</span>
1756
+ <span class="cline-any cline-yes">101x</span>
1757
+ <span class="cline-any cline-yes">5x</span>
1758
+ <span class="cline-any cline-yes">5x</span>
1759
+ <span class="cline-any cline-yes">101x</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">22x</span>
1763
+ <span class="cline-any cline-yes">22x</span>
1764
+ <span class="cline-any cline-yes">22x</span>
1765
+ <span class="cline-any cline-yes">22x</span>
1766
+ <span class="cline-any cline-yes">22x</span>
1767
+ <span class="cline-any cline-yes">22x</span>
1768
+ <span class="cline-any cline-yes">22x</span>
1769
+ <span class="cline-any cline-yes">22x</span>
1770
+ <span class="cline-any cline-yes">22x</span>
1771
+ <span class="cline-any cline-yes">22x</span>
1772
+ <span class="cline-any cline-yes">22x</span>
1773
+ <span class="cline-any cline-yes">22x</span>
1774
+ <span class="cline-any cline-yes">22x</span>
1775
+ <span class="cline-any cline-yes">22x</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">2x</span>
1801
+ <span class="cline-any cline-yes">2x</span>
1802
+ <span class="cline-any cline-yes">2x</span>
1803
+ <span class="cline-any cline-yes">2x</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-yes">1x</span>
1887
+ <span class="cline-any cline-yes">1x</span>
1888
+ <span class="cline-any cline-yes">1x</span>
1889
+ <span class="cline-any cline-yes">1x</span>
1890
+ <span class="cline-any cline-yes">1x</span>
1891
+ <span class="cline-any cline-yes">1x</span>
1892
+ <span class="cline-any cline-yes">1x</span>
1893
+ <span class="cline-any cline-yes">1x</span>
1894
+ <span class="cline-any cline-yes">1x</span>
1895
+ <span class="cline-any cline-yes">1x</span>
1896
+ <span class="cline-any cline-yes">1x</span>
1897
+ <span class="cline-any cline-yes">1x</span>
1898
+ <span class="cline-any cline-yes">1x</span>
1899
+ <span class="cline-any cline-yes">1x</span>
1900
+ <span class="cline-any cline-yes">1x</span>
1901
+ <span class="cline-any cline-yes">1x</span>
1902
+ <span class="cline-any cline-yes">1x</span>
1903
+ <span class="cline-any cline-yes">1x</span>
1904
+ <span class="cline-any cline-yes">1x</span>
1905
+ <span class="cline-any cline-yes">1x</span>
1906
+ <span class="cline-any cline-yes">1x</span>
1907
+ <span class="cline-any cline-yes">1x</span>
1908
+ <span class="cline-any cline-yes">1x</span>
1909
+ <span class="cline-any cline-yes">1x</span>
1910
+ <span class="cline-any cline-yes">1x</span>
1911
+ <span class="cline-any cline-yes">1x</span>
1912
+ <span class="cline-any cline-yes">1x</span>
1913
+ <span class="cline-any cline-yes">1x</span>
1914
+ <span class="cline-any cline-yes">1x</span>
1915
+ <span class="cline-any cline-yes">1x</span>
1916
+ <span class="cline-any cline-yes">1x</span>
1917
+ <span class="cline-any cline-yes">1x</span>
1918
+ <span class="cline-any cline-yes">1x</span>
1919
+ <span class="cline-any cline-yes">1x</span>
1920
+ <span class="cline-any cline-yes">1x</span>
1921
+ <span class="cline-any cline-yes">1x</span>
1922
+ <span class="cline-any cline-yes">1x</span>
1923
+ <span class="cline-any cline-yes">1x</span>
1924
+ <span class="cline-any cline-yes">1x</span>
1925
+ <span class="cline-any cline-yes">1x</span>
1926
+ <span class="cline-any cline-yes">1x</span>
1927
+ <span class="cline-any cline-yes">1x</span>
1928
+ <span class="cline-any cline-yes">1x</span>
1929
+ <span class="cline-any cline-yes">1x</span>
1930
+ <span class="cline-any cline-yes">1x</span>
1931
+ <span class="cline-any cline-yes">1x</span>
1932
+ <span class="cline-any cline-yes">1x</span>
1933
+ <span class="cline-any cline-yes">1x</span>
1934
+ <span class="cline-any cline-yes">1x</span>
1935
+ <span class="cline-any cline-yes">1x</span>
1936
+ <span class="cline-any cline-yes">1x</span>
1937
+ <span class="cline-any cline-yes">1x</span>
1938
+ <span class="cline-any cline-yes">1x</span>
1939
+ <span class="cline-any cline-yes">1x</span>
1940
+ <span class="cline-any cline-yes">1x</span>
1941
+ <span class="cline-any cline-yes">1x</span>
1942
+ <span class="cline-any cline-yes">1x</span>
1943
+ <span class="cline-any cline-yes">1x</span>
1944
+ <span class="cline-any cline-yes">1x</span>
1945
+ <span class="cline-any cline-yes">1x</span>
1946
+ <span class="cline-any cline-yes">1x</span>
1947
+ <span class="cline-any cline-yes">1x</span>
1948
+ <span class="cline-any cline-yes">1x</span>
1949
+ <span class="cline-any cline-yes">1x</span>
1950
+ <span class="cline-any cline-yes">1x</span>
1951
+ <span class="cline-any cline-yes">1x</span>
1952
+ <span class="cline-any cline-yes">1x</span>
1953
+ <span class="cline-any cline-yes">1x</span>
1954
+ <span class="cline-any cline-yes">1x</span>
1955
+ <span class="cline-any cline-yes">1x</span>
1956
+ <span class="cline-any cline-yes">1x</span>
1957
+ <span class="cline-any cline-yes">1x</span>
1958
+ <span class="cline-any cline-yes">1x</span>
1959
+ <span class="cline-any cline-yes">1x</span>
1960
+ <span class="cline-any cline-yes">1x</span>
1961
+ <span class="cline-any cline-yes">1x</span>
1962
+ <span class="cline-any cline-yes">1x</span>
1963
+ <span class="cline-any cline-yes">1x</span>
1964
+ <span class="cline-any cline-yes">1x</span>
1965
+ <span class="cline-any cline-yes">1x</span>
1966
+ <span class="cline-any cline-yes">1x</span>
1967
+ <span class="cline-any cline-yes">1x</span>
1968
+ <span class="cline-any cline-yes">1x</span>
1969
+ <span class="cline-any cline-yes">1x</span>
1970
+ <span class="cline-any cline-yes">1x</span>
1971
+ <span class="cline-any cline-yes">1x</span>
1972
+ <span class="cline-any cline-yes">1x</span>
1973
+ <span class="cline-any cline-yes">1x</span>
1974
+ <span class="cline-any cline-yes">1x</span>
1975
+ <span class="cline-any cline-yes">1x</span>
1976
+ <span class="cline-any cline-yes">1x</span>
1977
+ <span class="cline-any cline-yes">1x</span>
1978
+ <span class="cline-any cline-yes">1x</span>
1979
+ <span class="cline-any cline-yes">1x</span>
1980
+ <span class="cline-any cline-yes">1x</span>
1981
+ <span class="cline-any cline-yes">1x</span>
1982
+ <span class="cline-any cline-yes">1x</span>
1983
+ <span class="cline-any cline-yes">1x</span>
1984
+ <span class="cline-any cline-yes">1x</span>
1985
+ <span class="cline-any cline-yes">1x</span>
1986
+ <span class="cline-any cline-yes">1x</span>
1987
+ <span class="cline-any cline-yes">1x</span>
1988
+ <span class="cline-any cline-yes">1x</span>
1989
+ <span class="cline-any cline-yes">1x</span>
1990
+ <span class="cline-any cline-yes">1x</span>
1991
+ <span class="cline-any cline-yes">1x</span>
1992
+ <span class="cline-any cline-yes">1x</span>
1993
+ <span class="cline-any cline-yes">1x</span>
1994
+ <span class="cline-any cline-yes">1x</span>
1995
+ <span class="cline-any cline-yes">1x</span>
1996
+ <span class="cline-any cline-yes">1x</span>
1997
+ <span class="cline-any cline-yes">1x</span>
1998
+ <span class="cline-any cline-yes">1x</span>
1999
+ <span class="cline-any cline-yes">1x</span>
2000
+ <span class="cline-any cline-yes">1x</span>
2001
+ <span class="cline-any cline-yes">1x</span>
2002
+ <span class="cline-any cline-yes">1x</span>
2003
+ <span class="cline-any cline-yes">1x</span>
2004
+ <span class="cline-any cline-yes">1x</span>
2005
+ <span class="cline-any cline-yes">1x</span>
2006
+ <span class="cline-any cline-yes">1x</span>
2007
+ <span class="cline-any cline-yes">1x</span>
2008
+ <span class="cline-any cline-yes">1x</span>
2009
+ <span class="cline-any cline-yes">1x</span>
2010
+ <span class="cline-any cline-yes">1x</span>
2011
+ <span class="cline-any cline-yes">1x</span>
2012
+ <span class="cline-any cline-yes">1x</span>
2013
+ <span class="cline-any cline-yes">1x</span>
2014
+ <span class="cline-any cline-yes">1x</span>
2015
+ <span class="cline-any cline-yes">1x</span>
2016
+ <span class="cline-any cline-yes">1x</span>
2017
+ <span class="cline-any cline-yes">1x</span>
2018
+ <span class="cline-any cline-yes">1x</span>
2019
+ <span class="cline-any cline-yes">1x</span>
2020
+ <span class="cline-any cline-yes">1x</span>
2021
+ <span class="cline-any cline-yes">1x</span>
2022
+ <span class="cline-any cline-yes">1x</span>
2023
+ <span class="cline-any cline-yes">1x</span>
2024
+ <span class="cline-any cline-yes">1x</span>
2025
+ <span class="cline-any cline-yes">1x</span>
2026
+ <span class="cline-any cline-yes">1x</span>
2027
+ <span class="cline-any cline-yes">1x</span>
2028
+ <span class="cline-any cline-yes">1x</span>
2029
+ <span class="cline-any cline-yes">1x</span>
2030
+ <span class="cline-any cline-yes">1x</span>
2031
+ <span class="cline-any cline-yes">1x</span>
2032
+ <span class="cline-any cline-yes">1x</span>
2033
+ <span class="cline-any cline-yes">1x</span>
2034
+ <span class="cline-any cline-yes">1x</span>
2035
+ <span class="cline-any cline-yes">1x</span>
2036
+ <span class="cline-any cline-yes">1x</span>
2037
+ <span class="cline-any cline-yes">1x</span>
2038
+ <span class="cline-any cline-yes">1x</span>
2039
+ <span class="cline-any cline-yes">1x</span>
2040
+ <span class="cline-any cline-yes">1x</span>
2041
+ <span class="cline-any cline-yes">1x</span>
2042
+ <span class="cline-any cline-yes">1x</span>
2043
+ <span class="cline-any cline-yes">1x</span>
2044
+ <span class="cline-any cline-yes">1x</span>
2045
+ <span class="cline-any cline-yes">1x</span>
2046
+ <span class="cline-any cline-yes">1x</span>
2047
+ <span class="cline-any cline-yes">1x</span>
2048
+ <span class="cline-any cline-yes">1x</span>
2049
+ <span class="cline-any cline-yes">1x</span>
2050
+ <span class="cline-any cline-yes">1x</span>
2051
+ <span class="cline-any cline-yes">1x</span>
2052
+ <span class="cline-any cline-yes">1x</span>
2053
+ <span class="cline-any cline-yes">1x</span>
2054
+ <span class="cline-any cline-yes">1x</span>
2055
+ <span class="cline-any cline-yes">1x</span>
2056
+ <span class="cline-any cline-yes">1x</span>
2057
+ <span class="cline-any cline-yes">1x</span>
2058
+ <span class="cline-any cline-yes">1x</span>
2059
+ <span class="cline-any cline-yes">1x</span>
2060
+ <span class="cline-any cline-yes">1x</span>
2061
+ <span class="cline-any cline-yes">1x</span>
2062
+ <span class="cline-any cline-yes">1x</span>
2063
+ <span class="cline-any cline-yes">1x</span>
2064
+ <span class="cline-any cline-yes">1x</span>
2065
+ <span class="cline-any cline-yes">1x</span>
2066
+ <span class="cline-any cline-yes">1x</span>
2067
+ <span class="cline-any cline-yes">1x</span>
2068
+ <span class="cline-any cline-yes">1x</span>
2069
+ <span class="cline-any cline-yes">1x</span>
2070
+ <span class="cline-any cline-yes">1x</span>
2071
+ <span class="cline-any cline-yes">1x</span>
2072
+ <span class="cline-any cline-yes">1x</span>
2073
+ <span class="cline-any cline-yes">1x</span>
2074
+ <span class="cline-any cline-yes">1x</span>
2075
+ <span class="cline-any cline-yes">1x</span>
2076
+ <span class="cline-any cline-yes">1x</span>
2077
+ <span class="cline-any cline-yes">1x</span>
2078
+ <span class="cline-any cline-yes">1x</span>
2079
+ <span class="cline-any cline-yes">1x</span>
2080
+ <span class="cline-any cline-yes">1x</span>
2081
+ <span class="cline-any cline-yes">1x</span>
2082
+ <span class="cline-any cline-yes">1x</span>
2083
+ <span class="cline-any cline-yes">1x</span>
2084
+ <span class="cline-any cline-yes">1x</span>
2085
+ <span class="cline-any cline-yes">1x</span>
2086
+ <span class="cline-any cline-yes">1x</span>
2087
+ <span class="cline-any cline-yes">1x</span>
2088
+ <span class="cline-any cline-yes">1x</span>
2089
+ <span class="cline-any cline-yes">1x</span>
2090
+ <span class="cline-any cline-yes">1x</span>
2091
+ <span class="cline-any cline-yes">1x</span>
2092
+ <span class="cline-any cline-yes">1x</span>
2093
+ <span class="cline-any cline-yes">1x</span>
2094
+ <span class="cline-any cline-yes">1x</span>
2095
+ <span class="cline-any cline-yes">1x</span>
2096
+ <span class="cline-any cline-yes">1x</span>
2097
+ <span class="cline-any cline-yes">1x</span>
2098
+ <span class="cline-any cline-yes">1x</span>
2099
+ <span class="cline-any cline-yes">1x</span>
2100
+ <span class="cline-any cline-yes">1x</span>
2101
+ <span class="cline-any cline-yes">1x</span>
2102
+ <span class="cline-any cline-yes">1x</span>
2103
+ <span class="cline-any cline-yes">1x</span>
2104
+ <span class="cline-any cline-yes">1x</span>
2105
+ <span class="cline-any cline-yes">1x</span>
2106
+ <span class="cline-any cline-yes">1x</span>
2107
+ <span class="cline-any cline-yes">1x</span>
2108
+ <span class="cline-any cline-yes">1x</span>
2109
+ <span class="cline-any cline-yes">1x</span>
2110
+ <span class="cline-any cline-yes">1x</span>
2111
+ <span class="cline-any cline-yes">1x</span>
2112
+ <span class="cline-any cline-yes">1x</span>
2113
+ <span class="cline-any cline-yes">1x</span>
2114
+ <span class="cline-any cline-yes">1x</span>
2115
+ <span class="cline-any cline-yes">1x</span>
2116
+ <span class="cline-any cline-yes">1x</span>
2117
+ <span class="cline-any cline-yes">1x</span>
2118
+ <span class="cline-any cline-yes">1x</span>
2119
+ <span class="cline-any cline-yes">1x</span>
2120
+ <span class="cline-any cline-yes">1x</span>
2121
+ <span class="cline-any cline-yes">1x</span>
2122
+ <span class="cline-any cline-yes">1x</span>
2123
+ <span class="cline-any cline-yes">1x</span>
2124
+ <span class="cline-any cline-yes">1x</span>
2125
+ <span class="cline-any cline-yes">1x</span>
2126
+ <span class="cline-any cline-yes">1x</span>
2127
+ <span class="cline-any cline-yes">1x</span>
2128
+ <span class="cline-any cline-yes">1x</span>
2129
+ <span class="cline-any cline-yes">1x</span>
2130
+ <span class="cline-any cline-yes">1x</span>
2131
+ <span class="cline-any cline-yes">1x</span>
2132
+ <span class="cline-any cline-yes">1x</span>
2133
+ <span class="cline-any cline-yes">1x</span>
2134
+ <span class="cline-any cline-yes">1x</span>
2135
+ <span class="cline-any cline-yes">1x</span>
2136
+ <span class="cline-any cline-yes">1x</span>
2137
+ <span class="cline-any cline-yes">1x</span>
2138
+ <span class="cline-any cline-yes">1x</span>
2139
+ <span class="cline-any cline-yes">1x</span>
2140
+ <span class="cline-any cline-yes">1x</span>
2141
+ <span class="cline-any cline-yes">1x</span>
2142
+ <span class="cline-any cline-yes">1x</span>
2143
+ <span class="cline-any cline-yes">1x</span>
2144
+ <span class="cline-any cline-yes">1x</span>
2145
+ <span class="cline-any cline-yes">1x</span>
2146
+ <span class="cline-any cline-yes">1x</span>
2147
+ <span class="cline-any cline-yes">1x</span>
2148
+ <span class="cline-any cline-yes">1x</span>
2149
+ <span class="cline-any cline-yes">1x</span>
2150
+ <span class="cline-any cline-yes">1x</span>
2151
+ <span class="cline-any cline-yes">1x</span>
2152
+ <span class="cline-any cline-yes">1x</span>
2153
+ <span class="cline-any cline-yes">1x</span>
2154
+ <span class="cline-any cline-yes">1x</span>
2155
+ <span class="cline-any cline-yes">1x</span>
2156
+ <span class="cline-any cline-yes">1x</span>
2157
+ <span class="cline-any cline-yes">1x</span>
2158
+ <span class="cline-any cline-yes">1x</span>
2159
+ <span class="cline-any cline-yes">1x</span>
2160
+ <span class="cline-any cline-yes">1x</span>
2161
+ <span class="cline-any cline-yes">1x</span>
2162
+ <span class="cline-any cline-yes">1x</span>
2163
+ <span class="cline-any cline-yes">1x</span>
2164
+ <span class="cline-any cline-yes">1x</span>
2165
+ <span class="cline-any cline-yes">1x</span>
2166
+ <span class="cline-any cline-yes">1x</span>
2167
+ <span class="cline-any cline-yes">1x</span>
2168
+ <span class="cline-any cline-yes">1x</span>
2169
+ <span class="cline-any cline-yes">1x</span>
2170
+ <span class="cline-any cline-yes">1x</span>
2171
+ <span class="cline-any cline-yes">1x</span>
2172
+ <span class="cline-any cline-yes">1x</span>
2173
+ <span class="cline-any cline-yes">1x</span>
2174
+ <span class="cline-any cline-yes">1x</span>
2175
+ <span class="cline-any cline-yes">1x</span>
2176
+ <span class="cline-any cline-yes">1x</span>
2177
+ <span class="cline-any cline-yes">1x</span>
2178
+ <span class="cline-any cline-yes">1x</span>
2179
+ <span class="cline-any cline-yes">1x</span>
2180
+ <span class="cline-any cline-yes">1x</span>
2181
+ <span class="cline-any cline-yes">1x</span>
2182
+ <span class="cline-any cline-yes">1x</span>
2183
+ <span class="cline-any cline-yes">1x</span>
2184
+ <span class="cline-any cline-yes">1x</span>
2185
+ <span class="cline-any cline-yes">1x</span>
2186
+ <span class="cline-any cline-yes">1x</span>
2187
+ <span class="cline-any cline-yes">1x</span>
2188
+ <span class="cline-any cline-yes">1x</span>
2189
+ <span class="cline-any cline-yes">1x</span>
2190
+ <span class="cline-any cline-yes">1x</span>
2191
+ <span class="cline-any cline-yes">1x</span>
2192
+ <span class="cline-any cline-yes">1x</span>
2193
+ <span class="cline-any cline-yes">1x</span>
2194
+ <span class="cline-any cline-yes">1x</span>
2195
+ <span class="cline-any cline-yes">1x</span>
2196
+ <span class="cline-any cline-yes">1x</span>
2197
+ <span class="cline-any cline-yes">1x</span>
2198
+ <span class="cline-any cline-yes">1x</span>
2199
+ <span class="cline-any cline-yes">1x</span>
2200
+ <span class="cline-any cline-yes">1x</span>
2201
+ <span class="cline-any cline-yes">1x</span>
2202
+ <span class="cline-any cline-yes">1x</span>
2203
+ <span class="cline-any cline-yes">1x</span>
2204
+ <span class="cline-any cline-yes">1x</span>
2205
+ <span class="cline-any cline-yes">1x</span>
2206
+ <span class="cline-any cline-yes">1x</span>
2207
+ <span class="cline-any cline-yes">1x</span>
2208
+ <span class="cline-any cline-yes">1x</span>
2209
+ <span class="cline-any cline-yes">1x</span>
2210
+ <span class="cline-any cline-yes">1x</span>
2211
+ <span class="cline-any cline-yes">1x</span>
2212
+ <span class="cline-any cline-yes">1x</span>
2213
+ <span class="cline-any cline-yes">1x</span>
2214
+ <span class="cline-any cline-yes">1x</span>
2215
+ <span class="cline-any cline-yes">1x</span>
2216
+ <span class="cline-any cline-yes">1x</span>
2217
+ <span class="cline-any cline-yes">1x</span>
2218
+ <span class="cline-any cline-yes">1x</span>
2219
+ <span class="cline-any cline-yes">1x</span>
2220
+ <span class="cline-any cline-yes">1x</span>
2221
+ <span class="cline-any cline-yes">1x</span>
2222
+ <span class="cline-any cline-yes">1x</span>
2223
+ <span class="cline-any cline-yes">1x</span>
2224
+ <span class="cline-any cline-yes">1x</span>
2225
+ <span class="cline-any cline-yes">1x</span>
2226
+ <span class="cline-any cline-yes">1x</span>
2227
+ <span class="cline-any cline-yes">1x</span>
2228
+ <span class="cline-any cline-yes">1x</span>
2229
+ <span class="cline-any cline-yes">1x</span>
2230
+ <span class="cline-any cline-yes">1x</span>
2231
+ <span class="cline-any cline-yes">1x</span>
2232
+ <span class="cline-any cline-yes">1x</span>
2233
+ <span class="cline-any cline-yes">1x</span>
2234
+ <span class="cline-any cline-yes">1x</span>
2235
+ <span class="cline-any cline-yes">1x</span>
2236
+ <span class="cline-any cline-yes">1x</span>
2237
+ <span class="cline-any cline-yes">1x</span>
2238
+ <span class="cline-any cline-yes">1x</span>
2239
+ <span class="cline-any cline-yes">1x</span>
2240
+ <span class="cline-any cline-yes">1x</span>
2241
+ <span class="cline-any cline-yes">1x</span>
2242
+ <span class="cline-any cline-yes">1x</span>
2243
+ <span class="cline-any cline-yes">1x</span>
2244
+ <span class="cline-any cline-yes">1x</span>
2245
+ <span class="cline-any cline-yes">1x</span>
2246
+ <span class="cline-any cline-yes">1x</span>
2247
+ <span class="cline-any cline-yes">1x</span>
2248
+ <span class="cline-any cline-yes">1x</span>
2249
+ <span class="cline-any cline-yes">1x</span>
2250
+ <span class="cline-any cline-yes">1x</span>
2251
+ <span class="cline-any cline-yes">1x</span>
2252
+ <span class="cline-any cline-yes">1x</span>
2253
+ <span class="cline-any cline-yes">1x</span>
2254
+ <span class="cline-any cline-yes">1x</span>
2255
+ <span class="cline-any cline-yes">1x</span>
2256
+ <span class="cline-any cline-yes">1x</span>
2257
+ <span class="cline-any cline-yes">1x</span>
2258
+ <span class="cline-any cline-yes">1x</span>
2259
+ <span class="cline-any cline-yes">1x</span>
2260
+ <span class="cline-any cline-yes">1x</span>
2261
+ <span class="cline-any cline-yes">1x</span>
2262
+ <span class="cline-any cline-yes">1x</span>
2263
+ <span class="cline-any cline-yes">1x</span>
2264
+ <span class="cline-any cline-yes">1x</span>
2265
+ <span class="cline-any cline-yes">1x</span>
2266
+ <span class="cline-any cline-yes">1x</span>
2267
+ <span class="cline-any cline-yes">1x</span>
2268
+ <span class="cline-any cline-yes">1x</span>
2269
+ <span class="cline-any cline-yes">1x</span>
2270
+ <span class="cline-any cline-yes">1x</span>
2271
+ <span class="cline-any cline-yes">1x</span>
2272
+ <span class="cline-any cline-yes">1x</span>
2273
+ <span class="cline-any cline-yes">1x</span>
2274
+ <span class="cline-any cline-yes">1x</span>
2275
+ <span class="cline-any cline-yes">1x</span>
2276
+ <span class="cline-any cline-yes">1x</span>
2277
+ <span class="cline-any cline-yes">1x</span>
2278
+ <span class="cline-any cline-yes">1x</span>
2279
+ <span class="cline-any cline-yes">1x</span>
2280
+ <span class="cline-any cline-yes">1x</span>
2281
+ <span class="cline-any cline-yes">1x</span>
2282
+ <span class="cline-any cline-yes">1x</span>
2283
+ <span class="cline-any cline-yes">1x</span>
2284
+ <span class="cline-any cline-yes">1x</span>
2285
+ <span class="cline-any cline-yes">1x</span>
2286
+ <span class="cline-any cline-yes">1x</span>
2287
+ <span class="cline-any cline-yes">1x</span>
2288
+ <span class="cline-any cline-yes">1x</span>
2289
+ <span class="cline-any cline-yes">1x</span>
2290
+ <span class="cline-any cline-yes">1x</span>
2291
+ <span class="cline-any cline-yes">1x</span>
2292
+ <span class="cline-any cline-yes">1x</span>
2293
+ <span class="cline-any cline-yes">1x</span>
2294
+ <span class="cline-any cline-yes">1x</span>
2295
+ <span class="cline-any cline-yes">1x</span>
2296
+ <span class="cline-any cline-yes">1x</span>
2297
+ <span class="cline-any cline-yes">1x</span>
2298
+ <span class="cline-any cline-yes">1x</span>
2299
+ <span class="cline-any cline-yes">1x</span>
2300
+ <span class="cline-any cline-yes">1x</span>
2301
+ <span class="cline-any cline-yes">1x</span>
2302
+ <span class="cline-any cline-yes">1x</span>
2303
+ <span class="cline-any cline-yes">1x</span>
2304
+ <span class="cline-any cline-yes">1x</span>
2305
+ <span class="cline-any cline-yes">1x</span>
2306
+ <span class="cline-any cline-yes">1x</span>
2307
+ <span class="cline-any cline-yes">1x</span>
2308
+ <span class="cline-any cline-yes">1x</span>
2309
+ <span class="cline-any cline-yes">1x</span>
2310
+ <span class="cline-any cline-yes">1x</span>
2311
+ <span class="cline-any cline-yes">1x</span>
2312
+ <span class="cline-any cline-yes">1x</span>
2313
+ <span class="cline-any cline-yes">1x</span>
2314
+ <span class="cline-any cline-yes">1x</span>
2315
+ <span class="cline-any cline-yes">1x</span>
2316
+ <span class="cline-any cline-yes">1x</span>
2317
+ <span class="cline-any cline-yes">1x</span>
2318
+ <span class="cline-any cline-yes">1x</span>
2319
+ <span class="cline-any cline-yes">1x</span>
2320
+ <span class="cline-any cline-yes">1x</span>
2321
+ <span class="cline-any cline-yes">1x</span>
2322
+ <span class="cline-any cline-yes">1x</span>
2323
+ <span class="cline-any cline-yes">1x</span>
2324
+ <span class="cline-any cline-yes">1x</span>
2325
+ <span class="cline-any cline-yes">1x</span>
2326
+ <span class="cline-any cline-yes">1x</span>
2327
+ <span class="cline-any cline-yes">1x</span>
2328
+ <span class="cline-any cline-yes">1x</span>
2329
+ <span class="cline-any cline-yes">1x</span>
2330
+ <span class="cline-any cline-yes">1x</span>
2331
+ <span class="cline-any cline-yes">1x</span>
2332
+ <span class="cline-any cline-yes">1x</span>
2333
+ <span class="cline-any cline-yes">1x</span>
2334
+ <span class="cline-any cline-yes">1x</span>
2335
+ <span class="cline-any cline-yes">1x</span>
2336
+ <span class="cline-any cline-yes">1x</span>
2337
+ <span class="cline-any cline-yes">1x</span>
2338
+ <span class="cline-any cline-yes">1x</span>
2339
+ <span class="cline-any cline-yes">1x</span>
2340
+ <span class="cline-any cline-yes">1x</span>
2341
+ <span class="cline-any cline-yes">1x</span>
2342
+ <span class="cline-any cline-yes">1x</span>
2343
+ <span class="cline-any cline-yes">1x</span>
2344
+ <span class="cline-any cline-yes">1x</span>
2345
+ <span class="cline-any cline-yes">1x</span>
2346
+ <span class="cline-any cline-yes">1x</span>
2347
+ <span class="cline-any cline-yes">1x</span>
2348
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;script setup&gt;
2349
+ import { debounce } from "st-func";
2350
+ import { InfoFilled } from "@element-plus/icons-vue";
2351
+ import { ref, onMounted, onUnmounted, nextTick, inject } from "vue";
2352
+ import { extractVariables } from "./tools";
2353
+ import * as monaco from "monaco-editor/esm/vs/editor/editor.api";
2354
+ import "monaco-editor/esm/vs/basic-languages/python/python.contribution";
2355
+ import "monaco-editor/esm/vs/basic-languages/lua/lua.contribution";
2356
+ import VarietySelect from "../VarSelectDialog/VarietySelect.vue";
2357
+ &nbsp;
2358
+ const { request } = inject("stConfig"); // 组件库全局配置
2359
+ &nbsp;
2360
+ const emit = defineEmits(["change"]);
2361
+ const props = defineProps({
2362
+ // 编辑器相关参数
2363
+ defaultValue: {
2364
+ type: String,
2365
+ default: "",
2366
+ },
2367
+ language: {
2368
+ type: String,
2369
+ default: "python",
2370
+ },
2371
+ theme: {
2372
+ type: String,
2373
+ default: "vs-dark",
2374
+ },
2375
+ // 自定义函数建议列表开关
2376
+ suggestionEnable: {
2377
+ type: Boolean,
2378
+ default: false,
2379
+ },
2380
+ // 变量列表开关
2381
+ variableEnable: {
2382
+ type: Boolean,
2383
+ default: false,
2384
+ },
2385
+ // 变量列表类型
2386
+ useCase: {
2387
+ type: String,
2388
+ default: "1", // 1-选股, 2-回测
2389
+ },
2390
+ });
2391
+ &nbsp;
2392
+ let editorInstance = null;
2393
+ let lastCursorPosition = null;
2394
+ const editorContainer = ref(null);
2395
+ &nbsp;
2396
+ // 建议项相关参数
2397
+ const suggestions = ref([]);
2398
+ const suggestionIndex = ref(-1);
2399
+ const suggestionBoxRef = ref(null);
2400
+ const isShowingSuggestions = ref(false);
2401
+ &nbsp;
2402
+ // 变量列表相关参数
2403
+ const variables = ref([]);
2404
+ const variableIndex = ref(-1);
2405
+ const variableBoxRef = ref(null);
2406
+ const isShowingVariables = ref(false);
2407
+ const currentVarName = ref(null);
2408
+ const currentFormatList = ref([]);
2409
+ const currentKeyword = ref("");
2410
+ &nbsp;
2411
+ // 变量数据源
2412
+ const varList = ref([]);
2413
+ &nbsp;
2414
+ // 格式化配置项的下拉框数据源
2415
+ const handleOptionsStrToArray = (str) =&gt; {
2416
+ const trimmedStr = str.replace(/^\[|\]$/g, "");
2417
+ const items = trimmedStr.split("],[");
2418
+ &nbsp;
2419
+ return items.map((item) =&gt; {
2420
+ const cleanItem = item.replace(/\[|\]/g, "");
2421
+ const [label, value] = cleanItem.split(",");
2422
+ &nbsp;
2423
+ return {
2424
+ label: label.trim(),
2425
+ value: value.trim(),
2426
+ };
2427
+ });
2428
+ };
2429
+ &nbsp;
2430
+ // 获取变量列表数据
2431
+ const fetchVariables = async () =&gt; {
2432
+ if (!props.variableEnable) return;
2433
+ try {
2434
+ const { body } = await request.post("/common/conf/queryAllBackVariables", { useCase: props.useCase });
2435
+ varList.value = body <span class="branch-0 cbranch-no" title="branch not covered" >?? [];</span>
2436
+ } catch (error) {
2437
+ console.error("获取变量列表失败:", error);
2438
+ }
2439
+ };
2440
+ &nbsp;
2441
+ // [变量列表] 数据筛选
2442
+ const getVariables = debounce(async (keyword = "") =&gt; {
2443
+ if (!props.variableEnable) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2444
+ &nbsp;
2445
+ currentKeyword.value = keyword;
2446
+ &nbsp;
2447
+ // 根据关键字筛选变量名
2448
+ const filtered = varList.value.filter(({ varName }) =&gt; varName.toLowerCase().includes(keyword.toLowerCase()));
2449
+ &nbsp;
2450
+ if (filtered.length &gt; 0) {
2451
+ showVariables(filtered);
2452
+ }<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
2453
+ <span class="cstat-no" title="statement not covered" > hideVariables();</span>
2454
+ <span class="cstat-no" title="statement not covered" > }</span>
2455
+ }, 200);
2456
+ &nbsp;
2457
+ // [变量列表] 展示
2458
+ const showVariables = async (options) =&gt; {
2459
+ if (!props.variableEnable) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2460
+ variables.value = options;
2461
+ variableIndex.value = options.length &gt; 0 ? 0 <span class="branch-0 cbranch-no" title="branch not covered" >: -1;</span>
2462
+ isShowingVariables.value = true;
2463
+ &nbsp;
2464
+ // 如果有选中项,更新其格式列表
2465
+ if (variableIndex.value !== -1) {
2466
+ updateCurrentFormatList();
2467
+ }
2468
+ &nbsp;
2469
+ updateVariableBoxPosition();
2470
+ };
2471
+ &nbsp;
2472
+ // [变量列表] 隐藏
2473
+ const hideVariables = () =&gt; {
2474
+ if (!props.variableEnable) return;
2475
+ variables.value = [];
2476
+ variableIndex.value = -1;
2477
+ isShowingVariables.value = false;
2478
+ currentVarName.value = null;
2479
+ currentFormatList.value = [];
2480
+ };
2481
+ &nbsp;
2482
+ // [变量列表] 更新当前选中变量的格式列表
2483
+ const updateCurrentFormatList = () =&gt; {
2484
+ if (variableIndex.value === -1 || !variables.value[variableIndex.value]) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2485
+ &nbsp;
2486
+ const selectedVar = variables.value[variableIndex.value];
2487
+ currentVarName.value = selectedVar.varName;
2488
+ currentFormatList.value = selectedVar.formatList <span class="branch-0 cbranch-no" title="branch not covered" >?? [];</span>
2489
+ };
2490
+ &nbsp;
2491
+ // [变量列表] 更新DOM位置
2492
+ const updateVariableBoxPosition = () =&gt; {
2493
+ if (!props.variableEnable) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2494
+ nextTick(() =&gt; {
2495
+ if (!editorInstance || !variableBoxRef.value) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2496
+ const position = editorInstance.getPosition();
2497
+ const cursorCoords = editorInstance.getScrolledVisiblePosition(position);
2498
+ &nbsp;
2499
+ if (cursorCoords) {
2500
+ const editorDom = editorInstance.getDomNode();
2501
+ const editorRect = editorDom.getBoundingClientRect();
2502
+ &nbsp;
2503
+ // 计算相对于编辑器容器的位置(在光标右侧,但比建议列表低一些)
2504
+ const left = cursorCoords.left + editorRect.left + 40;
2505
+ const top = cursorCoords.top + editorRect.top + cursorCoords.height + 5;
2506
+ &nbsp;
2507
+ variableBoxRef.value.style.left = `${left}px`;
2508
+ variableBoxRef.value.style.top = `${top}px`;
2509
+ }
2510
+ });
2511
+ };
2512
+ &nbsp;
2513
+ // [变量列表] 插入变量内容
2514
+ const insertVariableContent = (configList) =&gt; {
2515
+ if (!editorInstance) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2516
+ &nbsp;
2517
+ // 1.校验是否填写完整 + 生成输出值
2518
+ const result = [];
2519
+ for (let index = 0; index &lt; configList.length; index++) {
2520
+ const item = configList[index];
2521
+ switch (item.vtype) {
2522
+ case "text": {
2523
+ result.push(item.param);
2524
+ break;
2525
+ }
2526
+ default: {
2527
+ if (!item.modelValue) {
2528
+ ElMessage.error("请检查插入格式内是否填写完整");
2529
+ return;
2530
+ }
2531
+ let formatValue = item.modelValue;
2532
+ if (item.prefix) formatValue = `${item.prefix}${formatValue}`;
2533
+ if (item.suffix) formatValue = `${formatValue}${item.suffix}`;
2534
+ result.push(formatValue);
2535
+ break;
2536
+ }
2537
+ }
2538
+ }
2539
+ &nbsp;
2540
+ // 2.插入内容
2541
+ const content = result.join("_");
2542
+ const position = editorInstance.getPosition();
2543
+ &nbsp;
2544
+ const currentValue = editorInstance.getValue();
2545
+ const lines = currentValue.split("\n");
2546
+ &nbsp;
2547
+ // 如果光标位置有效
2548
+ if (position.lineNumber &lt;= lines.length) {
2549
+ const lineIndex = position.lineNumber - 1;
2550
+ const line = lines[lineIndex];
2551
+ const columnIndex = position.column - 1;
2552
+ &nbsp;
2553
+ // 获取光标前后的字符
2554
+ const prevChar = columnIndex &gt; 0 ? line[columnIndex - 1] <span class="branch-0 cbranch-no" title="branch not covered" >: "";</span>
2555
+ const nextChar = columnIndex &lt; line.length ? line[columnIndex] : "";
2556
+ &nbsp;
2557
+ // 检测是否需要添加空格
2558
+ let contentToInsert = content;
2559
+ &nbsp;
2560
+ // 如果前面有内容且不是空格或行首,在前面添加空格
2561
+ if (prevChar &amp;&amp; prevChar !== " " &amp;&amp; !/[\s({[ ]/.test(prevChar)) {
2562
+ contentToInsert = " " + contentToInsert;
2563
+ }
2564
+ &nbsp;
2565
+ // 如果后面有内容且不是空格或行尾,在后面添加空格
2566
+ if (nextChar &amp;&amp; nextChar !== " " &amp;&amp; !/[\s)}\]]/.test(nextChar)) {
2567
+ contentToInsert = contentToInsert + " ";
2568
+ }
2569
+ &nbsp;
2570
+ // 获取当前光标前的单词范围(用于替换)
2571
+ const wordUntilPosition = editorInstance.getModel().getWordUntilPosition(position);
2572
+ &nbsp;
2573
+ // 如果当前有正在输入的变量名,替换整个单词
2574
+ const startPosition = {
2575
+ lineNumber: position.lineNumber,
2576
+ column: wordUntilPosition.startColumn,
2577
+ };
2578
+ &nbsp;
2579
+ const endPosition = {
2580
+ lineNumber: position.lineNumber,
2581
+ column: position.column,
2582
+ };
2583
+ &nbsp;
2584
+ // 执行编辑操作
2585
+ editorInstance.executeEdits("variable-insert", [
2586
+ {
2587
+ range: new monaco.Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column),
2588
+ text: contentToInsert,
2589
+ forceMoveMarkers: true,
2590
+ },
2591
+ ]);
2592
+ &nbsp;
2593
+ // 将光标移动到插入内容之后
2594
+ const newColumn = startPosition.column + contentToInsert.length;
2595
+ editorInstance.setPosition({
2596
+ lineNumber: position.lineNumber,
2597
+ column: newColumn,
2598
+ });
2599
+ editorInstance.focus();
2600
+ }
2601
+ &nbsp;
2602
+ // 插入后保持变量列表显示(不关闭)
2603
+ };
2604
+ &nbsp;
2605
+ // [建议列表] 数据获取
2606
+ const getSuggestions = debounce(async (keyword = "") =&gt; {
2607
+ if (!props.suggestionEnable) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2608
+ try {
2609
+ const { body } = await request.post("/common/qt/querySearchFunctions");
2610
+ const result = body.filter(({ funcName }) =&gt; funcName.toLowerCase().includes(keyword.toLowerCase()));
2611
+ if (result.length &gt; 0) {
2612
+ showSuggestions(result);
2613
+ }<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
2614
+ <span class="cstat-no" title="statement not covered" > hideSuggestions();</span>
2615
+ <span class="cstat-no" title="statement not covered" > }</span>
2616
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
2617
+ <span class="cstat-no" title="statement not covered" > console.error("获取自定义函数失败:", error);</span>
2618
+ <span class="cstat-no" title="statement not covered" > hideSuggestions();</span>
2619
+ <span class="cstat-no" title="statement not covered" > }</span>
2620
+ }, 200);
2621
+ &nbsp;
2622
+ // [建议列表] 展示
2623
+ const showSuggestions = async (options) =&gt; {
2624
+ if (!props.suggestionEnable) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2625
+ suggestions.value = options;
2626
+ suggestionIndex.value = options.length &gt; 0 ? 0 <span class="branch-0 cbranch-no" title="branch not covered" >: -1;</span>
2627
+ isShowingSuggestions.value = true;
2628
+ updateSuggestionBoxPosition();
2629
+ };
2630
+ &nbsp;
2631
+ // [建议列表] 隐藏
2632
+ const hideSuggestions = () =&gt; {
2633
+ if (!props.suggestionEnable) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2634
+ suggestions.value = [];
2635
+ suggestionIndex.value = -1;
2636
+ isShowingSuggestions.value = false;
2637
+ };
2638
+ &nbsp;
2639
+ // [建议列表] 更新DOM位置
2640
+ const updateSuggestionBoxPosition = () =&gt; {
2641
+ if (!props.suggestionEnable) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2642
+ nextTick(() =&gt; {
2643
+ if (!editorInstance || !suggestionBoxRef.value) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2644
+ const position = editorInstance.getPosition();
2645
+ const cursorCoords = editorInstance.getScrolledVisiblePosition(position);
2646
+ &nbsp;
2647
+ if (cursorCoords) {
2648
+ const editorDom = editorInstance.getDomNode();
2649
+ const editorRect = editorDom.getBoundingClientRect();
2650
+ &nbsp;
2651
+ const left = cursorCoords.left + editorRect.left + 40;
2652
+ const top = cursorCoords.top + editorRect.top + cursorCoords.height;
2653
+ &nbsp;
2654
+ suggestionBoxRef.value.style.left = `${left}px`;
2655
+ suggestionBoxRef.value.style.top = `${top}px`;
2656
+ }
2657
+ });
2658
+ };
2659
+ &nbsp;
2660
+ // [建议列表] 插入内容到编辑器
2661
+ const insertSelectedSuggestion = () =&gt; {
2662
+ if (!props.suggestionEnable) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2663
+ if (suggestionIndex.value === -1 || !suggestions.value[suggestionIndex.value]) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2664
+ &nbsp;
2665
+ const { funcName, funcExpression } = suggestions.value[suggestionIndex.value];
2666
+ let content = funcName;
2667
+ const varArray = extractVariables(funcExpression);
2668
+ if (varArray.length) {
2669
+ const str = varArray.reduce((result, item, index, arry) =&gt; {
2670
+ result += `${item}=`;
2671
+ if (index &lt; arry.length - 1) result += ",";
2672
+ return result;
2673
+ }, "");
2674
+ content = `${content}(${str})`;
2675
+ }
2676
+ &nbsp;
2677
+ const currentPosition = editorInstance.getPosition();
2678
+ &nbsp;
2679
+ const model = editorInstance.getModel();
2680
+ const lineContent = model.getLineContent(currentPosition.lineNumber);
2681
+ &nbsp;
2682
+ const hashIndex = lineContent.lastIndexOf("#", currentPosition.column - 2);
2683
+ if (hashIndex === -1) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2684
+ <span class="cstat-no" title="statement not covered" > hideSuggestions();</span>
2685
+ <span class="cstat-no" title="statement not covered" > return;</span>
2686
+ <span class="cstat-no" title="statement not covered" > }</span>
2687
+ &nbsp;
2688
+ const startPosition = {
2689
+ lineNumber: currentPosition.lineNumber,
2690
+ column: hashIndex + 1,
2691
+ };
2692
+ &nbsp;
2693
+ const endPosition = {
2694
+ lineNumber: currentPosition.lineNumber,
2695
+ column: currentPosition.column,
2696
+ };
2697
+ &nbsp;
2698
+ editorInstance.executeEdits("suggestion", [
2699
+ {
2700
+ range: new monaco.Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column),
2701
+ text: content,
2702
+ forceMoveMarkers: true,
2703
+ },
2704
+ ]);
2705
+ &nbsp;
2706
+ const newPosition = {
2707
+ lineNumber: currentPosition.lineNumber,
2708
+ column: hashIndex + 1 + content.length,
2709
+ };
2710
+ &nbsp;
2711
+ editorInstance.setPosition(newPosition);
2712
+ editorInstance.focus();
2713
+ &nbsp;
2714
+ hideSuggestions();
2715
+ };
2716
+ &nbsp;
2717
+ // [建议列表] 选项自动滚动
2718
+ const scrollToSelectedSuggestion = () =&gt; {
2719
+ if (!props.suggestionEnable) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2720
+ if (!suggestionBoxRef.value || suggestionIndex.value === -1) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2721
+ &nbsp;
2722
+ const suggestionList = suggestionBoxRef.value.querySelector(".suggestion-list");
2723
+ const selectedItem = suggestionBoxRef.value.querySelector(".suggestion-item.selected");
2724
+ &nbsp;
2725
+ if (suggestionList &amp;&amp; selectedItem) {
2726
+ const listRect = suggestionList.getBoundingClientRect();
2727
+ const itemRect = selectedItem.getBoundingClientRect();
2728
+ &nbsp;
2729
+ if (itemRect.top &lt; listRect.top) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2730
+ <span class="cstat-no" title="statement not covered" > suggestionList.scrollTop -= listRect.top - itemRect.top;</span>
2731
+ } else if (itemRect.bottom &gt; listRect.bottom) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2732
+ <span class="cstat-no" title="statement not covered" > suggestionList.scrollTop += itemRect.bottom - listRect.bottom;</span>
2733
+ <span class="cstat-no" title="statement not covered" > }</span>
2734
+ }
2735
+ };
2736
+ &nbsp;
2737
+ // [变量列表] 选项自动滚动
2738
+ const scrollToSelectedVariable = () =&gt; {
2739
+ if (!props.variableEnable) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2740
+ if (!variableBoxRef.value || variableIndex.value === -1) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2741
+ &nbsp;
2742
+ const variableList = variableBoxRef.value.querySelector(".variable-list");
2743
+ const selectedItem = variableBoxRef.value.querySelector(".variable-item.selected");
2744
+ &nbsp;
2745
+ if (variableList &amp;&amp; selectedItem) {
2746
+ const listRect = variableList.getBoundingClientRect();
2747
+ const itemRect = selectedItem.getBoundingClientRect();
2748
+ &nbsp;
2749
+ if (itemRect.top &lt; listRect.top) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2750
+ <span class="cstat-no" title="statement not covered" > variableList.scrollTop -= listRect.top - itemRect.top;</span>
2751
+ } else if (itemRect.bottom &gt; listRect.bottom) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2752
+ <span class="cstat-no" title="statement not covered" > variableList.scrollTop += itemRect.bottom - listRect.bottom;</span>
2753
+ <span class="cstat-no" title="statement not covered" > }</span>
2754
+ }
2755
+ };
2756
+ &nbsp;
2757
+ // 检查当前输入内容,决定显示建议列表还是变量列表
2758
+ const checkForCompletions = async () =&gt; {
2759
+ const position = editorInstance.getPosition();
2760
+ const model = editorInstance.getModel();
2761
+ const lineContent = model.getLineContent(position.lineNumber);
2762
+ &nbsp;
2763
+ const textBeforeCursor = lineContent.substring(0, position.column - 1);
2764
+ const lastHashIndex = textBeforeCursor.lastIndexOf("#");
2765
+ &nbsp;
2766
+ // 如果是#触发,显示建议列表
2767
+ if (lastHashIndex !== -1) {
2768
+ // 如果变量列表正在显示,先隐藏
2769
+ if (isShowingVariables.value) <span class="branch-0 cbranch-no" title="branch not covered" >hideVariables();</span>
2770
+ &nbsp;
2771
+ const keyword = textBeforeCursor.substring(lastHashIndex + 1);
2772
+ if (lastCursorPosition <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; (lastCursorPosition.lineNumber !== position.lineNumber || lastCursorPosition.column !== position.column))</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2773
+ <span class="cstat-no" title="statement not covered" > hideSuggestions();</span>
2774
+ <span class="cstat-no" title="statement not covered" > }</span>
2775
+ lastCursorPosition = { ...position };
2776
+ &nbsp;
2777
+ if (props.suggestionEnable) {
2778
+ getSuggestions(keyword);
2779
+ }
2780
+ }
2781
+ // 否则检查变量列表
2782
+ else {
2783
+ // 如果建议列表正在显示,先隐藏
2784
+ if (isShowingSuggestions.value) <span class="branch-0 cbranch-no" title="branch not covered" >hideSuggestions();</span>
2785
+ &nbsp;
2786
+ // 获取光标前的单词作为关键字
2787
+ const wordUntilPosition = model.getWordUntilPosition(position);
2788
+ const keyword = wordUntilPosition.word;
2789
+ &nbsp;
2790
+ if (lastCursorPosition <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; (lastCursorPosition.lineNumber !== position.lineNumber || lastCursorPosition.column !== position.column))</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2791
+ <span class="cstat-no" title="statement not covered" > hideVariables();</span>
2792
+ <span class="cstat-no" title="statement not covered" > }</span>
2793
+ lastCursorPosition = { ...position };
2794
+ &nbsp;
2795
+ if (props.variableEnable &amp;&amp; keyword.length &gt; 0) {
2796
+ getVariables(keyword);
2797
+ } else if (keyword.length === 0) {
2798
+ hideVariables();
2799
+ }
2800
+ }
2801
+ };
2802
+ &nbsp;
2803
+ // [代码编辑器] 键盘事件
2804
+ const handleKeyDown = (e) =&gt; {
2805
+ // 变量列表键盘导航
2806
+ if (isShowingVariables.value) {
2807
+ switch (e.code) {
2808
+ case "ArrowUp": {
2809
+ e.preventDefault();
2810
+ e.stopPropagation();
2811
+ variableIndex.value = variableIndex.value &lt;= 0 ? variables.value.length - 1 <span class="branch-0 cbranch-no" title="branch not covered" >: variableIndex.value - 1;</span>
2812
+ updateCurrentFormatList();
2813
+ nextTick(() =&gt; scrollToSelectedVariable());
2814
+ break;
2815
+ }
2816
+ case "ArrowDown": {
2817
+ e.preventDefault();
2818
+ e.stopPropagation();
2819
+ variableIndex.value = variableIndex.value &gt;= variables.value.length - 1 ? 0 <span class="branch-0 cbranch-no" title="branch not covered" >: variableIndex.value + 1;</span>
2820
+ updateCurrentFormatList();
2821
+ nextTick(() =&gt; scrollToSelectedVariable());
2822
+ break;
2823
+ }
2824
+ case "Escape": {
2825
+ e.preventDefault();
2826
+ e.stopPropagation();
2827
+ hideVariables();
2828
+ break;
2829
+ }
2830
+ <span class="branch-0 cbranch-no" title="branch not covered" > default:</span>
2831
+ <span class="cstat-no" title="statement not covered" > break;</span>
2832
+ }
2833
+ }
2834
+ &nbsp;
2835
+ // 建议列表键盘导航
2836
+ if (isShowingSuggestions.value) {
2837
+ switch (e.code) {
2838
+ case "ArrowUp": {
2839
+ e.preventDefault();
2840
+ e.stopPropagation();
2841
+ suggestionIndex.value = suggestionIndex.value &lt;= 0 ? suggestions.value.length - 1 <span class="branch-0 cbranch-no" title="branch not covered" >: suggestionIndex.value - 1;</span>
2842
+ nextTick(() =&gt; scrollToSelectedSuggestion());
2843
+ break;
2844
+ }
2845
+ case "ArrowDown": {
2846
+ e.preventDefault();
2847
+ e.stopPropagation();
2848
+ suggestionIndex.value = suggestionIndex.value &gt;= suggestions.value.length - 1 ? 0 <span class="branch-0 cbranch-no" title="branch not covered" >: suggestionIndex.value + 1;</span>
2849
+ nextTick(() =&gt; scrollToSelectedSuggestion());
2850
+ break;
2851
+ }
2852
+ case "Enter": {
2853
+ if (isShowingSuggestions.value) {
2854
+ e.preventDefault();
2855
+ e.stopPropagation();
2856
+ insertSelectedSuggestion();
2857
+ }
2858
+ break;
2859
+ }
2860
+ <span class="branch-0 cbranch-no" title="branch not covered" > case "Escape": {</span>
2861
+ <span class="cstat-no" title="statement not covered" > e.preventDefault();</span>
2862
+ <span class="cstat-no" title="statement not covered" > e.stopPropagation();</span>
2863
+ <span class="cstat-no" title="statement not covered" > if (isShowingSuggestions.value) hideSuggestions();</span>
2864
+ <span class="cstat-no" title="statement not covered" > if (isShowingVariables.value) hideVariables();</span>
2865
+ <span class="cstat-no" title="statement not covered" > break;</span>
2866
+ <span class="cstat-no" title="statement not covered" > }</span>
2867
+ <span class="branch-0 cbranch-no" title="branch not covered" > default:</span>
2868
+ <span class="cstat-no" title="statement not covered" > break;</span>
2869
+ }
2870
+ }
2871
+ };
2872
+ &nbsp;
2873
+ // [代码编辑器] 内容变化回调
2874
+ const handleContentChange = (event) =&gt; {
2875
+ if (!editorInstance) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2876
+ emit("change", editorInstance.getValue());
2877
+ checkForCompletions();
2878
+ };
2879
+ &nbsp;
2880
+ // [代码编辑器] 光标变化回调
2881
+ const handleCursorPositionChange = <span class="fstat-no" title="function not covered" >(event) =&gt; {</span>
2882
+ <span class="cstat-no" title="statement not covered" > if (isShowingSuggestions.value) {</span>
2883
+ <span class="cstat-no" title="statement not covered" > updateSuggestionBoxPosition();</span>
2884
+ <span class="cstat-no" title="statement not covered" > }</span>
2885
+ <span class="cstat-no" title="statement not covered" > if (isShowingVariables.value) {</span>
2886
+ <span class="cstat-no" title="statement not covered" > updateVariableBoxPosition();</span>
2887
+ <span class="cstat-no" title="statement not covered" > }</span>
2888
+ <span class="cstat-no" title="statement not covered" >};</span>
2889
+ &nbsp;
2890
+ // [document] 全局监听的点击事件
2891
+ const handleClickOutside = (event) =&gt; {
2892
+ // 如果点击了建议列表外面的区域,就自动关闭
2893
+ if (suggestionBoxRef.value &amp;&amp; !suggestionBoxRef.value.contains(event.target)) {
2894
+ hideSuggestions();
2895
+ }
2896
+ // 如果点击了变量列表外面的区域,就自动关闭
2897
+ if (variableBoxRef.value &amp;&amp; !variableBoxRef.value.contains(event.target)) {
2898
+ hideVariables();
2899
+ }
2900
+ };
2901
+ &nbsp;
2902
+ onMounted(() =&gt; {
2903
+ editorInstance = monaco.editor.create(editorContainer.value, {
2904
+ value: props.defaultValue,
2905
+ language: props.language,
2906
+ theme: props.theme,
2907
+ });
2908
+ &nbsp;
2909
+ editorInstance.onKeyDown(handleKeyDown);
2910
+ editorInstance.onDidChangeModelContent(handleContentChange);
2911
+ editorInstance.onDidChangeCursorPosition(handleCursorPositionChange);
2912
+ &nbsp;
2913
+ document.addEventListener("click", handleClickOutside);
2914
+ &nbsp;
2915
+ // 获取变量列表数据
2916
+ fetchVariables();
2917
+ });
2918
+ &nbsp;
2919
+ onUnmounted(() =&gt; {
2920
+ editorInstance?.dispose();
2921
+ document.removeEventListener("click", handleClickOutside);
2922
+ });
2923
+ &nbsp;
2924
+ defineExpose({
2925
+ resize: () =&gt; {
2926
+ editorInstance.layout();
2927
+ },
2928
+ getInstance: () =&gt; {
2929
+ return editorInstance;
2930
+ },
2931
+ getValue: () =&gt; {
2932
+ return editorInstance.getValue();
2933
+ },
2934
+ setValue: (value) =&gt; {
2935
+ editorInstance.setValue(value);
2936
+ },
2937
+ setReadOnly: (readOnly = true) =&gt; {
2938
+ editorInstance.updateOptions({ readOnly });
2939
+ },
2940
+ focusToEnd: () =&gt; {
2941
+ if (!editorInstance) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
2942
+ &nbsp;
2943
+ const model = editorInstance.getModel();
2944
+ if (!model) return;
2945
+ &nbsp;
2946
+ const lineCount = model.getLineCount();
2947
+ const lastLine = model.getLineContent(lineCount);
2948
+ &nbsp;
2949
+ const position = {
2950
+ lineNumber: lineCount,
2951
+ column: lastLine.length + 1,
2952
+ };
2953
+ &nbsp;
2954
+ editorInstance.setPosition(position);
2955
+ editorInstance.focus();
2956
+ editorInstance.revealPositionInCenter(position);
2957
+ },
2958
+ });
2959
+ &lt;/script&gt;
2960
+ &nbsp;
2961
+ &lt;template&gt;
2962
+ &lt;div class="editor-wrapper"&gt;
2963
+ &lt;!-- 代码编辑器 --&gt;
2964
+ &lt;div
2965
+ ref="editorContainer"
2966
+ class="editor-container"
2967
+ /&gt;
2968
+ &nbsp;
2969
+ &lt;!-- 建议列表 --&gt;
2970
+ &lt;Teleport
2971
+ to="body"
2972
+ v-if="isShowingSuggestions &amp;&amp; suggestions.length &gt; 0"
2973
+ &gt;
2974
+ &lt;div
2975
+ ref="suggestionBoxRef"
2976
+ class="suggestion-box"
2977
+ &gt;
2978
+ &lt;div class="suggestion-header"&gt;
2979
+ &lt;span class="suggestion-title"&gt;相关自定义函数&lt;/span&gt;
2980
+ &lt;span class="suggestion-count"&gt;{{ suggestions.length }} 项&lt;/span&gt;
2981
+ &lt;/div&gt;
2982
+ &lt;div class="suggestion-list"&gt;
2983
+ &lt;div
2984
+ v-for="(item, index) in suggestions"
2985
+ :key="item.id"
2986
+ :class="['suggestion-item', { selected: index === suggestionIndex }]"
2987
+ @click="
2988
+ suggestionIndex = index;
2989
+ insertSelectedSuggestion();
2990
+ "
2991
+ &gt;
2992
+ &lt;span class="suggestion-text"&gt;{{ item.funcName }}&lt;/span&gt;
2993
+ &lt;/div&gt;
2994
+ &lt;/div&gt;
2995
+ &lt;div class="suggestion-footer"&gt;使用 ↑↓ 选择,Enter 确认,Esc 取消&lt;/div&gt;
2996
+ &lt;/div&gt;
2997
+ &lt;/Teleport&gt;
2998
+ &nbsp;
2999
+ &lt;!-- 变量列表 --&gt;
3000
+ &lt;Teleport
3001
+ to="body"
3002
+ v-if="isShowingVariables &amp;&amp; variables.length &gt; 0"
3003
+ &gt;
3004
+ &lt;div
3005
+ ref="variableBoxRef"
3006
+ class="variable-box"
3007
+ &gt;
3008
+ &lt;div class="variable-header"&gt;
3009
+ &lt;span class="variable-title"&gt;变量列表&lt;/span&gt;
3010
+ &lt;span class="variable-count"&gt;{{ variables.length }} 项&lt;/span&gt;
3011
+ &lt;span
3012
+ class="variable-keyword"
3013
+ v-if="currentKeyword"
3014
+ &gt;"{{ currentKeyword }}"&lt;/span
3015
+ &gt;
3016
+ &lt;/div&gt;
3017
+ &nbsp;
3018
+ &lt;div class="variable-content"&gt;
3019
+ &lt;!-- 左侧变量名列表 --&gt;
3020
+ &lt;div class="variable-list"&gt;
3021
+ &lt;div
3022
+ v-for="(item, index) in variables"
3023
+ :key="item.varName"
3024
+ :class="['variable-item', { selected: index === variableIndex }]"
3025
+ @click="
3026
+ variableIndex = index;
3027
+ updateCurrentFormatList();
3028
+ "
3029
+ &gt;
3030
+ &lt;span class="variable-name"&gt;{{ item.varName }}&lt;/span&gt;
3031
+ &lt;/div&gt;
3032
+ &lt;/div&gt;
3033
+ &nbsp;
3034
+ &lt;!-- 右侧格式配置区域 --&gt;
3035
+ &lt;div
3036
+ class="format-section"
3037
+ v-if="currentFormatList.length"
3038
+ &gt;
3039
+ &lt;div
3040
+ class="format-item"
3041
+ v-for="(formatItem, formatIndex) in currentFormatList"
3042
+ :key="formatIndex"
3043
+ &gt;
3044
+ &lt;div class="format-header"&gt;
3045
+ &lt;span&gt;格式{{ formatIndex + 1 }}&lt;/span&gt;
3046
+ &lt;el-tooltip
3047
+ effect="dark"
3048
+ placement="top-start"
3049
+ &gt;
3050
+ &lt;template #content&gt;
3051
+ &lt;div style="max-width: 820px"&gt;
3052
+ &lt;span style="white-space: pre-line"&gt;{{ formatItem.tip }}&lt;/span&gt;
3053
+ &lt;/div&gt;
3054
+ &lt;/template&gt;
3055
+ &lt;el-icon&gt;&lt;InfoFilled /&gt;&lt;/el-icon&gt;
3056
+ &lt;/el-tooltip&gt;
3057
+ &lt;/div&gt;
3058
+ &nbsp;
3059
+ &lt;!-- 配置项 --&gt;
3060
+ &lt;div class="config-list"&gt;
3061
+ &lt;template v-for="(config, configIndex) in formatItem.configList"&gt;
3062
+ &lt;div class="config-item"&gt;
3063
+ &lt;!-- 类型: 固定值 --&gt;
3064
+ &lt;template v-if="config.vtype === 'text'"&gt;
3065
+ &lt;span&gt;{{ config.param }}&lt;/span&gt;
3066
+ &lt;/template&gt;
3067
+ &lt;template v-if="config.vtype === 'inputVariety'"&gt;
3068
+ &lt;VarietySelect
3069
+ size="small"
3070
+ :placeholder="config.param"
3071
+ :selectClearEnable="false"
3072
+ :labelShowEnable="false"
3073
+ @select<span class="fstat-no" title="function not covered" >="({ name, code }) =&gt; (config.modelValue = code)"</span>
3074
+ @change<span class="fstat-no" title="function not covered" >="(value) =&gt; (config.modelValue = value)"</span>
3075
+ style="width: 100px"
3076
+ /&gt;
3077
+ &lt;/template&gt;
3078
+ &lt;template v-if="config.vtype === 'input'"&gt;
3079
+ &lt;span v-if="config.prefix"&gt;{{ config.prefix }}&lt;/span&gt;
3080
+ &lt;el-input
3081
+ v-model="<span class="fstat-no" title="function not covered" >config.modelValue"</span>
3082
+ :placeholder="config.param"
3083
+ size="small"
3084
+ /&gt;
3085
+ &lt;span v-if="config.suffix"&gt;{{ config.suffix }}&lt;/span&gt;
3086
+ &lt;/template&gt;
3087
+ &lt;template v-if="config.vtype === 'select'"&gt;
3088
+ &lt;el-select
3089
+ v-model="<span class="fstat-no" title="function not covered" >config.modelValue"</span>
3090
+ :placeholder="config.param"
3091
+ clearable
3092
+ size="small"
3093
+ &gt;
3094
+ &lt;el-option
3095
+ v-for="item in handleOptionsStrToArray(config.optionsStr)"
3096
+ :key="item.value"
3097
+ :label="item.label"
3098
+ :value="item.value"
3099
+ /&gt;
3100
+ &lt;/el-select&gt;
3101
+ &lt;/template&gt;
3102
+ &lt;/div&gt;
3103
+ &lt;span
3104
+ v-if="configIndex !== formatItem.configList.length - 1"
3105
+ class="separator"
3106
+ &gt;_&lt;/span
3107
+ &gt;
3108
+ &lt;/template&gt;
3109
+ &lt;/div&gt;
3110
+ &nbsp;
3111
+ &lt;!-- 插入变量按钮 --&gt;
3112
+ &lt;el-button
3113
+ type="primary"
3114
+ size="small"
3115
+ class="insert-btn"
3116
+ @click="insertVariableContent(formatItem.configList)"
3117
+ &gt;
3118
+ 插入变量
3119
+ &lt;/el-button&gt;
3120
+ &lt;/div&gt;
3121
+ &lt;/div&gt;
3122
+ &lt;/div&gt;
3123
+ &nbsp;
3124
+ &lt;div class="variable-footer"&gt;使用 ↑↓ 选择变量,点击插入按钮确认,Esc 取消&lt;/div&gt;
3125
+ &lt;/div&gt;
3126
+ &lt;/Teleport&gt;
3127
+ &lt;/div&gt;
3128
+ &lt;/template&gt;
3129
+ &nbsp;
3130
+ &lt;style lang="scss"&gt;
3131
+ /* 变量列表下拉框和tooltip的全局样式 */
3132
+ .variable-select-popper,
3133
+ .variable-variety-popper,
3134
+ .variable-tooltip-popper {
3135
+ z-index: 100000 !important;
3136
+ }
3137
+ &nbsp;
3138
+ /* 确保所有 Element Plus 的弹层都有足够高的层级 */
3139
+ .el-popper {
3140
+ z-index: 100000 !important;
3141
+ }
3142
+ &nbsp;
3143
+ /* 如果是旧版本 Element Plus */
3144
+ .el-select__popper,
3145
+ .el-tooltip__popper {
3146
+ z-index: 100000 !important;
3147
+ }
3148
+ &lt;/style&gt;
3149
+ &lt;style scoped lang="scss"&gt;
3150
+ .editor-wrapper {
3151
+ position: relative;
3152
+ width: 100%;
3153
+ height: 100%;
3154
+ }
3155
+ .editor-container {
3156
+ width: 100%;
3157
+ height: 100%;
3158
+ }
3159
+ &nbsp;
3160
+ // 建议列表样式
3161
+ .suggestion-box {
3162
+ position: fixed;
3163
+ background: #1e1e1e;
3164
+ border: 1px solid #444;
3165
+ border-radius: 6px;
3166
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
3167
+ z-index: 99999;
3168
+ min-width: 240px;
3169
+ max-height: 280px;
3170
+ overflow: hidden;
3171
+ &nbsp;
3172
+ &amp;::before {
3173
+ content: "";
3174
+ position: absolute;
3175
+ top: -6px;
3176
+ left: 12px;
3177
+ width: 12px;
3178
+ height: 12px;
3179
+ background: #1e1e1e;
3180
+ border-left: 1px solid #444;
3181
+ border-top: 1px solid #444;
3182
+ transform: rotate(45deg);
3183
+ z-index: -1;
3184
+ }
3185
+ &nbsp;
3186
+ .suggestion-header {
3187
+ display: flex;
3188
+ justify-content: space-between;
3189
+ align-items: center;
3190
+ padding: 8px 12px;
3191
+ background: #2d2d30;
3192
+ border-bottom: 1px solid #444;
3193
+ font-size: 12px;
3194
+ color: #969696;
3195
+ &nbsp;
3196
+ .suggestion-title {
3197
+ font-weight: 600;
3198
+ }
3199
+ &nbsp;
3200
+ .suggestion-count {
3201
+ font-size: 11px;
3202
+ opacity: 0.8;
3203
+ }
3204
+ }
3205
+ &nbsp;
3206
+ .suggestion-list {
3207
+ max-height: 200px;
3208
+ overflow-y: auto;
3209
+ padding: 4px 0;
3210
+ &nbsp;
3211
+ &amp;::-webkit-scrollbar {
3212
+ width: 6px;
3213
+ }
3214
+ &nbsp;
3215
+ &amp;::-webkit-scrollbar-track {
3216
+ background: transparent;
3217
+ }
3218
+ &nbsp;
3219
+ &amp;::-webkit-scrollbar-thumb {
3220
+ background: #424242;
3221
+ border-radius: 3px;
3222
+ }
3223
+ &nbsp;
3224
+ &amp;::-webkit-scrollbar-thumb:hover {
3225
+ background: #4a4a4a;
3226
+ }
3227
+ &nbsp;
3228
+ .suggestion-item {
3229
+ display: flex;
3230
+ align-items: center;
3231
+ padding: 8px 12px;
3232
+ cursor: pointer;
3233
+ transition: all 0.2s ease;
3234
+ border-left: 3px solid transparent;
3235
+ &nbsp;
3236
+ &amp;:hover {
3237
+ background: #2a2d2e;
3238
+ border-left-color: #007acc;
3239
+ }
3240
+ &nbsp;
3241
+ &amp;.selected {
3242
+ background: #094771;
3243
+ border-left-color: #007acc;
3244
+ &nbsp;
3245
+ .suggestion-text {
3246
+ color: #ffffff;
3247
+ font-weight: 500;
3248
+ }
3249
+ }
3250
+ &nbsp;
3251
+ .suggestion-text {
3252
+ font-size: 13px;
3253
+ color: #d4d4d4;
3254
+ line-height: 1.4;
3255
+ }
3256
+ }
3257
+ }
3258
+ &nbsp;
3259
+ .suggestion-footer {
3260
+ padding: 6px 12px;
3261
+ background: #2d2d30;
3262
+ border-top: 1px solid #444;
3263
+ font-size: 11px;
3264
+ color: #969696;
3265
+ text-align: center;
3266
+ }
3267
+ }
3268
+ // 变量列表样式
3269
+ .variable-box {
3270
+ position: fixed;
3271
+ background: #1e1e1e;
3272
+ border: 1px solid #444;
3273
+ border-radius: 6px;
3274
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
3275
+ z-index: 9999;
3276
+ min-width: 600px;
3277
+ max-width: 900px;
3278
+ overflow: hidden;
3279
+ &nbsp;
3280
+ &amp;::before {
3281
+ content: "";
3282
+ position: absolute;
3283
+ top: -6px;
3284
+ left: 12px;
3285
+ width: 12px;
3286
+ height: 12px;
3287
+ background: #1e1e1e;
3288
+ border-left: 1px solid #444;
3289
+ border-top: 1px solid #444;
3290
+ transform: rotate(45deg);
3291
+ z-index: -1;
3292
+ }
3293
+ &nbsp;
3294
+ .variable-header {
3295
+ display: flex;
3296
+ justify-content: space-between;
3297
+ align-items: center;
3298
+ padding: 8px 12px;
3299
+ background: #2d2d30;
3300
+ border-bottom: 1px solid #444;
3301
+ font-size: 12px;
3302
+ color: #969696;
3303
+ &nbsp;
3304
+ .variable-title {
3305
+ font-weight: 600;
3306
+ }
3307
+ &nbsp;
3308
+ .variable-count {
3309
+ font-size: 11px;
3310
+ opacity: 0.8;
3311
+ }
3312
+ &nbsp;
3313
+ .variable-keyword {
3314
+ font-size: 11px;
3315
+ color: #007acc;
3316
+ background: #09477133;
3317
+ padding: 2px 6px;
3318
+ border-radius: 4px;
3319
+ }
3320
+ }
3321
+ &nbsp;
3322
+ .variable-content {
3323
+ display: flex;
3324
+ max-height: 300px;
3325
+ overflow: hidden;
3326
+ &nbsp;
3327
+ .variable-list {
3328
+ width: 160px;
3329
+ border-right: 1px solid #444;
3330
+ overflow-y: auto;
3331
+ padding: 4px 0;
3332
+ &nbsp;
3333
+ &amp;::-webkit-scrollbar {
3334
+ width: 6px;
3335
+ }
3336
+ &nbsp;
3337
+ &amp;::-webkit-scrollbar-track {
3338
+ background: transparent;
3339
+ }
3340
+ &nbsp;
3341
+ &amp;::-webkit-scrollbar-thumb {
3342
+ background: #424242;
3343
+ border-radius: 3px;
3344
+ }
3345
+ &nbsp;
3346
+ .variable-item {
3347
+ padding: 8px 12px;
3348
+ cursor: pointer;
3349
+ border-left: 3px solid transparent;
3350
+ font-size: 12px;
3351
+ color: #d4d4d4;
3352
+ &nbsp;
3353
+ &amp;:hover {
3354
+ background: #2a2d2e;
3355
+ border-left-color: #007acc;
3356
+ }
3357
+ &nbsp;
3358
+ &amp;.selected {
3359
+ background: #094771;
3360
+ border-left-color: #007acc;
3361
+ color: #ffffff;
3362
+ font-weight: 500;
3363
+ }
3364
+ }
3365
+ }
3366
+ &nbsp;
3367
+ .format-section {
3368
+ flex: 1;
3369
+ padding: 12px;
3370
+ overflow-y: auto;
3371
+ max-height: 300px;
3372
+ &nbsp;
3373
+ &amp;::-webkit-scrollbar {
3374
+ width: 6px;
3375
+ }
3376
+ &nbsp;
3377
+ &amp;::-webkit-scrollbar-track {
3378
+ background: transparent;
3379
+ }
3380
+ &nbsp;
3381
+ &amp;::-webkit-scrollbar-thumb {
3382
+ background: #424242;
3383
+ border-radius: 3px;
3384
+ }
3385
+ &nbsp;
3386
+ .format-item {
3387
+ margin-bottom: 16px;
3388
+ padding: 8px;
3389
+ background: #2d2d30;
3390
+ border-radius: 4px;
3391
+ &nbsp;
3392
+ &amp;:last-child {
3393
+ margin-bottom: 0;
3394
+ }
3395
+ &nbsp;
3396
+ .format-header {
3397
+ display: flex;
3398
+ align-items: center;
3399
+ gap: 6px;
3400
+ margin-bottom: 8px;
3401
+ font-size: 11px;
3402
+ color: #969696;
3403
+ &nbsp;
3404
+ .el-icon {
3405
+ cursor: help;
3406
+ font-size: 14px;
3407
+ &nbsp;
3408
+ &amp;:hover {
3409
+ color: #007acc;
3410
+ }
3411
+ }
3412
+ }
3413
+ &nbsp;
3414
+ .config-list {
3415
+ display: flex;
3416
+ align-items: center;
3417
+ flex-wrap: wrap;
3418
+ gap: 4px 8px;
3419
+ margin-bottom: 8px;
3420
+ &nbsp;
3421
+ .config-item {
3422
+ display: flex;
3423
+ align-items: center;
3424
+ gap: 2px;
3425
+ &nbsp;
3426
+ span {
3427
+ font-size: 12px;
3428
+ color: #d4d4d4;
3429
+ }
3430
+ &nbsp;
3431
+ :deep(.el-input) {
3432
+ width: 100px;
3433
+ &nbsp;
3434
+ .el-input__wrapper {
3435
+ background: #3c3c3c;
3436
+ box-shadow: none;
3437
+ padding: 1px 8px;
3438
+ &nbsp;
3439
+ input {
3440
+ color: #d4d4d4;
3441
+ }
3442
+ }
3443
+ }
3444
+ &nbsp;
3445
+ :deep(.el-select) {
3446
+ width: 100px;
3447
+ &nbsp;
3448
+ .el-select__wrapper {
3449
+ background: #3c3c3c;
3450
+ box-shadow: none;
3451
+ min-height: 24px;
3452
+ padding: 0 8px;
3453
+ &nbsp;
3454
+ .el-select__placeholder {
3455
+ color: #969696;
3456
+ }
3457
+ &nbsp;
3458
+ .el-select__selected-item {
3459
+ color: #d4d4d4;
3460
+ }
3461
+ }
3462
+ }
3463
+ }
3464
+ &nbsp;
3465
+ .separator {
3466
+ color: #969696;
3467
+ font-size: 12px;
3468
+ }
3469
+ }
3470
+ &nbsp;
3471
+ .insert-btn {
3472
+ width: 100%;
3473
+ margin-top: 4px;
3474
+ }
3475
+ }
3476
+ }
3477
+ }
3478
+ &nbsp;
3479
+ .variable-footer {
3480
+ padding: 6px 12px;
3481
+ background: #2d2d30;
3482
+ border-top: 1px solid #444;
3483
+ font-size: 11px;
3484
+ color: #969696;
3485
+ text-align: center;
3486
+ }
3487
+ }
3488
+ &lt;/style&gt;
3489
+ &nbsp;</pre></td></tr></table></pre>
3490
+
3491
+ <div class='push'></div><!-- for sticky footer -->
3492
+ </div><!-- /wrapper -->
3493
+ <div class='footer quiet pad2 space-top1 center small'>
3494
+ Code coverage generated by
3495
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
3496
+ at 2026-08-02T08:20:04.516Z
3497
+ </div>
3498
+ <script src="../prettify.js"></script>
3499
+ <script>
3500
+ window.onload = function () {
3501
+ prettyPrint();
3502
+ };
3503
+ </script>
3504
+ <script src="../sorter.js"></script>
3505
+ <script src="../block-navigation.js"></script>
3506
+ </body>
3507
+ </html>
3508
+