@lcap/nasl 3.4.0-beta.5 → 3.4.0-beta.6

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 (831) hide show
  1. package/.nyc_output/b920244d-8d01-4e76-be5a-95132217c5a1.json +1 -0
  2. package/.nyc_output/processinfo/b920244d-8d01-4e76-be5a-95132217c5a1.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -0
  4. package/coverage/base.css +224 -0
  5. package/coverage/block-navigation.js +87 -0
  6. package/coverage/favicon.png +0 -0
  7. package/coverage/index.html +461 -0
  8. package/coverage/prettify.css +1 -0
  9. package/coverage/prettify.js +2 -0
  10. package/coverage/sort-arrow-sprite.png +0 -0
  11. package/coverage/sorter.js +196 -0
  12. package/coverage/src/automate/engine/index.html +116 -0
  13. package/coverage/src/automate/engine/utils.js.html +1414 -0
  14. package/coverage/src/bak/index.html +116 -0
  15. package/coverage/src/bak/translator.js.html +631 -0
  16. package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +175 -0
  17. package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +169 -0
  18. package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +1246 -0
  19. package/coverage/src/breakpoint/generator/CallbackNode.ts.html +145 -0
  20. package/coverage/src/breakpoint/generator/index.html +176 -0
  21. package/coverage/src/breakpoint/generator/index.ts.html +508 -0
  22. package/coverage/src/breakpoint/index.html +116 -0
  23. package/coverage/src/breakpoint/index.ts.html +94 -0
  24. package/coverage/src/breakpoint/shared/constants.ts.html +436 -0
  25. package/coverage/src/breakpoint/shared/index.html +176 -0
  26. package/coverage/src/breakpoint/shared/index.ts.html +94 -0
  27. package/coverage/src/breakpoint/shared/operations.ts.html +160 -0
  28. package/coverage/src/breakpoint/shared/socket.ts.html +1297 -0
  29. package/coverage/src/breakpoint/shared/utils.ts.html +1087 -0
  30. package/coverage/src/breakpoint/store/core.ts.html +1600 -0
  31. package/coverage/src/breakpoint/store/dock.ts.html +733 -0
  32. package/coverage/src/breakpoint/store/index.html +146 -0
  33. package/coverage/src/breakpoint/store/index.ts.html +91 -0
  34. package/coverage/src/common/BaseNode.ts.html +4081 -0
  35. package/coverage/src/common/Command.ts.html +310 -0
  36. package/coverage/src/common/EventEmitter.ts.html +373 -0
  37. package/coverage/src/common/Messager.ts.html +820 -0
  38. package/coverage/src/common/asyncFuncMap.ts.html +127 -0
  39. package/coverage/src/common/index.html +191 -0
  40. package/coverage/src/common/index.ts.html +94 -0
  41. package/coverage/src/concepts/Abort__.ts.html +331 -0
  42. package/coverage/src/concepts/Anchor__.ts.html +667 -0
  43. package/coverage/src/concepts/AnonymousFunction__.ts.html +2092 -0
  44. package/coverage/src/concepts/App__.ts.html +13651 -0
  45. package/coverage/src/concepts/Argument__.ts.html +907 -0
  46. package/coverage/src/concepts/Assignee__.ts.html +2317 -0
  47. package/coverage/src/concepts/AssignmentLine__.ts.html +430 -0
  48. package/coverage/src/concepts/Assignment__.ts.html +1174 -0
  49. package/coverage/src/concepts/Attribute__.ts.html +919 -0
  50. package/coverage/src/concepts/AuthInterface__.ts.html +370 -0
  51. package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +2011 -0
  52. package/coverage/src/concepts/AuthLogic__.ts.html +793 -0
  53. package/coverage/src/concepts/BackendVariable__.ts.html +1690 -0
  54. package/coverage/src/concepts/Backend__.ts.html +1192 -0
  55. package/coverage/src/concepts/BatchAssignment__.ts.html +3376 -0
  56. package/coverage/src/concepts/BinaryExpression__.ts.html +1468 -0
  57. package/coverage/src/concepts/BindAttribute__.ts.html +3931 -0
  58. package/coverage/src/concepts/BindDirective__.ts.html +2002 -0
  59. package/coverage/src/concepts/BindEvent__.ts.html +3487 -0
  60. package/coverage/src/concepts/BindStyle__.ts.html +1645 -0
  61. package/coverage/src/concepts/BooleanLiteral__.ts.html +421 -0
  62. package/coverage/src/concepts/CallAuthInterface__.ts.html +1642 -0
  63. package/coverage/src/concepts/CallConnector__.ts.html +925 -0
  64. package/coverage/src/concepts/CallFunction__.ts.html +2164 -0
  65. package/coverage/src/concepts/CallInterface__.ts.html +2776 -0
  66. package/coverage/src/concepts/CallLogic__.ts.html +4693 -0
  67. package/coverage/src/concepts/CallQueryComponent__.ts.html +5419 -0
  68. package/coverage/src/concepts/Comment__.ts.html +397 -0
  69. package/coverage/src/concepts/CompletionProperty__.ts.html +946 -0
  70. package/coverage/src/concepts/ConfigGroup__.ts.html +1132 -0
  71. package/coverage/src/concepts/ConfigPropertyValue__.ts.html +427 -0
  72. package/coverage/src/concepts/ConfigProperty__.ts.html +1375 -0
  73. package/coverage/src/concepts/Configuration__.ts.html +1054 -0
  74. package/coverage/src/concepts/Connection__.ts.html +1387 -0
  75. package/coverage/src/concepts/ConnectorTrigger__.ts.html +598 -0
  76. package/coverage/src/concepts/Connector__.ts.html +4390 -0
  77. package/coverage/src/concepts/Constant__.ts.html +1123 -0
  78. package/coverage/src/concepts/DataSource__.ts.html +1798 -0
  79. package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +334 -0
  80. package/coverage/src/concepts/DefaultValue__.ts.html +946 -0
  81. package/coverage/src/concepts/Destination__.ts.html +2761 -0
  82. package/coverage/src/concepts/End__.ts.html +436 -0
  83. package/coverage/src/concepts/EntityIndex__.ts.html +799 -0
  84. package/coverage/src/concepts/EntityProperty__.ts.html +2866 -0
  85. package/coverage/src/concepts/Entity__.ts.html +3070 -0
  86. package/coverage/src/concepts/EnumItem__.ts.html +553 -0
  87. package/coverage/src/concepts/Enum__.ts.html +1258 -0
  88. package/coverage/src/concepts/Event__.ts.html +1111 -0
  89. package/coverage/src/concepts/ExternalDestination__.ts.html +1060 -0
  90. package/coverage/src/concepts/ForEachStatement__.ts.html +2023 -0
  91. package/coverage/src/concepts/FrontendLibrary__.ts.html +1762 -0
  92. package/coverage/src/concepts/FrontendVariable__.ts.html +292 -0
  93. package/coverage/src/concepts/Frontend__.ts.html +4078 -0
  94. package/coverage/src/concepts/Function__.ts.html +3718 -0
  95. package/coverage/src/concepts/Identifier__.ts.html +1060 -0
  96. package/coverage/src/concepts/IfStatement__.ts.html +1636 -0
  97. package/coverage/src/concepts/Integration__.ts.html +1273 -0
  98. package/coverage/src/concepts/InterfaceParam__.ts.html +1258 -0
  99. package/coverage/src/concepts/Interface__.ts.html +3463 -0
  100. package/coverage/src/concepts/JSBlock__.ts.html +424 -0
  101. package/coverage/src/concepts/JavaLogic__.ts.html +463 -0
  102. package/coverage/src/concepts/LogicItem__.ts.html +1174 -0
  103. package/coverage/src/concepts/Logic__.ts.html +7732 -0
  104. package/coverage/src/concepts/MatchCase__.ts.html +2974 -0
  105. package/coverage/src/concepts/Match__.ts.html +2494 -0
  106. package/coverage/src/concepts/MemberExpression__.ts.html +1744 -0
  107. package/coverage/src/concepts/MicroApp__.ts.html +439 -0
  108. package/coverage/src/concepts/Module__.ts.html +9385 -0
  109. package/coverage/src/concepts/MsgTriggerEvent__.ts.html +1072 -0
  110. package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +1045 -0
  111. package/coverage/src/concepts/Namespace__.ts.html +8221 -0
  112. package/coverage/src/concepts/NewComposite__.ts.html +4765 -0
  113. package/coverage/src/concepts/NewList__.ts.html +1702 -0
  114. package/coverage/src/concepts/NewMap__.ts.html +2470 -0
  115. package/coverage/src/concepts/New__.ts.html +289 -0
  116. package/coverage/src/concepts/NullLiteral__.ts.html +352 -0
  117. package/coverage/src/concepts/NumericLiteral__.ts.html +697 -0
  118. package/coverage/src/concepts/OqlQueryComponent__.ts.html +1237 -0
  119. package/coverage/src/concepts/OverriddenLogic__.ts.html +6970 -0
  120. package/coverage/src/concepts/Param__.ts.html +1798 -0
  121. package/coverage/src/concepts/Point__.ts.html +334 -0
  122. package/coverage/src/concepts/ProcessComponent__.ts.html +1717 -0
  123. package/coverage/src/concepts/ProcessElement__.ts.html +6187 -0
  124. package/coverage/src/concepts/ProcessOutcome__.ts.html +355 -0
  125. package/coverage/src/concepts/ProcessOutcomes__.ts.html +355 -0
  126. package/coverage/src/concepts/Process__.ts.html +5071 -0
  127. package/coverage/src/concepts/QueryAggregateExpression__.ts.html +589 -0
  128. package/coverage/src/concepts/QueryFieldExpression__.ts.html +586 -0
  129. package/coverage/src/concepts/QueryFromExpression__.ts.html +937 -0
  130. package/coverage/src/concepts/QueryGroupByExpression__.ts.html +580 -0
  131. package/coverage/src/concepts/QueryJoinExpression__.ts.html +1606 -0
  132. package/coverage/src/concepts/QueryLimitExpression__.ts.html +664 -0
  133. package/coverage/src/concepts/QueryOrderByExpression__.ts.html +706 -0
  134. package/coverage/src/concepts/QuerySelectExpression__.ts.html +1741 -0
  135. package/coverage/src/concepts/Rect__.ts.html +376 -0
  136. package/coverage/src/concepts/Return__.ts.html +1471 -0
  137. package/coverage/src/concepts/Role__.ts.html +604 -0
  138. package/coverage/src/concepts/SelectMembers__.ts.html +1279 -0
  139. package/coverage/src/concepts/Slot__.ts.html +649 -0
  140. package/coverage/src/concepts/SqlQueryComponent__.ts.html +1003 -0
  141. package/coverage/src/concepts/Start__.ts.html +307 -0
  142. package/coverage/src/concepts/StringInterpolation__.ts.html +1156 -0
  143. package/coverage/src/concepts/StringLiteral__.ts.html +508 -0
  144. package/coverage/src/concepts/StructureProperty__.ts.html +1300 -0
  145. package/coverage/src/concepts/Structure__.ts.html +2182 -0
  146. package/coverage/src/concepts/SwitchCase__.ts.html +1204 -0
  147. package/coverage/src/concepts/SwitchStatement__.ts.html +904 -0
  148. package/coverage/src/concepts/Theme__.ts.html +361 -0
  149. package/coverage/src/concepts/Transactional__.ts.html +631 -0
  150. package/coverage/src/concepts/TriggerEvent__.ts.html +1039 -0
  151. package/coverage/src/concepts/TriggerLauncher__.ts.html +778 -0
  152. package/coverage/src/concepts/TypeAnnotation__.ts.html +3832 -0
  153. package/coverage/src/concepts/TypeParam__.ts.html +322 -0
  154. package/coverage/src/concepts/UnaryExpression__.ts.html +730 -0
  155. package/coverage/src/concepts/Unparsed__.ts.html +397 -0
  156. package/coverage/src/concepts/UseComponent__.ts.html +334 -0
  157. package/coverage/src/concepts/ValidationRule__.ts.html +1876 -0
  158. package/coverage/src/concepts/Variable__.ts.html +1705 -0
  159. package/coverage/src/concepts/ViewBlock__.ts.html +355 -0
  160. package/coverage/src/concepts/ViewComponent__.ts.html +4327 -0
  161. package/coverage/src/concepts/ViewElement__.ts.html +8992 -0
  162. package/coverage/src/concepts/View__.ts.html +9019 -0
  163. package/coverage/src/concepts/WhileStatement__.ts.html +1105 -0
  164. package/coverage/src/concepts/basics/stdlib/index.html +356 -0
  165. package/coverage/src/concepts/basics/stdlib/index.ts.html +208 -0
  166. package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +565 -0
  167. package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +517 -0
  168. package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +226 -0
  169. package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +172 -0
  170. package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +214 -0
  171. package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +145 -0
  172. package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +589 -0
  173. package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +214 -0
  174. package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +229 -0
  175. package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +268 -0
  176. package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +1999 -0
  177. package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +3259 -0
  178. package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +6955 -0
  179. package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +1768 -0
  180. package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +163 -0
  181. package/coverage/src/concepts/basics/stdlib/timeZone.ts.html +664 -0
  182. package/coverage/src/concepts/basics/types/coreTypeList.ts.html +121 -0
  183. package/coverage/src/concepts/basics/types/index.html +131 -0
  184. package/coverage/src/concepts/basics/types/index.ts.html +160 -0
  185. package/coverage/src/concepts/index.html +1976 -0
  186. package/coverage/src/concepts/index.ts.html +103 -0
  187. package/coverage/src/concepts/index__.ts.html +454 -0
  188. package/coverage/src/config.ts.html +325 -0
  189. package/coverage/src/decorators/index.html +131 -0
  190. package/coverage/src/decorators/index.ts.html +583 -0
  191. package/coverage/src/decorators/promise.ts.html +169 -0
  192. package/coverage/src/eventBus.ts.html +100 -0
  193. package/coverage/src/generator/compileComponent.ts.html +142 -0
  194. package/coverage/src/generator/genBundleFiles.ts.html +1828 -0
  195. package/coverage/src/generator/genHash.ts.html +124 -0
  196. package/coverage/src/generator/genMetaData.ts.html +1084 -0
  197. package/coverage/src/generator/genReleaseBody.ts.html +1282 -0
  198. package/coverage/src/generator/icestark.ts.html +220 -0
  199. package/coverage/src/generator/index.html +266 -0
  200. package/coverage/src/generator/index.ts.html +106 -0
  201. package/coverage/src/generator/microApp.ts.html +172 -0
  202. package/coverage/src/generator/permission.ts.html +1036 -0
  203. package/coverage/src/generator/qiankun.ts.html +232 -0
  204. package/coverage/src/generator/styleReplacer.ts.html +199 -0
  205. package/coverage/src/index.html +146 -0
  206. package/coverage/src/index.ts.html +124 -0
  207. package/coverage/src/manager/diagnostic.ts.html +442 -0
  208. package/coverage/src/manager/index.html +131 -0
  209. package/coverage/src/manager/stepRecorder.ts.html +457 -0
  210. package/coverage/src/natural/genNaturalTS.ts.html +355 -0
  211. package/coverage/src/natural/index.html +161 -0
  212. package/coverage/src/natural/index.ts.html +91 -0
  213. package/coverage/src/natural/naslStdlibMap.ts.html +157 -0
  214. package/coverage/src/natural/transformTSCode.ts.html +2707 -0
  215. package/coverage/src/sentry/index.html +116 -0
  216. package/coverage/src/sentry/index.ts.html +676 -0
  217. package/coverage/src/server/createUiTs.ts.html +919 -0
  218. package/coverage/src/server/entity2LogicNamespace.ts.html +1294 -0
  219. package/coverage/src/server/event.js.html +526 -0
  220. package/coverage/src/server/extendBaseNode.ts.html +1762 -0
  221. package/coverage/src/server/formatTsUtils.ts.html +2689 -0
  222. package/coverage/src/server/getConnector.ts.html +316 -0
  223. package/coverage/src/server/getExtensionModules.ts.html +178 -0
  224. package/coverage/src/server/getFunctions.ts.html +133 -0
  225. package/coverage/src/server/getInterfaces.ts.html +229 -0
  226. package/coverage/src/server/getLogging.ts.html +100 -0
  227. package/coverage/src/server/getLogics.ts.html +1363 -0
  228. package/coverage/src/server/getMemberIdentifier.ts.html +1606 -0
  229. package/coverage/src/server/getProcessComponents.ts.html +112 -0
  230. package/coverage/src/server/getProcesses.ts.html +2023 -0
  231. package/coverage/src/server/getValidates.ts.html +115 -0
  232. package/coverage/src/server/index.html +401 -0
  233. package/coverage/src/server/index.ts.html +229 -0
  234. package/coverage/src/server/naslServer.ts.html +14356 -0
  235. package/coverage/src/server/naslStdlibMap.ts.html +241 -0
  236. package/coverage/src/server/process2LogicNamespace.ts.html +454 -0
  237. package/coverage/src/server/translator.ts.html +2566 -0
  238. package/coverage/src/service/creator/add.configs.js.html +397 -0
  239. package/coverage/src/service/creator/errHandles.js.html +304 -0
  240. package/coverage/src/service/creator/index.html +146 -0
  241. package/coverage/src/service/creator/index.js.html +352 -0
  242. package/coverage/src/service/datasource/api.js.html +118 -0
  243. package/coverage/src/service/datasource/index.html +131 -0
  244. package/coverage/src/service/datasource/index.js.html +103 -0
  245. package/coverage/src/service/logic/api.js.html +109 -0
  246. package/coverage/src/service/logic/index.html +131 -0
  247. package/coverage/src/service/logic/index.js.html +103 -0
  248. package/coverage/src/service/storage/api.js.html +202 -0
  249. package/coverage/src/service/storage/index.html +206 -0
  250. package/coverage/src/service/storage/index.ts.html +103 -0
  251. package/coverage/src/service/storage/init.ts.html +3721 -0
  252. package/coverage/src/service/storage/jsoner.ts.html +502 -0
  253. package/coverage/src/service/storage/map.ts.html +256 -0
  254. package/coverage/src/service/storage/service.ts.html +331 -0
  255. package/coverage/src/service/storage/storagePoint.ts.html +304 -0
  256. package/coverage/src/templator/genCallComponentLogic.ts.html +163 -0
  257. package/coverage/src/templator/genCreateBlock.ts.html +1093 -0
  258. package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +1609 -0
  259. package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +2254 -0
  260. package/coverage/src/templator/genEditTableBlock.ts.html +1021 -0
  261. package/coverage/src/templator/genEnumSelectBlock.ts.html +178 -0
  262. package/coverage/src/templator/genGetBlock.ts.html +451 -0
  263. package/coverage/src/templator/genGridViewBlock.ts.html +1114 -0
  264. package/coverage/src/templator/genListViewBlock.ts.html +475 -0
  265. package/coverage/src/templator/genQueryComponent.ts.html +1207 -0
  266. package/coverage/src/templator/genSelectBlock.ts.html +1243 -0
  267. package/coverage/src/templator/genTableBlock.ts.html +973 -0
  268. package/coverage/src/templator/genUpdateBlock.ts.html +1192 -0
  269. package/coverage/src/templator/index.html +326 -0
  270. package/coverage/src/templator/index.ts.html +154 -0
  271. package/coverage/src/templator/utils.ts.html +1861 -0
  272. package/coverage/src/translator/constant.ts.html +106 -0
  273. package/coverage/src/translator/index.html +146 -0
  274. package/coverage/src/translator/index.ts.html +94 -0
  275. package/coverage/src/translator/utils.ts.html +436 -0
  276. package/coverage/src/utils/cookie.ts.html +265 -0
  277. package/coverage/src/utils/env.ts.html +91 -0
  278. package/coverage/src/utils/index.html +236 -0
  279. package/coverage/src/utils/index.ts.html +694 -0
  280. package/coverage/src/utils/logger.ts.html +145 -0
  281. package/coverage/src/utils/sortTsString.ts.html +187 -0
  282. package/coverage/src/utils/string.ts.html +400 -0
  283. package/coverage/src/utils/time-slicing.ts.html +418 -0
  284. package/coverage/src/utils/traverse.ts.html +568 -0
  285. package/coverage/src/utils/window.ts.html +112 -0
  286. package/out/bak/translator.js +2 -19
  287. package/out/bak/translator.js.map +1 -1
  288. package/out/common/BaseNode.d.ts +11 -0
  289. package/out/common/BaseNode.js +57 -1
  290. package/out/common/BaseNode.js.map +1 -1
  291. package/out/common/index.d.ts +1 -0
  292. package/out/common/index.js +1 -0
  293. package/out/common/index.js.map +1 -1
  294. package/out/common/utils.d.ts +2 -0
  295. package/out/common/utils.js +18 -0
  296. package/out/common/utils.js.map +1 -0
  297. package/out/concepts/Abort__.d.ts +2 -2
  298. package/out/concepts/Abort__.js +6 -2
  299. package/out/concepts/Abort__.js.map +1 -1
  300. package/out/concepts/Anchor__.d.ts +2 -2
  301. package/out/concepts/Anchor__.js +5 -4
  302. package/out/concepts/Anchor__.js.map +1 -1
  303. package/out/concepts/AnonymousFunction__.d.ts +3 -3
  304. package/out/concepts/AnonymousFunction__.js +19 -15
  305. package/out/concepts/AnonymousFunction__.js.map +1 -1
  306. package/out/concepts/Argument__.d.ts +2 -2
  307. package/out/concepts/Argument__.js +12 -13
  308. package/out/concepts/Argument__.js.map +1 -1
  309. package/out/concepts/Assignee__.d.ts +2 -2
  310. package/out/concepts/Assignee__.js +11 -9
  311. package/out/concepts/Assignee__.js.map +1 -1
  312. package/out/concepts/AssignmentLine__.d.ts +2 -2
  313. package/out/concepts/AssignmentLine__.js +3 -2
  314. package/out/concepts/AssignmentLine__.js.map +1 -1
  315. package/out/concepts/Assignment__.d.ts +2 -2
  316. package/out/concepts/Assignment__.js +13 -29
  317. package/out/concepts/Assignment__.js.map +1 -1
  318. package/out/concepts/AuthInterface__.js +1 -1
  319. package/out/concepts/AuthInterface__.js.map +1 -1
  320. package/out/concepts/AuthLogicForCallInterface__.d.ts +2 -2
  321. package/out/concepts/AuthLogicForCallInterface__.js +56 -75
  322. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  323. package/out/concepts/BackendVariable__.d.ts +5 -8
  324. package/out/concepts/BackendVariable__.js +47 -29
  325. package/out/concepts/BackendVariable__.js.map +1 -1
  326. package/out/concepts/Backend__.d.ts +4 -7
  327. package/out/concepts/Backend__.js +7 -6
  328. package/out/concepts/Backend__.js.map +1 -1
  329. package/out/concepts/BatchAssignment__.d.ts +2 -2
  330. package/out/concepts/BatchAssignment__.js +19 -20
  331. package/out/concepts/BatchAssignment__.js.map +1 -1
  332. package/out/concepts/BinaryExpression__.d.ts +2 -2
  333. package/out/concepts/BinaryExpression__.js +37 -38
  334. package/out/concepts/BinaryExpression__.js.map +1 -1
  335. package/out/concepts/BindAttribute__.d.ts +4 -4
  336. package/out/concepts/BindAttribute__.js +39 -32
  337. package/out/concepts/BindAttribute__.js.map +1 -1
  338. package/out/concepts/BindDirective__.d.ts +2 -2
  339. package/out/concepts/BindDirective__.js +10 -8
  340. package/out/concepts/BindDirective__.js.map +1 -1
  341. package/out/concepts/BindEvent__.d.ts +4 -7
  342. package/out/concepts/BindEvent__.js +20 -18
  343. package/out/concepts/BindEvent__.js.map +1 -1
  344. package/out/concepts/BindStyle__.d.ts +2 -2
  345. package/out/concepts/BindStyle__.js +9 -7
  346. package/out/concepts/BindStyle__.js.map +1 -1
  347. package/out/concepts/Block__.d.ts +6 -2
  348. package/out/concepts/Block__.js +36 -5
  349. package/out/concepts/Block__.js.map +1 -1
  350. package/out/concepts/BooleanLiteral__.d.ts +2 -2
  351. package/out/concepts/BooleanLiteral__.js +2 -2
  352. package/out/concepts/BooleanLiteral__.js.map +1 -1
  353. package/out/concepts/CallAuthInterface__.d.ts +3 -2
  354. package/out/concepts/CallAuthInterface__.js +46 -30
  355. package/out/concepts/CallAuthInterface__.js.map +1 -1
  356. package/out/concepts/CallConnector__.d.ts +2 -2
  357. package/out/concepts/CallConnector__.js +25 -23
  358. package/out/concepts/CallConnector__.js.map +1 -1
  359. package/out/concepts/CallFunction__.d.ts +2 -2
  360. package/out/concepts/CallFunction__.js +19 -16
  361. package/out/concepts/CallFunction__.js.map +1 -1
  362. package/out/concepts/CallInterface__.d.ts +3 -2
  363. package/out/concepts/CallInterface__.js +16 -6
  364. package/out/concepts/CallInterface__.js.map +1 -1
  365. package/out/concepts/CallLogic__.d.ts +2 -3
  366. package/out/concepts/CallLogic__.js +26 -20
  367. package/out/concepts/CallLogic__.js.map +1 -1
  368. package/out/concepts/CallQueryComponent__.d.ts +4 -4
  369. package/out/concepts/CallQueryComponent__.js +38 -36
  370. package/out/concepts/CallQueryComponent__.js.map +1 -1
  371. package/out/concepts/Comment__.d.ts +2 -2
  372. package/out/concepts/Comment__.js +3 -2
  373. package/out/concepts/Comment__.js.map +1 -1
  374. package/out/concepts/ConfigProperty__.d.ts +4 -7
  375. package/out/concepts/ConfigProperty__.js +12 -10
  376. package/out/concepts/ConfigProperty__.js.map +1 -1
  377. package/out/concepts/Connection__.d.ts +4 -7
  378. package/out/concepts/Connection__.js +6 -5
  379. package/out/concepts/Connection__.js.map +1 -1
  380. package/out/concepts/Connector__.js.map +1 -1
  381. package/out/concepts/Constant__.d.ts +3 -3
  382. package/out/concepts/Constant__.js +38 -13
  383. package/out/concepts/Constant__.js.map +1 -1
  384. package/out/concepts/DataSource__.d.ts +4 -7
  385. package/out/concepts/DataSource__.js +7 -6
  386. package/out/concepts/DataSource__.js.map +1 -1
  387. package/out/concepts/DefaultValue__.d.ts +6 -2
  388. package/out/concepts/DefaultValue__.js +11 -3
  389. package/out/concepts/DefaultValue__.js.map +1 -1
  390. package/out/concepts/Destination__.d.ts +3 -3
  391. package/out/concepts/Destination__.js +29 -26
  392. package/out/concepts/Destination__.js.map +1 -1
  393. package/out/concepts/End__.d.ts +2 -2
  394. package/out/concepts/End__.js +17 -13
  395. package/out/concepts/End__.js.map +1 -1
  396. package/out/concepts/EntityIndex__.d.ts +2 -2
  397. package/out/concepts/EntityIndex__.js +4 -3
  398. package/out/concepts/EntityIndex__.js.map +1 -1
  399. package/out/concepts/EntityProperty__.d.ts +2 -2
  400. package/out/concepts/EntityProperty__.js +9 -8
  401. package/out/concepts/EntityProperty__.js.map +1 -1
  402. package/out/concepts/Entity__.d.ts +4 -7
  403. package/out/concepts/Entity__.js +22 -22
  404. package/out/concepts/Entity__.js.map +1 -1
  405. package/out/concepts/EnumItem__.d.ts +2 -2
  406. package/out/concepts/EnumItem__.js +4 -3
  407. package/out/concepts/EnumItem__.js.map +1 -1
  408. package/out/concepts/Enum__.d.ts +4 -7
  409. package/out/concepts/Enum__.js +10 -8
  410. package/out/concepts/Enum__.js.map +1 -1
  411. package/out/concepts/ExternalDestination__.d.ts +2 -2
  412. package/out/concepts/ExternalDestination__.js +7 -5
  413. package/out/concepts/ExternalDestination__.js.map +1 -1
  414. package/out/concepts/ForEachStatement__.d.ts +2 -2
  415. package/out/concepts/ForEachStatement__.js +14 -12
  416. package/out/concepts/ForEachStatement__.js.map +1 -1
  417. package/out/concepts/Frontend__.d.ts +4 -7
  418. package/out/concepts/Frontend__.js +7 -6
  419. package/out/concepts/Frontend__.js.map +1 -1
  420. package/out/concepts/Function__.d.ts +3 -3
  421. package/out/concepts/Function__.js +22 -18
  422. package/out/concepts/Function__.js.map +1 -1
  423. package/out/concepts/Identifier__.d.ts +2 -2
  424. package/out/concepts/Identifier__.js +19 -23
  425. package/out/concepts/Identifier__.js.map +1 -1
  426. package/out/concepts/IfStatement__.d.ts +2 -2
  427. package/out/concepts/IfStatement__.js +12 -10
  428. package/out/concepts/IfStatement__.js.map +1 -1
  429. package/out/concepts/ImportedInterface__.d.ts +20 -0
  430. package/out/concepts/ImportedInterface__.js +57 -0
  431. package/out/concepts/ImportedInterface__.js.map +1 -0
  432. package/out/concepts/InterfaceParam__.d.ts +2 -7
  433. package/out/concepts/InterfaceParam__.js +33 -14
  434. package/out/concepts/InterfaceParam__.js.map +1 -1
  435. package/out/concepts/Interface__.d.ts +7 -15
  436. package/out/concepts/Interface__.js +33 -43
  437. package/out/concepts/Interface__.js.map +1 -1
  438. package/out/concepts/JSBlock__.d.ts +2 -2
  439. package/out/concepts/JSBlock__.js +3 -58
  440. package/out/concepts/JSBlock__.js.map +1 -1
  441. package/out/concepts/JavaLogic__.d.ts +2 -2
  442. package/out/concepts/JavaLogic__.js +6 -2
  443. package/out/concepts/JavaLogic__.js.map +1 -1
  444. package/out/concepts/LogicItem__.d.ts +2 -2
  445. package/out/concepts/LogicItem__.js +7 -13
  446. package/out/concepts/LogicItem__.js.map +1 -1
  447. package/out/concepts/Logic__.d.ts +8 -11
  448. package/out/concepts/Logic__.js +124 -157
  449. package/out/concepts/Logic__.js.map +1 -1
  450. package/out/concepts/MatchCase__.d.ts +2 -2
  451. package/out/concepts/MatchCase__.js +23 -22
  452. package/out/concepts/MatchCase__.js.map +1 -1
  453. package/out/concepts/Match__.d.ts +2 -2
  454. package/out/concepts/Match__.js +24 -22
  455. package/out/concepts/Match__.js.map +1 -1
  456. package/out/concepts/MemberExpression__.d.ts +2 -2
  457. package/out/concepts/MemberExpression__.js +28 -24
  458. package/out/concepts/MemberExpression__.js.map +1 -1
  459. package/out/concepts/MetadataType__.d.ts +4 -7
  460. package/out/concepts/MetadataType__.js +11 -9
  461. package/out/concepts/MetadataType__.js.map +1 -1
  462. package/out/concepts/Module__.d.ts +8 -179
  463. package/out/concepts/Module__.js +124 -265
  464. package/out/concepts/Module__.js.map +1 -1
  465. package/out/concepts/NewComposite__.d.ts +5 -5
  466. package/out/concepts/NewComposite__.js +75 -76
  467. package/out/concepts/NewComposite__.js.map +1 -1
  468. package/out/concepts/NewList__.d.ts +5 -5
  469. package/out/concepts/NewList__.js +30 -26
  470. package/out/concepts/NewList__.js.map +1 -1
  471. package/out/concepts/NewMap__.d.ts +4 -4
  472. package/out/concepts/NewMap__.js +39 -35
  473. package/out/concepts/NewMap__.js.map +1 -1
  474. package/out/concepts/New__.d.ts +2 -2
  475. package/out/concepts/New__.js +3 -2
  476. package/out/concepts/New__.js.map +1 -1
  477. package/out/concepts/NullLiteral__.d.ts +2 -2
  478. package/out/concepts/NullLiteral__.js +2 -2
  479. package/out/concepts/NullLiteral__.js.map +1 -1
  480. package/out/concepts/NumericLiteral__.d.ts +2 -2
  481. package/out/concepts/NumericLiteral__.js +6 -5
  482. package/out/concepts/NumericLiteral__.js.map +1 -1
  483. package/out/concepts/OqlQueryComponent__.d.ts +2 -2
  484. package/out/concepts/OqlQueryComponent__.js +16 -14
  485. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  486. package/out/concepts/OverriddenLogic__.d.ts +8 -11
  487. package/out/concepts/OverriddenLogic__.js +99 -112
  488. package/out/concepts/OverriddenLogic__.js.map +1 -1
  489. package/out/concepts/Param__.d.ts +3 -3
  490. package/out/concepts/Param__.js +24 -30
  491. package/out/concepts/Param__.js.map +1 -1
  492. package/out/concepts/ProcessElement__.d.ts +2 -2
  493. package/out/concepts/ProcessElement__.js +54 -68
  494. package/out/concepts/ProcessElement__.js.map +1 -1
  495. package/out/concepts/ProcessOutcome__.d.ts +2 -1
  496. package/out/concepts/ProcessOutcome__.js +5 -4
  497. package/out/concepts/ProcessOutcome__.js.map +1 -1
  498. package/out/concepts/ProcessOutcomes__.d.ts +2 -1
  499. package/out/concepts/ProcessOutcomes__.js +6 -5
  500. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  501. package/out/concepts/Process__.d.ts +4 -7
  502. package/out/concepts/Process__.js +35 -52
  503. package/out/concepts/Process__.js.map +1 -1
  504. package/out/concepts/QueryAggregateExpression__.d.ts +2 -2
  505. package/out/concepts/QueryAggregateExpression__.js +2 -2
  506. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  507. package/out/concepts/QueryFieldExpression__.d.ts +2 -2
  508. package/out/concepts/QueryFieldExpression__.js +5 -4
  509. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  510. package/out/concepts/QueryFromExpression__.d.ts +2 -2
  511. package/out/concepts/QueryFromExpression__.js +8 -6
  512. package/out/concepts/QueryFromExpression__.js.map +1 -1
  513. package/out/concepts/QueryGroupByExpression__.d.ts +2 -1
  514. package/out/concepts/QueryGroupByExpression__.js +6 -5
  515. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  516. package/out/concepts/QueryJoinExpression__.d.ts +2 -2
  517. package/out/concepts/QueryJoinExpression__.js +12 -10
  518. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  519. package/out/concepts/QueryLimitExpression__.d.ts +2 -2
  520. package/out/concepts/QueryLimitExpression__.js +6 -5
  521. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  522. package/out/concepts/QueryOrderByExpression__.d.ts +2 -2
  523. package/out/concepts/QueryOrderByExpression__.js +6 -5
  524. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  525. package/out/concepts/Return__.d.ts +3 -3
  526. package/out/concepts/Return__.js +41 -24
  527. package/out/concepts/Return__.js.map +1 -1
  528. package/out/concepts/Role__.d.ts +4 -7
  529. package/out/concepts/Role__.js +7 -6
  530. package/out/concepts/Role__.js.map +1 -1
  531. package/out/concepts/SelectMembers__.d.ts +2 -2
  532. package/out/concepts/SelectMembers__.js +3 -2
  533. package/out/concepts/SelectMembers__.js.map +1 -1
  534. package/out/concepts/SqlQueryComponent__.d.ts +2 -2
  535. package/out/concepts/SqlQueryComponent__.js +12 -10
  536. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  537. package/out/concepts/Start__.d.ts +2 -2
  538. package/out/concepts/Start__.js +2 -2
  539. package/out/concepts/Start__.js.map +1 -1
  540. package/out/concepts/StringInterpolation__.d.ts +2 -2
  541. package/out/concepts/StringInterpolation__.js +7 -5
  542. package/out/concepts/StringInterpolation__.js.map +1 -1
  543. package/out/concepts/StringLiteral__.d.ts +2 -2
  544. package/out/concepts/StringLiteral__.js +12 -6
  545. package/out/concepts/StringLiteral__.js.map +1 -1
  546. package/out/concepts/StructureProperty__.d.ts +2 -2
  547. package/out/concepts/StructureProperty__.js +6 -5
  548. package/out/concepts/StructureProperty__.js.map +1 -1
  549. package/out/concepts/Structure__.d.ts +4 -7
  550. package/out/concepts/Structure__.js +15 -15
  551. package/out/concepts/Structure__.js.map +1 -1
  552. package/out/concepts/SwitchCase__.d.ts +2 -2
  553. package/out/concepts/SwitchCase__.js +12 -10
  554. package/out/concepts/SwitchCase__.js.map +1 -1
  555. package/out/concepts/SwitchStatement__.d.ts +2 -2
  556. package/out/concepts/SwitchStatement__.js +8 -6
  557. package/out/concepts/SwitchStatement__.js.map +1 -1
  558. package/out/concepts/TriggerLauncher__.d.ts +4 -7
  559. package/out/concepts/TriggerLauncher__.js +7 -6
  560. package/out/concepts/TriggerLauncher__.js.map +1 -1
  561. package/out/concepts/TypeAnnotation__.d.ts +2 -2
  562. package/out/concepts/TypeAnnotation__.js +51 -25
  563. package/out/concepts/TypeAnnotation__.js.map +1 -1
  564. package/out/concepts/TypeParam__.d.ts +2 -2
  565. package/out/concepts/TypeParam__.js +4 -3
  566. package/out/concepts/TypeParam__.js.map +1 -1
  567. package/out/concepts/UnaryExpression__.d.ts +2 -2
  568. package/out/concepts/UnaryExpression__.js +12 -7
  569. package/out/concepts/UnaryExpression__.js.map +1 -1
  570. package/out/concepts/Unparsed__.d.ts +2 -2
  571. package/out/concepts/Unparsed__.js +2 -2
  572. package/out/concepts/Unparsed__.js.map +1 -1
  573. package/out/concepts/ValidationRule__.d.ts +2 -2
  574. package/out/concepts/ValidationRule__.js +11 -9
  575. package/out/concepts/ValidationRule__.js.map +1 -1
  576. package/out/concepts/Variable__.d.ts +5 -8
  577. package/out/concepts/Variable__.js +49 -32
  578. package/out/concepts/Variable__.js.map +1 -1
  579. package/out/concepts/ViewElement__.d.ts +6 -6
  580. package/out/concepts/ViewElement__.js +110 -137
  581. package/out/concepts/ViewElement__.js.map +1 -1
  582. package/out/concepts/View__.d.ts +6 -9
  583. package/out/concepts/View__.js +76 -84
  584. package/out/concepts/View__.js.map +1 -1
  585. package/out/concepts/WhileStatement__.d.ts +2 -2
  586. package/out/concepts/WhileStatement__.js +9 -7
  587. package/out/concepts/WhileStatement__.js.map +1 -1
  588. package/out/concepts/index__.d.ts +1 -1
  589. package/out/concepts/index__.js +1 -1
  590. package/out/concepts/index__.js.map +1 -1
  591. package/out/concepts/types__.d.ts +1 -3
  592. package/out/decorators/index.js +10 -9
  593. package/out/decorators/index.js.map +1 -1
  594. package/out/generator/genMetaData.js +0 -7
  595. package/out/generator/genMetaData.js.map +1 -1
  596. package/out/manager/diagnostic.d.ts +1 -1
  597. package/out/manager/diagnostic.js +2 -3
  598. package/out/manager/diagnostic.js.map +1 -1
  599. package/out/server/extendBaseNode.js +7 -24
  600. package/out/server/extendBaseNode.js.map +1 -1
  601. package/out/server/getConnector.js +8 -3
  602. package/out/server/getConnector.js.map +1 -1
  603. package/out/server/getLogics.js +13 -3
  604. package/out/server/getLogics.js.map +1 -1
  605. package/out/server/naslServer.d.ts +44 -46
  606. package/out/server/naslServer.js +333 -461
  607. package/out/server/naslServer.js.map +1 -1
  608. package/out/server/translator.js +1 -1
  609. package/out/server/translator.js.map +1 -1
  610. package/out/templator/genCreateBlock.js +5 -9
  611. package/out/templator/genCreateBlock.js.map +1 -1
  612. package/out/templator/genCurdEditMultipleKeyBlock.js +12 -18
  613. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  614. package/out/templator/genCurdMultipleKeyBlock.js +8 -10
  615. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  616. package/out/templator/genEditTableBlock.js +2 -3
  617. package/out/templator/genEditTableBlock.js.map +1 -1
  618. package/out/templator/genUpdateBlock.js +9 -12
  619. package/out/templator/genUpdateBlock.js.map +1 -1
  620. package/out/templator/utils.js.map +1 -1
  621. package/out/translator/types.d.ts +16 -3
  622. package/out/translator/utils.d.ts +19 -1
  623. package/out/translator/utils.js +90 -2
  624. package/out/translator/utils.js.map +1 -1
  625. package/out/utils/time-slicing/constant.d.ts +35 -0
  626. package/out/utils/time-slicing/constant.js +40 -0
  627. package/out/utils/time-slicing/constant.js.map +1 -0
  628. package/out/utils/time-slicing/controller.d.ts +53 -0
  629. package/out/utils/time-slicing/controller.js +280 -0
  630. package/out/utils/time-slicing/controller.js.map +1 -0
  631. package/out/utils/time-slicing/index.d.ts +5 -0
  632. package/out/utils/time-slicing/index.js +26 -0
  633. package/out/utils/time-slicing/index.js.map +1 -0
  634. package/out/utils/time-slicing/page-state.d.ts +2 -0
  635. package/out/utils/time-slicing/page-state.js +14 -0
  636. package/out/utils/time-slicing/page-state.js.map +1 -0
  637. package/out/utils/time-slicing/performance.d.ts +11 -0
  638. package/out/utils/time-slicing/performance.js +51 -0
  639. package/out/utils/time-slicing/performance.js.map +1 -0
  640. package/out/utils/time-slicing/runner.d.ts +12 -0
  641. package/out/utils/time-slicing/runner.js +53 -0
  642. package/out/utils/time-slicing/runner.js.map +1 -0
  643. package/out/utils/time-slicing/tool.d.ts +24 -0
  644. package/out/utils/time-slicing/tool.js +47 -0
  645. package/out/utils/time-slicing/tool.js.map +1 -0
  646. package/out/utils/time-slicing/utils.d.ts +62 -0
  647. package/out/utils/time-slicing/utils.js +47 -0
  648. package/out/utils/time-slicing/utils.js.map +1 -0
  649. package/out/utils/time-slicing/wrapper.d.ts +18 -0
  650. package/out/utils/time-slicing/wrapper.js +55 -0
  651. package/out/utils/time-slicing/wrapper.js.map +1 -0
  652. package/out/utils/types.d.ts +7 -0
  653. package/package.json +1 -1
  654. package/sandbox/stdlib/nasl.core.ts +0 -2
  655. package/sandbox/stdlib/nasl.util.ts +1 -1
  656. package/src/bak/translator.js +2 -17
  657. package/src/common/BaseNode.ts +73 -7
  658. package/src/common/index.ts +1 -0
  659. package/src/common/utils.ts +17 -0
  660. package/src/concepts/Abort__.ts +12 -3
  661. package/src/concepts/Anchor__.ts +15 -5
  662. package/src/concepts/AnonymousFunction__.ts +29 -23
  663. package/src/concepts/Argument__.ts +25 -14
  664. package/src/concepts/Assignee__.ts +21 -10
  665. package/src/concepts/AssignmentLine__.ts +13 -3
  666. package/src/concepts/Assignment__.ts +33 -42
  667. package/src/concepts/AuthInterface__.ts +3 -3
  668. package/src/concepts/AuthLogicForCallInterface__.ts +63 -84
  669. package/src/concepts/BackendVariable__.ts +35 -30
  670. package/src/concepts/Backend__.ts +24 -7
  671. package/src/concepts/BatchAssignment__.ts +30 -21
  672. package/src/concepts/BinaryExpression__.ts +47 -38
  673. package/src/concepts/BindAttribute__.ts +43 -39
  674. package/src/concepts/BindDirective__.ts +19 -9
  675. package/src/concepts/BindEvent__.ts +31 -26
  676. package/src/concepts/BindStyle__.ts +18 -8
  677. package/src/concepts/Block__.ts +22 -6
  678. package/src/concepts/BooleanLiteral__.ts +11 -3
  679. package/src/concepts/CallAuthInterface__.ts +58 -33
  680. package/src/concepts/CallConnector__.ts +34 -26
  681. package/src/concepts/CallFunction__.ts +22 -17
  682. package/src/concepts/CallInterface__.ts +30 -12
  683. package/src/concepts/CallLogic__.ts +46 -47
  684. package/src/concepts/CallQueryComponent__.ts +48 -46
  685. package/src/concepts/Comment__.ts +13 -3
  686. package/src/concepts/ConfigProperty__.ts +22 -12
  687. package/src/concepts/Connection__.ts +22 -6
  688. package/src/concepts/Connector__.ts +1 -1
  689. package/src/concepts/Constant__.ts +24 -14
  690. package/src/concepts/DataSource__.ts +16 -7
  691. package/src/concepts/DefaultValue__.ts +13 -4
  692. package/src/concepts/Destination__.ts +39 -33
  693. package/src/concepts/End__.ts +24 -15
  694. package/src/concepts/EntityIndex__.ts +13 -4
  695. package/src/concepts/EntityProperty__.ts +20 -10
  696. package/src/concepts/Entity__.ts +34 -27
  697. package/src/concepts/EnumItem__.ts +13 -4
  698. package/src/concepts/Enum__.ts +21 -10
  699. package/src/concepts/ExternalDestination__.ts +16 -7
  700. package/src/concepts/ForEachStatement__.ts +24 -14
  701. package/src/concepts/Frontend__.ts +18 -7
  702. package/src/concepts/Function__.ts +30 -21
  703. package/src/concepts/Identifier__.ts +32 -34
  704. package/src/concepts/IfStatement__.ts +22 -14
  705. package/src/concepts/ImportedInterface__.ts +61 -0
  706. package/src/concepts/InterfaceParam__.ts +19 -16
  707. package/src/concepts/Interface__.ts +45 -51
  708. package/src/concepts/JSBlock__.ts +12 -61
  709. package/src/concepts/JavaLogic__.ts +13 -3
  710. package/src/concepts/LogicItem__.ts +13 -14
  711. package/src/concepts/Logic__.ts +147 -172
  712. package/src/concepts/MatchCase__.ts +33 -27
  713. package/src/concepts/Match__.ts +34 -26
  714. package/src/concepts/MemberExpression__.ts +37 -25
  715. package/src/concepts/MetadataType__.ts +22 -10
  716. package/src/concepts/Module__.ts +177 -540
  717. package/src/concepts/NewComposite__.ts +86 -80
  718. package/src/concepts/NewList__.ts +40 -32
  719. package/src/concepts/NewMap__.ts +49 -42
  720. package/src/concepts/New__.ts +13 -3
  721. package/src/concepts/NullLiteral__.ts +11 -3
  722. package/src/concepts/NumericLiteral__.ts +15 -6
  723. package/src/concepts/OqlQueryComponent__.ts +26 -18
  724. package/src/concepts/OverriddenLogic__.ts +117 -125
  725. package/src/concepts/Param__.ts +42 -38
  726. package/src/concepts/ProcessElement__.ts +67 -79
  727. package/src/concepts/ProcessOutcome__.ts +14 -6
  728. package/src/concepts/ProcessOutcomes__.ts +15 -7
  729. package/src/concepts/Process__.ts +50 -61
  730. package/src/concepts/QueryAggregateExpression__.ts +11 -3
  731. package/src/concepts/QueryFieldExpression__.ts +14 -5
  732. package/src/concepts/QueryFromExpression__.ts +18 -7
  733. package/src/concepts/QueryGroupByExpression__.ts +14 -6
  734. package/src/concepts/QueryJoinExpression__.ts +22 -11
  735. package/src/concepts/QueryLimitExpression__.ts +16 -6
  736. package/src/concepts/QueryOrderByExpression__.ts +17 -6
  737. package/src/concepts/Return__.ts +27 -25
  738. package/src/concepts/Role__.ts +17 -8
  739. package/src/concepts/SelectMembers__.ts +13 -3
  740. package/src/concepts/SqlQueryComponent__.ts +22 -11
  741. package/src/concepts/Start__.ts +11 -3
  742. package/src/concepts/StringInterpolation__.ts +10 -5
  743. package/src/concepts/StringLiteral__.ts +20 -7
  744. package/src/concepts/StructureProperty__.ts +16 -6
  745. package/src/concepts/Structure__.ts +26 -18
  746. package/src/concepts/SwitchCase__.ts +22 -14
  747. package/src/concepts/SwitchStatement__.ts +17 -7
  748. package/src/concepts/TriggerLauncher__.ts +17 -7
  749. package/src/concepts/TypeAnnotation__.ts +36 -26
  750. package/src/concepts/TypeParam__.ts +13 -4
  751. package/src/concepts/UnaryExpression__.ts +22 -9
  752. package/src/concepts/Unparsed__.ts +11 -3
  753. package/src/concepts/ValidationRule__.ts +21 -17
  754. package/src/concepts/Variable__.ts +37 -33
  755. package/src/concepts/ViewElement__.ts +128 -156
  756. package/src/concepts/View__.ts +101 -101
  757. package/src/concepts/WhileStatement__.ts +19 -10
  758. package/src/concepts/index__.ts +1 -1
  759. package/src/concepts/types__.ts +1 -5
  760. package/src/decorators/index.ts +10 -9
  761. package/src/generator/genMetaData.ts +2 -12
  762. package/src/manager/diagnostic.ts +3 -4
  763. package/src/server/extendBaseNode.ts +8 -24
  764. package/src/server/getConnector.ts +8 -3
  765. package/src/server/getLogics.ts +15 -3
  766. package/src/server/naslServer.ts +717 -749
  767. package/src/server/translator.ts +1 -1
  768. package/src/templator/genCreateBlock.ts +5 -9
  769. package/src/templator/genCurdEditMultipleKeyBlock.ts +13 -19
  770. package/src/templator/genCurdMultipleKeyBlock.ts +11 -14
  771. package/src/templator/genEditTableBlock.ts +2 -4
  772. package/src/templator/genUpdateBlock.ts +12 -15
  773. package/src/templator/utils.ts +7 -8
  774. package/src/translator/types.ts +20 -5
  775. package/src/translator/utils.ts +100 -5
  776. package/src/utils/time-slicing/constant.ts +37 -0
  777. package/src/utils/time-slicing/controller.ts +342 -0
  778. package/src/utils/time-slicing/index.ts +6 -0
  779. package/src/utils/time-slicing/page-state.ts +12 -0
  780. package/src/utils/time-slicing/performance.ts +56 -0
  781. package/src/utils/time-slicing/runner.ts +54 -0
  782. package/src/utils/time-slicing/tool.ts +45 -0
  783. package/src/utils/time-slicing/utils.ts +90 -0
  784. package/src/utils/time-slicing/wrapper.ts +58 -0
  785. package/src/utils/types.ts +9 -0
  786. package/test/concepts/anonymous-function/toEmbeddedTS.spec.ts +2 -1
  787. package/test/concepts/assignment/toEmbeddedTS.spec.ts +2 -1
  788. package/test/concepts/batch-assignment/toEmbeddedTS.spec.ts +2 -1
  789. package/test/concepts/binary-expression/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
  790. package/test/concepts/binary-expression/toEmbeddedTS.spec.ts +2 -1
  791. package/test/concepts/boolean-literal/toEmbeddedTS.spec.ts +2 -1
  792. package/test/concepts/call-function/toEmbeddedTS.spec.ts +2 -1
  793. package/test/concepts/call-interface/__snapshots__/toJS.spec.ts.snap +3 -3
  794. package/test/concepts/call-interface/toEmbeddedTS.spec.ts +2 -1
  795. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +5 -5
  796. package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +2 -1
  797. package/test/concepts/call-logic/toEmbeddedTS.spec.ts +2 -1
  798. package/test/concepts/data-source/toEmbeddedTS.spec.ts +2 -1
  799. package/test/concepts/data-source/toEmbeddedTSFile.spec.ts +2 -1
  800. package/test/concepts/entity/__snapshots__/toEmbeddedTS.spec.ts.snap +19 -19
  801. package/test/concepts/entity/toEmbeddedTS.spec.ts +2 -1
  802. package/test/concepts/identifier/toEmbeddedTS.spec.ts +2 -1
  803. package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +1 -1
  804. package/test/concepts/match/toEmbeddedTS.spec.ts +2 -1
  805. package/test/concepts/member-expression/toEmbeddedTS.spec.ts +2 -1
  806. package/test/concepts/null-literal/toEmbeddedTS.spec.ts +2 -1
  807. package/test/concepts/numeric-literal/__snapshots__/toJS.spec.ts.snap +1 -1
  808. package/test/concepts/numeric-literal/toEmbeddedTS.spec.ts +2 -1
  809. package/test/concepts/string-literal/toEmbeddedTS.spec.ts +2 -1
  810. package/test/concepts/validation-rule/__snapshots__/toJS.spec.ts.snap +3 -3
  811. package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +2 -1
  812. package/test/concepts/validation-rule/validation-rule.spec.ts +2 -1
  813. package/test/concepts/view-element/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
  814. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +0 -4
  815. package/test/concepts/view-element/toEmbeddedTS.spec.ts +2 -1
  816. package/test/time-slicing/runner.spec.ts +28 -0
  817. package/test/time-slicing/time-slicing-nodejs.spec.ts +27 -0
  818. package/test/time-slicing/utils.ts +7 -0
  819. package/test/time-slicing/wrapper.spec.ts +92 -0
  820. package/ts-worker/lib/tsserver.js +10 -1
  821. package/ts-worker/package.json +1 -0
  822. package/ts-worker/src/index.js +13 -12
  823. package/ts-worker/webpack.config.js +1 -1
  824. package/out/concepts/InterfaceFromExample__.d.ts +0 -88
  825. package/out/concepts/InterfaceFromExample__.js +0 -183
  826. package/out/concepts/InterfaceFromExample__.js.map +0 -1
  827. package/out/utils/time-slicing.d.ts +0 -41
  828. package/out/utils/time-slicing.js +0 -82
  829. package/out/utils/time-slicing.js.map +0 -1
  830. package/src/concepts/InterfaceFromExample__.ts +0 -205
  831. package/src/utils/time-slicing.ts +0 -111
@@ -0,0 +1,3376 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/concepts/BatchAssignment__.ts</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">src/concepts</a> BatchAssignment__.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">18.02% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>82/455</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">7.35% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>15/204</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">13% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>13/100</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">18.58% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>76/409</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 oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
1164
+ <span class="cline-any cline-neutral">&nbsp;</span>
1165
+ <span class="cline-any cline-neutral">&nbsp;</span>
1166
+ <span class="cline-any cline-yes">1x</span>
1167
+ <span class="cline-any cline-neutral">&nbsp;</span>
1168
+ <span class="cline-any cline-neutral">&nbsp;</span>
1169
+ <span class="cline-any cline-neutral">&nbsp;</span>
1170
+ <span class="cline-any cline-neutral">&nbsp;</span>
1171
+ <span class="cline-any cline-neutral">&nbsp;</span>
1172
+ <span class="cline-any cline-neutral">&nbsp;</span>
1173
+ <span class="cline-any cline-yes">1x</span>
1174
+ <span class="cline-any cline-neutral">&nbsp;</span>
1175
+ <span class="cline-any cline-yes">1x</span>
1176
+ <span class="cline-any cline-neutral">&nbsp;</span>
1177
+ <span class="cline-any cline-neutral">&nbsp;</span>
1178
+ <span class="cline-any cline-yes">1x</span>
1179
+ <span class="cline-any cline-yes">1x</span>
1180
+ <span class="cline-any cline-yes">1x</span>
1181
+ <span class="cline-any cline-neutral">&nbsp;</span>
1182
+ <span class="cline-any cline-neutral">&nbsp;</span>
1183
+ <span class="cline-any cline-neutral">&nbsp;</span>
1184
+ <span class="cline-any cline-neutral">&nbsp;</span>
1185
+ <span class="cline-any cline-neutral">&nbsp;</span>
1186
+ <span class="cline-any cline-neutral">&nbsp;</span>
1187
+ <span class="cline-any cline-neutral">&nbsp;</span>
1188
+ <span class="cline-any cline-yes">1x</span>
1189
+ <span class="cline-any cline-neutral">&nbsp;</span>
1190
+ <span class="cline-any cline-yes">1x</span>
1191
+ <span class="cline-any cline-neutral">&nbsp;</span>
1192
+ <span class="cline-any cline-neutral">&nbsp;</span>
1193
+ <span class="cline-any cline-neutral">&nbsp;</span>
1194
+ <span class="cline-any cline-neutral">&nbsp;</span>
1195
+ <span class="cline-any cline-neutral">&nbsp;</span>
1196
+ <span class="cline-any cline-neutral">&nbsp;</span>
1197
+ <span class="cline-any cline-yes">1x</span>
1198
+ <span class="cline-any cline-neutral">&nbsp;</span>
1199
+ <span class="cline-any cline-neutral">&nbsp;</span>
1200
+ <span class="cline-any cline-neutral">&nbsp;</span>
1201
+ <span class="cline-any cline-neutral">&nbsp;</span>
1202
+ <span class="cline-any cline-neutral">&nbsp;</span>
1203
+ <span class="cline-any cline-yes">6x</span>
1204
+ <span class="cline-any cline-neutral">&nbsp;</span>
1205
+ <span class="cline-any cline-neutral">&nbsp;</span>
1206
+ <span class="cline-any cline-neutral">&nbsp;</span>
1207
+ <span class="cline-any cline-neutral">&nbsp;</span>
1208
+ <span class="cline-any cline-neutral">&nbsp;</span>
1209
+ <span class="cline-any cline-neutral">&nbsp;</span>
1210
+ <span class="cline-any cline-neutral">&nbsp;</span>
1211
+ <span class="cline-any cline-neutral">&nbsp;</span>
1212
+ <span class="cline-any cline-yes">1x</span>
1213
+ <span class="cline-any cline-neutral">&nbsp;</span>
1214
+ <span class="cline-any cline-neutral">&nbsp;</span>
1215
+ <span class="cline-any cline-neutral">&nbsp;</span>
1216
+ <span class="cline-any cline-neutral">&nbsp;</span>
1217
+ <span class="cline-any cline-neutral">&nbsp;</span>
1218
+ <span class="cline-any cline-neutral">&nbsp;</span>
1219
+ <span class="cline-any cline-neutral">&nbsp;</span>
1220
+ <span class="cline-any cline-neutral">&nbsp;</span>
1221
+ <span class="cline-any cline-neutral">&nbsp;</span>
1222
+ <span class="cline-any cline-yes">6x</span>
1223
+ <span class="cline-any cline-neutral">&nbsp;</span>
1224
+ <span class="cline-any cline-neutral">&nbsp;</span>
1225
+ <span class="cline-any cline-neutral">&nbsp;</span>
1226
+ <span class="cline-any cline-neutral">&nbsp;</span>
1227
+ <span class="cline-any cline-neutral">&nbsp;</span>
1228
+ <span class="cline-any cline-neutral">&nbsp;</span>
1229
+ <span class="cline-any cline-neutral">&nbsp;</span>
1230
+ <span class="cline-any cline-neutral">&nbsp;</span>
1231
+ <span class="cline-any cline-neutral">&nbsp;</span>
1232
+ <span class="cline-any cline-yes">6x</span>
1233
+ <span class="cline-any cline-neutral">&nbsp;</span>
1234
+ <span class="cline-any cline-neutral">&nbsp;</span>
1235
+ <span class="cline-any cline-neutral">&nbsp;</span>
1236
+ <span class="cline-any cline-neutral">&nbsp;</span>
1237
+ <span class="cline-any cline-neutral">&nbsp;</span>
1238
+ <span class="cline-any cline-yes">6x</span>
1239
+ <span class="cline-any cline-neutral">&nbsp;</span>
1240
+ <span class="cline-any cline-neutral">&nbsp;</span>
1241
+ <span class="cline-any cline-neutral">&nbsp;</span>
1242
+ <span class="cline-any cline-neutral">&nbsp;</span>
1243
+ <span class="cline-any cline-neutral">&nbsp;</span>
1244
+ <span class="cline-any cline-yes">6x</span>
1245
+ <span class="cline-any cline-yes">6x</span>
1246
+ <span class="cline-any cline-yes">6x</span>
1247
+ <span class="cline-any cline-neutral">&nbsp;</span>
1248
+ <span class="cline-any cline-neutral">&nbsp;</span>
1249
+ <span class="cline-any cline-neutral">&nbsp;</span>
1250
+ <span class="cline-any cline-no">&nbsp;</span>
1251
+ <span class="cline-any cline-neutral">&nbsp;</span>
1252
+ <span class="cline-any cline-neutral">&nbsp;</span>
1253
+ <span class="cline-any cline-neutral">&nbsp;</span>
1254
+ <span class="cline-any cline-neutral">&nbsp;</span>
1255
+ <span class="cline-any cline-neutral">&nbsp;</span>
1256
+ <span class="cline-any cline-neutral">&nbsp;</span>
1257
+ <span class="cline-any cline-no">&nbsp;</span>
1258
+ <span class="cline-any cline-no">&nbsp;</span>
1259
+ <span class="cline-any cline-no">&nbsp;</span>
1260
+ <span class="cline-any cline-no">&nbsp;</span>
1261
+ <span class="cline-any cline-neutral">&nbsp;</span>
1262
+ <span class="cline-any cline-neutral">&nbsp;</span>
1263
+ <span class="cline-any cline-no">&nbsp;</span>
1264
+ <span class="cline-any cline-neutral">&nbsp;</span>
1265
+ <span class="cline-any cline-neutral">&nbsp;</span>
1266
+ <span class="cline-any cline-neutral">&nbsp;</span>
1267
+ <span class="cline-any cline-neutral">&nbsp;</span>
1268
+ <span class="cline-any cline-neutral">&nbsp;</span>
1269
+ <span class="cline-any cline-neutral">&nbsp;</span>
1270
+ <span class="cline-any cline-neutral">&nbsp;</span>
1271
+ <span class="cline-any cline-neutral">&nbsp;</span>
1272
+ <span class="cline-any cline-no">&nbsp;</span>
1273
+ <span class="cline-any cline-neutral">&nbsp;</span>
1274
+ <span class="cline-any cline-neutral">&nbsp;</span>
1275
+ <span class="cline-any cline-no">&nbsp;</span>
1276
+ <span class="cline-any cline-neutral">&nbsp;</span>
1277
+ <span class="cline-any cline-neutral">&nbsp;</span>
1278
+ <span class="cline-any cline-neutral">&nbsp;</span>
1279
+ <span class="cline-any cline-neutral">&nbsp;</span>
1280
+ <span class="cline-any cline-neutral">&nbsp;</span>
1281
+ <span class="cline-any cline-neutral">&nbsp;</span>
1282
+ <span class="cline-any cline-neutral">&nbsp;</span>
1283
+ <span class="cline-any cline-neutral">&nbsp;</span>
1284
+ <span class="cline-any cline-no">&nbsp;</span>
1285
+ <span class="cline-any cline-neutral">&nbsp;</span>
1286
+ <span class="cline-any cline-neutral">&nbsp;</span>
1287
+ <span class="cline-any cline-no">&nbsp;</span>
1288
+ <span class="cline-any cline-neutral">&nbsp;</span>
1289
+ <span class="cline-any cline-neutral">&nbsp;</span>
1290
+ <span class="cline-any cline-neutral">&nbsp;</span>
1291
+ <span class="cline-any cline-neutral">&nbsp;</span>
1292
+ <span class="cline-any cline-neutral">&nbsp;</span>
1293
+ <span class="cline-any cline-neutral">&nbsp;</span>
1294
+ <span class="cline-any cline-neutral">&nbsp;</span>
1295
+ <span class="cline-any cline-neutral">&nbsp;</span>
1296
+ <span class="cline-any cline-no">&nbsp;</span>
1297
+ <span class="cline-any cline-neutral">&nbsp;</span>
1298
+ <span class="cline-any cline-neutral">&nbsp;</span>
1299
+ <span class="cline-any cline-no">&nbsp;</span>
1300
+ <span class="cline-any cline-neutral">&nbsp;</span>
1301
+ <span class="cline-any cline-neutral">&nbsp;</span>
1302
+ <span class="cline-any cline-neutral">&nbsp;</span>
1303
+ <span class="cline-any cline-neutral">&nbsp;</span>
1304
+ <span class="cline-any cline-neutral">&nbsp;</span>
1305
+ <span class="cline-any cline-no">&nbsp;</span>
1306
+ <span class="cline-any cline-no">&nbsp;</span>
1307
+ <span class="cline-any cline-neutral">&nbsp;</span>
1308
+ <span class="cline-any cline-neutral">&nbsp;</span>
1309
+ <span class="cline-any cline-no">&nbsp;</span>
1310
+ <span class="cline-any cline-neutral">&nbsp;</span>
1311
+ <span class="cline-any cline-neutral">&nbsp;</span>
1312
+ <span class="cline-any cline-neutral">&nbsp;</span>
1313
+ <span class="cline-any cline-neutral">&nbsp;</span>
1314
+ <span class="cline-any cline-neutral">&nbsp;</span>
1315
+ <span class="cline-any cline-neutral">&nbsp;</span>
1316
+ <span class="cline-any cline-neutral">&nbsp;</span>
1317
+ <span class="cline-any cline-neutral">&nbsp;</span>
1318
+ <span class="cline-any cline-neutral">&nbsp;</span>
1319
+ <span class="cline-any cline-neutral">&nbsp;</span>
1320
+ <span class="cline-any cline-neutral">&nbsp;</span>
1321
+ <span class="cline-any cline-neutral">&nbsp;</span>
1322
+ <span class="cline-any cline-neutral">&nbsp;</span>
1323
+ <span class="cline-any cline-neutral">&nbsp;</span>
1324
+ <span class="cline-any cline-neutral">&nbsp;</span>
1325
+ <span class="cline-any cline-neutral">&nbsp;</span>
1326
+ <span class="cline-any cline-neutral">&nbsp;</span>
1327
+ <span class="cline-any cline-neutral">&nbsp;</span>
1328
+ <span class="cline-any cline-neutral">&nbsp;</span>
1329
+ <span class="cline-any cline-neutral">&nbsp;</span>
1330
+ <span class="cline-any cline-neutral">&nbsp;</span>
1331
+ <span class="cline-any cline-neutral">&nbsp;</span>
1332
+ <span class="cline-any cline-neutral">&nbsp;</span>
1333
+ <span class="cline-any cline-neutral">&nbsp;</span>
1334
+ <span class="cline-any cline-no">&nbsp;</span>
1335
+ <span class="cline-any cline-no">&nbsp;</span>
1336
+ <span class="cline-any cline-neutral">&nbsp;</span>
1337
+ <span class="cline-any cline-no">&nbsp;</span>
1338
+ <span class="cline-any cline-no">&nbsp;</span>
1339
+ <span class="cline-any cline-neutral">&nbsp;</span>
1340
+ <span class="cline-any cline-neutral">&nbsp;</span>
1341
+ <span class="cline-any cline-neutral">&nbsp;</span>
1342
+ <span class="cline-any cline-neutral">&nbsp;</span>
1343
+ <span class="cline-any cline-neutral">&nbsp;</span>
1344
+ <span class="cline-any cline-neutral">&nbsp;</span>
1345
+ <span class="cline-any cline-neutral">&nbsp;</span>
1346
+ <span class="cline-any cline-no">&nbsp;</span>
1347
+ <span class="cline-any cline-no">&nbsp;</span>
1348
+ <span class="cline-any cline-neutral">&nbsp;</span>
1349
+ <span class="cline-any cline-neutral">&nbsp;</span>
1350
+ <span class="cline-any cline-neutral">&nbsp;</span>
1351
+ <span class="cline-any cline-neutral">&nbsp;</span>
1352
+ <span class="cline-any cline-neutral">&nbsp;</span>
1353
+ <span class="cline-any cline-neutral">&nbsp;</span>
1354
+ <span class="cline-any cline-neutral">&nbsp;</span>
1355
+ <span class="cline-any cline-no">&nbsp;</span>
1356
+ <span class="cline-any cline-no">&nbsp;</span>
1357
+ <span class="cline-any cline-no">&nbsp;</span>
1358
+ <span class="cline-any cline-no">&nbsp;</span>
1359
+ <span class="cline-any cline-neutral">&nbsp;</span>
1360
+ <span class="cline-any cline-no">&nbsp;</span>
1361
+ <span class="cline-any cline-neutral">&nbsp;</span>
1362
+ <span class="cline-any cline-neutral">&nbsp;</span>
1363
+ <span class="cline-any cline-neutral">&nbsp;</span>
1364
+ <span class="cline-any cline-neutral">&nbsp;</span>
1365
+ <span class="cline-any cline-neutral">&nbsp;</span>
1366
+ <span class="cline-any cline-neutral">&nbsp;</span>
1367
+ <span class="cline-any cline-neutral">&nbsp;</span>
1368
+ <span class="cline-any cline-neutral">&nbsp;</span>
1369
+ <span class="cline-any cline-no">&nbsp;</span>
1370
+ <span class="cline-any cline-no">&nbsp;</span>
1371
+ <span class="cline-any cline-neutral">&nbsp;</span>
1372
+ <span class="cline-any cline-neutral">&nbsp;</span>
1373
+ <span class="cline-any cline-neutral">&nbsp;</span>
1374
+ <span class="cline-any cline-neutral">&nbsp;</span>
1375
+ <span class="cline-any cline-neutral">&nbsp;</span>
1376
+ <span class="cline-any cline-neutral">&nbsp;</span>
1377
+ <span class="cline-any cline-neutral">&nbsp;</span>
1378
+ <span class="cline-any cline-neutral">&nbsp;</span>
1379
+ <span class="cline-any cline-neutral">&nbsp;</span>
1380
+ <span class="cline-any cline-neutral">&nbsp;</span>
1381
+ <span class="cline-any cline-neutral">&nbsp;</span>
1382
+ <span class="cline-any cline-neutral">&nbsp;</span>
1383
+ <span class="cline-any cline-neutral">&nbsp;</span>
1384
+ <span class="cline-any cline-neutral">&nbsp;</span>
1385
+ <span class="cline-any cline-neutral">&nbsp;</span>
1386
+ <span class="cline-any cline-neutral">&nbsp;</span>
1387
+ <span class="cline-any cline-neutral">&nbsp;</span>
1388
+ <span class="cline-any cline-neutral">&nbsp;</span>
1389
+ <span class="cline-any cline-neutral">&nbsp;</span>
1390
+ <span class="cline-any cline-neutral">&nbsp;</span>
1391
+ <span class="cline-any cline-neutral">&nbsp;</span>
1392
+ <span class="cline-any cline-no">&nbsp;</span>
1393
+ <span class="cline-any cline-no">&nbsp;</span>
1394
+ <span class="cline-any cline-neutral">&nbsp;</span>
1395
+ <span class="cline-any cline-neutral">&nbsp;</span>
1396
+ <span class="cline-any cline-neutral">&nbsp;</span>
1397
+ <span class="cline-any cline-neutral">&nbsp;</span>
1398
+ <span class="cline-any cline-no">&nbsp;</span>
1399
+ <span class="cline-any cline-neutral">&nbsp;</span>
1400
+ <span class="cline-any cline-neutral">&nbsp;</span>
1401
+ <span class="cline-any cline-neutral">&nbsp;</span>
1402
+ <span class="cline-any cline-neutral">&nbsp;</span>
1403
+ <span class="cline-any cline-neutral">&nbsp;</span>
1404
+ <span class="cline-any cline-neutral">&nbsp;</span>
1405
+ <span class="cline-any cline-neutral">&nbsp;</span>
1406
+ <span class="cline-any cline-neutral">&nbsp;</span>
1407
+ <span class="cline-any cline-neutral">&nbsp;</span>
1408
+ <span class="cline-any cline-neutral">&nbsp;</span>
1409
+ <span class="cline-any cline-neutral">&nbsp;</span>
1410
+ <span class="cline-any cline-neutral">&nbsp;</span>
1411
+ <span class="cline-any cline-neutral">&nbsp;</span>
1412
+ <span class="cline-any cline-neutral">&nbsp;</span>
1413
+ <span class="cline-any cline-neutral">&nbsp;</span>
1414
+ <span class="cline-any cline-neutral">&nbsp;</span>
1415
+ <span class="cline-any cline-neutral">&nbsp;</span>
1416
+ <span class="cline-any cline-neutral">&nbsp;</span>
1417
+ <span class="cline-any cline-neutral">&nbsp;</span>
1418
+ <span class="cline-any cline-neutral">&nbsp;</span>
1419
+ <span class="cline-any cline-neutral">&nbsp;</span>
1420
+ <span class="cline-any cline-neutral">&nbsp;</span>
1421
+ <span class="cline-any cline-neutral">&nbsp;</span>
1422
+ <span class="cline-any cline-neutral">&nbsp;</span>
1423
+ <span class="cline-any cline-no">&nbsp;</span>
1424
+ <span class="cline-any cline-no">&nbsp;</span>
1425
+ <span class="cline-any cline-neutral">&nbsp;</span>
1426
+ <span class="cline-any cline-neutral">&nbsp;</span>
1427
+ <span class="cline-any cline-neutral">&nbsp;</span>
1428
+ <span class="cline-any cline-neutral">&nbsp;</span>
1429
+ <span class="cline-any cline-neutral">&nbsp;</span>
1430
+ <span class="cline-any cline-neutral">&nbsp;</span>
1431
+ <span class="cline-any cline-neutral">&nbsp;</span>
1432
+ <span class="cline-any cline-neutral">&nbsp;</span>
1433
+ <span class="cline-any cline-neutral">&nbsp;</span>
1434
+ <span class="cline-any cline-neutral">&nbsp;</span>
1435
+ <span class="cline-any cline-neutral">&nbsp;</span>
1436
+ <span class="cline-any cline-neutral">&nbsp;</span>
1437
+ <span class="cline-any cline-neutral">&nbsp;</span>
1438
+ <span class="cline-any cline-neutral">&nbsp;</span>
1439
+ <span class="cline-any cline-neutral">&nbsp;</span>
1440
+ <span class="cline-any cline-neutral">&nbsp;</span>
1441
+ <span class="cline-any cline-neutral">&nbsp;</span>
1442
+ <span class="cline-any cline-neutral">&nbsp;</span>
1443
+ <span class="cline-any cline-neutral">&nbsp;</span>
1444
+ <span class="cline-any cline-neutral">&nbsp;</span>
1445
+ <span class="cline-any cline-neutral">&nbsp;</span>
1446
+ <span class="cline-any cline-neutral">&nbsp;</span>
1447
+ <span class="cline-any cline-no">&nbsp;</span>
1448
+ <span class="cline-any cline-no">&nbsp;</span>
1449
+ <span class="cline-any cline-no">&nbsp;</span>
1450
+ <span class="cline-any cline-neutral">&nbsp;</span>
1451
+ <span class="cline-any cline-neutral">&nbsp;</span>
1452
+ <span class="cline-any cline-neutral">&nbsp;</span>
1453
+ <span class="cline-any cline-neutral">&nbsp;</span>
1454
+ <span class="cline-any cline-no">&nbsp;</span>
1455
+ <span class="cline-any cline-neutral">&nbsp;</span>
1456
+ <span class="cline-any cline-neutral">&nbsp;</span>
1457
+ <span class="cline-any cline-neutral">&nbsp;</span>
1458
+ <span class="cline-any cline-no">&nbsp;</span>
1459
+ <span class="cline-any cline-no">&nbsp;</span>
1460
+ <span class="cline-any cline-no">&nbsp;</span>
1461
+ <span class="cline-any cline-no">&nbsp;</span>
1462
+ <span class="cline-any cline-neutral">&nbsp;</span>
1463
+ <span class="cline-any cline-neutral">&nbsp;</span>
1464
+ <span class="cline-any cline-no">&nbsp;</span>
1465
+ <span class="cline-any cline-neutral">&nbsp;</span>
1466
+ <span class="cline-any cline-neutral">&nbsp;</span>
1467
+ <span class="cline-any cline-neutral">&nbsp;</span>
1468
+ <span class="cline-any cline-neutral">&nbsp;</span>
1469
+ <span class="cline-any cline-neutral">&nbsp;</span>
1470
+ <span class="cline-any cline-neutral">&nbsp;</span>
1471
+ <span class="cline-any cline-neutral">&nbsp;</span>
1472
+ <span class="cline-any cline-neutral">&nbsp;</span>
1473
+ <span class="cline-any cline-neutral">&nbsp;</span>
1474
+ <span class="cline-any cline-neutral">&nbsp;</span>
1475
+ <span class="cline-any cline-neutral">&nbsp;</span>
1476
+ <span class="cline-any cline-neutral">&nbsp;</span>
1477
+ <span class="cline-any cline-neutral">&nbsp;</span>
1478
+ <span class="cline-any cline-neutral">&nbsp;</span>
1479
+ <span class="cline-any cline-neutral">&nbsp;</span>
1480
+ <span class="cline-any cline-neutral">&nbsp;</span>
1481
+ <span class="cline-any cline-neutral">&nbsp;</span>
1482
+ <span class="cline-any cline-neutral">&nbsp;</span>
1483
+ <span class="cline-any cline-neutral">&nbsp;</span>
1484
+ <span class="cline-any cline-neutral">&nbsp;</span>
1485
+ <span class="cline-any cline-neutral">&nbsp;</span>
1486
+ <span class="cline-any cline-neutral">&nbsp;</span>
1487
+ <span class="cline-any cline-neutral">&nbsp;</span>
1488
+ <span class="cline-any cline-neutral">&nbsp;</span>
1489
+ <span class="cline-any cline-no">&nbsp;</span>
1490
+ <span class="cline-any cline-no">&nbsp;</span>
1491
+ <span class="cline-any cline-neutral">&nbsp;</span>
1492
+ <span class="cline-any cline-no">&nbsp;</span>
1493
+ <span class="cline-any cline-no">&nbsp;</span>
1494
+ <span class="cline-any cline-neutral">&nbsp;</span>
1495
+ <span class="cline-any cline-neutral">&nbsp;</span>
1496
+ <span class="cline-any cline-neutral">&nbsp;</span>
1497
+ <span class="cline-any cline-neutral">&nbsp;</span>
1498
+ <span class="cline-any cline-neutral">&nbsp;</span>
1499
+ <span class="cline-any cline-neutral">&nbsp;</span>
1500
+ <span class="cline-any cline-neutral">&nbsp;</span>
1501
+ <span class="cline-any cline-no">&nbsp;</span>
1502
+ <span class="cline-any cline-no">&nbsp;</span>
1503
+ <span class="cline-any cline-neutral">&nbsp;</span>
1504
+ <span class="cline-any cline-neutral">&nbsp;</span>
1505
+ <span class="cline-any cline-neutral">&nbsp;</span>
1506
+ <span class="cline-any cline-neutral">&nbsp;</span>
1507
+ <span class="cline-any cline-neutral">&nbsp;</span>
1508
+ <span class="cline-any cline-neutral">&nbsp;</span>
1509
+ <span class="cline-any cline-neutral">&nbsp;</span>
1510
+ <span class="cline-any cline-no">&nbsp;</span>
1511
+ <span class="cline-any cline-no">&nbsp;</span>
1512
+ <span class="cline-any cline-no">&nbsp;</span>
1513
+ <span class="cline-any cline-no">&nbsp;</span>
1514
+ <span class="cline-any cline-neutral">&nbsp;</span>
1515
+ <span class="cline-any cline-no">&nbsp;</span>
1516
+ <span class="cline-any cline-neutral">&nbsp;</span>
1517
+ <span class="cline-any cline-neutral">&nbsp;</span>
1518
+ <span class="cline-any cline-neutral">&nbsp;</span>
1519
+ <span class="cline-any cline-neutral">&nbsp;</span>
1520
+ <span class="cline-any cline-neutral">&nbsp;</span>
1521
+ <span class="cline-any cline-neutral">&nbsp;</span>
1522
+ <span class="cline-any cline-neutral">&nbsp;</span>
1523
+ <span class="cline-any cline-neutral">&nbsp;</span>
1524
+ <span class="cline-any cline-no">&nbsp;</span>
1525
+ <span class="cline-any cline-no">&nbsp;</span>
1526
+ <span class="cline-any cline-neutral">&nbsp;</span>
1527
+ <span class="cline-any cline-neutral">&nbsp;</span>
1528
+ <span class="cline-any cline-neutral">&nbsp;</span>
1529
+ <span class="cline-any cline-neutral">&nbsp;</span>
1530
+ <span class="cline-any cline-neutral">&nbsp;</span>
1531
+ <span class="cline-any cline-neutral">&nbsp;</span>
1532
+ <span class="cline-any cline-neutral">&nbsp;</span>
1533
+ <span class="cline-any cline-neutral">&nbsp;</span>
1534
+ <span class="cline-any cline-neutral">&nbsp;</span>
1535
+ <span class="cline-any cline-neutral">&nbsp;</span>
1536
+ <span class="cline-any cline-neutral">&nbsp;</span>
1537
+ <span class="cline-any cline-neutral">&nbsp;</span>
1538
+ <span class="cline-any cline-neutral">&nbsp;</span>
1539
+ <span class="cline-any cline-neutral">&nbsp;</span>
1540
+ <span class="cline-any cline-neutral">&nbsp;</span>
1541
+ <span class="cline-any cline-neutral">&nbsp;</span>
1542
+ <span class="cline-any cline-neutral">&nbsp;</span>
1543
+ <span class="cline-any cline-neutral">&nbsp;</span>
1544
+ <span class="cline-any cline-neutral">&nbsp;</span>
1545
+ <span class="cline-any cline-neutral">&nbsp;</span>
1546
+ <span class="cline-any cline-neutral">&nbsp;</span>
1547
+ <span class="cline-any cline-no">&nbsp;</span>
1548
+ <span class="cline-any cline-no">&nbsp;</span>
1549
+ <span class="cline-any cline-neutral">&nbsp;</span>
1550
+ <span class="cline-any cline-neutral">&nbsp;</span>
1551
+ <span class="cline-any cline-neutral">&nbsp;</span>
1552
+ <span class="cline-any cline-neutral">&nbsp;</span>
1553
+ <span class="cline-any cline-no">&nbsp;</span>
1554
+ <span class="cline-any cline-neutral">&nbsp;</span>
1555
+ <span class="cline-any cline-neutral">&nbsp;</span>
1556
+ <span class="cline-any cline-neutral">&nbsp;</span>
1557
+ <span class="cline-any cline-neutral">&nbsp;</span>
1558
+ <span class="cline-any cline-neutral">&nbsp;</span>
1559
+ <span class="cline-any cline-neutral">&nbsp;</span>
1560
+ <span class="cline-any cline-neutral">&nbsp;</span>
1561
+ <span class="cline-any cline-neutral">&nbsp;</span>
1562
+ <span class="cline-any cline-neutral">&nbsp;</span>
1563
+ <span class="cline-any cline-neutral">&nbsp;</span>
1564
+ <span class="cline-any cline-neutral">&nbsp;</span>
1565
+ <span class="cline-any cline-neutral">&nbsp;</span>
1566
+ <span class="cline-any cline-neutral">&nbsp;</span>
1567
+ <span class="cline-any cline-neutral">&nbsp;</span>
1568
+ <span class="cline-any cline-neutral">&nbsp;</span>
1569
+ <span class="cline-any cline-neutral">&nbsp;</span>
1570
+ <span class="cline-any cline-neutral">&nbsp;</span>
1571
+ <span class="cline-any cline-neutral">&nbsp;</span>
1572
+ <span class="cline-any cline-neutral">&nbsp;</span>
1573
+ <span class="cline-any cline-neutral">&nbsp;</span>
1574
+ <span class="cline-any cline-neutral">&nbsp;</span>
1575
+ <span class="cline-any cline-neutral">&nbsp;</span>
1576
+ <span class="cline-any cline-neutral">&nbsp;</span>
1577
+ <span class="cline-any cline-neutral">&nbsp;</span>
1578
+ <span class="cline-any cline-no">&nbsp;</span>
1579
+ <span class="cline-any cline-no">&nbsp;</span>
1580
+ <span class="cline-any cline-neutral">&nbsp;</span>
1581
+ <span class="cline-any cline-neutral">&nbsp;</span>
1582
+ <span class="cline-any cline-neutral">&nbsp;</span>
1583
+ <span class="cline-any cline-neutral">&nbsp;</span>
1584
+ <span class="cline-any cline-neutral">&nbsp;</span>
1585
+ <span class="cline-any cline-neutral">&nbsp;</span>
1586
+ <span class="cline-any cline-neutral">&nbsp;</span>
1587
+ <span class="cline-any cline-neutral">&nbsp;</span>
1588
+ <span class="cline-any cline-neutral">&nbsp;</span>
1589
+ <span class="cline-any cline-neutral">&nbsp;</span>
1590
+ <span class="cline-any cline-neutral">&nbsp;</span>
1591
+ <span class="cline-any cline-neutral">&nbsp;</span>
1592
+ <span class="cline-any cline-neutral">&nbsp;</span>
1593
+ <span class="cline-any cline-neutral">&nbsp;</span>
1594
+ <span class="cline-any cline-neutral">&nbsp;</span>
1595
+ <span class="cline-any cline-neutral">&nbsp;</span>
1596
+ <span class="cline-any cline-neutral">&nbsp;</span>
1597
+ <span class="cline-any cline-neutral">&nbsp;</span>
1598
+ <span class="cline-any cline-neutral">&nbsp;</span>
1599
+ <span class="cline-any cline-neutral">&nbsp;</span>
1600
+ <span class="cline-any cline-neutral">&nbsp;</span>
1601
+ <span class="cline-any cline-neutral">&nbsp;</span>
1602
+ <span class="cline-any cline-no">&nbsp;</span>
1603
+ <span class="cline-any cline-no">&nbsp;</span>
1604
+ <span class="cline-any cline-no">&nbsp;</span>
1605
+ <span class="cline-any cline-neutral">&nbsp;</span>
1606
+ <span class="cline-any cline-neutral">&nbsp;</span>
1607
+ <span class="cline-any cline-neutral">&nbsp;</span>
1608
+ <span class="cline-any cline-neutral">&nbsp;</span>
1609
+ <span class="cline-any cline-no">&nbsp;</span>
1610
+ <span class="cline-any cline-neutral">&nbsp;</span>
1611
+ <span class="cline-any cline-neutral">&nbsp;</span>
1612
+ <span class="cline-any cline-neutral">&nbsp;</span>
1613
+ <span class="cline-any cline-neutral">&nbsp;</span>
1614
+ <span class="cline-any cline-neutral">&nbsp;</span>
1615
+ <span class="cline-any cline-neutral">&nbsp;</span>
1616
+ <span class="cline-any cline-neutral">&nbsp;</span>
1617
+ <span class="cline-any cline-neutral">&nbsp;</span>
1618
+ <span class="cline-any cline-neutral">&nbsp;</span>
1619
+ <span class="cline-any cline-neutral">&nbsp;</span>
1620
+ <span class="cline-any cline-neutral">&nbsp;</span>
1621
+ <span class="cline-any cline-neutral">&nbsp;</span>
1622
+ <span class="cline-any cline-neutral">&nbsp;</span>
1623
+ <span class="cline-any cline-neutral">&nbsp;</span>
1624
+ <span class="cline-any cline-neutral">&nbsp;</span>
1625
+ <span class="cline-any cline-neutral">&nbsp;</span>
1626
+ <span class="cline-any cline-no">&nbsp;</span>
1627
+ <span class="cline-any cline-no">&nbsp;</span>
1628
+ <span class="cline-any cline-no">&nbsp;</span>
1629
+ <span class="cline-any cline-no">&nbsp;</span>
1630
+ <span class="cline-any cline-neutral">&nbsp;</span>
1631
+ <span class="cline-any cline-neutral">&nbsp;</span>
1632
+ <span class="cline-any cline-no">&nbsp;</span>
1633
+ <span class="cline-any cline-neutral">&nbsp;</span>
1634
+ <span class="cline-any cline-no">&nbsp;</span>
1635
+ <span class="cline-any cline-neutral">&nbsp;</span>
1636
+ <span class="cline-any cline-neutral">&nbsp;</span>
1637
+ <span class="cline-any cline-neutral">&nbsp;</span>
1638
+ <span class="cline-any cline-neutral">&nbsp;</span>
1639
+ <span class="cline-any cline-neutral">&nbsp;</span>
1640
+ <span class="cline-any cline-neutral">&nbsp;</span>
1641
+ <span class="cline-any cline-neutral">&nbsp;</span>
1642
+ <span class="cline-any cline-neutral">&nbsp;</span>
1643
+ <span class="cline-any cline-neutral">&nbsp;</span>
1644
+ <span class="cline-any cline-neutral">&nbsp;</span>
1645
+ <span class="cline-any cline-neutral">&nbsp;</span>
1646
+ <span class="cline-any cline-neutral">&nbsp;</span>
1647
+ <span class="cline-any cline-neutral">&nbsp;</span>
1648
+ <span class="cline-any cline-neutral">&nbsp;</span>
1649
+ <span class="cline-any cline-neutral">&nbsp;</span>
1650
+ <span class="cline-any cline-neutral">&nbsp;</span>
1651
+ <span class="cline-any cline-no">&nbsp;</span>
1652
+ <span class="cline-any cline-no">&nbsp;</span>
1653
+ <span class="cline-any cline-no">&nbsp;</span>
1654
+ <span class="cline-any cline-no">&nbsp;</span>
1655
+ <span class="cline-any cline-neutral">&nbsp;</span>
1656
+ <span class="cline-any cline-neutral">&nbsp;</span>
1657
+ <span class="cline-any cline-no">&nbsp;</span>
1658
+ <span class="cline-any cline-neutral">&nbsp;</span>
1659
+ <span class="cline-any cline-no">&nbsp;</span>
1660
+ <span class="cline-any cline-neutral">&nbsp;</span>
1661
+ <span class="cline-any cline-neutral">&nbsp;</span>
1662
+ <span class="cline-any cline-neutral">&nbsp;</span>
1663
+ <span class="cline-any cline-no">&nbsp;</span>
1664
+ <span class="cline-any cline-no">&nbsp;</span>
1665
+ <span class="cline-any cline-neutral">&nbsp;</span>
1666
+ <span class="cline-any cline-neutral">&nbsp;</span>
1667
+ <span class="cline-any cline-neutral">&nbsp;</span>
1668
+ <span class="cline-any cline-neutral">&nbsp;</span>
1669
+ <span class="cline-any cline-neutral">&nbsp;</span>
1670
+ <span class="cline-any cline-neutral">&nbsp;</span>
1671
+ <span class="cline-any cline-no">&nbsp;</span>
1672
+ <span class="cline-any cline-no">&nbsp;</span>
1673
+ <span class="cline-any cline-neutral">&nbsp;</span>
1674
+ <span class="cline-any cline-no">&nbsp;</span>
1675
+ <span class="cline-any cline-neutral">&nbsp;</span>
1676
+ <span class="cline-any cline-no">&nbsp;</span>
1677
+ <span class="cline-any cline-no">&nbsp;</span>
1678
+ <span class="cline-any cline-no">&nbsp;</span>
1679
+ <span class="cline-any cline-no">&nbsp;</span>
1680
+ <span class="cline-any cline-no">&nbsp;</span>
1681
+ <span class="cline-any cline-no">&nbsp;</span>
1682
+ <span class="cline-any cline-no">&nbsp;</span>
1683
+ <span class="cline-any cline-no">&nbsp;</span>
1684
+ <span class="cline-any cline-neutral">&nbsp;</span>
1685
+ <span class="cline-any cline-neutral">&nbsp;</span>
1686
+ <span class="cline-any cline-no">&nbsp;</span>
1687
+ <span class="cline-any cline-neutral">&nbsp;</span>
1688
+ <span class="cline-any cline-neutral">&nbsp;</span>
1689
+ <span class="cline-any cline-neutral">&nbsp;</span>
1690
+ <span class="cline-any cline-neutral">&nbsp;</span>
1691
+ <span class="cline-any cline-neutral">&nbsp;</span>
1692
+ <span class="cline-any cline-neutral">&nbsp;</span>
1693
+ <span class="cline-any cline-neutral">&nbsp;</span>
1694
+ <span class="cline-any cline-neutral">&nbsp;</span>
1695
+ <span class="cline-any cline-neutral">&nbsp;</span>
1696
+ <span class="cline-any cline-neutral">&nbsp;</span>
1697
+ <span class="cline-any cline-neutral">&nbsp;</span>
1698
+ <span class="cline-any cline-neutral">&nbsp;</span>
1699
+ <span class="cline-any cline-neutral">&nbsp;</span>
1700
+ <span class="cline-any cline-neutral">&nbsp;</span>
1701
+ <span class="cline-any cline-neutral">&nbsp;</span>
1702
+ <span class="cline-any cline-neutral">&nbsp;</span>
1703
+ <span class="cline-any cline-no">&nbsp;</span>
1704
+ <span class="cline-any cline-no">&nbsp;</span>
1705
+ <span class="cline-any cline-no">&nbsp;</span>
1706
+ <span class="cline-any cline-no">&nbsp;</span>
1707
+ <span class="cline-any cline-neutral">&nbsp;</span>
1708
+ <span class="cline-any cline-neutral">&nbsp;</span>
1709
+ <span class="cline-any cline-no">&nbsp;</span>
1710
+ <span class="cline-any cline-neutral">&nbsp;</span>
1711
+ <span class="cline-any cline-no">&nbsp;</span>
1712
+ <span class="cline-any cline-neutral">&nbsp;</span>
1713
+ <span class="cline-any cline-neutral">&nbsp;</span>
1714
+ <span class="cline-any cline-neutral">&nbsp;</span>
1715
+ <span class="cline-any cline-no">&nbsp;</span>
1716
+ <span class="cline-any cline-no">&nbsp;</span>
1717
+ <span class="cline-any cline-neutral">&nbsp;</span>
1718
+ <span class="cline-any cline-neutral">&nbsp;</span>
1719
+ <span class="cline-any cline-neutral">&nbsp;</span>
1720
+ <span class="cline-any cline-neutral">&nbsp;</span>
1721
+ <span class="cline-any cline-neutral">&nbsp;</span>
1722
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1726
+ <span class="cline-any cline-no">&nbsp;</span>
1727
+ <span class="cline-any cline-neutral">&nbsp;</span>
1728
+ <span class="cline-any cline-no">&nbsp;</span>
1729
+ <span class="cline-any cline-no">&nbsp;</span>
1730
+ <span class="cline-any cline-no">&nbsp;</span>
1731
+ <span class="cline-any cline-no">&nbsp;</span>
1732
+ <span class="cline-any cline-no">&nbsp;</span>
1733
+ <span class="cline-any cline-no">&nbsp;</span>
1734
+ <span class="cline-any cline-no">&nbsp;</span>
1735
+ <span class="cline-any cline-no">&nbsp;</span>
1736
+ <span class="cline-any cline-neutral">&nbsp;</span>
1737
+ <span class="cline-any cline-neutral">&nbsp;</span>
1738
+ <span class="cline-any cline-no">&nbsp;</span>
1739
+ <span class="cline-any cline-neutral">&nbsp;</span>
1740
+ <span class="cline-any cline-neutral">&nbsp;</span>
1741
+ <span class="cline-any cline-neutral">&nbsp;</span>
1742
+ <span class="cline-any cline-neutral">&nbsp;</span>
1743
+ <span class="cline-any cline-neutral">&nbsp;</span>
1744
+ <span class="cline-any cline-neutral">&nbsp;</span>
1745
+ <span class="cline-any cline-neutral">&nbsp;</span>
1746
+ <span class="cline-any cline-neutral">&nbsp;</span>
1747
+ <span class="cline-any cline-yes">6x</span>
1748
+ <span class="cline-any cline-neutral">&nbsp;</span>
1749
+ <span class="cline-any cline-neutral">&nbsp;</span>
1750
+ <span class="cline-any cline-neutral">&nbsp;</span>
1751
+ <span class="cline-any cline-neutral">&nbsp;</span>
1752
+ <span class="cline-any cline-neutral">&nbsp;</span>
1753
+ <span class="cline-any cline-neutral">&nbsp;</span>
1754
+ <span class="cline-any cline-neutral">&nbsp;</span>
1755
+ <span class="cline-any cline-neutral">&nbsp;</span>
1756
+ <span class="cline-any cline-neutral">&nbsp;</span>
1757
+ <span class="cline-any cline-neutral">&nbsp;</span>
1758
+ <span class="cline-any cline-neutral">&nbsp;</span>
1759
+ <span class="cline-any cline-neutral">&nbsp;</span>
1760
+ <span class="cline-any cline-no">&nbsp;</span>
1761
+ <span class="cline-any cline-no">&nbsp;</span>
1762
+ <span class="cline-any cline-neutral">&nbsp;</span>
1763
+ <span class="cline-any cline-no">&nbsp;</span>
1764
+ <span class="cline-any cline-neutral">&nbsp;</span>
1765
+ <span class="cline-any cline-no">&nbsp;</span>
1766
+ <span class="cline-any cline-no">&nbsp;</span>
1767
+ <span class="cline-any cline-neutral">&nbsp;</span>
1768
+ <span class="cline-any cline-neutral">&nbsp;</span>
1769
+ <span class="cline-any cline-no">&nbsp;</span>
1770
+ <span class="cline-any cline-no">&nbsp;</span>
1771
+ <span class="cline-any cline-no">&nbsp;</span>
1772
+ <span class="cline-any cline-no">&nbsp;</span>
1773
+ <span class="cline-any cline-neutral">&nbsp;</span>
1774
+ <span class="cline-any cline-neutral">&nbsp;</span>
1775
+ <span class="cline-any cline-neutral">&nbsp;</span>
1776
+ <span class="cline-any cline-no">&nbsp;</span>
1777
+ <span class="cline-any cline-neutral">&nbsp;</span>
1778
+ <span class="cline-any cline-neutral">&nbsp;</span>
1779
+ <span class="cline-any cline-no">&nbsp;</span>
1780
+ <span class="cline-any cline-no">&nbsp;</span>
1781
+ <span class="cline-any cline-neutral">&nbsp;</span>
1782
+ <span class="cline-any cline-neutral">&nbsp;</span>
1783
+ <span class="cline-any cline-no">&nbsp;</span>
1784
+ <span class="cline-any cline-no">&nbsp;</span>
1785
+ <span class="cline-any cline-no">&nbsp;</span>
1786
+ <span class="cline-any cline-no">&nbsp;</span>
1787
+ <span class="cline-any cline-no">&nbsp;</span>
1788
+ <span class="cline-any cline-neutral">&nbsp;</span>
1789
+ <span class="cline-any cline-no">&nbsp;</span>
1790
+ <span class="cline-any cline-no">&nbsp;</span>
1791
+ <span class="cline-any cline-no">&nbsp;</span>
1792
+ <span class="cline-any cline-no">&nbsp;</span>
1793
+ <span class="cline-any cline-neutral">&nbsp;</span>
1794
+ <span class="cline-any cline-no">&nbsp;</span>
1795
+ <span class="cline-any cline-no">&nbsp;</span>
1796
+ <span class="cline-any cline-no">&nbsp;</span>
1797
+ <span class="cline-any cline-no">&nbsp;</span>
1798
+ <span class="cline-any cline-no">&nbsp;</span>
1799
+ <span class="cline-any cline-neutral">&nbsp;</span>
1800
+ <span class="cline-any cline-neutral">&nbsp;</span>
1801
+ <span class="cline-any cline-neutral">&nbsp;</span>
1802
+ <span class="cline-any cline-no">&nbsp;</span>
1803
+ <span class="cline-any cline-neutral">&nbsp;</span>
1804
+ <span class="cline-any cline-neutral">&nbsp;</span>
1805
+ <span class="cline-any cline-no">&nbsp;</span>
1806
+ <span class="cline-any cline-no">&nbsp;</span>
1807
+ <span class="cline-any cline-neutral">&nbsp;</span>
1808
+ <span class="cline-any cline-neutral">&nbsp;</span>
1809
+ <span class="cline-any cline-neutral">&nbsp;</span>
1810
+ <span class="cline-any cline-no">&nbsp;</span>
1811
+ <span class="cline-any cline-no">&nbsp;</span>
1812
+ <span class="cline-any cline-no">&nbsp;</span>
1813
+ <span class="cline-any cline-neutral">&nbsp;</span>
1814
+ <span class="cline-any cline-no">&nbsp;</span>
1815
+ <span class="cline-any cline-no">&nbsp;</span>
1816
+ <span class="cline-any cline-no">&nbsp;</span>
1817
+ <span class="cline-any cline-no">&nbsp;</span>
1818
+ <span class="cline-any cline-neutral">&nbsp;</span>
1819
+ <span class="cline-any cline-no">&nbsp;</span>
1820
+ <span class="cline-any cline-no">&nbsp;</span>
1821
+ <span class="cline-any cline-no">&nbsp;</span>
1822
+ <span class="cline-any cline-no">&nbsp;</span>
1823
+ <span class="cline-any cline-no">&nbsp;</span>
1824
+ <span class="cline-any cline-no">&nbsp;</span>
1825
+ <span class="cline-any cline-no">&nbsp;</span>
1826
+ <span class="cline-any cline-no">&nbsp;</span>
1827
+ <span class="cline-any cline-neutral">&nbsp;</span>
1828
+ <span class="cline-any cline-neutral">&nbsp;</span>
1829
+ <span class="cline-any cline-neutral">&nbsp;</span>
1830
+ <span class="cline-any cline-neutral">&nbsp;</span>
1831
+ <span class="cline-any cline-no">&nbsp;</span>
1832
+ <span class="cline-any cline-no">&nbsp;</span>
1833
+ <span class="cline-any cline-neutral">&nbsp;</span>
1834
+ <span class="cline-any cline-neutral">&nbsp;</span>
1835
+ <span class="cline-any cline-no">&nbsp;</span>
1836
+ <span class="cline-any cline-no">&nbsp;</span>
1837
+ <span class="cline-any cline-no">&nbsp;</span>
1838
+ <span class="cline-any cline-no">&nbsp;</span>
1839
+ <span class="cline-any cline-neutral">&nbsp;</span>
1840
+ <span class="cline-any cline-no">&nbsp;</span>
1841
+ <span class="cline-any cline-neutral">&nbsp;</span>
1842
+ <span class="cline-any cline-no">&nbsp;</span>
1843
+ <span class="cline-any cline-no">&nbsp;</span>
1844
+ <span class="cline-any cline-no">&nbsp;</span>
1845
+ <span class="cline-any cline-no">&nbsp;</span>
1846
+ <span class="cline-any cline-no">&nbsp;</span>
1847
+ <span class="cline-any cline-no">&nbsp;</span>
1848
+ <span class="cline-any cline-neutral">&nbsp;</span>
1849
+ <span class="cline-any cline-neutral">&nbsp;</span>
1850
+ <span class="cline-any cline-neutral">&nbsp;</span>
1851
+ <span class="cline-any cline-no">&nbsp;</span>
1852
+ <span class="cline-any cline-neutral">&nbsp;</span>
1853
+ <span class="cline-any cline-neutral">&nbsp;</span>
1854
+ <span class="cline-any cline-neutral">&nbsp;</span>
1855
+ <span class="cline-any cline-no">&nbsp;</span>
1856
+ <span class="cline-any cline-no">&nbsp;</span>
1857
+ <span class="cline-any cline-no">&nbsp;</span>
1858
+ <span class="cline-any cline-no">&nbsp;</span>
1859
+ <span class="cline-any cline-no">&nbsp;</span>
1860
+ <span class="cline-any cline-no">&nbsp;</span>
1861
+ <span class="cline-any cline-no">&nbsp;</span>
1862
+ <span class="cline-any cline-no">&nbsp;</span>
1863
+ <span class="cline-any cline-no">&nbsp;</span>
1864
+ <span class="cline-any cline-neutral">&nbsp;</span>
1865
+ <span class="cline-any cline-no">&nbsp;</span>
1866
+ <span class="cline-any cline-neutral">&nbsp;</span>
1867
+ <span class="cline-any cline-no">&nbsp;</span>
1868
+ <span class="cline-any cline-no">&nbsp;</span>
1869
+ <span class="cline-any cline-no">&nbsp;</span>
1870
+ <span class="cline-any cline-neutral">&nbsp;</span>
1871
+ <span class="cline-any cline-no">&nbsp;</span>
1872
+ <span class="cline-any cline-neutral">&nbsp;</span>
1873
+ <span class="cline-any cline-no">&nbsp;</span>
1874
+ <span class="cline-any cline-no">&nbsp;</span>
1875
+ <span class="cline-any cline-no">&nbsp;</span>
1876
+ <span class="cline-any cline-no">&nbsp;</span>
1877
+ <span class="cline-any cline-neutral">&nbsp;</span>
1878
+ <span class="cline-any cline-neutral">&nbsp;</span>
1879
+ <span class="cline-any cline-no">&nbsp;</span>
1880
+ <span class="cline-any cline-no">&nbsp;</span>
1881
+ <span class="cline-any cline-no">&nbsp;</span>
1882
+ <span class="cline-any cline-no">&nbsp;</span>
1883
+ <span class="cline-any cline-no">&nbsp;</span>
1884
+ <span class="cline-any cline-no">&nbsp;</span>
1885
+ <span class="cline-any cline-neutral">&nbsp;</span>
1886
+ <span class="cline-any cline-no">&nbsp;</span>
1887
+ <span class="cline-any cline-neutral">&nbsp;</span>
1888
+ <span class="cline-any cline-neutral">&nbsp;</span>
1889
+ <span class="cline-any cline-no">&nbsp;</span>
1890
+ <span class="cline-any cline-no">&nbsp;</span>
1891
+ <span class="cline-any cline-neutral">&nbsp;</span>
1892
+ <span class="cline-any cline-no">&nbsp;</span>
1893
+ <span class="cline-any cline-no">&nbsp;</span>
1894
+ <span class="cline-any cline-no">&nbsp;</span>
1895
+ <span class="cline-any cline-no">&nbsp;</span>
1896
+ <span class="cline-any cline-neutral">&nbsp;</span>
1897
+ <span class="cline-any cline-no">&nbsp;</span>
1898
+ <span class="cline-any cline-no">&nbsp;</span>
1899
+ <span class="cline-any cline-no">&nbsp;</span>
1900
+ <span class="cline-any cline-no">&nbsp;</span>
1901
+ <span class="cline-any cline-neutral">&nbsp;</span>
1902
+ <span class="cline-any cline-neutral">&nbsp;</span>
1903
+ <span class="cline-any cline-no">&nbsp;</span>
1904
+ <span class="cline-any cline-no">&nbsp;</span>
1905
+ <span class="cline-any cline-no">&nbsp;</span>
1906
+ <span class="cline-any cline-neutral">&nbsp;</span>
1907
+ <span class="cline-any cline-neutral">&nbsp;</span>
1908
+ <span class="cline-any cline-neutral">&nbsp;</span>
1909
+ <span class="cline-any cline-no">&nbsp;</span>
1910
+ <span class="cline-any cline-neutral">&nbsp;</span>
1911
+ <span class="cline-any cline-neutral">&nbsp;</span>
1912
+ <span class="cline-any cline-no">&nbsp;</span>
1913
+ <span class="cline-any cline-neutral">&nbsp;</span>
1914
+ <span class="cline-any cline-neutral">&nbsp;</span>
1915
+ <span class="cline-any cline-no">&nbsp;</span>
1916
+ <span class="cline-any cline-neutral">&nbsp;</span>
1917
+ <span class="cline-any cline-neutral">&nbsp;</span>
1918
+ <span class="cline-any cline-neutral">&nbsp;</span>
1919
+ <span class="cline-any cline-no">&nbsp;</span>
1920
+ <span class="cline-any cline-neutral">&nbsp;</span>
1921
+ <span class="cline-any cline-neutral">&nbsp;</span>
1922
+ <span class="cline-any cline-neutral">&nbsp;</span>
1923
+ <span class="cline-any cline-no">&nbsp;</span>
1924
+ <span class="cline-any cline-no">&nbsp;</span>
1925
+ <span class="cline-any cline-no">&nbsp;</span>
1926
+ <span class="cline-any cline-no">&nbsp;</span>
1927
+ <span class="cline-any cline-no">&nbsp;</span>
1928
+ <span class="cline-any cline-no">&nbsp;</span>
1929
+ <span class="cline-any cline-no">&nbsp;</span>
1930
+ <span class="cline-any cline-no">&nbsp;</span>
1931
+ <span class="cline-any cline-neutral">&nbsp;</span>
1932
+ <span class="cline-any cline-no">&nbsp;</span>
1933
+ <span class="cline-any cline-neutral">&nbsp;</span>
1934
+ <span class="cline-any cline-no">&nbsp;</span>
1935
+ <span class="cline-any cline-neutral">&nbsp;</span>
1936
+ <span class="cline-any cline-neutral">&nbsp;</span>
1937
+ <span class="cline-any cline-neutral">&nbsp;</span>
1938
+ <span class="cline-any cline-neutral">&nbsp;</span>
1939
+ <span class="cline-any cline-neutral">&nbsp;</span>
1940
+ <span class="cline-any cline-neutral">&nbsp;</span>
1941
+ <span class="cline-any cline-no">&nbsp;</span>
1942
+ <span class="cline-any cline-no">&nbsp;</span>
1943
+ <span class="cline-any cline-neutral">&nbsp;</span>
1944
+ <span class="cline-any cline-neutral">&nbsp;</span>
1945
+ <span class="cline-any cline-neutral">&nbsp;</span>
1946
+ <span class="cline-any cline-neutral">&nbsp;</span>
1947
+ <span class="cline-any cline-neutral">&nbsp;</span>
1948
+ <span class="cline-any cline-neutral">&nbsp;</span>
1949
+ <span class="cline-any cline-no">&nbsp;</span>
1950
+ <span class="cline-any cline-no">&nbsp;</span>
1951
+ <span class="cline-any cline-neutral">&nbsp;</span>
1952
+ <span class="cline-any cline-neutral">&nbsp;</span>
1953
+ <span class="cline-any cline-neutral">&nbsp;</span>
1954
+ <span class="cline-any cline-no">&nbsp;</span>
1955
+ <span class="cline-any cline-no">&nbsp;</span>
1956
+ <span class="cline-any cline-no">&nbsp;</span>
1957
+ <span class="cline-any cline-no">&nbsp;</span>
1958
+ <span class="cline-any cline-no">&nbsp;</span>
1959
+ <span class="cline-any cline-no">&nbsp;</span>
1960
+ <span class="cline-any cline-no">&nbsp;</span>
1961
+ <span class="cline-any cline-no">&nbsp;</span>
1962
+ <span class="cline-any cline-no">&nbsp;</span>
1963
+ <span class="cline-any cline-no">&nbsp;</span>
1964
+ <span class="cline-any cline-neutral">&nbsp;</span>
1965
+ <span class="cline-any cline-no">&nbsp;</span>
1966
+ <span class="cline-any cline-no">&nbsp;</span>
1967
+ <span class="cline-any cline-neutral">&nbsp;</span>
1968
+ <span class="cline-any cline-neutral">&nbsp;</span>
1969
+ <span class="cline-any cline-no">&nbsp;</span>
1970
+ <span class="cline-any cline-neutral">&nbsp;</span>
1971
+ <span class="cline-any cline-neutral">&nbsp;</span>
1972
+ <span class="cline-any cline-no">&nbsp;</span>
1973
+ <span class="cline-any cline-neutral">&nbsp;</span>
1974
+ <span class="cline-any cline-neutral">&nbsp;</span>
1975
+ <span class="cline-any cline-neutral">&nbsp;</span>
1976
+ <span class="cline-any cline-neutral">&nbsp;</span>
1977
+ <span class="cline-any cline-neutral">&nbsp;</span>
1978
+ <span class="cline-any cline-neutral">&nbsp;</span>
1979
+ <span class="cline-any cline-neutral">&nbsp;</span>
1980
+ <span class="cline-any cline-no">&nbsp;</span>
1981
+ <span class="cline-any cline-neutral">&nbsp;</span>
1982
+ <span class="cline-any cline-neutral">&nbsp;</span>
1983
+ <span class="cline-any cline-no">&nbsp;</span>
1984
+ <span class="cline-any cline-no">&nbsp;</span>
1985
+ <span class="cline-any cline-no">&nbsp;</span>
1986
+ <span class="cline-any cline-no">&nbsp;</span>
1987
+ <span class="cline-any cline-neutral">&nbsp;</span>
1988
+ <span class="cline-any cline-no">&nbsp;</span>
1989
+ <span class="cline-any cline-no">&nbsp;</span>
1990
+ <span class="cline-any cline-no">&nbsp;</span>
1991
+ <span class="cline-any cline-no">&nbsp;</span>
1992
+ <span class="cline-any cline-no">&nbsp;</span>
1993
+ <span class="cline-any cline-no">&nbsp;</span>
1994
+ <span class="cline-any cline-no">&nbsp;</span>
1995
+ <span class="cline-any cline-neutral">&nbsp;</span>
1996
+ <span class="cline-any cline-neutral">&nbsp;</span>
1997
+ <span class="cline-any cline-neutral">&nbsp;</span>
1998
+ <span class="cline-any cline-no">&nbsp;</span>
1999
+ <span class="cline-any cline-neutral">&nbsp;</span>
2000
+ <span class="cline-any cline-neutral">&nbsp;</span>
2001
+ <span class="cline-any cline-neutral">&nbsp;</span>
2002
+ <span class="cline-any cline-neutral">&nbsp;</span>
2003
+ <span class="cline-any cline-no">&nbsp;</span>
2004
+ <span class="cline-any cline-no">&nbsp;</span>
2005
+ <span class="cline-any cline-no">&nbsp;</span>
2006
+ <span class="cline-any cline-no">&nbsp;</span>
2007
+ <span class="cline-any cline-no">&nbsp;</span>
2008
+ <span class="cline-any cline-no">&nbsp;</span>
2009
+ <span class="cline-any cline-no">&nbsp;</span>
2010
+ <span class="cline-any cline-no">&nbsp;</span>
2011
+ <span class="cline-any cline-neutral">&nbsp;</span>
2012
+ <span class="cline-any cline-neutral">&nbsp;</span>
2013
+ <span class="cline-any cline-neutral">&nbsp;</span>
2014
+ <span class="cline-any cline-no">&nbsp;</span>
2015
+ <span class="cline-any cline-neutral">&nbsp;</span>
2016
+ <span class="cline-any cline-neutral">&nbsp;</span>
2017
+ <span class="cline-any cline-neutral">&nbsp;</span>
2018
+ <span class="cline-any cline-neutral">&nbsp;</span>
2019
+ <span class="cline-any cline-neutral">&nbsp;</span>
2020
+ <span class="cline-any cline-neutral">&nbsp;</span>
2021
+ <span class="cline-any cline-neutral">&nbsp;</span>
2022
+ <span class="cline-any cline-neutral">&nbsp;</span>
2023
+ <span class="cline-any cline-no">&nbsp;</span>
2024
+ <span class="cline-any cline-no">&nbsp;</span>
2025
+ <span class="cline-any cline-neutral">&nbsp;</span>
2026
+ <span class="cline-any cline-neutral">&nbsp;</span>
2027
+ <span class="cline-any cline-neutral">&nbsp;</span>
2028
+ <span class="cline-any cline-no">&nbsp;</span>
2029
+ <span class="cline-any cline-no">&nbsp;</span>
2030
+ <span class="cline-any cline-no">&nbsp;</span>
2031
+ <span class="cline-any cline-no">&nbsp;</span>
2032
+ <span class="cline-any cline-neutral">&nbsp;</span>
2033
+ <span class="cline-any cline-no">&nbsp;</span>
2034
+ <span class="cline-any cline-neutral">&nbsp;</span>
2035
+ <span class="cline-any cline-no">&nbsp;</span>
2036
+ <span class="cline-any cline-no">&nbsp;</span>
2037
+ <span class="cline-any cline-neutral">&nbsp;</span>
2038
+ <span class="cline-any cline-no">&nbsp;</span>
2039
+ <span class="cline-any cline-neutral">&nbsp;</span>
2040
+ <span class="cline-any cline-neutral">&nbsp;</span>
2041
+ <span class="cline-any cline-neutral">&nbsp;</span>
2042
+ <span class="cline-any cline-no">&nbsp;</span>
2043
+ <span class="cline-any cline-neutral">&nbsp;</span>
2044
+ <span class="cline-any cline-no">&nbsp;</span>
2045
+ <span class="cline-any cline-no">&nbsp;</span>
2046
+ <span class="cline-any cline-neutral">&nbsp;</span>
2047
+ <span class="cline-any cline-no">&nbsp;</span>
2048
+ <span class="cline-any cline-no">&nbsp;</span>
2049
+ <span class="cline-any cline-no">&nbsp;</span>
2050
+ <span class="cline-any cline-neutral">&nbsp;</span>
2051
+ <span class="cline-any cline-neutral">&nbsp;</span>
2052
+ <span class="cline-any cline-neutral">&nbsp;</span>
2053
+ <span class="cline-any cline-no">&nbsp;</span>
2054
+ <span class="cline-any cline-no">&nbsp;</span>
2055
+ <span class="cline-any cline-no">&nbsp;</span>
2056
+ <span class="cline-any cline-neutral">&nbsp;</span>
2057
+ <span class="cline-any cline-no">&nbsp;</span>
2058
+ <span class="cline-any cline-no">&nbsp;</span>
2059
+ <span class="cline-any cline-neutral">&nbsp;</span>
2060
+ <span class="cline-any cline-neutral">&nbsp;</span>
2061
+ <span class="cline-any cline-no">&nbsp;</span>
2062
+ <span class="cline-any cline-no">&nbsp;</span>
2063
+ <span class="cline-any cline-no">&nbsp;</span>
2064
+ <span class="cline-any cline-neutral">&nbsp;</span>
2065
+ <span class="cline-any cline-no">&nbsp;</span>
2066
+ <span class="cline-any cline-no">&nbsp;</span>
2067
+ <span class="cline-any cline-neutral">&nbsp;</span>
2068
+ <span class="cline-any cline-neutral">&nbsp;</span>
2069
+ <span class="cline-any cline-no">&nbsp;</span>
2070
+ <span class="cline-any cline-neutral">&nbsp;</span>
2071
+ <span class="cline-any cline-neutral">&nbsp;</span>
2072
+ <span class="cline-any cline-neutral">&nbsp;</span>
2073
+ <span class="cline-any cline-no">&nbsp;</span>
2074
+ <span class="cline-any cline-no">&nbsp;</span>
2075
+ <span class="cline-any cline-neutral">&nbsp;</span>
2076
+ <span class="cline-any cline-neutral">&nbsp;</span>
2077
+ <span class="cline-any cline-no">&nbsp;</span>
2078
+ <span class="cline-any cline-neutral">&nbsp;</span>
2079
+ <span class="cline-any cline-neutral">&nbsp;</span>
2080
+ <span class="cline-any cline-neutral">&nbsp;</span>
2081
+ <span class="cline-any cline-no">&nbsp;</span>
2082
+ <span class="cline-any cline-no">&nbsp;</span>
2083
+ <span class="cline-any cline-no">&nbsp;</span>
2084
+ <span class="cline-any cline-no">&nbsp;</span>
2085
+ <span class="cline-any cline-neutral">&nbsp;</span>
2086
+ <span class="cline-any cline-no">&nbsp;</span>
2087
+ <span class="cline-any cline-neutral">&nbsp;</span>
2088
+ <span class="cline-any cline-no">&nbsp;</span>
2089
+ <span class="cline-any cline-neutral">&nbsp;</span>
2090
+ <span class="cline-any cline-neutral">&nbsp;</span>
2091
+ <span class="cline-any cline-neutral">&nbsp;</span>
2092
+ <span class="cline-any cline-neutral">&nbsp;</span>
2093
+ <span class="cline-any cline-neutral">&nbsp;</span>
2094
+ <span class="cline-any cline-no">&nbsp;</span>
2095
+ <span class="cline-any cline-no">&nbsp;</span>
2096
+ <span class="cline-any cline-no">&nbsp;</span>
2097
+ <span class="cline-any cline-no">&nbsp;</span>
2098
+ <span class="cline-any cline-neutral">&nbsp;</span>
2099
+ <span class="cline-any cline-no">&nbsp;</span>
2100
+ <span class="cline-any cline-no">&nbsp;</span>
2101
+ <span class="cline-any cline-neutral">&nbsp;</span>
2102
+ <span class="cline-any cline-neutral">&nbsp;</span>
2103
+ <span class="cline-any cline-no">&nbsp;</span>
2104
+ <span class="cline-any cline-no">&nbsp;</span>
2105
+ <span class="cline-any cline-no">&nbsp;</span>
2106
+ <span class="cline-any cline-no">&nbsp;</span>
2107
+ <span class="cline-any cline-no">&nbsp;</span>
2108
+ <span class="cline-any cline-neutral">&nbsp;</span>
2109
+ <span class="cline-any cline-no">&nbsp;</span>
2110
+ <span class="cline-any cline-no">&nbsp;</span>
2111
+ <span class="cline-any cline-no">&nbsp;</span>
2112
+ <span class="cline-any cline-neutral">&nbsp;</span>
2113
+ <span class="cline-any cline-neutral">&nbsp;</span>
2114
+ <span class="cline-any cline-neutral">&nbsp;</span>
2115
+ <span class="cline-any cline-yes">2x</span>
2116
+ <span class="cline-any cline-yes">2x</span>
2117
+ <span class="cline-any cline-neutral">&nbsp;</span>
2118
+ <span class="cline-any cline-yes">4x</span>
2119
+ <span class="cline-any cline-yes">4x</span>
2120
+ <span class="cline-any cline-yes">4x</span>
2121
+ <span class="cline-any cline-neutral">&nbsp;</span>
2122
+ <span class="cline-any cline-yes">4x</span>
2123
+ <span class="cline-any cline-neutral">&nbsp;</span>
2124
+ <span class="cline-any cline-neutral">&nbsp;</span>
2125
+ <span class="cline-any cline-yes">4x</span>
2126
+ <span class="cline-any cline-yes">4x</span>
2127
+ <span class="cline-any cline-yes">4x</span>
2128
+ <span class="cline-any cline-neutral">&nbsp;</span>
2129
+ <span class="cline-any cline-yes">2x</span>
2130
+ <span class="cline-any cline-neutral">&nbsp;</span>
2131
+ <span class="cline-any cline-neutral">&nbsp;</span>
2132
+ <span class="cline-any cline-neutral">&nbsp;</span>
2133
+ <span class="cline-any cline-no">&nbsp;</span>
2134
+ <span class="cline-any cline-no">&nbsp;</span>
2135
+ <span class="cline-any cline-neutral">&nbsp;</span>
2136
+ <span class="cline-any cline-no">&nbsp;</span>
2137
+ <span class="cline-any cline-neutral">&nbsp;</span>
2138
+ <span class="cline-any cline-neutral">&nbsp;</span>
2139
+ <span class="cline-any cline-no">&nbsp;</span>
2140
+ <span class="cline-any cline-no">&nbsp;</span>
2141
+ <span class="cline-any cline-neutral">&nbsp;</span>
2142
+ <span class="cline-any cline-no">&nbsp;</span>
2143
+ <span class="cline-any cline-neutral">&nbsp;</span>
2144
+ <span class="cline-any cline-neutral">&nbsp;</span>
2145
+ <span class="cline-any cline-no">&nbsp;</span>
2146
+ <span class="cline-any cline-no">&nbsp;</span>
2147
+ <span class="cline-any cline-no">&nbsp;</span>
2148
+ <span class="cline-any cline-neutral">&nbsp;</span>
2149
+ <span class="cline-any cline-no">&nbsp;</span>
2150
+ <span class="cline-any cline-neutral">&nbsp;</span>
2151
+ <span class="cline-any cline-neutral">&nbsp;</span>
2152
+ <span class="cline-any cline-neutral">&nbsp;</span>
2153
+ <span class="cline-any cline-yes">2x</span>
2154
+ <span class="cline-any cline-yes">2x</span>
2155
+ <span class="cline-any cline-yes">2x</span>
2156
+ <span class="cline-any cline-yes">4x</span>
2157
+ <span class="cline-any cline-yes">4x</span>
2158
+ <span class="cline-any cline-no">&nbsp;</span>
2159
+ <span class="cline-any cline-neutral">&nbsp;</span>
2160
+ <span class="cline-any cline-yes">4x</span>
2161
+ <span class="cline-any cline-neutral">&nbsp;</span>
2162
+ <span class="cline-any cline-neutral">&nbsp;</span>
2163
+ <span class="cline-any cline-yes">2x</span>
2164
+ <span class="cline-any cline-yes">4x</span>
2165
+ <span class="cline-any cline-yes">4x</span>
2166
+ <span class="cline-any cline-yes">4x</span>
2167
+ <span class="cline-any cline-yes">4x</span>
2168
+ <span class="cline-any cline-neutral">&nbsp;</span>
2169
+ <span class="cline-any cline-yes">4x</span>
2170
+ <span class="cline-any cline-neutral">&nbsp;</span>
2171
+ <span class="cline-any cline-yes">4x</span>
2172
+ <span class="cline-any cline-yes">4x</span>
2173
+ <span class="cline-any cline-yes">4x</span>
2174
+ <span class="cline-any cline-yes">4x</span>
2175
+ <span class="cline-any cline-neutral">&nbsp;</span>
2176
+ <span class="cline-any cline-yes">4x</span>
2177
+ <span class="cline-any cline-yes">4x</span>
2178
+ <span class="cline-any cline-neutral">&nbsp;</span>
2179
+ <span class="cline-any cline-yes">2x</span>
2180
+ <span class="cline-any cline-neutral">&nbsp;</span>
2181
+ <span class="cline-any cline-neutral">&nbsp;</span>
2182
+ <span class="cline-any cline-neutral">&nbsp;</span>
2183
+ <span class="cline-any cline-yes">1x</span>
2184
+ <span class="cline-any cline-yes">2x</span>
2185
+ <span class="cline-any cline-neutral">&nbsp;</span>
2186
+ <span class="cline-any cline-yes">2x</span>
2187
+ <span class="cline-any cline-neutral">&nbsp;</span>
2188
+ <span class="cline-any cline-neutral">&nbsp;</span>
2189
+ <span class="cline-any cline-yes">2x</span>
2190
+ <span class="cline-any cline-yes">2x</span>
2191
+ <span class="cline-any cline-yes">4x</span>
2192
+ <span class="cline-any cline-yes">4x</span>
2193
+ <span class="cline-any cline-neutral">&nbsp;</span>
2194
+ <span class="cline-any cline-yes">2x</span>
2195
+ <span class="cline-any cline-yes">2x</span>
2196
+ <span class="cline-any cline-yes">4x</span>
2197
+ <span class="cline-any cline-yes">4x</span>
2198
+ <span class="cline-any cline-yes">4x</span>
2199
+ <span class="cline-any cline-no">&nbsp;</span>
2200
+ <span class="cline-any cline-no">&nbsp;</span>
2201
+ <span class="cline-any cline-neutral">&nbsp;</span>
2202
+ <span class="cline-any cline-yes">4x</span>
2203
+ <span class="cline-any cline-neutral">&nbsp;</span>
2204
+ <span class="cline-any cline-neutral">&nbsp;</span>
2205
+ <span class="cline-any cline-yes">2x</span>
2206
+ <span class="cline-any cline-yes">4x</span>
2207
+ <span class="cline-any cline-neutral">&nbsp;</span>
2208
+ <span class="cline-any cline-yes">4x</span>
2209
+ <span class="cline-any cline-neutral">&nbsp;</span>
2210
+ <span class="cline-any cline-neutral">&nbsp;</span>
2211
+ <span class="cline-any cline-yes">4x</span>
2212
+ <span class="cline-any cline-yes">4x</span>
2213
+ <span class="cline-any cline-neutral">&nbsp;</span>
2214
+ <span class="cline-any cline-yes">4x</span>
2215
+ <span class="cline-any cline-neutral">&nbsp;</span>
2216
+ <span class="cline-any cline-neutral">&nbsp;</span>
2217
+ <span class="cline-any cline-yes">4x</span>
2218
+ <span class="cline-any cline-yes">4x</span>
2219
+ <span class="cline-any cline-yes">4x</span>
2220
+ <span class="cline-any cline-yes">4x</span>
2221
+ <span class="cline-any cline-neutral">&nbsp;</span>
2222
+ <span class="cline-any cline-yes">2x</span>
2223
+ <span class="cline-any cline-yes">2x</span>
2224
+ <span class="cline-any cline-yes">2x</span>
2225
+ <span class="cline-any cline-neutral">&nbsp;</span>
2226
+ <span class="cline-any cline-neutral">&nbsp;</span>
2227
+ <span class="cline-any cline-neutral">&nbsp;</span>
2228
+ <span class="cline-any cline-yes">1x</span>
2229
+ <span class="cline-any cline-no">&nbsp;</span>
2230
+ <span class="cline-any cline-neutral">&nbsp;</span>
2231
+ <span class="cline-any cline-no">&nbsp;</span>
2232
+ <span class="cline-any cline-neutral">&nbsp;</span>
2233
+ <span class="cline-any cline-no">&nbsp;</span>
2234
+ <span class="cline-any cline-neutral">&nbsp;</span>
2235
+ <span class="cline-any cline-neutral">&nbsp;</span>
2236
+ <span class="cline-any cline-no">&nbsp;</span>
2237
+ <span class="cline-any cline-no">&nbsp;</span>
2238
+ <span class="cline-any cline-neutral">&nbsp;</span>
2239
+ <span class="cline-any cline-no">&nbsp;</span>
2240
+ <span class="cline-any cline-neutral">&nbsp;</span>
2241
+ <span class="cline-any cline-neutral">&nbsp;</span>
2242
+ <span class="cline-any cline-no">&nbsp;</span>
2243
+ <span class="cline-any cline-no">&nbsp;</span>
2244
+ <span class="cline-any cline-no">&nbsp;</span>
2245
+ <span class="cline-any cline-neutral">&nbsp;</span>
2246
+ <span class="cline-any cline-no">&nbsp;</span>
2247
+ <span class="cline-any cline-neutral">&nbsp;</span>
2248
+ <span class="cline-any cline-neutral">&nbsp;</span>
2249
+ <span class="cline-any cline-neutral">&nbsp;</span>
2250
+ <span class="cline-any cline-neutral">&nbsp;</span>
2251
+ <span class="cline-any cline-neutral">&nbsp;</span>
2252
+ <span class="cline-any cline-neutral">&nbsp;</span>
2253
+ <span class="cline-any cline-neutral">&nbsp;</span>
2254
+ <span class="cline-any cline-neutral">&nbsp;</span>
2255
+ <span class="cline-any cline-yes">1x</span>
2256
+ <span class="cline-any cline-neutral">&nbsp;</span>
2257
+ <span class="cline-any cline-neutral">&nbsp;</span>
2258
+ <span class="cline-any cline-neutral">&nbsp;</span>
2259
+ <span class="cline-any cline-neutral">&nbsp;</span>
2260
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { TranslatorState, shiftState, withSourceMap, createCompilerState } from '../translator';
2261
+ import { ElementToVueOptions } from './ViewElement__';
2262
+ import MemberExpression from './MemberExpression__';
2263
+ import Assignment from './Assignment__';
2264
+ import Logic from './Logic__';
2265
+ //================================================================================
2266
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
2267
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
2268
+ //================================================================================
2269
+ import { EventPayload, Params } from '../common/EventEmitter';
2270
+ import { concept, excludedInJSON, property, className } from '../decorators';
2271
+ &nbsp;
2272
+ import * as utils from '../utils';
2273
+ import { v4 as uuidv4 } from 'uuid';
2274
+ import BaseNode from '../common/BaseNode';
2275
+ import SelectMembers from './SelectMembers__';
2276
+ import AssignmentLine from './AssignmentLine__';
2277
+ import LogicItem from './LogicItem__';
2278
+ &nbsp;
2279
+ /**
2280
+ * 批量赋值语句
2281
+ */
2282
+ @className
2283
+ @concept('批量赋值语句')
2284
+ // @ts-ignore
2285
+ export class BatchAssignment extends LogicItem {
2286
+ /** 类名 */
2287
+ static readonly ConceptName = 'BatchAssignment';
2288
+ &nbsp;
2289
+ /**
2290
+ * 产品概念
2291
+ */
2292
+ @property('concept')
2293
+ // @ts-ignore
2294
+ readonly concept!: 'BatchAssignment';
2295
+ &nbsp;
2296
+ /**
2297
+ * 批量赋值语句标题
2298
+ */
2299
+ @property()
2300
+ label: string = '批量赋值';
2301
+ &nbsp;
2302
+ /**
2303
+ * 左边项
2304
+ */
2305
+ @property({
2306
+ objectRef: 'SelectMembers',
2307
+ })
2308
+ // @ts-ignore
2309
+ left!: SelectMembers;
2310
+ &nbsp;
2311
+ /**
2312
+ * 右边项
2313
+ */
2314
+ @property({
2315
+ objectRef: 'SelectMembers',
2316
+ isArray: true,
2317
+ defaultValue: [],
2318
+ })
2319
+ rights: Array&lt;SelectMembers&gt; = [];
2320
+ &nbsp;
2321
+ /**
2322
+ * 赋值
2323
+ */
2324
+ @property({
2325
+ objectRef: 'AssignmentLine',
2326
+ isArray: true,
2327
+ defaultValue: [],
2328
+ })
2329
+ assignmentLines: Array&lt;AssignmentLine&gt; = [];
2330
+ &nbsp;
2331
+ /**
2332
+ * 自动连线
2333
+ */
2334
+ @property()
2335
+ autoConnection: boolean = true;
2336
+ &nbsp;
2337
+ /**
2338
+ * @param source 需要合并的部分参数
2339
+ */
2340
+ constructor(source?: Partial&lt;BatchAssignment&gt;) {
2341
+ source = Object.assign({}, BatchAssignment.getDefaultOptions(), source);
2342
+ super(source);
2343
+ super.subConstructor(source);
2344
+ }
2345
+ &nbsp;
2346
+ <span class="fstat-no" title="function not covered" > static </span>from(source: any, parentNode?: any, parentKey?: string): BatchAssignment {
2347
+ <span class="cstat-no" title="statement not covered" > return super.from(source, parentNode, parentKey) as BatchAssignment;</span>
2348
+ }
2349
+ &nbsp;
2350
+ /**
2351
+ * 设置左边项
2352
+ */
2353
+ <span class="fstat-no" title="function not covered" > setLeft(</span>left: SelectMembers) {
2354
+ <span class="cstat-no" title="statement not covered" > left._delete();</span>
2355
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'left' };</span>
2356
+ <span class="cstat-no" title="statement not covered" > Object.assign(left, relationOptions);</span>
2357
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
2358
+ left,
2359
+ };
2360
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
2361
+ ...object,
2362
+ });
2363
+ }
2364
+ &nbsp;
2365
+ /**
2366
+ * 设置右边项
2367
+ */
2368
+ <span class="fstat-no" title="function not covered" > setRights(</span>rights: Array&lt;SelectMembers&gt;) {
2369
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
2370
+ rights,
2371
+ };
2372
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
2373
+ ...object,
2374
+ });
2375
+ }
2376
+ &nbsp;
2377
+ /**
2378
+ * 设置赋值
2379
+ */
2380
+ <span class="fstat-no" title="function not covered" > setAssignmentLines(</span>assignmentLines: Array&lt;AssignmentLine&gt;) {
2381
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
2382
+ assignmentLines,
2383
+ };
2384
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
2385
+ ...object,
2386
+ });
2387
+ }
2388
+ &nbsp;
2389
+ /**
2390
+ * 设置自动连线
2391
+ */
2392
+ <span class="fstat-no" title="function not covered" > setAutoConnection(</span>autoConnection: boolean) {
2393
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
2394
+ autoConnection,
2395
+ };
2396
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
2397
+ ...object,
2398
+ });
2399
+ }
2400
+ &nbsp;
2401
+ <span class="fstat-no" title="function not covered" > getSelectMembersExistingNames(</span>excludedList: Array&lt;SelectMembers&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
2402
+ const excludedSet = <span class="cstat-no" title="statement not covered" >new Set(excludedList);</span>
2403
+ <span class="cstat-no" title="statement not covered" > return ((this.rights as SelectMembers[]) || []).filter(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >!excludedSet.has(item))</span>.map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name)</span>;</span>
2404
+ }
2405
+ <span class="fstat-no" title="function not covered" > getSelectMembersUniqueName(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >'selectMembers1')</span> {
2406
+ <span class="cstat-no" title="statement not covered" > return utils.unique(name, this.getSelectMembersExistingNames(), undefined, false);</span>
2407
+ }
2408
+ &nbsp;
2409
+ /**
2410
+ * 插入选择成员
2411
+ * @internal
2412
+ * @param name 选择成员名称,如果不填会自动生成一个唯一名称
2413
+ */
2414
+ _insertSelectMembersAt(name: string, index: number): SelectMembers;
2415
+ &nbsp;
2416
+ /**
2417
+ * 插入选择成员
2418
+ * @internal
2419
+ * @param selectMembersOptions 选择成员参数
2420
+ */
2421
+ _insertSelectMembersAt(selectMembersOptions: Partial&lt;SelectMembers&gt;, index: number): SelectMembers;
2422
+ &nbsp;
2423
+ /**
2424
+ * 插入选择成员
2425
+ * @internal
2426
+ * @param selectMembers 已有的选择成员实例
2427
+ */
2428
+ _insertSelectMembersAt(selectMembers: SelectMembers, index: number): SelectMembers;
2429
+ &nbsp;
2430
+ <span class="fstat-no" title="function not covered" > _insertSelectMembersAt(</span>options: string | Partial&lt;SelectMembers&gt; | SelectMembers, index: number) {
2431
+ const selectMembersOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
2432
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'rights' };</span>
2433
+ let selectMembers: SelectMembers;
2434
+ <span class="cstat-no" title="statement not covered" > if (!options) {</span>
2435
+ <span class="cstat-no" title="statement not covered" > selectMembers = SelectMembers.from(</span>
2436
+ {
2437
+ ...selectMembersOptions,
2438
+ name: this.getSelectMembersUniqueName(),
2439
+ },
2440
+ this,
2441
+ 'rights',
2442
+ );
2443
+ } else <span class="cstat-no" title="statement not covered" >if (typeof options === 'string') {</span>
2444
+ <span class="cstat-no" title="statement not covered" > selectMembers = SelectMembers.from(</span>
2445
+ {
2446
+ ...selectMembersOptions,
2447
+ name: options,
2448
+ },
2449
+ this,
2450
+ 'rights',
2451
+ );
2452
+ } else <span class="cstat-no" title="statement not covered" >if (options instanceof SelectMembers) {</span>
2453
+ <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
2454
+ <span class="cstat-no" title="statement not covered" > selectMembers = options;</span>
2455
+ <span class="cstat-no" title="statement not covered" > Object.assign(selectMembers, relationOptions);</span>
2456
+ } else {
2457
+ <span class="cstat-no" title="statement not covered" > selectMembers = SelectMembers.from(</span>
2458
+ {
2459
+ ...selectMembersOptions,
2460
+ ...options,
2461
+ },
2462
+ this,
2463
+ 'rights',
2464
+ );
2465
+ }
2466
+ <span class="cstat-no" title="statement not covered" > this.rights.splice(index, 0, selectMembers);</span>
2467
+ <span class="cstat-no" title="statement not covered" > return selectMembers;</span>
2468
+ }
2469
+ &nbsp;
2470
+ /**
2471
+ * 插入选择成员
2472
+ * @param name 选择成员名称,如果不填会自动生成一个唯一名称
2473
+ */
2474
+ insertSelectMembersAt(name: string, index: number): SelectMembers;
2475
+ &nbsp;
2476
+ /**
2477
+ * 插入选择成员
2478
+ * @param selectMembersOptions 选择成员参数
2479
+ */
2480
+ insertSelectMembersAt(selectMembersOptions: Partial&lt;SelectMembers&gt;, index: number): SelectMembers;
2481
+ &nbsp;
2482
+ /**
2483
+ * 插入选择成员
2484
+ * @param selectMembers 已有的选择成员实例
2485
+ */
2486
+ insertSelectMembersAt(selectMembers: SelectMembers, index: number): SelectMembers;
2487
+ &nbsp;
2488
+ <span class="fstat-no" title="function not covered" > insertSelectMembersAt(</span>options: string | Partial&lt;SelectMembers&gt; | SelectMembers, index: number) {
2489
+ const node = <span class="cstat-no" title="statement not covered" >this._insertSelectMembersAt(options as any, index);</span>
2490
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
2491
+ index,
2492
+ parentNode: this,
2493
+ parentKey: 'rights',
2494
+ });
2495
+ <span class="cstat-no" title="statement not covered" > return node;</span>
2496
+ }
2497
+ &nbsp;
2498
+ /**
2499
+ * 添加选择成员
2500
+ * @internal
2501
+ * @param name 选择成员名称,如果不填会自动生成一个唯一名称
2502
+ */
2503
+ _addSelectMembers(name?: string): SelectMembers;
2504
+ &nbsp;
2505
+ /**
2506
+ * 添加选择成员
2507
+ * @internal
2508
+ * @param selectMembersOptions 选择成员参数
2509
+ */
2510
+ _addSelectMembers(selectMembersOptions: Partial&lt;SelectMembers&gt;): SelectMembers;
2511
+ &nbsp;
2512
+ /**
2513
+ * 添加选择成员
2514
+ * @internal
2515
+ * @param selectMembers 已有的选择成员实例
2516
+ */
2517
+ _addSelectMembers(selectMembers: SelectMembers): SelectMembers;
2518
+ &nbsp;
2519
+ <span class="fstat-no" title="function not covered" > _addSelectMembers(</span>options?: string | Partial&lt;SelectMembers&gt; | SelectMembers) {
2520
+ const index = <span class="cstat-no" title="statement not covered" >this.rights.length;</span>
2521
+ <span class="cstat-no" title="statement not covered" > return this._insertSelectMembersAt(options as any, index);</span>
2522
+ }
2523
+ &nbsp;
2524
+ /**
2525
+ * 添加选择成员
2526
+ * @internal
2527
+ * @param name 选择成员名称,如果不填会自动生成一个唯一名称
2528
+ */
2529
+ addSelectMembers(name?: string): SelectMembers;
2530
+ &nbsp;
2531
+ /**
2532
+ * 添加选择成员
2533
+ * @param selectMembersOptions 选择成员参数
2534
+ */
2535
+ addSelectMembers(selectMembersOptions: Partial&lt;SelectMembers&gt;): SelectMembers;
2536
+ &nbsp;
2537
+ /**
2538
+ * 添加选择成员
2539
+ * @param selectMembers 已有的选择成员实例
2540
+ */
2541
+ addSelectMembers(selectMembers: SelectMembers): SelectMembers;
2542
+ &nbsp;
2543
+ <span class="fstat-no" title="function not covered" > addSelectMembers(</span>options?: string | Partial&lt;SelectMembers&gt; | SelectMembers) {
2544
+ const node = <span class="cstat-no" title="statement not covered" >this._addSelectMembers(options as any);</span>
2545
+ const index = <span class="cstat-no" title="statement not covered" >this.rights.indexOf(node);</span>
2546
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
2547
+ index,
2548
+ parentNode: this,
2549
+ parentKey: 'rights',
2550
+ });
2551
+ <span class="cstat-no" title="statement not covered" > return node;</span>
2552
+ }
2553
+ &nbsp;
2554
+ <span class="fstat-no" title="function not covered" > getAssignmentLineExistingNames(</span>excludedList: Array&lt;AssignmentLine&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
2555
+ const excludedSet = <span class="cstat-no" title="statement not covered" >new Set(excludedList);</span>
2556
+ <span class="cstat-no" title="statement not covered" > return ((this.assignmentLines as AssignmentLine[]) || [])</span>
2557
+ .filter(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >!excludedSet.has(item))</span>
2558
+ .map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name)</span>;
2559
+ }
2560
+ <span class="fstat-no" title="function not covered" > getAssignmentLineUniqueName(</span>name = <span class="branch-0 cbranch-no" title="branch not covered" >'assignmentLine1')</span> {
2561
+ <span class="cstat-no" title="statement not covered" > return utils.unique(name, this.getAssignmentLineExistingNames(), undefined, false);</span>
2562
+ }
2563
+ &nbsp;
2564
+ /**
2565
+ * 插入赋值连线
2566
+ * @internal
2567
+ * @param name 赋值连线名称,如果不填会自动生成一个唯一名称
2568
+ */
2569
+ _insertAssignmentLineAt(name: string, index: number): AssignmentLine;
2570
+ &nbsp;
2571
+ /**
2572
+ * 插入赋值连线
2573
+ * @internal
2574
+ * @param assignmentLineOptions 赋值连线参数
2575
+ */
2576
+ _insertAssignmentLineAt(assignmentLineOptions: Partial&lt;AssignmentLine&gt;, index: number): AssignmentLine;
2577
+ &nbsp;
2578
+ /**
2579
+ * 插入赋值连线
2580
+ * @internal
2581
+ * @param assignmentLine 已有的赋值连线实例
2582
+ */
2583
+ _insertAssignmentLineAt(assignmentLine: AssignmentLine, index: number): AssignmentLine;
2584
+ &nbsp;
2585
+ <span class="fstat-no" title="function not covered" > _insertAssignmentLineAt(</span>options: string | Partial&lt;AssignmentLine&gt; | AssignmentLine, index: number) {
2586
+ const assignmentLineOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
2587
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'assignmentLines' };</span>
2588
+ let assignmentLine: AssignmentLine;
2589
+ <span class="cstat-no" title="statement not covered" > if (!options) {</span>
2590
+ <span class="cstat-no" title="statement not covered" > assignmentLine = AssignmentLine.from(</span>
2591
+ {
2592
+ ...assignmentLineOptions,
2593
+ name: this.getAssignmentLineUniqueName(),
2594
+ },
2595
+ this,
2596
+ 'assignmentLines',
2597
+ );
2598
+ } else <span class="cstat-no" title="statement not covered" >if (typeof options === 'string') {</span>
2599
+ <span class="cstat-no" title="statement not covered" > assignmentLine = AssignmentLine.from(</span>
2600
+ {
2601
+ ...assignmentLineOptions,
2602
+ name: options,
2603
+ },
2604
+ this,
2605
+ 'assignmentLines',
2606
+ );
2607
+ } else <span class="cstat-no" title="statement not covered" >if (options instanceof AssignmentLine) {</span>
2608
+ <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
2609
+ <span class="cstat-no" title="statement not covered" > assignmentLine = options;</span>
2610
+ <span class="cstat-no" title="statement not covered" > Object.assign(assignmentLine, relationOptions);</span>
2611
+ } else {
2612
+ <span class="cstat-no" title="statement not covered" > assignmentLine = AssignmentLine.from(</span>
2613
+ {
2614
+ ...assignmentLineOptions,
2615
+ ...options,
2616
+ },
2617
+ this,
2618
+ 'assignmentLines',
2619
+ );
2620
+ }
2621
+ <span class="cstat-no" title="statement not covered" > this.assignmentLines.splice(index, 0, assignmentLine);</span>
2622
+ <span class="cstat-no" title="statement not covered" > return assignmentLine;</span>
2623
+ }
2624
+ &nbsp;
2625
+ /**
2626
+ * 插入赋值连线
2627
+ * @param name 赋值连线名称,如果不填会自动生成一个唯一名称
2628
+ */
2629
+ insertAssignmentLineAt(name: string, index: number): AssignmentLine;
2630
+ &nbsp;
2631
+ /**
2632
+ * 插入赋值连线
2633
+ * @param assignmentLineOptions 赋值连线参数
2634
+ */
2635
+ insertAssignmentLineAt(assignmentLineOptions: Partial&lt;AssignmentLine&gt;, index: number): AssignmentLine;
2636
+ &nbsp;
2637
+ /**
2638
+ * 插入赋值连线
2639
+ * @param assignmentLine 已有的赋值连线实例
2640
+ */
2641
+ insertAssignmentLineAt(assignmentLine: AssignmentLine, index: number): AssignmentLine;
2642
+ &nbsp;
2643
+ <span class="fstat-no" title="function not covered" > insertAssignmentLineAt(</span>options: string | Partial&lt;AssignmentLine&gt; | AssignmentLine, index: number) {
2644
+ const node = <span class="cstat-no" title="statement not covered" >this._insertAssignmentLineAt(options as any, index);</span>
2645
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
2646
+ index,
2647
+ parentNode: this,
2648
+ parentKey: 'assignmentLines',
2649
+ });
2650
+ <span class="cstat-no" title="statement not covered" > return node;</span>
2651
+ }
2652
+ &nbsp;
2653
+ /**
2654
+ * 添加赋值连线
2655
+ * @internal
2656
+ * @param name 赋值连线名称,如果不填会自动生成一个唯一名称
2657
+ */
2658
+ _addAssignmentLine(name?: string): AssignmentLine;
2659
+ &nbsp;
2660
+ /**
2661
+ * 添加赋值连线
2662
+ * @internal
2663
+ * @param assignmentLineOptions 赋值连线参数
2664
+ */
2665
+ _addAssignmentLine(assignmentLineOptions: Partial&lt;AssignmentLine&gt;): AssignmentLine;
2666
+ &nbsp;
2667
+ /**
2668
+ * 添加赋值连线
2669
+ * @internal
2670
+ * @param assignmentLine 已有的赋值连线实例
2671
+ */
2672
+ _addAssignmentLine(assignmentLine: AssignmentLine): AssignmentLine;
2673
+ &nbsp;
2674
+ <span class="fstat-no" title="function not covered" > _addAssignmentLine(</span>options?: string | Partial&lt;AssignmentLine&gt; | AssignmentLine) {
2675
+ const index = <span class="cstat-no" title="statement not covered" >this.assignmentLines.length;</span>
2676
+ <span class="cstat-no" title="statement not covered" > return this._insertAssignmentLineAt(options as any, index);</span>
2677
+ }
2678
+ &nbsp;
2679
+ /**
2680
+ * 添加赋值连线
2681
+ * @internal
2682
+ * @param name 赋值连线名称,如果不填会自动生成一个唯一名称
2683
+ */
2684
+ addAssignmentLine(name?: string): AssignmentLine;
2685
+ &nbsp;
2686
+ /**
2687
+ * 添加赋值连线
2688
+ * @param assignmentLineOptions 赋值连线参数
2689
+ */
2690
+ addAssignmentLine(assignmentLineOptions: Partial&lt;AssignmentLine&gt;): AssignmentLine;
2691
+ &nbsp;
2692
+ /**
2693
+ * 添加赋值连线
2694
+ * @param assignmentLine 已有的赋值连线实例
2695
+ */
2696
+ addAssignmentLine(assignmentLine: AssignmentLine): AssignmentLine;
2697
+ &nbsp;
2698
+ <span class="fstat-no" title="function not covered" > addAssignmentLine(</span>options?: string | Partial&lt;AssignmentLine&gt; | AssignmentLine) {
2699
+ const node = <span class="cstat-no" title="statement not covered" >this._addAssignmentLine(options as any);</span>
2700
+ const index = <span class="cstat-no" title="statement not covered" >this.assignmentLines.indexOf(node);</span>
2701
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
2702
+ index,
2703
+ parentNode: this,
2704
+ parentKey: 'assignmentLines',
2705
+ });
2706
+ <span class="cstat-no" title="statement not covered" > return node;</span>
2707
+ }
2708
+ &nbsp;
2709
+ /**
2710
+ * 删除选择成员
2711
+ * @param name 选择成员名称
2712
+ */
2713
+ removeLeft(name: string): void;
2714
+ &nbsp;
2715
+ /**
2716
+ * 删除选择成员
2717
+ * @param left 已有的选择成员实例
2718
+ */
2719
+ removeLeft(left: SelectMembers): void;
2720
+ &nbsp;
2721
+ <span class="fstat-no" title="function not covered" > removeLeft(</span>options: string | SelectMembers) {
2722
+ let left: SelectMembers;
2723
+ <span class="cstat-no" title="statement not covered" > if (typeof options === 'string') {</span>
2724
+ <span class="cstat-no" title="statement not covered" > left = this.left;</span>
2725
+ <span class="cstat-no" title="statement not covered" > if (!left) {</span>
2726
+ <span class="cstat-no" title="statement not covered" > throw new Error('找不到选择成员 ' + options);</span>
2727
+ }
2728
+ } else {
2729
+ <span class="cstat-no" title="statement not covered" > left = options;</span>
2730
+ }
2731
+ <span class="cstat-no" title="statement not covered" > return left.delete();</span>
2732
+ }
2733
+ &nbsp;
2734
+ /**
2735
+ * 删除选择成员
2736
+ * @param name 选择成员名称
2737
+ */
2738
+ removeSelectMembersInRights(name: string): void;
2739
+ &nbsp;
2740
+ /**
2741
+ * 删除选择成员
2742
+ * @param selectMembers 已有的选择成员实例
2743
+ */
2744
+ removeSelectMembersInRights(selectMembers: SelectMembers): void;
2745
+ &nbsp;
2746
+ <span class="fstat-no" title="function not covered" > removeSelectMembersInRights(</span>options: string | SelectMembers) {
2747
+ let selectMembers: SelectMembers;
2748
+ <span class="cstat-no" title="statement not covered" > if (typeof options === 'string') {</span>
2749
+ <span class="cstat-no" title="statement not covered" > selectMembers = (this.rights as SelectMembers[]).find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === options)</span>;</span>
2750
+ <span class="cstat-no" title="statement not covered" > if (!selectMembers) {</span>
2751
+ <span class="cstat-no" title="statement not covered" > throw new Error('找不到选择成员 ' + options);</span>
2752
+ }
2753
+ } else {
2754
+ <span class="cstat-no" title="statement not covered" > selectMembers = options;</span>
2755
+ }
2756
+ <span class="cstat-no" title="statement not covered" > return selectMembers.delete();</span>
2757
+ }
2758
+ &nbsp;
2759
+ <span class="fstat-no" title="function not covered" > __removeSelectMembers(</span>selectMembers: SelectMembers) {
2760
+ const parentKey = <span class="cstat-no" title="statement not covered" >selectMembers.parentKey;</span>
2761
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
2762
+ parentNode: this,
2763
+ parentKey,
2764
+ index: -1,
2765
+ object: null,
2766
+ oldObject: selectMembers,
2767
+ };
2768
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
2769
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
2770
+ // @ts-ignore
2771
+ const t = <span class="cstat-no" title="statement not covered" >this.__v_raw || this;</span>
2772
+ // @ts-ignore
2773
+ const n = <span class="cstat-no" title="statement not covered" >selectMembers.__v_raw || selectMembers;</span>
2774
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((t as any)[parentKey])) {</span>
2775
+ const index = (<span class="cstat-no" title="statement not covered" >t as any)[parentKey].indexOf(n);</span>
2776
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
2777
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
2778
+ } else <span class="cstat-no" title="statement not covered" >if ((t as any)[parentKey] === n) {</span>
2779
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
2780
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
2781
+ }
2782
+ }
2783
+ <span class="cstat-no" title="statement not covered" > return params;</span>
2784
+ }
2785
+ &nbsp;
2786
+ /**
2787
+ * 删除赋值连线
2788
+ * @param name 赋值连线名称
2789
+ */
2790
+ removeAssignmentLine(name: string): void;
2791
+ &nbsp;
2792
+ /**
2793
+ * 删除赋值连线
2794
+ * @param assignmentLine 已有的赋值连线实例
2795
+ */
2796
+ removeAssignmentLine(assignmentLine: AssignmentLine): void;
2797
+ &nbsp;
2798
+ <span class="fstat-no" title="function not covered" > removeAssignmentLine(</span>options: string | AssignmentLine) {
2799
+ let assignmentLine: AssignmentLine;
2800
+ <span class="cstat-no" title="statement not covered" > if (typeof options === 'string') {</span>
2801
+ <span class="cstat-no" title="statement not covered" > assignmentLine = (this.assignmentLines as AssignmentLine[]).find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === options)</span>;</span>
2802
+ <span class="cstat-no" title="statement not covered" > if (!assignmentLine) {</span>
2803
+ <span class="cstat-no" title="statement not covered" > throw new Error('找不到赋值连线 ' + options);</span>
2804
+ }
2805
+ } else {
2806
+ <span class="cstat-no" title="statement not covered" > assignmentLine = options;</span>
2807
+ }
2808
+ <span class="cstat-no" title="statement not covered" > return assignmentLine.delete();</span>
2809
+ }
2810
+ &nbsp;
2811
+ <span class="fstat-no" title="function not covered" > __removeAssignmentLine(</span>assignmentLine: AssignmentLine) {
2812
+ const parentKey = <span class="cstat-no" title="statement not covered" >assignmentLine.parentKey;</span>
2813
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
2814
+ parentNode: this,
2815
+ parentKey,
2816
+ index: -1,
2817
+ object: null,
2818
+ oldObject: assignmentLine,
2819
+ };
2820
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
2821
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
2822
+ // @ts-ignore
2823
+ const t = <span class="cstat-no" title="statement not covered" >this.__v_raw || this;</span>
2824
+ // @ts-ignore
2825
+ const n = <span class="cstat-no" title="statement not covered" >assignmentLine.__v_raw || assignmentLine;</span>
2826
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((t as any)[parentKey])) {</span>
2827
+ const index = (<span class="cstat-no" title="statement not covered" >t as any)[parentKey].indexOf(n);</span>
2828
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
2829
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
2830
+ } else <span class="cstat-no" title="statement not covered" >if ((t as any)[parentKey] === n) {</span>
2831
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
2832
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
2833
+ }
2834
+ }
2835
+ <span class="cstat-no" title="statement not covered" > return params;</span>
2836
+ }
2837
+ &nbsp;
2838
+ //================================================================================
2839
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
2840
+ // 自动生成的代码已结束。下面可以手动编写。
2841
+ //================================================================================
2842
+ &nbsp;
2843
+ public static getDefaultOptions() {
2844
+ return {
2845
+ left: {
2846
+ concept: 'SelectMembers',
2847
+ expression: {
2848
+ concept: 'Identifier',
2849
+ name: '',
2850
+ },
2851
+ },
2852
+ };
2853
+ }
2854
+ &nbsp;
2855
+ // 自动连线算法---addRightIndex : 指右边选择变量后对该selectmember进行自动连线。
2856
+ <span class="fstat-no" title="function not covered" > async </span>batchAutoConnection(addRightIndex?: number) {
2857
+ const leftLineSet = <span class="cstat-no" title="statement not covered" >new Set();</span>
2858
+ const lineArr: Array&lt;AssignmentLine&gt; = <span class="cstat-no" title="statement not covered" >[];</span>
2859
+ // 系统属性不可自动连线
2860
+ <span class="cstat-no" title="statement not covered" > ['id', 'createdTime', 'updatedTime', 'createdBy', 'updatedBy'].forEach(<span class="fstat-no" title="function not covered" >(n</span>ame) =&gt; <span class="cstat-no" title="statement not covered" >leftLineSet.add(name))</span>;</span>
2861
+ // 左边已连线的下标
2862
+ <span class="cstat-no" title="statement not covered" > this.assignmentLines.forEach(<span class="fstat-no" title="function not covered" >(l</span>ine) =&gt; {</span>
2863
+ <span class="cstat-no" title="statement not covered" > if (line.leftIndex.length &gt; 1) <span class="cstat-no" title="statement not covered" >leftLineSet.add(Number(line.leftIndex[1]));</span></span>
2864
+ });
2865
+ // 父节点不允许自动连线
2866
+ <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; this.left.members.length - 1; i++) {</span>
2867
+ const { completeName } = <span class="cstat-no" title="statement not covered" >this.left.members[i];</span>
2868
+ const preCompleteName = <span class="cstat-no" title="statement not covered" >this.left.members[i + 1].completeName;</span>
2869
+ <span class="cstat-no" title="statement not covered" > if (</span>
2870
+ preCompleteName.includes(completeName) &amp;&amp;
2871
+ completeName.split('.').length !== preCompleteName.split('.').length
2872
+ )
2873
+ <span class="cstat-no" title="statement not covered" > leftLineSet.add(i);</span>
2874
+ }
2875
+ // await new Promise((resolve) =&gt; setTimeout(resolve, 400));
2876
+ const autoConnection = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
2877
+ <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', {</span>
2878
+ actionMsg: '自动连线',
2879
+ });
2880
+ <span class="cstat-no" title="statement not covered" > this.left.members.forEach(<span class="fstat-no" title="function not covered" >(m</span>ember: any, leftSecondIndex: number) =&gt; {</span>
2881
+ const leftValue = <span class="cstat-no" title="statement not covered" >member.getValue();</span>
2882
+ const leftName = <span class="cstat-no" title="statement not covered" >member.property?.name;</span>
2883
+ const leftTypeAnnotation = <span class="cstat-no" title="statement not covered" >member.__TypeAnnotation;</span>
2884
+ <span class="cstat-no" title="statement not covered" > if (leftLineSet.has(leftSecondIndex) || leftLineSet.has(leftName)) <span class="cstat-no" title="statement not covered" >return;</span></span>
2885
+ &nbsp;
2886
+ <span class="cstat-no" title="statement not covered" > this.rights.forEach(<span class="fstat-no" title="function not covered" >(s</span>electMember, rightFirstIndex) =&gt; {</span>
2887
+ const { members, expression } = <span class="cstat-no" title="statement not covered" >selectMember;</span>
2888
+ <span class="cstat-no" title="statement not covered" > if (leftLineSet.has(leftSecondIndex)) <span class="cstat-no" title="statement not covered" >return;</span></span>
2889
+ <span class="cstat-no" title="statement not covered" > if (addRightIndex !== -1 &amp;&amp; addRightIndex !== rightFirstIndex) <span class="cstat-no" title="statement not covered" >return;</span></span>
2890
+ // 右侧父节点也不允许自动连线
2891
+ const rightLineSet = <span class="cstat-no" title="statement not covered" >new Set();</span>
2892
+ <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; members.length - 1; i++) {</span>
2893
+ const { completeName } = <span class="cstat-no" title="statement not covered" >members[i];</span>
2894
+ const preCompleteName = <span class="cstat-no" title="statement not covered" >members[i + 1].completeName;</span>
2895
+ <span class="cstat-no" title="statement not covered" > if (</span>
2896
+ preCompleteName.includes(completeName) &amp;&amp;
2897
+ completeName.split('.').length !== preCompleteName.split('.').length
2898
+ )
2899
+ <span class="cstat-no" title="statement not covered" > rightLineSet.add(i);</span>
2900
+ }
2901
+ &nbsp;
2902
+ <span class="cstat-no" title="statement not covered" > if (leftName === expression.name &amp;&amp; expression.__TypeAnnotation?.typeKind === leftTypeAnnotation.typeKind) {</span>
2903
+ const Line: AssignmentLine = <span class="cstat-no" title="statement not covered" >new AssignmentLine({</span>
2904
+ leftIndex: [0, leftSecondIndex],
2905
+ rightIndex: [rightFirstIndex],
2906
+ });
2907
+ <span class="cstat-no" title="statement not covered" > lineArr.push(Line);</span>
2908
+ <span class="cstat-no" title="statement not covered" > leftLineSet.add(leftSecondIndex);</span>
2909
+ <span class="cstat-no" title="statement not covered" > return;</span>
2910
+ }
2911
+ <span class="cstat-no" title="statement not covered" > members.forEach(<span class="fstat-no" title="function not covered" >(r</span>ightMember: any, rightSecondIndex: number) =&gt; {</span>
2912
+ const rightValue = <span class="cstat-no" title="statement not covered" >rightMember.getValue();</span>
2913
+ const rightName = <span class="cstat-no" title="statement not covered" >rightMember.property?.name;</span>
2914
+ <span class="cstat-no" title="statement not covered" > if (rightLineSet.has(rightSecondIndex)) <span class="cstat-no" title="statement not covered" >return;</span></span>
2915
+ &nbsp;
2916
+ <span class="cstat-no" title="statement not covered" > if (leftName === rightName &amp;&amp; leftValue.split('.').length === rightValue.split('.').length) {</span>
2917
+ const rightTypeAnnotation = <span class="cstat-no" title="statement not covered" >rightMember.__TypeAnnotation;</span>
2918
+ <span class="cstat-no" title="statement not covered" > if (leftTypeAnnotation.typeKind !== rightTypeAnnotation.typeKind) <span class="cstat-no" title="statement not covered" >return;</span></span>
2919
+ const leftIndex = <span class="cstat-no" title="statement not covered" >[0, leftSecondIndex];</span>
2920
+ const rightIndex = <span class="cstat-no" title="statement not covered" >[rightFirstIndex, rightSecondIndex];</span>
2921
+ const Line: AssignmentLine = <span class="cstat-no" title="statement not covered" >new AssignmentLine({ leftIndex, rightIndex });</span>
2922
+ <span class="cstat-no" title="statement not covered" > lineArr.push(Line);</span>
2923
+ <span class="cstat-no" title="statement not covered" > leftLineSet.add(leftSecondIndex);</span>
2924
+ }
2925
+ });
2926
+ });
2927
+ });
2928
+ <span class="cstat-no" title="statement not covered" > lineArr.length &amp;&amp; this.setAssignmentLines([...this.assignmentLines, ...lineArr]);</span>
2929
+ <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
2930
+ };
2931
+ &nbsp;
2932
+ let count = <span class="cstat-no" title="statement not covered" >0;</span>
2933
+ const typeAnnotationEnd = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
2934
+ const l = <span class="cstat-no" title="statement not covered" >this.left.members.every(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.__isCorrectTypeAnnotation)</span>;</span>
2935
+ const r = <span class="cstat-no" title="statement not covered" >this.rights.every(</span>
2936
+ <span class="fstat-no" title="function not covered" > (r</span>ight) =&gt;
2937
+ <span class="cstat-no" title="statement not covered" > right.members.every(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.__isCorrectTypeAnnotation)</span> &amp;&amp; right.expression.__isCorrectTypeAnnotation,</span>
2938
+ );
2939
+ <span class="cstat-no" title="statement not covered" > count++;</span>
2940
+ <span class="cstat-no" title="statement not covered" > if (l &amp;&amp; r) {</span>
2941
+ <span class="cstat-no" title="statement not covered" > autoConnection();</span>
2942
+ } else <span class="cstat-no" title="statement not covered" >if (count &lt;= 10) {</span>
2943
+ <span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
2944
+ <span class="cstat-no" title="statement not covered" > typeAnnotationEnd();</span>
2945
+ }, 100);
2946
+ }
2947
+ };
2948
+ <span class="cstat-no" title="statement not covered" > typeAnnotationEnd();</span>
2949
+ }
2950
+ &nbsp;
2951
+ <span class="fstat-no" title="function not covered" > connection(</span>leftItem: LogicItem | SelectMembers, rightItem: LogicItem | SelectMembers, rightToLeft: boolean) {
2952
+ let newLeftIndex = <span class="cstat-no" title="statement not covered" >[0];</span>
2953
+ let newRightIndex = <span class="cstat-no" title="statement not covered" >[];</span>
2954
+ let newLines: Array&lt;AssignmentLine&gt; = <span class="cstat-no" title="statement not covered" >[];</span>
2955
+ let newMembers = <span class="cstat-no" title="statement not covered" >this.left.members;</span>
2956
+ <span class="cstat-no" title="statement not covered" > if (leftItem.concept !== 'SelectMembers' &amp;&amp; leftItem.parentKey !== 'expression') {</span>
2957
+ const { members } = <span class="cstat-no" title="statement not covered" >this.left;</span>
2958
+ const secondIndex = <span class="cstat-no" title="statement not covered" >members.findIndex(<span class="fstat-no" title="function not covered" >(e</span>xp: any) =&gt; <span class="cstat-no" title="statement not covered" >exp === leftItem)</span>;</span>
2959
+ const completeNameSplitLength = <span class="cstat-no" title="statement not covered" >members[secondIndex].completeName.split('.').length;</span>
2960
+ let filterLines: Array&lt;AssignmentLine&gt; = <span class="cstat-no" title="statement not covered" >[];</span>
2961
+ // 连线左边的坐标。
2962
+ <span class="cstat-no" title="statement not covered" > newLeftIndex = [0, secondIndex];</span>
2963
+ // 父节点选中后删除此节点下的子节点
2964
+ let sameLevelIndex = <span class="cstat-no" title="statement not covered" >members.findIndex(<span class="fstat-no" title="function not covered" >(e</span>xp: any, index: number) =&gt; {</span>
2965
+ <span class="cstat-no" title="statement not covered" > if (index &gt; secondIndex) {</span>
2966
+ <span class="cstat-no" title="statement not covered" > return exp.completeName.split('.').length &lt;= completeNameSplitLength;</span>
2967
+ }
2968
+ <span class="cstat-no" title="statement not covered" > return false;</span>
2969
+ });
2970
+ <span class="cstat-no" title="statement not covered" > sameLevelIndex = sameLevelIndex === -1 ? members.length : sameLevelIndex;</span>
2971
+ <span class="cstat-no" title="statement not covered" > newMembers = members.filter(<span class="fstat-no" title="function not covered" >(m</span>ember: any, index: number) =&gt; <span class="cstat-no" title="statement not covered" >index &lt;= secondIndex || index &gt;= sameLevelIndex)</span>;</span>
2972
+ <span class="cstat-no" title="statement not covered" > filterLines = this.assignmentLines.filter(</span>
2973
+ <span class="fstat-no" title="function not covered" > ({</span> leftIndex }) =&gt; <span class="cstat-no" title="statement not covered" >leftIndex[1] &lt;= secondIndex || leftIndex[1] &gt;= sameLevelIndex,</span>
2974
+ );
2975
+ // members成员减少,需要重新计算后续连线下标
2976
+ <span class="cstat-no" title="statement not covered" > filterLines.forEach(<span class="fstat-no" title="function not covered" >(l</span>ine) =&gt; {</span>
2977
+ const distance = <span class="cstat-no" title="statement not covered" >sameLevelIndex - secondIndex - 1;</span>
2978
+ <span class="cstat-no" title="statement not covered" > if (line.leftIndex[1] &gt; secondIndex) {</span>
2979
+ const newLine = <span class="cstat-no" title="statement not covered" >{ ...line?.toJSON(), leftIndex: [line.leftIndex[0], line.leftIndex[1] - distance] };</span>
2980
+ <span class="cstat-no" title="statement not covered" > newLines.push(newLine as AssignmentLine);</span>
2981
+ <span class="cstat-no" title="statement not covered" > return;</span>
2982
+ }
2983
+ <span class="cstat-no" title="statement not covered" > newLines.push(line);</span>
2984
+ });
2985
+ } else {
2986
+ <span class="cstat-no" title="statement not covered" > newLines = [];</span>
2987
+ <span class="cstat-no" title="statement not covered" > newMembers = [];</span>
2988
+ }
2989
+ <span class="cstat-no" title="statement not covered" > if (rightItem.concept === 'SelectMembers') {</span>
2990
+ <span class="cstat-no" title="statement not covered" > newRightIndex = [this.rights.findIndex(<span class="fstat-no" title="function not covered" >(r</span>ight) =&gt; <span class="cstat-no" title="statement not covered" >right === rightItem)</span>];</span>
2991
+ } else <span class="cstat-no" title="statement not covered" >if (rightItem.concept !== 'MemberExpression') {</span>
2992
+ <span class="cstat-no" title="statement not covered" > newRightIndex = [this.rights.findIndex(<span class="fstat-no" title="function not covered" >(r</span>ight) =&gt; <span class="cstat-no" title="statement not covered" >right === rightItem.parentNode)</span>];</span>
2993
+ } else {
2994
+ const selectMember = <span class="cstat-no" title="statement not covered" >rightItem.getAncestor('SelectMembers');</span>
2995
+ const firstIndex = <span class="cstat-no" title="statement not covered" >this.rights.findIndex(<span class="fstat-no" title="function not covered" >(r</span>ight) =&gt; <span class="cstat-no" title="statement not covered" >right === selectMember)</span>;</span>
2996
+ const secondIndex = <span class="cstat-no" title="statement not covered" >this.rights[firstIndex].members.findIndex(<span class="fstat-no" title="function not covered" >(e</span>xp: any) =&gt; <span class="cstat-no" title="statement not covered" >exp === rightItem)</span>;</span>
2997
+ <span class="cstat-no" title="statement not covered" > newRightIndex = [firstIndex, secondIndex];</span>
2998
+ }
2999
+ // 左边同一个属性只能有一个连线
3000
+ <span class="cstat-no" title="statement not covered" > if (rightToLeft) {</span>
3001
+ <span class="cstat-no" title="statement not covered" > newLines = newLines.filter(</span>
3002
+ <span class="fstat-no" title="function not covered" > ({</span> leftIndex: index }) =&gt; <span class="cstat-no" title="statement not covered" >!(newLeftIndex[0] === index[0] &amp;&amp; newLeftIndex[1] === index[1]),</span>
3003
+ );
3004
+ }
3005
+ &nbsp;
3006
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3007
+ assignmentLines: newLines,
3008
+ });
3009
+ <span class="cstat-no" title="statement not covered" > this.left.update({</span>
3010
+ members: newMembers,
3011
+ });
3012
+ const Line: AssignmentLine = <span class="cstat-no" title="statement not covered" >new AssignmentLine({</span>
3013
+ leftIndex: newLeftIndex,
3014
+ rightIndex: newRightIndex,
3015
+ });
3016
+ <span class="cstat-no" title="statement not covered" > this.addAssignmentLine(Line);</span>
3017
+ }
3018
+ &nbsp;
3019
+ <span class="fstat-no" title="function not covered" > swapLocation(</span>location1: number, location2: number) {
3020
+ <span class="cstat-no" title="statement not covered" > if (location1 === location2) <span class="cstat-no" title="statement not covered" >return;</span></span>
3021
+ const newRights = <span class="cstat-no" title="statement not covered" >this.rights;</span>
3022
+ <span class="cstat-no" title="statement not covered" > [newRights[location1], newRights[2]] = [newRights[location2], newRights[1]];</span>
3023
+ const newLines = <span class="cstat-no" title="statement not covered" >this.assignmentLines.map(<span class="fstat-no" title="function not covered" >(l</span>ine) =&gt; {</span>
3024
+ <span class="cstat-no" title="statement not covered" > if (line.rightIndex[0] === location1) {</span>
3025
+ <span class="cstat-no" title="statement not covered" > line.rightIndex[0] = location2;</span>
3026
+ } else <span class="cstat-no" title="statement not covered" >if (line.rightIndex[0] === location2) {</span>
3027
+ <span class="cstat-no" title="statement not covered" > line.rightIndex[0] = location1;</span>
3028
+ }
3029
+ <span class="cstat-no" title="statement not covered" > return line;</span>
3030
+ });
3031
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3032
+ rigths: newRights,
3033
+ assignmentLines: newLines,
3034
+ });
3035
+ }
3036
+ &nbsp;
3037
+ <span class="fstat-no" title="function not covered" > deleteAssignmentLine(</span>assignmentLine: AssignmentLine) {
3038
+ const newLine = <span class="cstat-no" title="statement not covered" >this.assignmentLines.filter(<span class="fstat-no" title="function not covered" >(l</span>ine) =&gt; <span class="cstat-no" title="statement not covered" >line !== assignmentLine)</span>;</span>
3039
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3040
+ assignmentLines: newLine,
3041
+ });
3042
+ }
3043
+ &nbsp;
3044
+ <span class="fstat-no" title="function not covered" > changeLinesLocation(</span>selectMember: SelectMembers) {
3045
+ // 区分操作左边或者操作右边
3046
+ <span class="cstat-no" title="statement not covered" > if (selectMember === this.left) {</span>
3047
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3048
+ left: null,
3049
+ assignmentLines: [],
3050
+ });
3051
+ } else <span class="cstat-no" title="statement not covered" >if (this.rights.findIndex(<span class="fstat-no" title="function not covered" >(m</span>ember) =&gt; <span class="cstat-no" title="statement not covered" >selectMember === member)</span> !== -1) {</span>
3052
+ const index = <span class="cstat-no" title="statement not covered" >this.rights.findIndex(<span class="fstat-no" title="function not covered" >(m</span>ember) =&gt; <span class="cstat-no" title="statement not covered" >selectMember === member)</span>;</span>
3053
+ const newRights = <span class="cstat-no" title="statement not covered" >this.rights.filter(<span class="fstat-no" title="function not covered" >(m</span>ember) =&gt; <span class="cstat-no" title="statement not covered" >selectMember !== member)</span>;</span>
3054
+ const filterLine = <span class="cstat-no" title="statement not covered" >this.assignmentLines.filter(<span class="fstat-no" title="function not covered" >(l</span>ine) =&gt; <span class="cstat-no" title="statement not covered" >line.rightIndex[0] !== index)</span>;</span>
3055
+ const newLines: Array&lt;AssignmentLine&gt; = <span class="cstat-no" title="statement not covered" >[];</span>
3056
+ <span class="cstat-no" title="statement not covered" > filterLine.forEach(<span class="fstat-no" title="function not covered" >(l</span>ine) =&gt; {</span>
3057
+ <span class="cstat-no" title="statement not covered" > if (line.rightIndex[0] &gt; index) {</span>
3058
+ <span class="cstat-no" title="statement not covered" > if (line.rightIndex[1] === undefined) {</span>
3059
+ const newLine = <span class="cstat-no" title="statement not covered" >{ ...line?.toJSON(), rightIndex: [line.rightIndex[0] - 1] };</span>
3060
+ <span class="cstat-no" title="statement not covered" > newLines.push(newLine as AssignmentLine);</span>
3061
+ } else {
3062
+ const newLine = <span class="cstat-no" title="statement not covered" >{ ...line?.toJSON(), rightIndex: [line.rightIndex[0] - 1, line.rightIndex[1]] };</span>
3063
+ <span class="cstat-no" title="statement not covered" > newLines.push(newLine as AssignmentLine);</span>
3064
+ }
3065
+ } else {
3066
+ <span class="cstat-no" title="statement not covered" > newLines.push(line);</span>
3067
+ }
3068
+ });
3069
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3070
+ rights: newRights,
3071
+ assignmentLines: newLines,
3072
+ });
3073
+ }
3074
+ }
3075
+ &nbsp;
3076
+ <span class="fstat-no" title="function not covered" > changeMembers(</span>oldNode: any, members: MemberExpression[], keepMembers: any, expression: LogicItem) {
3077
+ <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', {</span>
3078
+ actionMsg: '批量赋值修改变量',
3079
+ });
3080
+ const selectMember = <span class="cstat-no" title="statement not covered" >oldNode.parentNode;</span>
3081
+ const autoConnectionIndex = <span class="cstat-no" title="statement not covered" >this.rights.findIndex(<span class="fstat-no" title="function not covered" >(r</span>ight) =&gt; <span class="cstat-no" title="statement not covered" >right === selectMember)</span>;</span>
3082
+ const newSelectMember = <span class="cstat-no" title="statement not covered" >{ ...selectMember?.toJSON?.(), expression, members };</span>
3083
+ let newLines: any = <span class="cstat-no" title="statement not covered" >[];</span>
3084
+ // 修改连线
3085
+ <span class="cstat-no" title="statement not covered" > if (selectMember.parentKey === 'left') {</span>
3086
+ <span class="cstat-no" title="statement not covered" > members.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem: any, index: any) =&gt; {</span>
3087
+ <span class="cstat-no" title="statement not covered" > if (keepMembers?.has(item.completeName)) {</span>
3088
+ const lines = <span class="cstat-no" title="statement not covered" >this.findlines(item, selectMember);</span>
3089
+ <span class="cstat-no" title="statement not covered" > lines.forEach(<span class="fstat-no" title="function not covered" >(l</span>ine) =&gt; {</span>
3090
+ const newLine = <span class="cstat-no" title="statement not covered" >{ ...line?.toJSON(), leftIndex: [line.leftIndex[0], index] };</span>
3091
+ <span class="cstat-no" title="statement not covered" > newLines.push(newLine);</span>
3092
+ });
3093
+ }
3094
+ });
3095
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3096
+ assignmentLines: newLines,
3097
+ left: newSelectMember,
3098
+ });
3099
+ } else {
3100
+ const splitIndex = <span class="cstat-no" title="statement not covered" >this.rights.findIndex(<span class="fstat-no" title="function not covered" >(r</span>ight) =&gt; <span class="cstat-no" title="statement not covered" >selectMember === right)</span>;</span>
3101
+ <span class="cstat-no" title="statement not covered" > newLines = this.assignmentLines.filter(<span class="fstat-no" title="function not covered" >({</span> rightIndex }) =&gt; <span class="cstat-no" title="statement not covered" >rightIndex[0] !== splitIndex)</span>;</span>
3102
+ <span class="cstat-no" title="statement not covered" > members.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem, index) =&gt; {</span>
3103
+ <span class="cstat-no" title="statement not covered" > if (keepMembers?.has(item.completeName)) {</span>
3104
+ const lines = <span class="cstat-no" title="statement not covered" >this.findlines(item, selectMember);</span>
3105
+ <span class="cstat-no" title="statement not covered" > lines.forEach(<span class="fstat-no" title="function not covered" >(l</span>ine) =&gt; {</span>
3106
+ const newLine = <span class="cstat-no" title="statement not covered" >{ ...line?.toJSON(), rightIndex: [line.rightIndex[0], index] };</span>
3107
+ <span class="cstat-no" title="statement not covered" > newLines.push(newLine);</span>
3108
+ });
3109
+ }
3110
+ });
3111
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3112
+ assignmentLines: newLines,
3113
+ rights: [
3114
+ ...this.rights.slice(0, splitIndex),
3115
+ newSelectMember,
3116
+ ...this.rights.slice(splitIndex + 1, this.rights.length),
3117
+ ],
3118
+ });
3119
+ }
3120
+ <span class="cstat-no" title="statement not covered" > this.autoConnection &amp;&amp; this.batchAutoConnection(autoConnectionIndex);</span>
3121
+ <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
3122
+ }
3123
+ &nbsp;
3124
+ <span class="fstat-no" title="function not covered" > findMember(</span>arrIndex: Array&lt;number&gt;, place: string) {
3125
+ const [firstIndex, secondIndex] = <span class="cstat-no" title="statement not covered" >[arrIndex[0], arrIndex[1]];</span>
3126
+ <span class="cstat-no" title="statement not covered" > if (place === 'left') {</span>
3127
+ <span class="cstat-no" title="statement not covered" > if (secondIndex === undefined) {</span>
3128
+ <span class="cstat-no" title="statement not covered" > return this.left.expression;</span>
3129
+ }
3130
+ <span class="cstat-no" title="statement not covered" > return this.left.members[secondIndex];</span>
3131
+ }
3132
+ <span class="cstat-no" title="statement not covered" > if (secondIndex === undefined) {</span>
3133
+ <span class="cstat-no" title="statement not covered" > return this.rights[firstIndex].expression;</span>
3134
+ }
3135
+ <span class="cstat-no" title="statement not covered" > return this.rights[firstIndex].members[secondIndex];</span>
3136
+ }
3137
+ &nbsp;
3138
+ <span class="fstat-no" title="function not covered" > findlines(</span>member: any, selectMember: any) {
3139
+ const lines: Array&lt;AssignmentLine&gt; = <span class="cstat-no" title="statement not covered" >[];</span>
3140
+ // 根节点的情况
3141
+ <span class="cstat-no" title="statement not covered" > if (selectMember === this) {</span>
3142
+ <span class="cstat-no" title="statement not covered" > if (member === this.left) <span class="cstat-no" title="statement not covered" >return this.assignmentLines;</span></span>
3143
+ &nbsp;
3144
+ const firstIndex = <span class="cstat-no" title="statement not covered" >this.rights.findIndex(<span class="fstat-no" title="function not covered" >(r</span>ight) =&gt; <span class="cstat-no" title="statement not covered" >right === member)</span>;</span>
3145
+ <span class="cstat-no" title="statement not covered" > return this.assignmentLines.filter(</span>
3146
+ <span class="fstat-no" title="function not covered" > ({</span> rightIndex }) =&gt; <span class="cstat-no" title="statement not covered" >rightIndex[1] === undefined &amp;&amp; rightIndex[0] === firstIndex,</span>
3147
+ );
3148
+ }
3149
+ &nbsp;
3150
+ <span class="cstat-no" title="statement not covered" > if (this.left === selectMember) {</span>
3151
+ const index2 = <span class="cstat-no" title="statement not covered" >selectMember.members.findIndex(</span>
3152
+ <span class="fstat-no" title="function not covered" > (i</span>tem: MemberExpression) =&gt; <span class="cstat-no" title="statement not covered" >item.completeName === member.completeName,</span>
3153
+ );
3154
+ <span class="cstat-no" title="statement not covered" > this.assignmentLines.forEach(<span class="fstat-no" title="function not covered" >(l</span>ine) =&gt; {</span>
3155
+ <span class="cstat-no" title="statement not covered" > if (line.leftIndex[1] === index2) <span class="cstat-no" title="statement not covered" >lines.push(line);</span></span>
3156
+ });
3157
+ } else {
3158
+ const index1 = <span class="cstat-no" title="statement not covered" >this.rights.findIndex(<span class="fstat-no" title="function not covered" >(r</span>ight) =&gt; <span class="cstat-no" title="statement not covered" >right === selectMember)</span>;</span>
3159
+ const index2 = <span class="cstat-no" title="statement not covered" >selectMember.members.findIndex(</span>
3160
+ <span class="fstat-no" title="function not covered" > (i</span>tem: MemberExpression) =&gt; <span class="cstat-no" title="statement not covered" >item.completeName === member.completeName,</span>
3161
+ );
3162
+ <span class="cstat-no" title="statement not covered" > this.assignmentLines.forEach(<span class="fstat-no" title="function not covered" >(l</span>ine) =&gt; {</span>
3163
+ <span class="cstat-no" title="statement not covered" > if (line.rightIndex[0] === index1 &amp;&amp; line.rightIndex[1] === index2) <span class="cstat-no" title="statement not covered" >lines.push(line);</span></span>
3164
+ });
3165
+ }
3166
+ <span class="cstat-no" title="statement not covered" > return lines;</span>
3167
+ }
3168
+ &nbsp;
3169
+ <span class="fstat-no" title="function not covered" > replaceAssignment(</span>) {
3170
+ <span class="cstat-no" title="statement not covered" > if (this.assignmentLines.length &gt; 1) <span class="cstat-no" title="statement not covered" >return false;</span></span>
3171
+ <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', {</span>
3172
+ actionMsg: '批量赋值切换普通赋值',
3173
+ });
3174
+ const { parentKey, parentNode, logic }: { parentKey: string; parentNode: any; logic: Logic } = <span class="cstat-no" title="statement not covered" >this;</span>
3175
+ let rightExpression;
3176
+ let leftExpression;
3177
+ let index;
3178
+ <span class="cstat-no" title="statement not covered" > if (this.assignmentLines.length === 1) {</span>
3179
+ const { leftIndex, rightIndex } = <span class="cstat-no" title="statement not covered" >this.assignmentLines[0];</span>
3180
+ <span class="cstat-no" title="statement not covered" > leftExpression = { ...this.findMember(leftIndex, 'left')?.toJSON?.() };</span>
3181
+ <span class="cstat-no" title="statement not covered" > rightExpression = { ...this.findMember(rightIndex, 'right')?.toJSON?.() };</span>
3182
+ } else {
3183
+ <span class="cstat-no" title="statement not covered" > leftExpression = { ...this.left.expression?.toJSON?.() };</span>
3184
+ }
3185
+ const assignment = <span class="cstat-no" title="statement not covered" >new Assignment({</span>
3186
+ left: leftExpression as any,
3187
+ right: rightExpression as any,
3188
+ offsetX: this.offsetX,
3189
+ offsetY: this.offsetY,
3190
+ });
3191
+ <span class="cstat-no" title="statement not covered" > if (parentNode.concept === 'Logic') {</span>
3192
+ <span class="cstat-no" title="statement not covered" > if (parentKey === 'body') {</span>
3193
+ <span class="cstat-no" title="statement not covered" > index = logic.body.findIndex(<span class="fstat-no" title="function not covered" >(i</span>tem: any) =&gt; <span class="cstat-no" title="statement not covered" >item === this)</span>;</span>
3194
+ <span class="cstat-no" title="statement not covered" > logic.insertItemInBodyAt(assignment, index);</span>
3195
+ } else {
3196
+ <span class="cstat-no" title="statement not covered" > index = logic.playground.findIndex(<span class="fstat-no" title="function not covered" >(i</span>tem: any) =&gt; <span class="cstat-no" title="statement not covered" >item === this)</span>;</span>
3197
+ <span class="cstat-no" title="statement not covered" > logic.insertItemInPlaygroundAt(assignment, index);</span>
3198
+ }
3199
+ } else {
3200
+ <span class="cstat-no" title="statement not covered" > index = parentNode[parentKey].findIndex(<span class="fstat-no" title="function not covered" >(i</span>tem: any) =&gt; <span class="cstat-no" title="statement not covered" >item === this)</span>;</span>
3201
+ const firstUpperText = <span class="cstat-no" title="statement not covered" >parentKey[0].toUpperCase() + parentKey.slice(1, parentKey.length);</span>
3202
+ <span class="cstat-no" title="statement not covered" > if (parentNode[`insertItemIn${firstUpperText}At`])</span>
3203
+ <span class="cstat-no" title="statement not covered" > parentNode[`insertItemIn${firstUpperText}At`](assignment, index);</span>
3204
+ else <span class="cstat-no" title="statement not covered" >parentNode.insertItemAt(assignment, index);</span>
3205
+ }
3206
+ <span class="cstat-no" title="statement not covered" > this.delete();</span>
3207
+ <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
3208
+ <span class="cstat-no" title="statement not covered" > return true;</span>
3209
+ }
3210
+ &nbsp;
3211
+ toVue(options?: ElementToVueOptions) {
3212
+ let code = '';
3213
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) =&gt; {
3214
+ const leftValue =
3215
+ leftIndex.length === 1 ? this.left.expression.toVue(options) : this.left.members[leftIndex[1]]?.toVue(options);
3216
+ code += `${leftValue}`;
3217
+ code += ' = ';
3218
+ const rightValue =
3219
+ rightIndex.length === 1
3220
+ ? this.rights[rightIndex[0]]?.expression?.toVue(options)
3221
+ : <span class="branch-1 cbranch-no" title="branch not covered" >this.rights[rightIndex[0]]?.members[rightIndex[1]]?.toVue(options);</span>
3222
+ code += `${rightValue}`;
3223
+ code += ';';
3224
+ code += '\n';
3225
+ });
3226
+ return code;
3227
+ }
3228
+ &nbsp;
3229
+ <span class="fstat-no" title="function not covered" > toUI(</span>state?: TranslatorState): string {
3230
+ let code = <span class="cstat-no" title="statement not covered" >'';</span>
3231
+ <span class="cstat-no" title="statement not covered" > this.assignmentLines.forEach(<span class="fstat-no" title="function not covered" >({</span> leftIndex, rightIndex }) =&gt; {</span>
3232
+ const leftValue =
3233
+ <span class="cstat-no" title="statement not covered" > leftIndex.length === 1</span>
3234
+ ? this.left.expression.toUI(shiftState(state, code, { inline: true }))
3235
+ : this.left.members[leftIndex[1]]?.toUI(shiftState(state, code, { inline: true }));
3236
+ <span class="cstat-no" title="statement not covered" > code += `${leftValue}`;</span>
3237
+ <span class="cstat-no" title="statement not covered" > code += ' = ';</span>
3238
+ const rightValue =
3239
+ <span class="cstat-no" title="statement not covered" > rightIndex.length === 1</span>
3240
+ ? this.rights[rightIndex[0]]?.expression?.toUI(shiftState(state, code, { inline: true }))
3241
+ : this.rights[rightIndex[0]]?.members[rightIndex[1]]?.toUI(shiftState(state, code, { inline: true }));
3242
+ <span class="cstat-no" title="statement not covered" > code += `${rightValue}`;</span>
3243
+ <span class="cstat-no" title="statement not covered" > code += ';';</span>
3244
+ <span class="cstat-no" title="statement not covered" > code += '\n';</span>
3245
+ });
3246
+ <span class="cstat-no" title="statement not covered" > return code;</span>
3247
+ }
3248
+ &nbsp;
3249
+ toJS(state?: TranslatorState): string {
3250
+ let code = '';
3251
+ const rightMap = new Map();
3252
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) =&gt; {
3253
+ const rightIndexJson = JSON.stringify(rightIndex);
3254
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (rightMap.has(rightIndexJson)) {
3255
+ <span class="cstat-no" title="statement not covered" > rightMap.set(rightIndexJson, [...rightMap.get(rightIndexJson), leftIndex]);</span>
3256
+ } else {
3257
+ rightMap.set(rightIndexJson, [leftIndex]);
3258
+ }
3259
+ });
3260
+ rightMap.forEach((leftIndexs, rightIndexJson) =&gt; {
3261
+ const rightIndex = JSON.parse(rightIndexJson) || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
3262
+ const leftItems = leftIndexs.map((leftIndex: Array&lt;number&gt;) =&gt; {
3263
+ const leftItem = leftIndex.length !== 1 ? this.left.members[leftIndex[1]] : this.left.expression;
3264
+ return leftItem;
3265
+ });
3266
+ const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
3267
+ const rightItem =
3268
+ rightSecond !== undefined ? <span class="branch-0 cbranch-no" title="branch not covered" >this.rights[rightFirst].members[rightSecond] </span>: this.rights[rightFirst].expression;
3269
+ leftItems.forEach((leftItem: LogicItem) =&gt; {
3270
+ code += `${leftItem.toJS(shiftState(state, code, { inline: true }))}`;
3271
+ code += ` = `;
3272
+ });
3273
+ code += `${rightItem.toJS(shiftState(state, code, { inline: true }))}`;
3274
+ code += ';\n';
3275
+ });
3276
+ return code;
3277
+ }
3278
+ &nbsp;
3279
+ @withSourceMap()
3280
+ toEmbeddedTS(state = createCompilerState()): string {
3281
+ let code = '// 以下是批量赋值的翻译代码\n';
3282
+ // 提供sourcemap,获取类型标注和上下文可选变量
3283
+ code += this.left.expression
3284
+ ? `${this.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))}`
3285
+ : <span class="branch-1 cbranch-no" title="branch not covered" >'';</span>
3286
+ code += ';\n';
3287
+ this.left.members.forEach((member) =&gt; {
3288
+ code += member.toEmbeddedTS(shiftState(state, code, { inline: true }));
3289
+ code += '; ';
3290
+ });
3291
+ code += '\n';
3292
+ this.rights.forEach((right) =&gt; {
3293
+ code += `${right.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))}`;
3294
+ code += ';\n';
3295
+ right.members.forEach(<span class="fstat-no" title="function not covered" >(m</span>ember) =&gt; {
3296
+ <span class="cstat-no" title="statement not covered" > code += member.toEmbeddedTS(shiftState(state, code, { inline: true }));</span>
3297
+ <span class="cstat-no" title="statement not covered" > code += '; ';</span>
3298
+ });
3299
+ code += right.members.length ? <span class="branch-0 cbranch-no" title="branch not covered" >'\n' </span>: '';
3300
+ });
3301
+ // 根据连线状态,拆分成多个单赋值
3302
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) =&gt; {
3303
+ code += 'nasl.core.assign(';
3304
+ const leftValue =
3305
+ leftIndex.length === 1
3306
+ ? this.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))
3307
+ : this.left.members[leftIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true }));
3308
+ code += `${leftValue}`;
3309
+ code += ', ';
3310
+ const rightValue =
3311
+ rightIndex.length === 1
3312
+ ? this.rights[rightIndex[0]]?.expression?.toEmbeddedTS(shiftState(state, code, { inline: true }))
3313
+ : <span class="branch-1 cbranch-no" title="branch not covered" >this.rights[rightIndex[0]]?.members[rightIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true }));</span>
3314
+ code += `${rightValue}`;
3315
+ code += ')';
3316
+ code += ';';
3317
+ code += '\n';
3318
+ });
3319
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.assignmentLines.length) <span class="cstat-no" title="statement not covered" >code += `__assignmentLineEmpty__\n`;</span>
3320
+ code += '// 批量赋值的翻译代码结束---------\n';
3321
+ return code;
3322
+ }
3323
+ &nbsp;
3324
+ @withSourceMap()
3325
+ <span class="fstat-no" title="function not covered" > toNaturalTS(</span>state = <span class="branch-0 cbranch-no" title="branch not covered" >createCompilerState())</span>: string {
3326
+ let code = <span class="cstat-no" title="statement not covered" >'';</span>
3327
+ // 根据连线状态,拆分成多个单赋值
3328
+ <span class="cstat-no" title="statement not covered" > this.assignmentLines.forEach(<span class="fstat-no" title="function not covered" >({</span> leftIndex, rightIndex }) =&gt; {</span>
3329
+ const leftValue =
3330
+ <span class="cstat-no" title="statement not covered" > leftIndex.length === 1</span>
3331
+ ? this.left.expression.toNaturalTS(shiftState(state, code, { inline: true }))
3332
+ : this.left.members[leftIndex[1]]?.toNaturalTS(shiftState(state, code, { inline: true }));
3333
+ <span class="cstat-no" title="statement not covered" > code += `${leftValue}`;</span>
3334
+ <span class="cstat-no" title="statement not covered" > code += ' = ';</span>
3335
+ const rightValue =
3336
+ <span class="cstat-no" title="statement not covered" > rightIndex.length === 1</span>
3337
+ ? this.rights[rightIndex[0]]?.expression?.toNaturalTS(shiftState(state, code, { inline: true }))
3338
+ : this.rights[rightIndex[0]]?.members[rightIndex[1]]?.toNaturalTS(shiftState(state, code, { inline: true }));
3339
+ <span class="cstat-no" title="statement not covered" > code += `${rightValue}`;</span>
3340
+ <span class="cstat-no" title="statement not covered" > code += ';';</span>
3341
+ <span class="cstat-no" title="statement not covered" > code += '\n';</span>
3342
+ });
3343
+ <span class="cstat-no" title="statement not covered" > return code;</span>
3344
+ }
3345
+ &nbsp;
3346
+ //================================================================================
3347
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
3348
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
3349
+ //================================================================================
3350
+ }
3351
+ &nbsp;
3352
+ export default BatchAssignment;
3353
+ //================================================================================
3354
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
3355
+ // 自动生成的代码已结束。下面可以手动编写。
3356
+ //================================================================================
3357
+ &nbsp;</pre></td></tr></table></pre>
3358
+
3359
+ <div class='push'></div><!-- for sticky footer -->
3360
+ </div><!-- /wrapper -->
3361
+ <div class='footer quiet pad2 space-top1 center small'>
3362
+ Code coverage generated by
3363
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
3364
+ at 2023-10-27T11:50:55.546Z
3365
+ </div>
3366
+ <script src="../../prettify.js"></script>
3367
+ <script>
3368
+ window.onload = function () {
3369
+ prettyPrint();
3370
+ };
3371
+ </script>
3372
+ <script src="../../sorter.js"></script>
3373
+ <script src="../../block-navigation.js"></script>
3374
+ </body>
3375
+ </html>
3376
+