@lcap/nasl 3.7.3-beta.4 → 3.7.4-beta.1

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 (311) hide show
  1. package/out/concepts/BindAttribute__.js +5 -4
  2. package/out/concepts/BindAttribute__.js.map +1 -1
  3. package/out/concepts/BindDirective__.js +3 -3
  4. package/out/concepts/BindDirective__.js.map +1 -1
  5. package/out/concepts/StringLiteral__.js +3 -3
  6. package/out/concepts/StringLiteral__.js.map +1 -1
  7. package/out/concepts/ViewElement__.d.ts +2 -0
  8. package/out/concepts/ViewElement__.js.map +1 -1
  9. package/out/natural/transformTS2UI.js +3 -5
  10. package/out/natural/transformTS2UI.js.map +1 -1
  11. package/package.json +1 -1
  12. package/src/concepts/BindAttribute__.ts +5 -4
  13. package/src/concepts/BindDirective__.ts +3 -3
  14. package/src/concepts/StringLiteral__.ts +3 -3
  15. package/src/concepts/ViewElement__.ts +2 -0
  16. package/src/natural/transformTS2UI.ts +3 -3
  17. package/.nyc_output/943352aa-23df-44e0-863b-3dcd3e8bf57a.json +0 -1
  18. package/.nyc_output/processinfo/943352aa-23df-44e0-863b-3dcd3e8bf57a.json +0 -1
  19. package/.nyc_output/processinfo/index.json +0 -1
  20. package/coverage/base.css +0 -224
  21. package/coverage/block-navigation.js +0 -87
  22. package/coverage/cobertura-coverage.xml +0 -72356
  23. package/coverage/favicon.png +0 -0
  24. package/coverage/index.html +0 -161
  25. package/coverage/prettify.css +0 -1
  26. package/coverage/prettify.js +0 -2
  27. package/coverage/sort-arrow-sprite.png +0 -0
  28. package/coverage/sorter.js +0 -196
  29. package/coverage/src/automate/engine/index.html +0 -116
  30. package/coverage/src/automate/engine/utils.js.html +0 -1414
  31. package/coverage/src/bak/index.html +0 -116
  32. package/coverage/src/bak/translator.js.html +0 -622
  33. package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +0 -175
  34. package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +0 -169
  35. package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +0 -1246
  36. package/coverage/src/breakpoint/generator/CallbackNode.ts.html +0 -145
  37. package/coverage/src/breakpoint/generator/index.html +0 -176
  38. package/coverage/src/breakpoint/generator/index.ts.html +0 -508
  39. package/coverage/src/breakpoint/index.html +0 -116
  40. package/coverage/src/breakpoint/index.ts.html +0 -94
  41. package/coverage/src/breakpoint/shared/constants.ts.html +0 -436
  42. package/coverage/src/breakpoint/shared/index.html +0 -176
  43. package/coverage/src/breakpoint/shared/index.ts.html +0 -94
  44. package/coverage/src/breakpoint/shared/operations.ts.html +0 -160
  45. package/coverage/src/breakpoint/shared/socket.ts.html +0 -1297
  46. package/coverage/src/breakpoint/shared/utils.ts.html +0 -1087
  47. package/coverage/src/breakpoint/store/core.ts.html +0 -1600
  48. package/coverage/src/breakpoint/store/dock.ts.html +0 -733
  49. package/coverage/src/breakpoint/store/index.html +0 -146
  50. package/coverage/src/breakpoint/store/index.ts.html +0 -91
  51. package/coverage/src/common/BaseNode.ts.html +0 -3874
  52. package/coverage/src/common/Command.ts.html +0 -310
  53. package/coverage/src/common/EventEmitter.ts.html +0 -370
  54. package/coverage/src/common/Messager.ts.html +0 -820
  55. package/coverage/src/common/asyncFuncMap.ts.html +0 -127
  56. package/coverage/src/common/index.html +0 -191
  57. package/coverage/src/common/index.ts.html +0 -94
  58. package/coverage/src/concepts/Abort__.ts.html +0 -328
  59. package/coverage/src/concepts/Anchor__.ts.html +0 -646
  60. package/coverage/src/concepts/AnonymousFunction__.ts.html +0 -2029
  61. package/coverage/src/concepts/App__.ts.html +0 -13252
  62. package/coverage/src/concepts/Argument__.ts.html +0 -964
  63. package/coverage/src/concepts/Assignee__.ts.html +0 -2236
  64. package/coverage/src/concepts/AssignmentLine__.ts.html +0 -409
  65. package/coverage/src/concepts/Assignment__.ts.html +0 -1123
  66. package/coverage/src/concepts/Attribute__.ts.html +0 -733
  67. package/coverage/src/concepts/AuthInterface__.ts.html +0 -367
  68. package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +0 -1984
  69. package/coverage/src/concepts/AuthLogic__.ts.html +0 -781
  70. package/coverage/src/concepts/BackendVariable__.ts.html +0 -1483
  71. package/coverage/src/concepts/Backend__.ts.html +0 -1165
  72. package/coverage/src/concepts/BatchAssignment__.ts.html +0 -3301
  73. package/coverage/src/concepts/BinaryExpression__.ts.html +0 -1441
  74. package/coverage/src/concepts/BindAttribute__.ts.html +0 -3835
  75. package/coverage/src/concepts/BindDirective__.ts.html +0 -1921
  76. package/coverage/src/concepts/BindEvent__.ts.html +0 -3406
  77. package/coverage/src/concepts/BindStyle__.ts.html +0 -1612
  78. package/coverage/src/concepts/BooleanLiteral__.ts.html +0 -418
  79. package/coverage/src/concepts/CallAuthInterface__.ts.html +0 -1615
  80. package/coverage/src/concepts/CallConnector__.ts.html +0 -922
  81. package/coverage/src/concepts/CallFunction__.ts.html +0 -2122
  82. package/coverage/src/concepts/CallInterface__.ts.html +0 -2719
  83. package/coverage/src/concepts/CallLogic__.ts.html +0 -4807
  84. package/coverage/src/concepts/CallQueryComponent__.ts.html +0 -5308
  85. package/coverage/src/concepts/Comment__.ts.html +0 -394
  86. package/coverage/src/concepts/CompletionProperty__.ts.html +0 -925
  87. package/coverage/src/concepts/ConfigGroup__.ts.html +0 -1105
  88. package/coverage/src/concepts/ConfigPropertyValue__.ts.html +0 -424
  89. package/coverage/src/concepts/ConfigProperty__.ts.html +0 -1348
  90. package/coverage/src/concepts/Configuration__.ts.html +0 -1027
  91. package/coverage/src/concepts/Connection__.ts.html +0 -1360
  92. package/coverage/src/concepts/ConnectorTrigger__.ts.html +0 -595
  93. package/coverage/src/concepts/Connector__.ts.html +0 -4255
  94. package/coverage/src/concepts/Constant__.ts.html +0 -913
  95. package/coverage/src/concepts/DataSource__.ts.html +0 -1771
  96. package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +0 -331
  97. package/coverage/src/concepts/Destination__.ts.html +0 -2731
  98. package/coverage/src/concepts/End__.ts.html +0 -433
  99. package/coverage/src/concepts/EntityIndex__.ts.html +0 -787
  100. package/coverage/src/concepts/EntityProperty__.ts.html +0 -2668
  101. package/coverage/src/concepts/Entity__.ts.html +0 -2950
  102. package/coverage/src/concepts/EnumItem__.ts.html +0 -550
  103. package/coverage/src/concepts/Enum__.ts.html +0 -1231
  104. package/coverage/src/concepts/Event__.ts.html +0 -1084
  105. package/coverage/src/concepts/ExternalDestination__.ts.html +0 -1033
  106. package/coverage/src/concepts/ForEachStatement__.ts.html +0 -1957
  107. package/coverage/src/concepts/FrontendLibrary__.ts.html +0 -1711
  108. package/coverage/src/concepts/FrontendVariable__.ts.html +0 -292
  109. package/coverage/src/concepts/Frontend__.ts.html +0 -3961
  110. package/coverage/src/concepts/Function__.ts.html +0 -3598
  111. package/coverage/src/concepts/Identifier__.ts.html +0 -1057
  112. package/coverage/src/concepts/IfStatement__.ts.html +0 -1594
  113. package/coverage/src/concepts/Integration__.ts.html +0 -1228
  114. package/coverage/src/concepts/InterfaceParam__.ts.html +0 -1087
  115. package/coverage/src/concepts/Interface__.ts.html +0 -3394
  116. package/coverage/src/concepts/JSBlock__.ts.html +0 -421
  117. package/coverage/src/concepts/JavaLogic__.ts.html +0 -460
  118. package/coverage/src/concepts/LogicItem__.ts.html +0 -1171
  119. package/coverage/src/concepts/Logic__.ts.html +0 -7408
  120. package/coverage/src/concepts/MatchCase__.ts.html +0 -2929
  121. package/coverage/src/concepts/Match__.ts.html +0 -2455
  122. package/coverage/src/concepts/MemberExpression__.ts.html +0 -1726
  123. package/coverage/src/concepts/MicroApp__.ts.html +0 -436
  124. package/coverage/src/concepts/Module__.ts.html +0 -9220
  125. package/coverage/src/concepts/MsgTriggerEvent__.ts.html +0 -1045
  126. package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +0 -1018
  127. package/coverage/src/concepts/Namespace__.ts.html +0 -7942
  128. package/coverage/src/concepts/NewComposite__.ts.html +0 -4729
  129. package/coverage/src/concepts/NewList__.ts.html +0 -1618
  130. package/coverage/src/concepts/NewMap__.ts.html +0 -2326
  131. package/coverage/src/concepts/New__.ts.html +0 -289
  132. package/coverage/src/concepts/NullLiteral__.ts.html +0 -349
  133. package/coverage/src/concepts/NumericLiteral__.ts.html +0 -676
  134. package/coverage/src/concepts/OqlQueryComponent__.ts.html +0 -1141
  135. package/coverage/src/concepts/OverriddenLogic__.ts.html +0 -6817
  136. package/coverage/src/concepts/Param__.ts.html +0 -1726
  137. package/coverage/src/concepts/Point__.ts.html +0 -331
  138. package/coverage/src/concepts/ProcessComponent__.ts.html +0 -1666
  139. package/coverage/src/concepts/ProcessElement__.ts.html +0 -5884
  140. package/coverage/src/concepts/ProcessOutcome__.ts.html +0 -352
  141. package/coverage/src/concepts/ProcessOutcomes__.ts.html +0 -343
  142. package/coverage/src/concepts/Process__.ts.html +0 -4768
  143. package/coverage/src/concepts/QueryAggregateExpression__.ts.html +0 -568
  144. package/coverage/src/concepts/QueryFieldExpression__.ts.html +0 -583
  145. package/coverage/src/concepts/QueryFromExpression__.ts.html +0 -910
  146. package/coverage/src/concepts/QueryGroupByExpression__.ts.html +0 -559
  147. package/coverage/src/concepts/QueryJoinExpression__.ts.html +0 -1567
  148. package/coverage/src/concepts/QueryLimitExpression__.ts.html +0 -637
  149. package/coverage/src/concepts/QueryOrderByExpression__.ts.html +0 -679
  150. package/coverage/src/concepts/QuerySelectExpression__.ts.html +0 -1714
  151. package/coverage/src/concepts/Rect__.ts.html +0 -373
  152. package/coverage/src/concepts/Return__.ts.html +0 -1312
  153. package/coverage/src/concepts/Role__.ts.html +0 -601
  154. package/coverage/src/concepts/SelectMembers__.ts.html +0 -1246
  155. package/coverage/src/concepts/Slot__.ts.html +0 -628
  156. package/coverage/src/concepts/SqlQueryComponent__.ts.html +0 -982
  157. package/coverage/src/concepts/Start__.ts.html +0 -304
  158. package/coverage/src/concepts/StringInterpolation__.ts.html +0 -1129
  159. package/coverage/src/concepts/StringLiteral__.ts.html +0 -505
  160. package/coverage/src/concepts/StructureProperty__.ts.html +0 -1132
  161. package/coverage/src/concepts/Structure__.ts.html +0 -2092
  162. package/coverage/src/concepts/SwitchCase__.ts.html +0 -1174
  163. package/coverage/src/concepts/SwitchStatement__.ts.html +0 -877
  164. package/coverage/src/concepts/Theme__.ts.html +0 -358
  165. package/coverage/src/concepts/Transactional__.ts.html +0 -628
  166. package/coverage/src/concepts/TriggerEvent__.ts.html +0 -1012
  167. package/coverage/src/concepts/TriggerLauncher__.ts.html +0 -775
  168. package/coverage/src/concepts/TypeAnnotation__.ts.html +0 -3718
  169. package/coverage/src/concepts/TypeParam__.ts.html +0 -319
  170. package/coverage/src/concepts/UnaryExpression__.ts.html +0 -697
  171. package/coverage/src/concepts/Unparsed__.ts.html +0 -394
  172. package/coverage/src/concepts/UseComponent__.ts.html +0 -331
  173. package/coverage/src/concepts/ValidationRule__.ts.html +0 -1840
  174. package/coverage/src/concepts/Variable__.ts.html +0 -1489
  175. package/coverage/src/concepts/ViewBlock__.ts.html +0 -352
  176. package/coverage/src/concepts/ViewComponent__.ts.html +0 -4180
  177. package/coverage/src/concepts/ViewElement__.ts.html +0 -8803
  178. package/coverage/src/concepts/View__.ts.html +0 -8620
  179. package/coverage/src/concepts/WhileStatement__.ts.html +0 -1063
  180. package/coverage/src/concepts/basics/stdlib/index.html +0 -356
  181. package/coverage/src/concepts/basics/stdlib/index.ts.html +0 -208
  182. package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +0 -565
  183. package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +0 -517
  184. package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +0 -226
  185. package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +0 -172
  186. package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +0 -214
  187. package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +0 -145
  188. package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +0 -589
  189. package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +0 -214
  190. package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +0 -229
  191. package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +0 -268
  192. package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +0 -1999
  193. package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +0 -3259
  194. package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +0 -6844
  195. package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +0 -1768
  196. package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +0 -163
  197. package/coverage/src/concepts/basics/stdlib/timeZone.ts.html +0 -664
  198. package/coverage/src/concepts/basics/types/coreTypeList.ts.html +0 -121
  199. package/coverage/src/concepts/basics/types/index.html +0 -131
  200. package/coverage/src/concepts/basics/types/index.ts.html +0 -160
  201. package/coverage/src/concepts/index.html +0 -1961
  202. package/coverage/src/concepts/index.ts.html +0 -103
  203. package/coverage/src/concepts/index__.ts.html +0 -451
  204. package/coverage/src/config.ts.html +0 -343
  205. package/coverage/src/decorators/index.html +0 -131
  206. package/coverage/src/decorators/index.ts.html +0 -739
  207. package/coverage/src/decorators/promise.ts.html +0 -169
  208. package/coverage/src/eventBus.ts.html +0 -100
  209. package/coverage/src/generator/compileComponent.ts.html +0 -142
  210. package/coverage/src/generator/genBundleFiles.ts.html +0 -1828
  211. package/coverage/src/generator/genHash.ts.html +0 -124
  212. package/coverage/src/generator/genMetaData.ts.html +0 -1042
  213. package/coverage/src/generator/genReleaseBody.ts.html +0 -1282
  214. package/coverage/src/generator/icestark.ts.html +0 -220
  215. package/coverage/src/generator/index.html +0 -266
  216. package/coverage/src/generator/index.ts.html +0 -106
  217. package/coverage/src/generator/microApp.ts.html +0 -172
  218. package/coverage/src/generator/permission.ts.html +0 -1036
  219. package/coverage/src/generator/qiankun.ts.html +0 -232
  220. package/coverage/src/generator/styleReplacer.ts.html +0 -199
  221. package/coverage/src/index.html +0 -116
  222. package/coverage/src/index.ts.html +0 -121
  223. package/coverage/src/manager/diagnostic.ts.html +0 -442
  224. package/coverage/src/manager/index.html +0 -131
  225. package/coverage/src/manager/stepRecorder.ts.html +0 -457
  226. package/coverage/src/natural/genNaturalTS.ts.html +0 -355
  227. package/coverage/src/natural/index.html +0 -161
  228. package/coverage/src/natural/index.ts.html +0 -91
  229. package/coverage/src/natural/naslStdlibMap.ts.html +0 -157
  230. package/coverage/src/natural/transformTSCode.ts.html +0 -2647
  231. package/coverage/src/sentry/index.html +0 -116
  232. package/coverage/src/sentry/index.ts.html +0 -676
  233. package/coverage/src/server/createUiTs.ts.html +0 -910
  234. package/coverage/src/server/entity2LogicNamespace.ts.html +0 -1294
  235. package/coverage/src/server/event.js.html +0 -526
  236. package/coverage/src/server/extendBaseNode.ts.html +0 -1762
  237. package/coverage/src/server/formatTsUtils.ts.html +0 -2689
  238. package/coverage/src/server/getConnector.ts.html +0 -316
  239. package/coverage/src/server/getExtensionModules.ts.html +0 -178
  240. package/coverage/src/server/getFunctions.ts.html +0 -133
  241. package/coverage/src/server/getInterfaces.ts.html +0 -229
  242. package/coverage/src/server/getLogging.ts.html +0 -100
  243. package/coverage/src/server/getLogics.ts.html +0 -1363
  244. package/coverage/src/server/getMemberIdentifier.ts.html +0 -1561
  245. package/coverage/src/server/getProcessComponents.ts.html +0 -112
  246. package/coverage/src/server/getProcesses.ts.html +0 -2023
  247. package/coverage/src/server/getValidates.ts.html +0 -115
  248. package/coverage/src/server/index.html +0 -401
  249. package/coverage/src/server/index.ts.html +0 -229
  250. package/coverage/src/server/naslServer.ts.html +0 -14401
  251. package/coverage/src/server/naslStdlibMap.ts.html +0 -241
  252. package/coverage/src/server/process2LogicNamespace.ts.html +0 -454
  253. package/coverage/src/server/translator.ts.html +0 -2566
  254. package/coverage/src/service/creator/add.configs.js.html +0 -379
  255. package/coverage/src/service/creator/errHandles.js.html +0 -322
  256. package/coverage/src/service/creator/index.html +0 -146
  257. package/coverage/src/service/creator/index.js.html +0 -352
  258. package/coverage/src/service/datasource/api.js.html +0 -118
  259. package/coverage/src/service/datasource/index.html +0 -131
  260. package/coverage/src/service/datasource/index.js.html +0 -103
  261. package/coverage/src/service/logic/api.js.html +0 -109
  262. package/coverage/src/service/logic/index.html +0 -131
  263. package/coverage/src/service/logic/index.js.html +0 -103
  264. package/coverage/src/service/storage/api.js.html +0 -202
  265. package/coverage/src/service/storage/index.html +0 -206
  266. package/coverage/src/service/storage/index.ts.html +0 -103
  267. package/coverage/src/service/storage/init.ts.html +0 -2761
  268. package/coverage/src/service/storage/jsoner.ts.html +0 -502
  269. package/coverage/src/service/storage/map.ts.html +0 -256
  270. package/coverage/src/service/storage/service.ts.html +0 -331
  271. package/coverage/src/service/storage/storagePoint.ts.html +0 -304
  272. package/coverage/src/templator/genCallComponentLogic.ts.html +0 -163
  273. package/coverage/src/templator/genCreateBlock.ts.html +0 -1093
  274. package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +0 -1609
  275. package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +0 -2254
  276. package/coverage/src/templator/genEditTableBlock.ts.html +0 -955
  277. package/coverage/src/templator/genEnumSelectBlock.ts.html +0 -178
  278. package/coverage/src/templator/genGetBlock.ts.html +0 -451
  279. package/coverage/src/templator/genGridViewBlock.ts.html +0 -1114
  280. package/coverage/src/templator/genListViewBlock.ts.html +0 -475
  281. package/coverage/src/templator/genQueryComponent.ts.html +0 -1207
  282. package/coverage/src/templator/genSelectBlock.ts.html +0 -1243
  283. package/coverage/src/templator/genTableBlock.ts.html +0 -910
  284. package/coverage/src/templator/genUpdateBlock.ts.html +0 -1192
  285. package/coverage/src/templator/index.html +0 -326
  286. package/coverage/src/templator/index.ts.html +0 -154
  287. package/coverage/src/templator/utils.ts.html +0 -1861
  288. package/coverage/src/translator/constant.ts.html +0 -106
  289. package/coverage/src/translator/index.html +0 -146
  290. package/coverage/src/translator/index.ts.html +0 -94
  291. package/coverage/src/translator/utils.ts.html +0 -436
  292. package/coverage/src/utils/cookie.ts.html +0 -265
  293. package/coverage/src/utils/env.ts.html +0 -91
  294. package/coverage/src/utils/index.html +0 -206
  295. package/coverage/src/utils/index.ts.html +0 -1429
  296. package/coverage/src/utils/logger.ts.html +0 -145
  297. package/coverage/src/utils/sortTsString.ts.html +0 -187
  298. package/coverage/src/utils/string.ts.html +0 -544
  299. package/coverage/src/utils/time-slicing/controller.ts.html +0 -1144
  300. package/coverage/src/utils/time-slicing/index.html +0 -221
  301. package/coverage/src/utils/time-slicing/index.ts.html +0 -103
  302. package/coverage/src/utils/time-slicing/page-state.ts.html +0 -121
  303. package/coverage/src/utils/time-slicing/performance.ts.html +0 -253
  304. package/coverage/src/utils/time-slicing/runner.ts.html +0 -241
  305. package/coverage/src/utils/time-slicing/tool.ts.html +0 -220
  306. package/coverage/src/utils/time-slicing/utils.ts.html +0 -355
  307. package/coverage/src/utils/time-slicing/wrapper.ts.html +0 -259
  308. package/coverage/src/utils/time-slicing.ts.html +0 -418
  309. package/coverage/src/utils/traverse.ts.html +0 -568
  310. package/coverage/src/utils/types.ts.html +0 -133
  311. package/coverage/src/utils/window.ts.html +0 -112
@@ -1,2719 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/concepts/CallInterface__.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> CallInterface__.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">35.73% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>134/375</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">25.62% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>51/199</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">30.86% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>25/81</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">35.92% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>120/334</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
945
- <span class="cline-any cline-yes">1x</span>
946
- <span class="cline-any cline-neutral">&nbsp;</span>
947
- <span class="cline-any cline-yes">1x</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-yes">1x</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-yes">1x</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-yes">1x</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-yes">1x</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-yes">1x</span>
966
- <span class="cline-any cline-yes">1x</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-yes">1x</span>
975
- <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-yes">1x</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-yes">16x</span>
989
- <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-neutral">&nbsp;</span>
992
- <span class="cline-any cline-neutral">&nbsp;</span>
993
- <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-yes">1x</span>
996
- <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-neutral">&nbsp;</span>
998
- <span class="cline-any cline-neutral">&nbsp;</span>
999
- <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-neutral">&nbsp;</span>
1001
- <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-yes">1x</span>
1003
- <span class="cline-any cline-neutral">&nbsp;</span>
1004
- <span class="cline-any cline-neutral">&nbsp;</span>
1005
- <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-neutral">&nbsp;</span>
1007
- <span class="cline-any cline-neutral">&nbsp;</span>
1008
- <span class="cline-any cline-neutral">&nbsp;</span>
1009
- <span class="cline-any cline-yes">1x</span>
1010
- <span class="cline-any cline-neutral">&nbsp;</span>
1011
- <span class="cline-any cline-neutral">&nbsp;</span>
1012
- <span class="cline-any cline-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-neutral">&nbsp;</span>
1014
- <span class="cline-any cline-neutral">&nbsp;</span>
1015
- <span class="cline-any cline-yes">16x</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-neutral">&nbsp;</span>
1021
- <span class="cline-any cline-yes">16x</span>
1022
- <span class="cline-any cline-yes">16x</span>
1023
- <span class="cline-any cline-yes">16x</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-neutral">&nbsp;</span>
1027
- <span class="cline-any cline-yes">16x</span>
1028
- <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-neutral">&nbsp;</span>
1030
- <span class="cline-any cline-neutral">&nbsp;</span>
1031
- <span class="cline-any cline-neutral">&nbsp;</span>
1032
- <span class="cline-any cline-neutral">&nbsp;</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-neutral">&nbsp;</span>
1037
- <span class="cline-any cline-neutral">&nbsp;</span>
1038
- <span class="cline-any cline-neutral">&nbsp;</span>
1039
- <span class="cline-any cline-neutral">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-neutral">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-neutral">&nbsp;</span>
1045
- <span class="cline-any cline-no">&nbsp;</span>
1046
- <span class="cline-any cline-no">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-no">&nbsp;</span>
1049
- <span class="cline-any cline-no">&nbsp;</span>
1050
- <span class="cline-any cline-no">&nbsp;</span>
1051
- <span class="cline-any cline-no">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-no">&nbsp;</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-neutral">&nbsp;</span>
1059
- <span class="cline-any cline-neutral">&nbsp;</span>
1060
- <span class="cline-any cline-neutral">&nbsp;</span>
1061
- <span class="cline-any cline-neutral">&nbsp;</span>
1062
- <span class="cline-any cline-no">&nbsp;</span>
1063
- <span class="cline-any cline-no">&nbsp;</span>
1064
- <span class="cline-any cline-neutral">&nbsp;</span>
1065
- <span class="cline-any cline-neutral">&nbsp;</span>
1066
- <span class="cline-any cline-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-neutral">&nbsp;</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-neutral">&nbsp;</span>
1073
- <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-neutral">&nbsp;</span>
1075
- <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</span>
1079
- <span class="cline-any cline-no">&nbsp;</span>
1080
- <span class="cline-any cline-no">&nbsp;</span>
1081
- <span class="cline-any cline-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-neutral">&nbsp;</span>
1083
- <span class="cline-any cline-neutral">&nbsp;</span>
1084
- <span class="cline-any cline-neutral">&nbsp;</span>
1085
- <span class="cline-any cline-no">&nbsp;</span>
1086
- <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-neutral">&nbsp;</span>
1088
- <span class="cline-any cline-neutral">&nbsp;</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-neutral">&nbsp;</span>
1092
- <span class="cline-any cline-neutral">&nbsp;</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-neutral">&nbsp;</span>
1097
- <span class="cline-any cline-neutral">&nbsp;</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-neutral">&nbsp;</span>
1101
- <span class="cline-any cline-neutral">&nbsp;</span>
1102
- <span class="cline-any cline-neutral">&nbsp;</span>
1103
- <span class="cline-any cline-no">&nbsp;</span>
1104
- <span class="cline-any cline-no">&nbsp;</span>
1105
- <span class="cline-any cline-neutral">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-neutral">&nbsp;</span>
1108
- <span class="cline-any cline-neutral">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-neutral">&nbsp;</span>
1111
- <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-neutral">&nbsp;</span>
1115
- <span class="cline-any cline-neutral">&nbsp;</span>
1116
- <span class="cline-any cline-neutral">&nbsp;</span>
1117
- <span class="cline-any cline-neutral">&nbsp;</span>
1118
- <span class="cline-any cline-neutral">&nbsp;</span>
1119
- <span class="cline-any cline-neutral">&nbsp;</span>
1120
- <span class="cline-any cline-no">&nbsp;</span>
1121
- <span class="cline-any cline-no">&nbsp;</span>
1122
- <span class="cline-any cline-no">&nbsp;</span>
1123
- <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-neutral">&nbsp;</span>
1125
- <span class="cline-any cline-neutral">&nbsp;</span>
1126
- <span class="cline-any cline-neutral">&nbsp;</span>
1127
- <span class="cline-any cline-no">&nbsp;</span>
1128
- <span class="cline-any cline-neutral">&nbsp;</span>
1129
- <span class="cline-any cline-neutral">&nbsp;</span>
1130
- <span class="cline-any cline-neutral">&nbsp;</span>
1131
- <span class="cline-any cline-neutral">&nbsp;</span>
1132
- <span class="cline-any cline-neutral">&nbsp;</span>
1133
- <span class="cline-any cline-neutral">&nbsp;</span>
1134
- <span class="cline-any cline-neutral">&nbsp;</span>
1135
- <span class="cline-any cline-neutral">&nbsp;</span>
1136
- <span class="cline-any cline-neutral">&nbsp;</span>
1137
- <span class="cline-any cline-no">&nbsp;</span>
1138
- <span class="cline-any cline-no">&nbsp;</span>
1139
- <span class="cline-any cline-neutral">&nbsp;</span>
1140
- <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-neutral">&nbsp;</span>
1142
- <span class="cline-any cline-no">&nbsp;</span>
1143
- <span class="cline-any cline-no">&nbsp;</span>
1144
- <span class="cline-any cline-neutral">&nbsp;</span>
1145
- <span class="cline-any cline-neutral">&nbsp;</span>
1146
- <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-neutral">&nbsp;</span>
1148
- <span class="cline-any cline-neutral">&nbsp;</span>
1149
- <span class="cline-any cline-neutral">&nbsp;</span>
1150
- <span class="cline-any cline-no">&nbsp;</span>
1151
- <span class="cline-any cline-no">&nbsp;</span>
1152
- <span class="cline-any cline-no">&nbsp;</span>
1153
- <span class="cline-any cline-no">&nbsp;</span>
1154
- <span class="cline-any cline-no">&nbsp;</span>
1155
- <span class="cline-any cline-no">&nbsp;</span>
1156
- <span class="cline-any cline-no">&nbsp;</span>
1157
- <span class="cline-any cline-no">&nbsp;</span>
1158
- <span class="cline-any cline-no">&nbsp;</span>
1159
- <span class="cline-any cline-neutral">&nbsp;</span>
1160
- <span class="cline-any cline-neutral">&nbsp;</span>
1161
- <span class="cline-any cline-no">&nbsp;</span>
1162
- <span class="cline-any cline-neutral">&nbsp;</span>
1163
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
1174
- <span class="cline-any cline-yes">16x</span>
1175
- <span class="cline-any cline-neutral">&nbsp;</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-no">&nbsp;</span>
1179
- <span class="cline-any cline-no">&nbsp;</span>
1180
- <span class="cline-any cline-no">&nbsp;</span>
1181
- <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-no">&nbsp;</span>
1183
- <span class="cline-any cline-no">&nbsp;</span>
1184
- <span class="cline-any cline-no">&nbsp;</span>
1185
- <span class="cline-any cline-no">&nbsp;</span>
1186
- <span class="cline-any cline-neutral">&nbsp;</span>
1187
- <span class="cline-any cline-neutral">&nbsp;</span>
1188
- <span class="cline-any cline-no">&nbsp;</span>
1189
- <span class="cline-any cline-no">&nbsp;</span>
1190
- <span class="cline-any cline-neutral">&nbsp;</span>
1191
- <span class="cline-any cline-no">&nbsp;</span>
1192
- <span class="cline-any cline-no">&nbsp;</span>
1193
- <span class="cline-any cline-neutral">&nbsp;</span>
1194
- <span class="cline-any cline-no">&nbsp;</span>
1195
- <span class="cline-any cline-no">&nbsp;</span>
1196
- <span class="cline-any cline-no">&nbsp;</span>
1197
- <span class="cline-any cline-no">&nbsp;</span>
1198
- <span class="cline-any cline-neutral">&nbsp;</span>
1199
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1203
- <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-neutral">&nbsp;</span>
1205
- <span class="cline-any cline-no">&nbsp;</span>
1206
- <span class="cline-any cline-neutral">&nbsp;</span>
1207
- <span class="cline-any cline-no">&nbsp;</span>
1208
- <span class="cline-any cline-no">&nbsp;</span>
1209
- <span class="cline-any cline-no">&nbsp;</span>
1210
- <span class="cline-any cline-no">&nbsp;</span>
1211
- <span class="cline-any cline-no">&nbsp;</span>
1212
- <span class="cline-any cline-no">&nbsp;</span>
1213
- <span class="cline-any cline-no">&nbsp;</span>
1214
- <span class="cline-any cline-neutral">&nbsp;</span>
1215
- <span class="cline-any cline-neutral">&nbsp;</span>
1216
- <span class="cline-any cline-no">&nbsp;</span>
1217
- <span class="cline-any cline-neutral">&nbsp;</span>
1218
- <span class="cline-any cline-no">&nbsp;</span>
1219
- <span class="cline-any cline-no">&nbsp;</span>
1220
- <span class="cline-any cline-neutral">&nbsp;</span>
1221
- <span class="cline-any cline-no">&nbsp;</span>
1222
- <span class="cline-any cline-no">&nbsp;</span>
1223
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1232
- <span class="cline-any cline-no">&nbsp;</span>
1233
- <span class="cline-any cline-no">&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-neutral">&nbsp;</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-no">&nbsp;</span>
1245
- <span class="cline-any cline-no">&nbsp;</span>
1246
- <span class="cline-any cline-no">&nbsp;</span>
1247
- <span class="cline-any cline-no">&nbsp;</span>
1248
- <span class="cline-any cline-no">&nbsp;</span>
1249
- <span class="cline-any cline-neutral">&nbsp;</span>
1250
- <span class="cline-any cline-neutral">&nbsp;</span>
1251
- <span class="cline-any cline-neutral">&nbsp;</span>
1252
- <span class="cline-any cline-yes">8x</span>
1253
- <span class="cline-any cline-yes">8x</span>
1254
- <span class="cline-any cline-yes">8x</span>
1255
- <span class="cline-any cline-yes">8x</span>
1256
- <span class="cline-any cline-yes">8x</span>
1257
- <span class="cline-any cline-neutral">&nbsp;</span>
1258
- <span class="cline-any cline-no">&nbsp;</span>
1259
- <span class="cline-any cline-neutral">&nbsp;</span>
1260
- <span class="cline-any cline-neutral">&nbsp;</span>
1261
- <span class="cline-any cline-neutral">&nbsp;</span>
1262
- <span class="cline-any cline-no">&nbsp;</span>
1263
- <span class="cline-any cline-no">&nbsp;</span>
1264
- <span class="cline-any cline-no">&nbsp;</span>
1265
- <span class="cline-any cline-no">&nbsp;</span>
1266
- <span class="cline-any cline-no">&nbsp;</span>
1267
- <span class="cline-any cline-neutral">&nbsp;</span>
1268
- <span class="cline-any cline-no">&nbsp;</span>
1269
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1273
- <span class="cline-any cline-no">&nbsp;</span>
1274
- <span class="cline-any cline-no">&nbsp;</span>
1275
- <span class="cline-any cline-no">&nbsp;</span>
1276
- <span class="cline-any cline-no">&nbsp;</span>
1277
- <span class="cline-any cline-no">&nbsp;</span>
1278
- <span class="cline-any cline-neutral">&nbsp;</span>
1279
- <span class="cline-any cline-no">&nbsp;</span>
1280
- <span class="cline-any cline-no">&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-yes">8x</span>
1285
- <span class="cline-any cline-yes">8x</span>
1286
- <span class="cline-any cline-neutral">&nbsp;</span>
1287
- <span class="cline-any cline-neutral">&nbsp;</span>
1288
- <span class="cline-any cline-neutral">&nbsp;</span>
1289
- <span class="cline-any cline-yes">8x</span>
1290
- <span class="cline-any cline-yes">8x</span>
1291
- <span class="cline-any cline-yes">8x</span>
1292
- <span class="cline-any cline-no">&nbsp;</span>
1293
- <span class="cline-any cline-yes">8x</span>
1294
- <span class="cline-any cline-no">&nbsp;</span>
1295
- <span class="cline-any cline-neutral">&nbsp;</span>
1296
- <span class="cline-any cline-neutral">&nbsp;</span>
1297
- <span class="cline-any cline-yes">8x</span>
1298
- <span class="cline-any cline-neutral">&nbsp;</span>
1299
- <span class="cline-any cline-yes">8x</span>
1300
- <span class="cline-any cline-yes">8x</span>
1301
- <span class="cline-any cline-no">&nbsp;</span>
1302
- <span class="cline-any cline-no">&nbsp;</span>
1303
- <span class="cline-any cline-neutral">&nbsp;</span>
1304
- <span class="cline-any cline-yes">8x</span>
1305
- <span class="cline-any cline-yes">8x</span>
1306
- <span class="cline-any cline-yes">12x</span>
1307
- <span class="cline-any cline-yes">12x</span>
1308
- <span class="cline-any cline-yes">8x</span>
1309
- <span class="cline-any cline-yes">12x</span>
1310
- <span class="cline-any cline-neutral">&nbsp;</span>
1311
- <span class="cline-any cline-yes">3x</span>
1312
- <span class="cline-any cline-yes">2x</span>
1313
- <span class="cline-any cline-neutral">&nbsp;</span>
1314
- <span class="cline-any cline-yes">3x</span>
1315
- <span class="cline-any cline-neutral">&nbsp;</span>
1316
- <span class="cline-any cline-yes">12x</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-yes">8x</span>
1320
- <span class="cline-any cline-yes">32x</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-yes">48x</span>
1324
- <span class="cline-any cline-neutral">&nbsp;</span>
1325
- <span class="cline-any cline-yes">32x</span>
1326
- <span class="cline-any cline-yes">12x</span>
1327
- <span class="cline-any cline-yes">1x</span>
1328
- <span class="cline-any cline-yes">11x</span>
1329
- <span class="cline-any cline-yes">9x</span>
1330
- <span class="cline-any cline-neutral">&nbsp;</span>
1331
- <span class="cline-any cline-yes">2x</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-yes">12x</span>
1335
- <span class="cline-any cline-yes">7x</span>
1336
- <span class="cline-any cline-neutral">&nbsp;</span>
1337
- <span class="cline-any cline-neutral">&nbsp;</span>
1338
- <span class="cline-any cline-neutral">&nbsp;</span>
1339
- <span class="cline-any cline-yes">32x</span>
1340
- <span class="cline-any cline-no">&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-yes">32x</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-yes">8x</span>
1347
- <span class="cline-any cline-neutral">&nbsp;</span>
1348
- <span class="cline-any cline-yes">8x</span>
1349
- <span class="cline-any cline-yes">8x</span>
1350
- <span class="cline-any cline-yes">8x</span>
1351
- <span class="cline-any cline-yes">8x</span>
1352
- <span class="cline-any cline-yes">8x</span>
1353
- <span class="cline-any cline-yes">8x</span>
1354
- <span class="cline-any cline-yes">8x</span>
1355
- <span class="cline-any cline-neutral">&nbsp;</span>
1356
- <span class="cline-any cline-yes">8x</span>
1357
- <span class="cline-any cline-yes">2x</span>
1358
- <span class="cline-any cline-yes">2x</span>
1359
- <span class="cline-any cline-neutral">&nbsp;</span>
1360
- <span class="cline-any cline-yes">6x</span>
1361
- <span class="cline-any cline-yes">6x</span>
1362
- <span class="cline-any cline-yes">6x</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-yes">8x</span>
1366
- <span class="cline-any cline-yes">8x</span>
1367
- <span class="cline-any cline-yes">8x</span>
1368
- <span class="cline-any cline-yes">8x</span>
1369
- <span class="cline-any cline-no">&nbsp;</span>
1370
- <span class="cline-any cline-neutral">&nbsp;</span>
1371
- <span class="cline-any cline-yes">8x</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-yes">1x</span>
1376
- <span class="cline-any cline-yes">8x</span>
1377
- <span class="cline-any cline-neutral">&nbsp;</span>
1378
- <span class="cline-any cline-yes">8x</span>
1379
- <span class="cline-any cline-neutral">&nbsp;</span>
1380
- <span class="cline-any cline-yes">8x</span>
1381
- <span class="cline-any cline-yes">7x</span>
1382
- <span class="cline-any cline-yes">7x</span>
1383
- <span class="cline-any cline-yes">12x</span>
1384
- <span class="cline-any cline-yes">12x</span>
1385
- <span class="cline-any cline-neutral">&nbsp;</span>
1386
- <span class="cline-any cline-yes">7x</span>
1387
- <span class="cline-any cline-neutral">&nbsp;</span>
1388
- <span class="cline-any cline-yes">8x</span>
1389
- <span class="cline-any cline-yes">8x</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-neutral">&nbsp;</span>
1393
- <span class="cline-any cline-neutral">&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-neutral">&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-yes">8x</span>
1404
- <span class="cline-any cline-neutral">&nbsp;</span>
1405
- <span class="cline-any cline-yes">8x</span>
1406
- <span class="cline-any cline-yes">8x</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-yes">1x</span>
1411
- <span class="cline-any cline-no">&nbsp;</span>
1412
- <span class="cline-any cline-neutral">&nbsp;</span>
1413
- <span class="cline-any cline-no">&nbsp;</span>
1414
- <span class="cline-any cline-neutral">&nbsp;</span>
1415
- <span class="cline-any cline-no">&nbsp;</span>
1416
- <span class="cline-any cline-no">&nbsp;</span>
1417
- <span class="cline-any cline-no">&nbsp;</span>
1418
- <span class="cline-any cline-no">&nbsp;</span>
1419
- <span class="cline-any cline-no">&nbsp;</span>
1420
- <span class="cline-any cline-neutral">&nbsp;</span>
1421
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1439
- <span class="cline-any cline-neutral">&nbsp;</span>
1440
- <span class="cline-any cline-no">&nbsp;</span>
1441
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1446
- <span class="cline-any cline-neutral">&nbsp;</span>
1447
- <span class="cline-any cline-neutral">&nbsp;</span>
1448
- <span class="cline-any cline-neutral">&nbsp;</span>
1449
- <span class="cline-any cline-no">&nbsp;</span>
1450
- <span class="cline-any cline-no">&nbsp;</span>
1451
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1455
- <span class="cline-any cline-neutral">&nbsp;</span>
1456
- <span class="cline-any cline-yes">24x</span>
1457
- <span class="cline-any cline-neutral">&nbsp;</span>
1458
- <span class="cline-any cline-neutral">&nbsp;</span>
1459
- <span class="cline-any cline-neutral">&nbsp;</span>
1460
- <span class="cline-any cline-yes">8x</span>
1461
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1490
- <span class="cline-any cline-neutral">&nbsp;</span>
1491
- <span class="cline-any cline-neutral">&nbsp;</span>
1492
- <span class="cline-any cline-neutral">&nbsp;</span>
1493
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1502
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1511
- <span class="cline-any cline-neutral">&nbsp;</span>
1512
- <span class="cline-any cline-neutral">&nbsp;</span>
1513
- <span class="cline-any cline-neutral">&nbsp;</span>
1514
- <span class="cline-any cline-neutral">&nbsp;</span>
1515
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1525
- <span class="cline-any cline-neutral">&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-yes">8x</span>
1536
- <span class="cline-any cline-no">&nbsp;</span>
1537
- <span class="cline-any cline-neutral">&nbsp;</span>
1538
- <span class="cline-any cline-yes">8x</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-yes">8x</span>
1543
- <span class="cline-any cline-yes">8x</span>
1544
- <span class="cline-any cline-yes">8x</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-neutral">&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-no">&nbsp;</span>
1553
- <span class="cline-any cline-no">&nbsp;</span>
1554
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1562
- <span class="cline-any cline-no">&nbsp;</span>
1563
- <span class="cline-any cline-no">&nbsp;</span>
1564
- <span class="cline-any cline-no">&nbsp;</span>
1565
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1571
- <span class="cline-any cline-no">&nbsp;</span>
1572
- <span class="cline-any cline-no">&nbsp;</span>
1573
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1580
- <span class="cline-any cline-no">&nbsp;</span>
1581
- <span class="cline-any cline-neutral">&nbsp;</span>
1582
- <span class="cline-any cline-no">&nbsp;</span>
1583
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1587
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1594
- <span class="cline-any cline-no">&nbsp;</span>
1595
- <span class="cline-any cline-no">&nbsp;</span>
1596
- <span class="cline-any cline-neutral">&nbsp;</span>
1597
- <span class="cline-any cline-no">&nbsp;</span>
1598
- <span class="cline-any cline-neutral">&nbsp;</span>
1599
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1603
- <span class="cline-any cline-neutral">&nbsp;</span>
1604
- <span class="cline-any cline-neutral">&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-neutral">&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-yes">16x</span>
1613
- <span class="cline-any cline-yes">16x</span>
1614
- <span class="cline-any cline-neutral">&nbsp;</span>
1615
- <span class="cline-any cline-no">&nbsp;</span>
1616
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1622
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1627
- <span class="cline-any cline-neutral">&nbsp;</span>
1628
- <span class="cline-any cline-yes">16x</span>
1629
- <span class="cline-any cline-neutral">&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-yes">16x</span>
1633
- <span class="cline-any cline-yes">16x</span>
1634
- <span class="cline-any cline-yes">16x</span>
1635
- <span class="cline-any cline-yes">16x</span>
1636
- <span class="cline-any cline-yes">16x</span>
1637
- <span class="cline-any cline-neutral">&nbsp;</span>
1638
- <span class="cline-any cline-yes">16x</span>
1639
- <span class="cline-any cline-yes">14x</span>
1640
- <span class="cline-any cline-yes">36x</span>
1641
- <span class="cline-any cline-yes">24x</span>
1642
- <span class="cline-any cline-neutral">&nbsp;</span>
1643
- <span class="cline-any cline-yes">24x</span>
1644
- <span class="cline-any cline-yes">24x</span>
1645
- <span class="cline-any cline-yes">24x</span>
1646
- <span class="cline-any cline-neutral">&nbsp;</span>
1647
- <span class="cline-any cline-yes">24x</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-yes">10x</span>
1651
- <span class="cline-any cline-yes">10x</span>
1652
- <span class="cline-any cline-neutral">&nbsp;</span>
1653
- <span class="cline-any cline-yes">24x</span>
1654
- <span class="cline-any cline-neutral">&nbsp;</span>
1655
- <span class="cline-any cline-neutral">&nbsp;</span>
1656
- <span class="cline-any cline-yes">16x</span>
1657
- <span class="cline-any cline-neutral">&nbsp;</span>
1658
- <span class="cline-any cline-neutral">&nbsp;</span>
1659
- <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1669
- <span class="cline-any cline-no">&nbsp;</span>
1670
- <span class="cline-any cline-no">&nbsp;</span>
1671
- <span class="cline-any cline-neutral">&nbsp;</span>
1672
- <span class="cline-any cline-neutral">&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-no">&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-neutral">&nbsp;</span>
1681
- <span class="cline-any cline-neutral">&nbsp;</span>
1682
- <span class="cline-any cline-no">&nbsp;</span>
1683
- <span class="cline-any cline-neutral">&nbsp;</span>
1684
- <span class="cline-any cline-no">&nbsp;</span>
1685
- <span class="cline-any cline-no">&nbsp;</span>
1686
- <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1694
- <span class="cline-any cline-no">&nbsp;</span>
1695
- <span class="cline-any cline-no">&nbsp;</span>
1696
- <span class="cline-any cline-neutral">&nbsp;</span>
1697
- <span class="cline-any cline-no">&nbsp;</span>
1698
- <span class="cline-any cline-no">&nbsp;</span>
1699
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1704
- <span class="cline-any cline-neutral">&nbsp;</span>
1705
- <span class="cline-any cline-neutral">&nbsp;</span>
1706
- <span class="cline-any cline-neutral">&nbsp;</span>
1707
- <span class="cline-any cline-no">&nbsp;</span>
1708
- <span class="cline-any cline-no">&nbsp;</span>
1709
- <span class="cline-any cline-no">&nbsp;</span>
1710
- <span class="cline-any cline-no">&nbsp;</span>
1711
- <span class="cline-any cline-no">&nbsp;</span>
1712
- <span class="cline-any cline-no">&nbsp;</span>
1713
- <span class="cline-any cline-no">&nbsp;</span>
1714
- <span class="cline-any cline-no">&nbsp;</span>
1715
- <span class="cline-any cline-neutral">&nbsp;</span>
1716
- <span class="cline-any cline-no">&nbsp;</span>
1717
- <span class="cline-any cline-no">&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-neutral">&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-neutral">&nbsp;</span>
1727
- <span class="cline-any cline-no">&nbsp;</span>
1728
- <span class="cline-any cline-no">&nbsp;</span>
1729
- <span class="cline-any cline-neutral">&nbsp;</span>
1730
- <span class="cline-any cline-neutral">&nbsp;</span>
1731
- <span class="cline-any cline-neutral">&nbsp;</span>
1732
- <span class="cline-any cline-neutral">&nbsp;</span>
1733
- <span class="cline-any cline-neutral">&nbsp;</span>
1734
- <span class="cline-any cline-no">&nbsp;</span>
1735
- <span class="cline-any cline-neutral">&nbsp;</span>
1736
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1741
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1747
- <span class="cline-any cline-no">&nbsp;</span>
1748
- <span class="cline-any cline-no">&nbsp;</span>
1749
- <span class="cline-any cline-no">&nbsp;</span>
1750
- <span class="cline-any cline-no">&nbsp;</span>
1751
- <span class="cline-any cline-no">&nbsp;</span>
1752
- <span class="cline-any cline-no">&nbsp;</span>
1753
- <span class="cline-any cline-no">&nbsp;</span>
1754
- <span class="cline-any cline-neutral">&nbsp;</span>
1755
- <span class="cline-any cline-no">&nbsp;</span>
1756
- <span class="cline-any cline-no">&nbsp;</span>
1757
- <span class="cline-any cline-no">&nbsp;</span>
1758
- <span class="cline-any cline-no">&nbsp;</span>
1759
- <span class="cline-any cline-no">&nbsp;</span>
1760
- <span class="cline-any cline-neutral">&nbsp;</span>
1761
- <span class="cline-any cline-no">&nbsp;</span>
1762
- <span class="cline-any cline-no">&nbsp;</span>
1763
- <span class="cline-any cline-no">&nbsp;</span>
1764
- <span class="cline-any cline-no">&nbsp;</span>
1765
- <span class="cline-any cline-no">&nbsp;</span>
1766
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1771
- <span class="cline-any cline-neutral">&nbsp;</span>
1772
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1777
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1782
- <span class="cline-any cline-no">&nbsp;</span>
1783
- <span class="cline-any cline-no">&nbsp;</span>
1784
- <span class="cline-any cline-neutral">&nbsp;</span>
1785
- <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1789
- <span class="cline-any cline-neutral">&nbsp;</span>
1790
- <span class="cline-any cline-neutral">&nbsp;</span>
1791
- <span class="cline-any cline-neutral">&nbsp;</span>
1792
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1796
- <span class="cline-any cline-no">&nbsp;</span>
1797
- <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1801
- <span class="cline-any cline-no">&nbsp;</span>
1802
- <span class="cline-any cline-no">&nbsp;</span>
1803
- <span class="cline-any cline-no">&nbsp;</span>
1804
- <span class="cline-any cline-neutral">&nbsp;</span>
1805
- <span class="cline-any cline-neutral">&nbsp;</span>
1806
- <span class="cline-any cline-neutral">&nbsp;</span>
1807
- <span class="cline-any cline-no">&nbsp;</span>
1808
- <span class="cline-any cline-no">&nbsp;</span>
1809
- <span class="cline-any cline-no">&nbsp;</span>
1810
- <span class="cline-any cline-neutral">&nbsp;</span>
1811
- <span class="cline-any cline-neutral">&nbsp;</span>
1812
- <span class="cline-any cline-neutral">&nbsp;</span>
1813
- <span class="cline-any cline-neutral">&nbsp;</span>
1814
- <span class="cline-any cline-neutral">&nbsp;</span>
1815
- <span class="cline-any cline-neutral">&nbsp;</span>
1816
- <span class="cline-any cline-neutral">&nbsp;</span>
1817
- <span class="cline-any cline-yes">1x</span>
1818
- <span class="cline-any cline-neutral">&nbsp;</span>
1819
- <span class="cline-any cline-neutral">&nbsp;</span>
1820
- <span class="cline-any cline-neutral">&nbsp;</span>
1821
- <span class="cline-any cline-neutral">&nbsp;</span>
1822
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { TranslatorState, shiftState, withSourceMap, createCompilerState } from '../translator';
1823
- import Interface from './Interface__';
1824
- import { ElementToVueOptions } from './ViewElement__';
1825
- import { getNodeByNodeCallee } from '../automate/engine/utils';
1826
- import InterfaceParam from './InterfaceParam__';
1827
- import Structure from './Structure__';
1828
- import Module from './Module__';
1829
- import AuthInterface from './AuthInterface__';
1830
- import type { MemberExpression } from './MemberExpression__';
1831
- import Frontend from './Frontend__';
1832
- import type Connector from './Connector__';
1833
- //================================================================================
1834
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1835
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1836
- //================================================================================
1837
- import { EventPayload, Params } from '../common/EventEmitter';
1838
- import { concept, excludedInJSON, property, className } from '../decorators';
1839
- &nbsp;
1840
- import * as utils from '../utils';
1841
- import { v4 as uuidv4 } from 'uuid';
1842
- import BaseNode from '../common/BaseNode';
1843
- import Argument from './Argument__';
1844
- import LogicItem from './LogicItem__';
1845
- &nbsp;
1846
- /**
1847
- * 调用接口
1848
- */
1849
- @className
1850
- @concept('调用接口')
1851
- // @ts-ignore
1852
- export class CallInterface extends LogicItem {
1853
- /** 类名 */
1854
- static readonly ConceptName = 'CallInterface';
1855
- &nbsp;
1856
- /**
1857
- * 产品概念
1858
- */
1859
- // @ts-ignore
1860
- readonly concept!: 'CallInterface' | 'CallAuthInterface';
1861
- &nbsp;
1862
- /**
1863
- * 调用接口标题
1864
- */
1865
- @property()
1866
- label: string = '调用接口';
1867
- &nbsp;
1868
- /**
1869
- * calleeNamespace
1870
- */
1871
- @property()
1872
- // @ts-ignore
1873
- calleeNamespace!: string;
1874
- &nbsp;
1875
- /**
1876
- * calleeName
1877
- */
1878
- @property()
1879
- // @ts-ignore
1880
- calleeName!: string;
1881
- &nbsp;
1882
- /**
1883
- * shortcut
1884
- */
1885
- @property()
1886
- // @ts-ignore
1887
- shortcut!: boolean;
1888
- &nbsp;
1889
- /**
1890
- * 实际参数
1891
- */
1892
- @property('Argument')
1893
- arguments: Array&lt;Argument&gt; = [];
1894
- &nbsp;
1895
- /**
1896
- * @param source 需要合并的部分参数
1897
- */
1898
- constructor(source?: Partial&lt;CallInterface&gt;) {
1899
- source = Object.assign({}, CallInterface.getDefaultOptions(), source);
1900
- super(source);
1901
- super.subConstructor(source);
1902
- }
1903
- &nbsp;
1904
- static from(source: any, parentNode?: any, parentKey?: string): CallInterface {
1905
- return super.from(source, parentNode, parentKey) as CallInterface;
1906
- }
1907
- &nbsp;
1908
- /**
1909
- * 插入实际参数
1910
- * @internal
1911
- * @param argumentOptions 实际参数参数
1912
- */
1913
- _insertArgumentAt(argumentOptions: Partial&lt;Argument&gt;, index: number): Argument;
1914
- &nbsp;
1915
- /**
1916
- * 插入实际参数
1917
- * @internal
1918
- * @param argument 已有的实际参数实例
1919
- */
1920
- _insertArgumentAt(argument: Argument, index: number): Argument;
1921
- &nbsp;
1922
- <span class="fstat-no" title="function not covered" > _insertArgumentAt(</span>options: Partial&lt;Argument&gt; | Argument, index: number) {
1923
- const argumentOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
1924
- const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'arguments' };</span>
1925
- let argument: Argument;
1926
- <span class="cstat-no" title="statement not covered" > if (options instanceof Argument) {</span>
1927
- <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
1928
- <span class="cstat-no" title="statement not covered" > argument = options;</span>
1929
- <span class="cstat-no" title="statement not covered" > Object.assign(argument, relationOptions);</span>
1930
- } else {
1931
- <span class="cstat-no" title="statement not covered" > argument = Argument.from(</span>
1932
- {
1933
- ...argumentOptions,
1934
- ...options,
1935
- },
1936
- this,
1937
- 'arguments',
1938
- );
1939
- }
1940
- <span class="cstat-no" title="statement not covered" > this.arguments.splice(index, 0, argument);</span>
1941
- <span class="cstat-no" title="statement not covered" > return argument;</span>
1942
- }
1943
- &nbsp;
1944
- /**
1945
- * 插入实际参数
1946
- * @param argumentOptions 实际参数参数
1947
- */
1948
- insertArgumentAt(argumentOptions: Partial&lt;Argument&gt;, index: number): Argument;
1949
- &nbsp;
1950
- /**
1951
- * 插入实际参数
1952
- * @param argument 已有的实际参数实例
1953
- */
1954
- insertArgumentAt(argument: Argument, index: number): Argument;
1955
- &nbsp;
1956
- <span class="fstat-no" title="function not covered" > insertArgumentAt(</span>options: Partial&lt;Argument&gt; | Argument, index: number) {
1957
- const node = <span class="cstat-no" title="statement not covered" >this._insertArgumentAt(options as any, index);</span>
1958
- <span class="cstat-no" title="statement not covered" > node.create({</span>
1959
- index,
1960
- parentNode: this,
1961
- parentKey: 'arguments',
1962
- });
1963
- <span class="cstat-no" title="statement not covered" > return node;</span>
1964
- }
1965
- &nbsp;
1966
- /**
1967
- * 添加实际参数
1968
- * @internal
1969
- * @param argumentOptions 实际参数参数
1970
- */
1971
- _addArgument(argumentOptions: Partial&lt;Argument&gt;): Argument;
1972
- &nbsp;
1973
- /**
1974
- * 添加实际参数
1975
- * @internal
1976
- * @param argument 已有的实际参数实例
1977
- */
1978
- _addArgument(argument: Argument): Argument;
1979
- &nbsp;
1980
- <span class="fstat-no" title="function not covered" > _addArgument(</span>options?: Partial&lt;Argument&gt; | Argument) {
1981
- const index = <span class="cstat-no" title="statement not covered" >this.arguments.length;</span>
1982
- <span class="cstat-no" title="statement not covered" > return this._insertArgumentAt(options as any, index);</span>
1983
- }
1984
- &nbsp;
1985
- /**
1986
- * 添加实际参数
1987
- * @param argumentOptions 实际参数参数
1988
- */
1989
- addArgument(argumentOptions: Partial&lt;Argument&gt;): Argument;
1990
- &nbsp;
1991
- /**
1992
- * 添加实际参数
1993
- * @param argument 已有的实际参数实例
1994
- */
1995
- addArgument(argument: Argument): Argument;
1996
- &nbsp;
1997
- <span class="fstat-no" title="function not covered" > addArgument(</span>options?: Partial&lt;Argument&gt; | Argument) {
1998
- const node = <span class="cstat-no" title="statement not covered" >this._addArgument(options as any);</span>
1999
- const index = <span class="cstat-no" title="statement not covered" >this.arguments.indexOf(node);</span>
2000
- <span class="cstat-no" title="statement not covered" > node.create({</span>
2001
- index,
2002
- parentNode: this,
2003
- parentKey: 'arguments',
2004
- });
2005
- <span class="cstat-no" title="statement not covered" > return node;</span>
2006
- }
2007
- &nbsp;
2008
- /**
2009
- * 删除实际参数
2010
- * @param argument 已有的实际参数实例
2011
- */
2012
- removeArgument(argument: Argument): void;
2013
- &nbsp;
2014
- <span class="fstat-no" title="function not covered" > removeArgument(</span>options: Argument) {
2015
- let argument: Argument = <span class="cstat-no" title="statement not covered" >options;</span>
2016
- <span class="cstat-no" title="statement not covered" > return argument.delete();</span>
2017
- }
2018
- &nbsp;
2019
- <span class="fstat-no" title="function not covered" > __removeLogicItem(</span>logicItem: LogicItem) {
2020
- const parentKey = <span class="cstat-no" title="statement not covered" >logicItem.parentKey;</span>
2021
- const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
2022
- parentNode: this,
2023
- parentKey,
2024
- index: -1,
2025
- object: null,
2026
- oldObject: logicItem,
2027
- };
2028
- <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
2029
- <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
2030
- <span class="cstat-no" title="statement not covered" > if (Array.isArray((this as any)[parentKey])) {</span>
2031
- const index = (<span class="cstat-no" title="statement not covered" >this as any)[parentKey].indexOf(logicItem);</span>
2032
- <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
2033
- <span class="cstat-no" title="statement not covered" > params.index = index;</span>
2034
- } else <span class="cstat-no" title="statement not covered" >if ((this as any)[parentKey] === logicItem) {</span>
2035
- <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
2036
- (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
2037
- }
2038
- }
2039
- <span class="cstat-no" title="statement not covered" > return params;</span>
2040
- }
2041
- &nbsp;
2042
- //================================================================================
2043
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
2044
- // 自动生成的代码已结束。下面可以手动编写。
2045
- //================================================================================
2046
- &nbsp;
2047
- /**
2048
- * 标识当前删除是否为鉴权方式更新导致的删除。
2049
- * 针对此种删除,删除逻辑已经处理,无需再走 deleteCallNode 逻辑
2050
- */
2051
- @property('Boolean')
2052
- __authDelete: Boolean = false;
2053
- &nbsp;
2054
- // 删除调用接口时且接口无引用,删除接口和数据结构
2055
- <span class="fstat-no" title="function not covered" > async </span>deleteCallNode() {
2056
- <span class="cstat-no" title="statement not covered" > if (this.calleeKey !== '__IDENTIFIER__' &amp;&amp; !this.__authDelete) {</span>
2057
- (<span class="cstat-no" title="statement not covered" >this as any).__deleteCallNodeTimer = setTimeout(<span class="fstat-no" title="function not covered" >async </span>() =&gt; {</span>
2058
- <span class="cstat-no" title="statement not covered" > clearTimeout((this as any).__deleteCallNodeTimer);</span>
2059
- // 计算之前选择的接口的引用次数
2060
- const oldItf: Interface = <span class="cstat-no" title="statement not covered" >this.getCallNode();</span>
2061
- <span class="cstat-no" title="statement not covered" > if (oldItf) {</span>
2062
- let refCount = <span class="cstat-no" title="statement not covered" >0;</span>
2063
- const refs = (<span class="cstat-no" title="statement not covered" >await oldItf.findUsage())</span> as Map&lt;any, any&gt;;
2064
- &nbsp;
2065
- const isOnlyUsedByFronted =
2066
- <span class="cstat-no" title="statement not covered" > refs.size === 1 &amp;&amp; Array.from(refs.keys()).filter(<span class="fstat-no" title="function not covered" >(k</span>ey) =&gt; <span class="cstat-no" title="statement not covered" >key instanceof Frontend)</span>.length &gt; 0;</span>
2067
- const isAuthInterface = <span class="cstat-no" title="statement not covered" >oldItf instanceof AuthInterface;</span>
2068
- // 当仅仅只有前端使用,且该接口是鉴权接口时需要将接口还原为普通接口
2069
- <span class="cstat-no" title="statement not covered" > if (isOnlyUsedByFronted &amp;&amp; isAuthInterface) {</span>
2070
- <span class="cstat-no" title="statement not covered" > this.replaceToInterface(oldItf);</span>
2071
- }
2072
- <span class="cstat-no" title="statement not covered" > refs.forEach(<span class="fstat-no" title="function not covered" >(v</span>al: any) =&gt; {</span>
2073
- const loopFindNode = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>tem: any) =&gt; {</span>
2074
- <span class="cstat-no" title="statement not covered" > if (item.children) {</span>
2075
- <span class="cstat-no" title="statement not covered" > item.children.forEach(<span class="fstat-no" title="function not covered" >(c</span>hild: any) =&gt; <span class="cstat-no" title="statement not covered" >loopFindNode(child))</span>;</span>
2076
- } else {
2077
- <span class="cstat-no" title="statement not covered" > refCount++;</span>
2078
- }
2079
- };
2080
- <span class="cstat-no" title="statement not covered" > loopFindNode(val);</span>
2081
- });
2082
- // 无引用则删除
2083
- <span class="cstat-no" title="statement not covered" > if (!refCount) {</span>
2084
- // 删除旧的接口、接口的数据结构
2085
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', { actionMsg: '删除接口' });</span>
2086
- const parentModule = <span class="cstat-no" title="statement not covered" >oldItf.module || oldItf.connector;</span>
2087
- <span class="cstat-no" title="statement not covered" > if (oldItf.module) {</span>
2088
- const shouldDeleteStructures: Structure[] = <span class="cstat-no" title="statement not covered" >[]</span>
2089
- <span class="cstat-no" title="statement not covered" > oldItf.module.getInterfaceStructureMap().forEach(<span class="fstat-no" title="function not covered" >(i</span>tfs, stru) =&gt; {</span>
2090
- <span class="cstat-no" title="statement not covered" > if (itfs.size === 1 &amp;&amp; itfs.has(oldItf)) {</span>
2091
- <span class="cstat-no" title="statement not covered" > shouldDeleteStructures.push(stru)</span>
2092
- }
2093
- })
2094
- <span class="cstat-no" title="statement not covered" > shouldDeleteStructures.forEach(<span class="fstat-no" title="function not covered" >(s</span>: Structure) =&gt; <span class="cstat-no" title="statement not covered" >s.delete())</span>;</span>
2095
- } else {
2096
- const shouldDeleteStructures = <span class="cstat-no" title="statement not covered" >oldItf.getRefStructures(parentModule.structures);</span>
2097
- <span class="cstat-no" title="statement not covered" > shouldDeleteStructures.forEach(<span class="fstat-no" title="function not covered" >(s</span>: Structure) =&gt; <span class="cstat-no" title="statement not covered" >s.delete())</span>;</span>
2098
- }
2099
- <span class="cstat-no" title="statement not covered" > oldItf.delete();</span>
2100
- <span class="cstat-no" title="statement not covered" > oldItf.afterDelete();</span>
2101
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
2102
- }
2103
- }
2104
- }, 350);
2105
- }
2106
- }
2107
- &nbsp;
2108
- <span class="fstat-no" title="function not covered" > replaceToInterface(</span>oldItf: AuthInterface) {
2109
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', { actionMsg: '调用接口恢复为非鉴权' });</span>
2110
- const { name, originLogicName, path, method, description, params, returns, protocol, protocolParams } = <span class="cstat-no" title="statement not covered" >oldItf;</span>
2111
- const newInterface = <span class="cstat-no" title="statement not covered" >new Interface({</span>
2112
- name,
2113
- originLogicName,
2114
- path,
2115
- method,
2116
- description,
2117
- params,
2118
- returns,
2119
- protocol,
2120
- protocolParams,
2121
- });
2122
- const m = <span class="cstat-no" title="statement not covered" >oldItf.parentNode as Module;</span>
2123
- const interfaceIndex = <span class="cstat-no" title="statement not covered" >m?.interfaces?.findIndex?.(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === oldItf.name)</span>;</span>
2124
- <span class="cstat-no" title="statement not covered" > oldItf.delete();</span>
2125
- <span class="cstat-no" title="statement not covered" > m.insertInterfaceAt(newInterface, interfaceIndex);</span>
2126
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
2127
- }
2128
- &nbsp;
2129
- get tsCalleeNamespace() {
2130
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.calleeNamespace) {
2131
- let tsCalleeNamespace = this.calleeNamespace;
2132
- tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, <span class="fstat-no" title="function not covered" >(m</span>) =&gt; <span class="cstat-no" title="statement not covered" >m.replace('.', '.$'))</span>;
2133
- tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
2134
- return tsCalleeNamespace;
2135
- }
2136
- <span class="cstat-no" title="statement not covered" > return '';</span>
2137
- }
2138
- &nbsp;
2139
- <span class="fstat-no" title="function not covered" > toVue(</span>options?: ElementToVueOptions): string {
2140
- let code = <span class="cstat-no" title="statement not covered" >this.calleeName;</span>
2141
- <span class="cstat-no" title="statement not covered" > code += '(';</span>
2142
- <span class="cstat-no" title="statement not covered" > this.arguments?.forEach(<span class="fstat-no" title="function not covered" >(a</span>rg, index) =&gt; {</span>
2143
- <span class="cstat-no" title="statement not covered" > code += arg?.toVue(options);</span>
2144
- <span class="cstat-no" title="statement not covered" > if (index !== this.arguments?.length - 1) <span class="cstat-no" title="statement not covered" >code += ', ';</span></span>
2145
- });
2146
- <span class="cstat-no" title="statement not covered" > code += ')';</span>
2147
- <span class="cstat-no" title="statement not covered" > return code;</span>
2148
- }
2149
- &nbsp;
2150
- <span class="fstat-no" title="function not covered" > toUI(</span>state?: TranslatorState): string {
2151
- let code = <span class="cstat-no" title="statement not covered" >this.calleeName;</span>
2152
- <span class="cstat-no" title="statement not covered" > code += '(';</span>
2153
- <span class="cstat-no" title="statement not covered" > this.arguments?.forEach(<span class="fstat-no" title="function not covered" >(a</span>rg, index) =&gt; {</span>
2154
- <span class="cstat-no" title="statement not covered" > code += arg?.toUI();</span>
2155
- <span class="cstat-no" title="statement not covered" > if (index !== this.arguments?.length - 1) <span class="cstat-no" title="statement not covered" >code += ', ';</span></span>
2156
- });
2157
- <span class="cstat-no" title="statement not covered" > code += ')';</span>
2158
- <span class="cstat-no" title="statement not covered" > return code;</span>
2159
- }
2160
- &nbsp;
2161
- toJS(state?: TranslatorState): string {
2162
- const { calleewholeKey, app, completeArguments } = this;
2163
- const [, _name, , _interfaceName] = calleewholeKey.split('.');
2164
- let _module: Module | Connector;
2165
- // 由于自定义连接器的引入,目前在 集成中心下也存在着一部分接口
2166
- // 因此,需要额外判断,如果是自定义连接器需要拿 app.dependencies 中的接口或者 app.integration 中connector下面的接口
2167
- const isCustomConnector = this.getAncestor('Connector');
2168
- const isInIntegration = this.getAncestor('Integration');
2169
- <span class="missing-if-branch" title="if path not taken" >I</span>if (isCustomConnector &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >isInIntegration)</span> {
2170
- <span class="cstat-no" title="statement not covered" > _module = app?.integration?.connectors?.find?.(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _name)</span>;</span>
2171
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (isCustomConnector &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!isInIntegration)</span> {
2172
- <span class="cstat-no" title="statement not covered" > _module = app?.dependencies?.find?.(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _name)</span>;</span>
2173
- } else {
2174
- // default
2175
- _module = app?.interfaceDependencies?.find?.((item) =&gt; item.name === _name);
2176
- }
2177
- const _interface = (_module as Module)?.interfaces?.find?.((item) =&gt; item.name === _interfaceName);
2178
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!_interface) {
2179
- <span class="cstat-no" title="statement not covered" > if (!this.calleeNamespace || !this.calleeName) <span class="cstat-no" title="statement not covered" >throw new Error('调用接口为空');</span></span>
2180
- <span class="cstat-no" title="statement not covered" > throw new Error(`${_name}下的${_interfaceName}接口未找到`);</span>
2181
- }
2182
- let isSimpleBody = false; // 兼容body只有基本类型的
2183
- const _params = _interface.params;
2184
- const _queries = _params.filter((item) =&gt; item.in === 'query').map((item) =&gt; item.name);
2185
- const _headers = _params.filter((item) =&gt; item.in === 'header').map((item) =&gt; item.name);
2186
- const _body = _params
2187
- .filter((item) =&gt; item.in === 'body')
2188
- .map((item) =&gt; {
2189
- if (item.typeAnnotation.typeKind === 'primitive') {
2190
- isSimpleBody = true;
2191
- }
2192
- return item.name;
2193
- });
2194
- const _paths = _params.filter((item) =&gt; item.in === 'path').map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name)</span>;
2195
- &nbsp;
2196
- /** 填充参数信息 */
2197
- const setArgumentCode = (args: Argument[], keys: string[], code: string, useKeyWord: boolean, useRest: boolean) =&gt; {
2198
- const filledArgs = args
2199
- // 维持原样,暂时不过滤没有填入值的参数
2200
- // .filter((arg) =&gt; Boolean(arg?.expression))
2201
- .filter((arg) =&gt; keys.includes(arg.keyword));
2202
- &nbsp;
2203
- filledArgs.forEach((arg, index) =&gt; {
2204
- if (useRest) {
2205
- code += ` ...${arg?.toJS(shiftState(state, code))}`;
2206
- } else if (useKeyWord) {
2207
- code += `\n'${arg?.keyword}': ${arg?.toJS(shiftState(state, code))}`;
2208
- } else {
2209
- code += ` ${arg?.toJS(shiftState(state, code))}`;
2210
- }
2211
- &nbsp;
2212
- if (index !== args.length - 1) {
2213
- code += ', ';
2214
- }
2215
- });
2216
- &nbsp;
2217
- <span class="missing-if-branch" title="if path not taken" >I</span>if (filledArgs.length === 0 &amp;&amp; !useKeyWord &amp;&amp; !useRest) {
2218
- <span class="cstat-no" title="statement not covered" > code += 'undefined';</span>
2219
- }
2220
- &nbsp;
2221
- return code;
2222
- };
2223
- &nbsp;
2224
- let code = `await this.$services['_custom']['${this.calleeNamespace}.${this.calleeName}']`;
2225
- &nbsp;
2226
- code += `({ config: {\ndownload: false,\n },\nquery: {`;
2227
- code = setArgumentCode(completeArguments, _queries, code, true, false);
2228
- code += `}, path: {`;
2229
- code = setArgumentCode(completeArguments, _paths, code, true, false);
2230
- code += `}, headers: {`;
2231
- code = setArgumentCode(completeArguments, _headers, code, true, false);
2232
- code += `},\n`;
2233
- &nbsp;
2234
- if (isSimpleBody) {
2235
- code += `body: `;
2236
- code = setArgumentCode(completeArguments, _body, code, false, false);
2237
- } else {
2238
- code += `body: {`;
2239
- code = setArgumentCode(completeArguments, _body, code, false, true);
2240
- code += '}';
2241
- }
2242
- &nbsp;
2243
- code += '\n})';
2244
- const typeAnnotation = (this as any).typeAnnotation || this.__TypeAnnotation;
2245
- const needGenInitFromSchema = typeAnnotation &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!['primitive', 'union'].includes(typeAnnotation.typeKind);</span>
2246
- <span class="missing-if-branch" title="if path not taken" >I</span>if (needGenInitFromSchema) {
2247
- <span class="cstat-no" title="statement not covered" > code = `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', ${code})`;</span>
2248
- }
2249
- return code;
2250
- }
2251
- &nbsp;
2252
- @withSourceMap()
2253
- toEmbeddedTS(state = createCompilerState()): string {
2254
- const { completeArguments, parentNode, parentKey, tsCalleeKey } = this;
2255
- &nbsp;
2256
- let code = `${tsCalleeKey}(`;
2257
- &nbsp;
2258
- if (completeArguments?.length) {
2259
- code += '{';
2260
- completeArguments?.forEach((arg, index) =&gt; {
2261
- code += arg?.toEmbeddedTS(shiftState(state, code), arg.paramRequired, true);
2262
- if (index !== this.arguments?.length - 1) code += ', ';
2263
- });
2264
- code += '}';
2265
- }
2266
- code += ')';
2267
- <span class="missing-if-branch" title="else path not taken" >E</span>if (
2268
- parentNode.concept !== 'Argument' &amp;&amp;
2269
- parentKey !== 'test' &amp;&amp;
2270
- parentKey !== 'patterns' &amp;&amp;
2271
- parentKey !== 'returnExpression' &amp;&amp;
2272
- parentNode.concept !== 'Assignment' &amp;&amp;
2273
- parentNode.concept !== 'ForEachStatement' &amp;&amp;
2274
- parentNode.concept !== 'SelectMembers' &amp;&amp;
2275
- parentNode.concept !== 'UnaryExpression' &amp;&amp;
2276
- parentNode.concept !== 'BinaryExpression' &amp;&amp;
2277
- parentNode.concept !== 'MemberExpression' &amp;&amp;
2278
- parentNode.concept !== 'StringInterpolation' &amp;&amp;
2279
- !['NewMap', 'NewList'].includes(parentNode.concept)
2280
- ) {
2281
- code += ';';
2282
- }
2283
- code += '\n';
2284
- return code;
2285
- }
2286
- &nbsp;
2287
- @withSourceMap()
2288
- <span class="fstat-no" title="function not covered" > toNaturalTS(</span>state = <span class="branch-0 cbranch-no" title="branch not covered" >createCompilerState())</span>: string {
2289
- const { completeArguments, parentNode, parentKey, tsCalleeKey } = <span class="cstat-no" title="statement not covered" >this;</span>
2290
- &nbsp;
2291
- let code = <span class="cstat-no" title="statement not covered" >`${tsCalleeKey}(`;</span>
2292
- &nbsp;
2293
- <span class="cstat-no" title="statement not covered" > if (completeArguments?.length) {</span>
2294
- <span class="cstat-no" title="statement not covered" > code += '{';</span>
2295
- <span class="cstat-no" title="statement not covered" > completeArguments?.forEach(<span class="fstat-no" title="function not covered" >(a</span>rg, index) =&gt; {</span>
2296
- <span class="cstat-no" title="statement not covered" > code += arg?.toNaturalTS(shiftState(state, code), arg.paramRequired, true);</span>
2297
- <span class="cstat-no" title="statement not covered" > if (index !== this.arguments?.length - 1) <span class="cstat-no" title="statement not covered" >code += ', ';</span></span>
2298
- });
2299
- <span class="cstat-no" title="statement not covered" > code += '}';</span>
2300
- }
2301
- <span class="cstat-no" title="statement not covered" > code += ')';</span>
2302
- <span class="cstat-no" title="statement not covered" > if (</span>
2303
- parentNode.concept !== 'Argument' &amp;&amp;
2304
- parentKey !== 'test' &amp;&amp;
2305
- parentKey !== 'patterns' &amp;&amp;
2306
- parentKey !== 'returnExpression' &amp;&amp;
2307
- parentNode.concept !== 'Assignment' &amp;&amp;
2308
- parentNode.concept !== 'ForEachStatement' &amp;&amp;
2309
- parentNode.concept !== 'SelectMembers' &amp;&amp;
2310
- parentNode.concept !== 'UnaryExpression' &amp;&amp;
2311
- parentNode.concept !== 'BinaryExpression' &amp;&amp;
2312
- parentNode.concept !== 'MemberExpression' &amp;&amp;
2313
- parentNode.concept !== 'StringInterpolation' &amp;&amp;
2314
- !['NewMap', 'NewList'].includes(parentNode.concept)
2315
- ) {
2316
- <span class="cstat-no" title="statement not covered" > code += ';';</span>
2317
- }
2318
- <span class="cstat-no" title="statement not covered" > code += '\n';</span>
2319
- <span class="cstat-no" title="statement not covered" > return code;</span>
2320
- }
2321
- &nbsp;
2322
- <span class="fstat-no" title="function not covered" > toBrief(</span>): string {
2323
- <span class="cstat-no" title="statement not covered" > return this.arguments.map(<span class="fstat-no" title="function not covered" >(a</span>) =&gt; <span class="cstat-no" title="statement not covered" >a.toBrief())</span>.join('&lt;br /&gt;');</span>
2324
- }
2325
- &nbsp;
2326
- <span class="fstat-no" title="function not covered" > get c</span>alleeKey(): string {
2327
- const { tsCalleeNamespace } = <span class="cstat-no" title="statement not covered" >this;</span>
2328
- const { calleeName } = <span class="cstat-no" title="statement not covered" >this;</span>
2329
- <span class="cstat-no" title="statement not covered" > return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';</span>
2330
- }
2331
- &nbsp;
2332
- // 用于logic回填
2333
- get calleewholeKey(): string {
2334
- return `${this.calleeNamespace}.${this.calleeName}`;
2335
- }
2336
- &nbsp;
2337
- get tsCalleeName(): string {
2338
- const excludeds = [
2339
- 'abstract',
2340
- 'arguments',
2341
- 'await',
2342
- 'boolean',
2343
- 'break',
2344
- 'byte',
2345
- 'case',
2346
- 'catch',
2347
- 'char',
2348
- 'class',
2349
- 'const',
2350
- 'continue',
2351
- 'debugger',
2352
- 'default',
2353
- 'delete',
2354
- 'do',
2355
- 'double',
2356
- 'decimal',
2357
- 'else',
2358
- 'enum',
2359
- 'eval',
2360
- 'export',
2361
- 'extends',
2362
- 'false',
2363
- 'final',
2364
- 'finally',
2365
- 'float',
2366
- 'for',
2367
- 'function',
2368
- 'goto',
2369
- 'if',
2370
- 'implements',
2371
- 'import',
2372
- 'in',
2373
- 'instanceof',
2374
- 'int',
2375
- 'interface',
2376
- 'let',
2377
- 'long',
2378
- 'native',
2379
- 'new',
2380
- 'null',
2381
- 'package',
2382
- 'private',
2383
- 'protected',
2384
- 'public',
2385
- 'return',
2386
- 'short',
2387
- 'static',
2388
- 'super',
2389
- 'switch',
2390
- 'synchronized',
2391
- 'this',
2392
- 'throw',
2393
- 'throws',
2394
- 'transient',
2395
- 'true',
2396
- 'try',
2397
- 'typeof',
2398
- 'var',
2399
- 'void',
2400
- 'volatile',
2401
- 'while',
2402
- 'with',
2403
- 'yield,as',
2404
- 'any',
2405
- 'number',
2406
- 'string',
2407
- 'get',
2408
- 'type',
2409
- 'typeof',
2410
- 'instanceof',
2411
- 'require',
2412
- ];
2413
- <span class="missing-if-branch" title="if path not taken" >I</span>if (excludeds.includes(this.calleeName)) {
2414
- <span class="cstat-no" title="statement not covered" > return `_${this.calleeName}`;</span>
2415
- }
2416
- return this.calleeName;
2417
- }
2418
- &nbsp;
2419
- get tsCalleeKey(): string {
2420
- const { tsCalleeNamespace } = this;
2421
- const calleeName = this.tsCalleeName;
2422
- return calleeName ? `${tsCalleeNamespace}.${calleeName}` : <span class="branch-1 cbranch-no" title="branch not covered" >'__IDENTIFIER__';</span>
2423
- }
2424
- &nbsp;
2425
- <span class="fstat-no" title="function not covered" > get c</span>alleeDefaultKey(): string {
2426
- <span class="cstat-no" title="statement not covered" > return `${this.calleeNamespace}.${this.calleeName}`;</span>
2427
- }
2428
- &nbsp;
2429
- <span class="fstat-no" title="function not covered" > _setCallee(</span>_interface: Interface) {
2430
- <span class="cstat-no" title="statement not covered" > this.arguments = [];</span>
2431
- <span class="cstat-no" title="statement not covered" > _interface.params.forEach(<span class="fstat-no" title="function not covered" >(p</span>aram) =&gt; {</span>
2432
- <span class="cstat-no" title="statement not covered" > this._addArgument({</span>
2433
- keyword: param.name,
2434
- });
2435
- });
2436
- }
2437
- &nbsp;
2438
- <span class="fstat-no" title="function not covered" > setCallee(</span>_interface: Interface) {
2439
- const calleeNamespace = <span class="cstat-no" title="statement not covered" >_interface.getNamespace();</span>
2440
- const calleeName = <span class="cstat-no" title="statement not covered" >_interface.name;</span>
2441
- const params = <span class="cstat-no" title="statement not covered" >_interface.params.map(<span class="fstat-no" title="function not covered" >(p</span>aram) =&gt; {</span>
2442
- const oldArgument = <span class="cstat-no" title="statement not covered" >this.arguments.find(<span class="fstat-no" title="function not covered" >(n</span>ode) =&gt; <span class="cstat-no" title="statement not covered" >node.keyword === param.name)</span></span>
2443
- <span class="cstat-no" title="statement not covered" > return Argument.from({</span>
2444
- keyword: param.name,
2445
- expression: oldArgument ? oldArgument.expression : undefined
2446
- }, this, 'arguments');
2447
- });
2448
- const oldArguments = <span class="cstat-no" title="statement not covered" >this.arguments.reduce(<span class="fstat-no" title="function not covered" >(r</span>es, argumentNode) =&gt; {</span>
2449
- const targetParam = <span class="cstat-no" title="statement not covered" >_interface.params.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === argumentNode.keyword)</span></span>
2450
- <span class="cstat-no" title="statement not covered" > if (!targetParam) {</span>
2451
- <span class="cstat-no" title="statement not covered" > res.push(Argument.from({</span>
2452
- keyword: argumentNode.keyword,
2453
- expression: argumentNode ? argumentNode.expression : undefined
2454
- }, this, 'arguments'))
2455
- }
2456
- <span class="cstat-no" title="statement not covered" > return res</span>
2457
- }, [])
2458
- <span class="cstat-no" title="statement not covered" > params.push(...oldArguments)</span>
2459
- &nbsp;
2460
- <span class="cstat-no" title="statement not covered" > if (this.app) {</span>
2461
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', {</span>
2462
- actionMsg: `切换调用逻辑`,
2463
- });
2464
- const { parentNode } = <span class="cstat-no" title="statement not covered" >this;</span>
2465
- <span class="cstat-no" title="statement not covered" > this.update({</span>
2466
- calleeNamespace,
2467
- calleeName,
2468
- arguments: params,
2469
- folded: false,
2470
- });
2471
- <span class="cstat-no" title="statement not covered" > if (parentNode.concept === 'MemberExpression') {</span>
2472
- const topNode = (<span class="cstat-no" title="statement not covered" >parentNode as MemberExpression).firstMemberExpressionNode();</span>
2473
- <span class="cstat-no" title="statement not covered" > topNode.replaceNode(this);</span>
2474
- }
2475
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
2476
- } else {
2477
- <span class="cstat-no" title="statement not covered" > this.update({</span>
2478
- calleeNamespace,
2479
- calleeName,
2480
- arguments: params,
2481
- folded: false,
2482
- });
2483
- }
2484
- }
2485
- &nbsp;
2486
- // 通过内容过去节点
2487
- getCallNode() {
2488
- let node;
2489
- // 如果是其余app下自定义逻辑
2490
- try {
2491
- node = getNodeByNodeCallee(this.app, this.calleewholeKey, <span class="fstat-no" title="function not covered" >(k</span>ey: any, tempPoint: any) =&gt; {
2492
- // 处理 NASL 中未定义的假的节点
2493
- <span class="cstat-no" title="statement not covered" > if (key === tempPoint.name) {</span>
2494
- <span class="cstat-no" title="statement not covered" > return {</span>
2495
- tempPoint,
2496
- state: 1,
2497
- };
2498
- }
2499
- const t = <span class="cstat-no" title="statement not covered" >tempPoint[key];</span>
2500
- <span class="cstat-no" title="statement not covered" > return {</span>
2501
- tempPoint: t,
2502
- state: Array.isArray(t) ? 2 : 1,
2503
- };
2504
- });
2505
- } catch (err) {}
2506
- return node;
2507
- }
2508
- &nbsp;
2509
- get completeArguments() {
2510
- const node = this.getCallNode();
2511
- let logicParam: InterfaceParam[] = [];
2512
- const Arguments: Argument[] = [];
2513
- <span class="missing-if-branch" title="else path not taken" >E</span>if (node?.params) {
2514
- logicParam = node.params;
2515
- }
2516
- if (this.arguments?.length) {
2517
- this.arguments.forEach((arg) =&gt; {
2518
- const idx = logicParam.findIndex((params) =&gt; arg.keyword === params.name);
2519
- const param = logicParam[idx];
2520
- &nbsp;
2521
- arg.paramRequired = param?.required;
2522
- arg.paramTypeAnnotation = undefined;
2523
- arg.paramDefaultValue = undefined;
2524
- // 取到是不是必填放入参数中
2525
- if (param &amp;&amp; !arg.expression) {
2526
- // 非必填时 才会有默认值
2527
- // 因为之前接口这里的必填非必填,一直是有值的,而且不允许修改
2528
- arg.paramTypeAnnotation = param.typeAnnotation;
2529
- arg.paramDefaultValue = param.defaultValue;
2530
- }
2531
- Arguments.push(arg);
2532
- });
2533
- }
2534
- return Arguments;
2535
- }
2536
- &nbsp;
2537
- /**
2538
- * 反向查找对应 module 和 interface
2539
- */
2540
- <span class="fstat-no" title="function not covered" > getModuleInterface(</span>) {
2541
- <span class="cstat-no" title="statement not covered" > if (!this.calleeNamespace || !this.calleeName)</span>
2542
- <span class="cstat-no" title="statement not covered" > return {</span>
2543
- _module: null,
2544
- _interface: null,
2545
- };
2546
- const _arr = <span class="cstat-no" title="statement not covered" >this.calleewholeKey.split('.');</span>
2547
- const _name = <span class="cstat-no" title="statement not covered" >_arr[1];</span>
2548
- const _interfaceName = <span class="cstat-no" title="statement not covered" >_arr[3];</span>
2549
- let _module: Module | Connector;
2550
- // 由于自定义连接器的引入,目前在 集成中心下也存在着一部分接口
2551
- // 因此,需要额外判断,如果是自定义连接器需要拿 app.dependencies 中的接口或者 app.integration 中connector下面的接口
2552
- const isCustomConnector = <span class="cstat-no" title="statement not covered" >this.getAncestor('Connector');</span>
2553
- const isInIntegration = <span class="cstat-no" title="statement not covered" >this.getAncestor('Integration');</span>
2554
- <span class="cstat-no" title="statement not covered" > if (isCustomConnector &amp;&amp; isInIntegration) {</span>
2555
- <span class="cstat-no" title="statement not covered" > _module = this.app?.integration?.connectors?.find?.(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _name)</span>;</span>
2556
- } else <span class="cstat-no" title="statement not covered" >if (isCustomConnector &amp;&amp; !isInIntegration) {</span>
2557
- <span class="cstat-no" title="statement not covered" > _module = this.app?.dependencies?.find?.(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _name)</span>;</span>
2558
- } else {
2559
- // default
2560
- <span class="cstat-no" title="statement not covered" > _module = this.app.interfaceDependencies.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _name)</span>;</span>
2561
- }
2562
- const _interface = <span class="cstat-no" title="statement not covered" >_module?.interfaces.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _interfaceName)</span>;</span>
2563
- <span class="cstat-no" title="statement not covered" > return {</span>
2564
- _module,
2565
- _interface,
2566
- };
2567
- }
2568
- &nbsp;
2569
- // 导入接口
2570
- <span class="fstat-no" title="function not covered" > async </span>createOrUpdateInterface({ moduleData, selectedModule }: { moduleData: Partial&lt;Module&gt;; selectedModule: any }) {
2571
- const moduleName = <span class="cstat-no" title="statement not covered" >moduleData.name;</span>
2572
- const itfData = <span class="cstat-no" title="statement not covered" >moduleData.interfaces[0];</span>
2573
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', { actionMsg: '调用接口' });</span>
2574
- &nbsp;
2575
- let module = <span class="cstat-no" title="statement not covered" >this.app.interfaceDependencies.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === moduleName)</span>;</span>
2576
- <span class="cstat-no" title="statement not covered" > if (!module) {</span>
2577
- <span class="cstat-no" title="statement not covered" > module = this.app.addModuleInInterfaceDependencies({</span>
2578
- name: moduleName,
2579
- configuration: moduleData.configuration,
2580
- type: 'interface',
2581
- isAdd: true,
2582
- });
2583
- }
2584
- // 将依赖库的config添加到APP的config中
2585
- <span class="cstat-no" title="statement not covered" > if (selectedModule.appType === 'DUBBO' &amp;&amp; moduleData.configuration &amp;&amp; moduleData.configuration.groups) {</span>
2586
- const configGroupData = <span class="cstat-no" title="statement not covered" >moduleData.configuration.groups[0];</span>
2587
- <span class="cstat-no" title="statement not covered" > if (configGroupData) {</span>
2588
- const configGroup = <span class="cstat-no" title="statement not covered" >this.app.configuration.getGroup(configGroupData.name);</span>
2589
- <span class="cstat-no" title="statement not covered" > if (configGroup) {</span>
2590
- const propertyData = <span class="cstat-no" title="statement not covered" >configGroupData.properties[0];</span>
2591
- <span class="cstat-no" title="statement not covered" > if (propertyData) {</span>
2592
- const property = <span class="cstat-no" title="statement not covered" >configGroup.getProperty(propertyData.name);</span>
2593
- // 已导入的不覆盖
2594
- <span class="cstat-no" title="statement not covered" > if (!property) {</span>
2595
- <span class="cstat-no" title="statement not covered" > configGroup.addConfigProperty(propertyData);</span>
2596
- }
2597
- }
2598
- }
2599
- }
2600
- }
2601
- &nbsp;
2602
- let targetItf = <span class="cstat-no" title="statement not covered" >module.interfaces.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === itfData.name)</span>;</span>
2603
- // 根据 targetItf 是否是AuthInterface 来确定生成什么类型的接口
2604
- let newItf;
2605
- <span class="cstat-no" title="statement not covered" > if (targetItf &amp;&amp; targetItf.concept === 'AuthInterface') {</span>
2606
- <span class="cstat-no" title="statement not covered" > newItf = new AuthInterface({</span>
2607
- ...itfData,
2608
- authLogic: (targetItf as AuthInterface).authLogic,
2609
- concept: targetItf.concept,
2610
- });
2611
- } else {
2612
- <span class="cstat-no" title="statement not covered" > newItf = new Interface(itfData);</span>
2613
- }
2614
- <span class="cstat-no" title="statement not covered" > if (targetItf) {</span>
2615
- // 更新已有接口
2616
- <span class="cstat-no" title="statement not covered" > targetItf.update(newItf.toJSON());</span>
2617
- } else {
2618
- <span class="cstat-no" title="statement not covered" > targetItf = newItf;</span>
2619
- <span class="cstat-no" title="statement not covered" > module.addInterface(targetItf);</span>
2620
- }
2621
- &nbsp;
2622
- // 计算之前选择的接口的引用次数
2623
- let oldItf: Interface;
2624
- <span class="cstat-no" title="statement not covered" > if (this.calleeKey !== '__IDENTIFIER__') {</span>
2625
- <span class="cstat-no" title="statement not covered" > oldItf = this.getCallNode();</span>
2626
- <span class="cstat-no" title="statement not covered" > if (oldItf) {</span>
2627
- let refCount = <span class="cstat-no" title="statement not covered" >0;</span>
2628
- let isSelfRef = <span class="cstat-no" title="statement not covered" >false;</span>
2629
- let isSameItf = <span class="cstat-no" title="statement not covered" >false;</span>
2630
- <span class="cstat-no" title="statement not covered" > if (selectedModule.appCode === oldItf.parentNode.name &amp;&amp; newItf.name === oldItf.name) {</span>
2631
- <span class="cstat-no" title="statement not covered" > isSameItf = true;</span>
2632
- }
2633
- const refs = <span class="cstat-no" title="statement not covered" >await oldItf.findUsage();</span>
2634
- <span class="cstat-no" title="statement not covered" > refs.forEach(<span class="fstat-no" title="function not covered" >(v</span>al: any) =&gt; {</span>
2635
- const loopFindNode = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>tem: any) =&gt; {</span>
2636
- <span class="cstat-no" title="statement not covered" > if (item.children) {</span>
2637
- <span class="cstat-no" title="statement not covered" > item.children.forEach(<span class="fstat-no" title="function not covered" >(i</span>: any) =&gt; <span class="cstat-no" title="statement not covered" >loopFindNode(i))</span>;</span>
2638
- } else {
2639
- <span class="cstat-no" title="statement not covered" > refCount++;</span>
2640
- <span class="cstat-no" title="statement not covered" > if (item.node === this) {</span>
2641
- <span class="cstat-no" title="statement not covered" > isSelfRef = true;</span>
2642
- } else <span class="cstat-no" title="statement not covered" >if (isSameItf) {</span>
2643
- <span class="cstat-no" title="statement not covered" > item.node.setCallee?.(targetItf);</span>
2644
- }
2645
- }
2646
- };
2647
- <span class="cstat-no" title="statement not covered" > loopFindNode(val);</span>
2648
- });
2649
- &nbsp;
2650
- // 之前选的接口不存在时则删除
2651
- // if (selectedModule.appCode === oldItf.parentNode.name &amp;&amp; selectedModule.apis &amp;&amp; !selectedModule.apis.find((api) =&gt; api.apiCode === oldItf.name)) {
2652
- // oldItf.delete();
2653
- // } else {
2654
- // 仅被自己引用则删除
2655
- <span class="cstat-no" title="statement not covered" > if (!isSameItf &amp;&amp; isSelfRef &amp;&amp; refCount === 1) {</span>
2656
- // 删除旧的数据结构
2657
- const shouldDeleteStructures: Structure[] = <span class="cstat-no" title="statement not covered" >[]</span>
2658
- const structureMap = <span class="cstat-no" title="statement not covered" >oldItf.module.getInterfaceStructureMap()</span>
2659
- <span class="cstat-no" title="statement not covered" > structureMap.forEach(<span class="fstat-no" title="function not covered" >(i</span>tfs, stru) =&gt; {</span>
2660
- <span class="cstat-no" title="statement not covered" > if (itfs.size === 1 &amp;&amp; itfs.has(oldItf)) {</span>
2661
- <span class="cstat-no" title="statement not covered" > shouldDeleteStructures.push(stru)</span>
2662
- }
2663
- })
2664
- <span class="cstat-no" title="statement not covered" > shouldDeleteStructures.forEach(<span class="fstat-no" title="function not covered" >(s</span>: Structure) =&gt; <span class="cstat-no" title="statement not covered" >s.delete())</span>;</span>
2665
- <span class="cstat-no" title="statement not covered" > oldItf.delete();</span>
2666
- <span class="cstat-no" title="statement not covered" > oldItf.afterDelete();</span>
2667
- }
2668
- // }
2669
- }
2670
- }
2671
- &nbsp;
2672
- <span class="cstat-no" title="statement not covered" > this.setCallee(targetItf);</span>
2673
- &nbsp;
2674
- const oldStructuresSet = <span class="cstat-no" title="statement not covered" >targetItf.getRefStructures(targetItf.module.structures);</span>
2675
- // 递归找出 response/request 的 Body/Returns 引用的数据结构
2676
- const newStructuresSet = <span class="cstat-no" title="statement not covered" >targetItf.getRefStructures(moduleData.structures);</span>
2677
- // 新导入的数据结构在系统中已存在时 提前进行删除
2678
- <span class="cstat-no" title="statement not covered" > newStructuresSet.forEach(<span class="fstat-no" title="function not covered" >stru </span>=&gt; {</span>
2679
- const target = <span class="cstat-no" title="statement not covered" >targetItf.module.structures.find(<span class="fstat-no" title="function not covered" >node </span>=&gt; <span class="cstat-no" title="statement not covered" >node.name === stru.name)</span></span>
2680
- <span class="cstat-no" title="statement not covered" > if (target) {</span>
2681
- <span class="cstat-no" title="statement not covered" > oldStructuresSet.add(target)</span>
2682
- }
2683
- })
2684
- // 删除旧的数据结构
2685
- <span class="cstat-no" title="statement not covered" > oldStructuresSet.forEach(<span class="fstat-no" title="function not covered" >(s</span>) =&gt; <span class="cstat-no" title="statement not covered" >s.delete())</span>;</span>
2686
- <span class="cstat-no" title="statement not covered" > newStructuresSet.forEach(<span class="fstat-no" title="function not covered" >(s</span>) =&gt; <span class="cstat-no" title="statement not covered" >module.addStructure(Structure.from(s)))</span>;</span>
2687
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
2688
- }
2689
- //================================================================================
2690
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
2691
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
2692
- //================================================================================
2693
- }
2694
- &nbsp;
2695
- export default CallInterface;
2696
- //================================================================================
2697
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
2698
- // 自动生成的代码已结束。下面可以手动编写。
2699
- //================================================================================
2700
- &nbsp;</pre></td></tr></table></pre>
2701
-
2702
- <div class='push'></div><!-- for sticky footer -->
2703
- </div><!-- /wrapper -->
2704
- <div class='footer quiet pad2 space-top1 center small'>
2705
- Code coverage generated by
2706
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2707
- at 2023-10-18T11:36:07.885Z
2708
- </div>
2709
- <script src="../../prettify.js"></script>
2710
- <script>
2711
- window.onload = function () {
2712
- prettyPrint();
2713
- };
2714
- </script>
2715
- <script src="../../sorter.js"></script>
2716
- <script src="../../block-navigation.js"></script>
2717
- </body>
2718
- </html>
2719
-