@auto-engineer/pipeline 0.20.0 → 0.21.0

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 (206) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +4 -4
  3. package/.turbo/turbo-type-check.log +1 -1
  4. package/CHANGELOG.md +12 -0
  5. package/dist/tsconfig.tsbuildinfo +1 -1
  6. package/package.json +3 -3
  7. package/coverage/base.css +0 -224
  8. package/coverage/block-navigation.js +0 -87
  9. package/coverage/builder/define.ts.html +0 -2224
  10. package/coverage/builder/index.html +0 -116
  11. package/coverage/config/index.html +0 -116
  12. package/coverage/config/pipeline-config.ts.html +0 -181
  13. package/coverage/core/descriptors.ts.html +0 -397
  14. package/coverage/core/index.html +0 -131
  15. package/coverage/core/types.ts.html +0 -133
  16. package/coverage/coverage-final.json +0 -33
  17. package/coverage/favicon.png +0 -0
  18. package/coverage/graph/filter-graph.ts.html +0 -418
  19. package/coverage/graph/index.html +0 -131
  20. package/coverage/graph/types.ts.html +0 -172
  21. package/coverage/index.html +0 -266
  22. package/coverage/logging/event-logger.ts.html +0 -235
  23. package/coverage/logging/index.html +0 -116
  24. package/coverage/plugins/handler-adapter.ts.html +0 -148
  25. package/coverage/plugins/index.html +0 -131
  26. package/coverage/plugins/plugin-loader.ts.html +0 -691
  27. package/coverage/prettify.css +0 -1
  28. package/coverage/prettify.js +0 -2
  29. package/coverage/projections/await-tracker-projection.ts.html +0 -289
  30. package/coverage/projections/index.html +0 -221
  31. package/coverage/projections/item-status-projection.ts.html +0 -181
  32. package/coverage/projections/latest-run-projection.ts.html +0 -145
  33. package/coverage/projections/message-log-projection.ts.html +0 -424
  34. package/coverage/projections/node-status-projection.ts.html +0 -184
  35. package/coverage/projections/phased-execution-projection.ts.html +0 -523
  36. package/coverage/projections/settled-instance-projection.ts.html +0 -565
  37. package/coverage/projections/stats-projection.ts.html +0 -163
  38. package/coverage/runtime/await-tracker.ts.html +0 -271
  39. package/coverage/runtime/context.ts.html +0 -124
  40. package/coverage/runtime/event-command-map.ts.html +0 -220
  41. package/coverage/runtime/index.html +0 -191
  42. package/coverage/runtime/phased-executor.ts.html +0 -775
  43. package/coverage/runtime/pipeline-runtime.ts.html +0 -448
  44. package/coverage/runtime/settled-tracker.ts.html +0 -790
  45. package/coverage/server/index.html +0 -131
  46. package/coverage/server/pipeline-server.ts.html +0 -3253
  47. package/coverage/server/sse-manager.ts.html +0 -310
  48. package/coverage/sort-arrow-sprite.png +0 -0
  49. package/coverage/sorter.js +0 -210
  50. package/coverage/store/index.html +0 -146
  51. package/coverage/store/pipeline-event-store.ts.html +0 -553
  52. package/coverage/store/pipeline-read-model.ts.html +0 -754
  53. package/coverage/store/sqlite-pipeline-event-store.ts.html +0 -193
  54. package/coverage/testing/event-capture.ts.html +0 -280
  55. package/coverage/testing/index.html +0 -161
  56. package/coverage/testing/mock-handlers.ts.html +0 -259
  57. package/coverage/testing/snapshot-compare.ts.html +0 -403
  58. package/coverage/testing/snapshot-sanitize.ts.html +0 -136
  59. package/dist/src/builder/define.specs.d.ts +0 -2
  60. package/dist/src/builder/define.specs.d.ts.map +0 -1
  61. package/dist/src/builder/define.specs.js +0 -435
  62. package/dist/src/builder/define.specs.js.map +0 -1
  63. package/dist/src/core/descriptors.specs.d.ts +0 -2
  64. package/dist/src/core/descriptors.specs.d.ts.map +0 -1
  65. package/dist/src/core/descriptors.specs.js +0 -24
  66. package/dist/src/core/descriptors.specs.js.map +0 -1
  67. package/dist/src/core/types.specs.d.ts +0 -2
  68. package/dist/src/core/types.specs.d.ts.map +0 -1
  69. package/dist/src/core/types.specs.js +0 -40
  70. package/dist/src/core/types.specs.js.map +0 -1
  71. package/dist/src/graph/filter-graph.specs.d.ts +0 -2
  72. package/dist/src/graph/filter-graph.specs.d.ts.map +0 -1
  73. package/dist/src/graph/filter-graph.specs.js +0 -204
  74. package/dist/src/graph/filter-graph.specs.js.map +0 -1
  75. package/dist/src/graph/types.specs.d.ts +0 -2
  76. package/dist/src/graph/types.specs.d.ts.map +0 -1
  77. package/dist/src/graph/types.specs.js +0 -148
  78. package/dist/src/graph/types.specs.js.map +0 -1
  79. package/dist/src/logging/event-logger.specs.d.ts +0 -2
  80. package/dist/src/logging/event-logger.specs.d.ts.map +0 -1
  81. package/dist/src/logging/event-logger.specs.js +0 -81
  82. package/dist/src/logging/event-logger.specs.js.map +0 -1
  83. package/dist/src/plugins/handler-adapter.specs.d.ts +0 -2
  84. package/dist/src/plugins/handler-adapter.specs.d.ts.map +0 -1
  85. package/dist/src/plugins/handler-adapter.specs.js +0 -129
  86. package/dist/src/plugins/handler-adapter.specs.js.map +0 -1
  87. package/dist/src/plugins/plugin-loader.specs.d.ts +0 -2
  88. package/dist/src/plugins/plugin-loader.specs.d.ts.map +0 -1
  89. package/dist/src/plugins/plugin-loader.specs.js +0 -246
  90. package/dist/src/plugins/plugin-loader.specs.js.map +0 -1
  91. package/dist/src/projections/item-status-projection.specs.d.ts +0 -2
  92. package/dist/src/projections/item-status-projection.specs.d.ts.map +0 -1
  93. package/dist/src/projections/item-status-projection.specs.js +0 -119
  94. package/dist/src/projections/item-status-projection.specs.js.map +0 -1
  95. package/dist/src/projections/latest-run-projection.specs.d.ts +0 -2
  96. package/dist/src/projections/latest-run-projection.specs.d.ts.map +0 -1
  97. package/dist/src/projections/latest-run-projection.specs.js +0 -33
  98. package/dist/src/projections/latest-run-projection.specs.js.map +0 -1
  99. package/dist/src/projections/message-log-projection.specs.d.ts +0 -2
  100. package/dist/src/projections/message-log-projection.specs.d.ts.map +0 -1
  101. package/dist/src/projections/message-log-projection.specs.js +0 -101
  102. package/dist/src/projections/message-log-projection.specs.js.map +0 -1
  103. package/dist/src/projections/node-status-projection.specs.d.ts +0 -2
  104. package/dist/src/projections/node-status-projection.specs.d.ts.map +0 -1
  105. package/dist/src/projections/node-status-projection.specs.js +0 -116
  106. package/dist/src/projections/node-status-projection.specs.js.map +0 -1
  107. package/dist/src/projections/phased-execution-projection.specs.d.ts +0 -2
  108. package/dist/src/projections/phased-execution-projection.specs.d.ts.map +0 -1
  109. package/dist/src/projections/phased-execution-projection.specs.js +0 -171
  110. package/dist/src/projections/phased-execution-projection.specs.js.map +0 -1
  111. package/dist/src/projections/settled-instance-projection.specs.d.ts +0 -2
  112. package/dist/src/projections/settled-instance-projection.specs.d.ts.map +0 -1
  113. package/dist/src/projections/settled-instance-projection.specs.js +0 -217
  114. package/dist/src/projections/settled-instance-projection.specs.js.map +0 -1
  115. package/dist/src/projections/stats-projection.specs.d.ts +0 -2
  116. package/dist/src/projections/stats-projection.specs.d.ts.map +0 -1
  117. package/dist/src/projections/stats-projection.specs.js +0 -91
  118. package/dist/src/projections/stats-projection.specs.js.map +0 -1
  119. package/dist/src/runtime/await-tracker.specs.d.ts +0 -2
  120. package/dist/src/runtime/await-tracker.specs.d.ts.map +0 -1
  121. package/dist/src/runtime/await-tracker.specs.js +0 -64
  122. package/dist/src/runtime/await-tracker.specs.js.map +0 -1
  123. package/dist/src/runtime/context.specs.d.ts +0 -2
  124. package/dist/src/runtime/context.specs.d.ts.map +0 -1
  125. package/dist/src/runtime/context.specs.js +0 -26
  126. package/dist/src/runtime/context.specs.js.map +0 -1
  127. package/dist/src/runtime/event-command-map.specs.d.ts +0 -2
  128. package/dist/src/runtime/event-command-map.specs.d.ts.map +0 -1
  129. package/dist/src/runtime/event-command-map.specs.js +0 -108
  130. package/dist/src/runtime/event-command-map.specs.js.map +0 -1
  131. package/dist/src/runtime/phased-executor.specs.d.ts +0 -2
  132. package/dist/src/runtime/phased-executor.specs.d.ts.map +0 -1
  133. package/dist/src/runtime/phased-executor.specs.js +0 -418
  134. package/dist/src/runtime/phased-executor.specs.js.map +0 -1
  135. package/dist/src/runtime/pipeline-runtime.specs.d.ts +0 -2
  136. package/dist/src/runtime/pipeline-runtime.specs.d.ts.map +0 -1
  137. package/dist/src/runtime/pipeline-runtime.specs.js +0 -227
  138. package/dist/src/runtime/pipeline-runtime.specs.js.map +0 -1
  139. package/dist/src/runtime/settled-tracker.specs.d.ts +0 -2
  140. package/dist/src/runtime/settled-tracker.specs.d.ts.map +0 -1
  141. package/dist/src/runtime/settled-tracker.specs.js +0 -811
  142. package/dist/src/runtime/settled-tracker.specs.js.map +0 -1
  143. package/dist/src/server/full-orchestration.e2e.specs.d.ts +0 -2
  144. package/dist/src/server/full-orchestration.e2e.specs.d.ts.map +0 -1
  145. package/dist/src/server/full-orchestration.e2e.specs.js +0 -561
  146. package/dist/src/server/full-orchestration.e2e.specs.js.map +0 -1
  147. package/dist/src/server/pipeline-server.e2e.specs.d.ts +0 -2
  148. package/dist/src/server/pipeline-server.e2e.specs.d.ts.map +0 -1
  149. package/dist/src/server/pipeline-server.e2e.specs.js +0 -373
  150. package/dist/src/server/pipeline-server.e2e.specs.js.map +0 -1
  151. package/dist/src/server/pipeline-server.specs.d.ts +0 -2
  152. package/dist/src/server/pipeline-server.specs.d.ts.map +0 -1
  153. package/dist/src/server/pipeline-server.specs.js +0 -1407
  154. package/dist/src/server/pipeline-server.specs.js.map +0 -1
  155. package/dist/src/server/sse-manager.specs.d.ts +0 -2
  156. package/dist/src/server/sse-manager.specs.d.ts.map +0 -1
  157. package/dist/src/server/sse-manager.specs.js +0 -178
  158. package/dist/src/server/sse-manager.specs.js.map +0 -1
  159. package/dist/src/store/pipeline-event-store.specs.d.ts +0 -2
  160. package/dist/src/store/pipeline-event-store.specs.d.ts.map +0 -1
  161. package/dist/src/store/pipeline-event-store.specs.js +0 -287
  162. package/dist/src/store/pipeline-event-store.specs.js.map +0 -1
  163. package/dist/src/store/pipeline-read-model.specs.d.ts +0 -2
  164. package/dist/src/store/pipeline-read-model.specs.d.ts.map +0 -1
  165. package/dist/src/store/pipeline-read-model.specs.js +0 -830
  166. package/dist/src/store/pipeline-read-model.specs.js.map +0 -1
  167. package/dist/src/testing/event-capture.specs.d.ts +0 -2
  168. package/dist/src/testing/event-capture.specs.d.ts.map +0 -1
  169. package/dist/src/testing/event-capture.specs.js +0 -114
  170. package/dist/src/testing/event-capture.specs.js.map +0 -1
  171. package/dist/src/testing/fixtures/kanban-full.pipeline.specs.d.ts +0 -2
  172. package/dist/src/testing/fixtures/kanban-full.pipeline.specs.d.ts.map +0 -1
  173. package/dist/src/testing/fixtures/kanban-full.pipeline.specs.js +0 -263
  174. package/dist/src/testing/fixtures/kanban-full.pipeline.specs.js.map +0 -1
  175. package/dist/src/testing/fixtures/kanban.pipeline.specs.d.ts +0 -2
  176. package/dist/src/testing/fixtures/kanban.pipeline.specs.d.ts.map +0 -1
  177. package/dist/src/testing/fixtures/kanban.pipeline.specs.js +0 -29
  178. package/dist/src/testing/fixtures/kanban.pipeline.specs.js.map +0 -1
  179. package/dist/src/testing/kanban-todo.e2e.specs.d.ts +0 -2
  180. package/dist/src/testing/kanban-todo.e2e.specs.d.ts.map +0 -1
  181. package/dist/src/testing/kanban-todo.e2e.specs.js +0 -160
  182. package/dist/src/testing/kanban-todo.e2e.specs.js.map +0 -1
  183. package/dist/src/testing/mock-handlers.specs.d.ts +0 -2
  184. package/dist/src/testing/mock-handlers.specs.d.ts.map +0 -1
  185. package/dist/src/testing/mock-handlers.specs.js +0 -193
  186. package/dist/src/testing/mock-handlers.specs.js.map +0 -1
  187. package/dist/src/testing/real-execution.e2e.specs.d.ts +0 -2
  188. package/dist/src/testing/real-execution.e2e.specs.d.ts.map +0 -1
  189. package/dist/src/testing/real-execution.e2e.specs.js +0 -140
  190. package/dist/src/testing/real-execution.e2e.specs.js.map +0 -1
  191. package/dist/src/testing/real-plugin.e2e.specs.d.ts +0 -2
  192. package/dist/src/testing/real-plugin.e2e.specs.d.ts.map +0 -1
  193. package/dist/src/testing/real-plugin.e2e.specs.js +0 -65
  194. package/dist/src/testing/real-plugin.e2e.specs.js.map +0 -1
  195. package/dist/src/testing/server-startup.e2e.specs.d.ts +0 -2
  196. package/dist/src/testing/server-startup.e2e.specs.d.ts.map +0 -1
  197. package/dist/src/testing/server-startup.e2e.specs.js +0 -104
  198. package/dist/src/testing/server-startup.e2e.specs.js.map +0 -1
  199. package/dist/src/testing/snapshot-compare.specs.d.ts +0 -2
  200. package/dist/src/testing/snapshot-compare.specs.d.ts.map +0 -1
  201. package/dist/src/testing/snapshot-compare.specs.js +0 -112
  202. package/dist/src/testing/snapshot-compare.specs.js.map +0 -1
  203. package/dist/src/testing/snapshot-sanitize.specs.d.ts +0 -2
  204. package/dist/src/testing/snapshot-sanitize.specs.d.ts.map +0 -1
  205. package/dist/src/testing/snapshot-sanitize.specs.js +0 -104
  206. package/dist/src/testing/snapshot-sanitize.specs.js.map +0 -1
@@ -1,3253 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for server/pipeline-server.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">server</a> pipeline-server.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>792/792</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>220/220</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>58/58</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>792/792</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a>
523
- <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a>
533
- <a name='L468'></a><a href='#L468'>468</a>
534
- <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a>
536
- <a name='L471'></a><a href='#L471'>471</a>
537
- <a name='L472'></a><a href='#L472'>472</a>
538
- <a name='L473'></a><a href='#L473'>473</a>
539
- <a name='L474'></a><a href='#L474'>474</a>
540
- <a name='L475'></a><a href='#L475'>475</a>
541
- <a name='L476'></a><a href='#L476'>476</a>
542
- <a name='L477'></a><a href='#L477'>477</a>
543
- <a name='L478'></a><a href='#L478'>478</a>
544
- <a name='L479'></a><a href='#L479'>479</a>
545
- <a name='L480'></a><a href='#L480'>480</a>
546
- <a name='L481'></a><a href='#L481'>481</a>
547
- <a name='L482'></a><a href='#L482'>482</a>
548
- <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a>
550
- <a name='L485'></a><a href='#L485'>485</a>
551
- <a name='L486'></a><a href='#L486'>486</a>
552
- <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a>
554
- <a name='L489'></a><a href='#L489'>489</a>
555
- <a name='L490'></a><a href='#L490'>490</a>
556
- <a name='L491'></a><a href='#L491'>491</a>
557
- <a name='L492'></a><a href='#L492'>492</a>
558
- <a name='L493'></a><a href='#L493'>493</a>
559
- <a name='L494'></a><a href='#L494'>494</a>
560
- <a name='L495'></a><a href='#L495'>495</a>
561
- <a name='L496'></a><a href='#L496'>496</a>
562
- <a name='L497'></a><a href='#L497'>497</a>
563
- <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a>
565
- <a name='L500'></a><a href='#L500'>500</a>
566
- <a name='L501'></a><a href='#L501'>501</a>
567
- <a name='L502'></a><a href='#L502'>502</a>
568
- <a name='L503'></a><a href='#L503'>503</a>
569
- <a name='L504'></a><a href='#L504'>504</a>
570
- <a name='L505'></a><a href='#L505'>505</a>
571
- <a name='L506'></a><a href='#L506'>506</a>
572
- <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a>
574
- <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a>
587
- <a name='L522'></a><a href='#L522'>522</a>
588
- <a name='L523'></a><a href='#L523'>523</a>
589
- <a name='L524'></a><a href='#L524'>524</a>
590
- <a name='L525'></a><a href='#L525'>525</a>
591
- <a name='L526'></a><a href='#L526'>526</a>
592
- <a name='L527'></a><a href='#L527'>527</a>
593
- <a name='L528'></a><a href='#L528'>528</a>
594
- <a name='L529'></a><a href='#L529'>529</a>
595
- <a name='L530'></a><a href='#L530'>530</a>
596
- <a name='L531'></a><a href='#L531'>531</a>
597
- <a name='L532'></a><a href='#L532'>532</a>
598
- <a name='L533'></a><a href='#L533'>533</a>
599
- <a name='L534'></a><a href='#L534'>534</a>
600
- <a name='L535'></a><a href='#L535'>535</a>
601
- <a name='L536'></a><a href='#L536'>536</a>
602
- <a name='L537'></a><a href='#L537'>537</a>
603
- <a name='L538'></a><a href='#L538'>538</a>
604
- <a name='L539'></a><a href='#L539'>539</a>
605
- <a name='L540'></a><a href='#L540'>540</a>
606
- <a name='L541'></a><a href='#L541'>541</a>
607
- <a name='L542'></a><a href='#L542'>542</a>
608
- <a name='L543'></a><a href='#L543'>543</a>
609
- <a name='L544'></a><a href='#L544'>544</a>
610
- <a name='L545'></a><a href='#L545'>545</a>
611
- <a name='L546'></a><a href='#L546'>546</a>
612
- <a name='L547'></a><a href='#L547'>547</a>
613
- <a name='L548'></a><a href='#L548'>548</a>
614
- <a name='L549'></a><a href='#L549'>549</a>
615
- <a name='L550'></a><a href='#L550'>550</a>
616
- <a name='L551'></a><a href='#L551'>551</a>
617
- <a name='L552'></a><a href='#L552'>552</a>
618
- <a name='L553'></a><a href='#L553'>553</a>
619
- <a name='L554'></a><a href='#L554'>554</a>
620
- <a name='L555'></a><a href='#L555'>555</a>
621
- <a name='L556'></a><a href='#L556'>556</a>
622
- <a name='L557'></a><a href='#L557'>557</a>
623
- <a name='L558'></a><a href='#L558'>558</a>
624
- <a name='L559'></a><a href='#L559'>559</a>
625
- <a name='L560'></a><a href='#L560'>560</a>
626
- <a name='L561'></a><a href='#L561'>561</a>
627
- <a name='L562'></a><a href='#L562'>562</a>
628
- <a name='L563'></a><a href='#L563'>563</a>
629
- <a name='L564'></a><a href='#L564'>564</a>
630
- <a name='L565'></a><a href='#L565'>565</a>
631
- <a name='L566'></a><a href='#L566'>566</a>
632
- <a name='L567'></a><a href='#L567'>567</a>
633
- <a name='L568'></a><a href='#L568'>568</a>
634
- <a name='L569'></a><a href='#L569'>569</a>
635
- <a name='L570'></a><a href='#L570'>570</a>
636
- <a name='L571'></a><a href='#L571'>571</a>
637
- <a name='L572'></a><a href='#L572'>572</a>
638
- <a name='L573'></a><a href='#L573'>573</a>
639
- <a name='L574'></a><a href='#L574'>574</a>
640
- <a name='L575'></a><a href='#L575'>575</a>
641
- <a name='L576'></a><a href='#L576'>576</a>
642
- <a name='L577'></a><a href='#L577'>577</a>
643
- <a name='L578'></a><a href='#L578'>578</a>
644
- <a name='L579'></a><a href='#L579'>579</a>
645
- <a name='L580'></a><a href='#L580'>580</a>
646
- <a name='L581'></a><a href='#L581'>581</a>
647
- <a name='L582'></a><a href='#L582'>582</a>
648
- <a name='L583'></a><a href='#L583'>583</a>
649
- <a name='L584'></a><a href='#L584'>584</a>
650
- <a name='L585'></a><a href='#L585'>585</a>
651
- <a name='L586'></a><a href='#L586'>586</a>
652
- <a name='L587'></a><a href='#L587'>587</a>
653
- <a name='L588'></a><a href='#L588'>588</a>
654
- <a name='L589'></a><a href='#L589'>589</a>
655
- <a name='L590'></a><a href='#L590'>590</a>
656
- <a name='L591'></a><a href='#L591'>591</a>
657
- <a name='L592'></a><a href='#L592'>592</a>
658
- <a name='L593'></a><a href='#L593'>593</a>
659
- <a name='L594'></a><a href='#L594'>594</a>
660
- <a name='L595'></a><a href='#L595'>595</a>
661
- <a name='L596'></a><a href='#L596'>596</a>
662
- <a name='L597'></a><a href='#L597'>597</a>
663
- <a name='L598'></a><a href='#L598'>598</a>
664
- <a name='L599'></a><a href='#L599'>599</a>
665
- <a name='L600'></a><a href='#L600'>600</a>
666
- <a name='L601'></a><a href='#L601'>601</a>
667
- <a name='L602'></a><a href='#L602'>602</a>
668
- <a name='L603'></a><a href='#L603'>603</a>
669
- <a name='L604'></a><a href='#L604'>604</a>
670
- <a name='L605'></a><a href='#L605'>605</a>
671
- <a name='L606'></a><a href='#L606'>606</a>
672
- <a name='L607'></a><a href='#L607'>607</a>
673
- <a name='L608'></a><a href='#L608'>608</a>
674
- <a name='L609'></a><a href='#L609'>609</a>
675
- <a name='L610'></a><a href='#L610'>610</a>
676
- <a name='L611'></a><a href='#L611'>611</a>
677
- <a name='L612'></a><a href='#L612'>612</a>
678
- <a name='L613'></a><a href='#L613'>613</a>
679
- <a name='L614'></a><a href='#L614'>614</a>
680
- <a name='L615'></a><a href='#L615'>615</a>
681
- <a name='L616'></a><a href='#L616'>616</a>
682
- <a name='L617'></a><a href='#L617'>617</a>
683
- <a name='L618'></a><a href='#L618'>618</a>
684
- <a name='L619'></a><a href='#L619'>619</a>
685
- <a name='L620'></a><a href='#L620'>620</a>
686
- <a name='L621'></a><a href='#L621'>621</a>
687
- <a name='L622'></a><a href='#L622'>622</a>
688
- <a name='L623'></a><a href='#L623'>623</a>
689
- <a name='L624'></a><a href='#L624'>624</a>
690
- <a name='L625'></a><a href='#L625'>625</a>
691
- <a name='L626'></a><a href='#L626'>626</a>
692
- <a name='L627'></a><a href='#L627'>627</a>
693
- <a name='L628'></a><a href='#L628'>628</a>
694
- <a name='L629'></a><a href='#L629'>629</a>
695
- <a name='L630'></a><a href='#L630'>630</a>
696
- <a name='L631'></a><a href='#L631'>631</a>
697
- <a name='L632'></a><a href='#L632'>632</a>
698
- <a name='L633'></a><a href='#L633'>633</a>
699
- <a name='L634'></a><a href='#L634'>634</a>
700
- <a name='L635'></a><a href='#L635'>635</a>
701
- <a name='L636'></a><a href='#L636'>636</a>
702
- <a name='L637'></a><a href='#L637'>637</a>
703
- <a name='L638'></a><a href='#L638'>638</a>
704
- <a name='L639'></a><a href='#L639'>639</a>
705
- <a name='L640'></a><a href='#L640'>640</a>
706
- <a name='L641'></a><a href='#L641'>641</a>
707
- <a name='L642'></a><a href='#L642'>642</a>
708
- <a name='L643'></a><a href='#L643'>643</a>
709
- <a name='L644'></a><a href='#L644'>644</a>
710
- <a name='L645'></a><a href='#L645'>645</a>
711
- <a name='L646'></a><a href='#L646'>646</a>
712
- <a name='L647'></a><a href='#L647'>647</a>
713
- <a name='L648'></a><a href='#L648'>648</a>
714
- <a name='L649'></a><a href='#L649'>649</a>
715
- <a name='L650'></a><a href='#L650'>650</a>
716
- <a name='L651'></a><a href='#L651'>651</a>
717
- <a name='L652'></a><a href='#L652'>652</a>
718
- <a name='L653'></a><a href='#L653'>653</a>
719
- <a name='L654'></a><a href='#L654'>654</a>
720
- <a name='L655'></a><a href='#L655'>655</a>
721
- <a name='L656'></a><a href='#L656'>656</a>
722
- <a name='L657'></a><a href='#L657'>657</a>
723
- <a name='L658'></a><a href='#L658'>658</a>
724
- <a name='L659'></a><a href='#L659'>659</a>
725
- <a name='L660'></a><a href='#L660'>660</a>
726
- <a name='L661'></a><a href='#L661'>661</a>
727
- <a name='L662'></a><a href='#L662'>662</a>
728
- <a name='L663'></a><a href='#L663'>663</a>
729
- <a name='L664'></a><a href='#L664'>664</a>
730
- <a name='L665'></a><a href='#L665'>665</a>
731
- <a name='L666'></a><a href='#L666'>666</a>
732
- <a name='L667'></a><a href='#L667'>667</a>
733
- <a name='L668'></a><a href='#L668'>668</a>
734
- <a name='L669'></a><a href='#L669'>669</a>
735
- <a name='L670'></a><a href='#L670'>670</a>
736
- <a name='L671'></a><a href='#L671'>671</a>
737
- <a name='L672'></a><a href='#L672'>672</a>
738
- <a name='L673'></a><a href='#L673'>673</a>
739
- <a name='L674'></a><a href='#L674'>674</a>
740
- <a name='L675'></a><a href='#L675'>675</a>
741
- <a name='L676'></a><a href='#L676'>676</a>
742
- <a name='L677'></a><a href='#L677'>677</a>
743
- <a name='L678'></a><a href='#L678'>678</a>
744
- <a name='L679'></a><a href='#L679'>679</a>
745
- <a name='L680'></a><a href='#L680'>680</a>
746
- <a name='L681'></a><a href='#L681'>681</a>
747
- <a name='L682'></a><a href='#L682'>682</a>
748
- <a name='L683'></a><a href='#L683'>683</a>
749
- <a name='L684'></a><a href='#L684'>684</a>
750
- <a name='L685'></a><a href='#L685'>685</a>
751
- <a name='L686'></a><a href='#L686'>686</a>
752
- <a name='L687'></a><a href='#L687'>687</a>
753
- <a name='L688'></a><a href='#L688'>688</a>
754
- <a name='L689'></a><a href='#L689'>689</a>
755
- <a name='L690'></a><a href='#L690'>690</a>
756
- <a name='L691'></a><a href='#L691'>691</a>
757
- <a name='L692'></a><a href='#L692'>692</a>
758
- <a name='L693'></a><a href='#L693'>693</a>
759
- <a name='L694'></a><a href='#L694'>694</a>
760
- <a name='L695'></a><a href='#L695'>695</a>
761
- <a name='L696'></a><a href='#L696'>696</a>
762
- <a name='L697'></a><a href='#L697'>697</a>
763
- <a name='L698'></a><a href='#L698'>698</a>
764
- <a name='L699'></a><a href='#L699'>699</a>
765
- <a name='L700'></a><a href='#L700'>700</a>
766
- <a name='L701'></a><a href='#L701'>701</a>
767
- <a name='L702'></a><a href='#L702'>702</a>
768
- <a name='L703'></a><a href='#L703'>703</a>
769
- <a name='L704'></a><a href='#L704'>704</a>
770
- <a name='L705'></a><a href='#L705'>705</a>
771
- <a name='L706'></a><a href='#L706'>706</a>
772
- <a name='L707'></a><a href='#L707'>707</a>
773
- <a name='L708'></a><a href='#L708'>708</a>
774
- <a name='L709'></a><a href='#L709'>709</a>
775
- <a name='L710'></a><a href='#L710'>710</a>
776
- <a name='L711'></a><a href='#L711'>711</a>
777
- <a name='L712'></a><a href='#L712'>712</a>
778
- <a name='L713'></a><a href='#L713'>713</a>
779
- <a name='L714'></a><a href='#L714'>714</a>
780
- <a name='L715'></a><a href='#L715'>715</a>
781
- <a name='L716'></a><a href='#L716'>716</a>
782
- <a name='L717'></a><a href='#L717'>717</a>
783
- <a name='L718'></a><a href='#L718'>718</a>
784
- <a name='L719'></a><a href='#L719'>719</a>
785
- <a name='L720'></a><a href='#L720'>720</a>
786
- <a name='L721'></a><a href='#L721'>721</a>
787
- <a name='L722'></a><a href='#L722'>722</a>
788
- <a name='L723'></a><a href='#L723'>723</a>
789
- <a name='L724'></a><a href='#L724'>724</a>
790
- <a name='L725'></a><a href='#L725'>725</a>
791
- <a name='L726'></a><a href='#L726'>726</a>
792
- <a name='L727'></a><a href='#L727'>727</a>
793
- <a name='L728'></a><a href='#L728'>728</a>
794
- <a name='L729'></a><a href='#L729'>729</a>
795
- <a name='L730'></a><a href='#L730'>730</a>
796
- <a name='L731'></a><a href='#L731'>731</a>
797
- <a name='L732'></a><a href='#L732'>732</a>
798
- <a name='L733'></a><a href='#L733'>733</a>
799
- <a name='L734'></a><a href='#L734'>734</a>
800
- <a name='L735'></a><a href='#L735'>735</a>
801
- <a name='L736'></a><a href='#L736'>736</a>
802
- <a name='L737'></a><a href='#L737'>737</a>
803
- <a name='L738'></a><a href='#L738'>738</a>
804
- <a name='L739'></a><a href='#L739'>739</a>
805
- <a name='L740'></a><a href='#L740'>740</a>
806
- <a name='L741'></a><a href='#L741'>741</a>
807
- <a name='L742'></a><a href='#L742'>742</a>
808
- <a name='L743'></a><a href='#L743'>743</a>
809
- <a name='L744'></a><a href='#L744'>744</a>
810
- <a name='L745'></a><a href='#L745'>745</a>
811
- <a name='L746'></a><a href='#L746'>746</a>
812
- <a name='L747'></a><a href='#L747'>747</a>
813
- <a name='L748'></a><a href='#L748'>748</a>
814
- <a name='L749'></a><a href='#L749'>749</a>
815
- <a name='L750'></a><a href='#L750'>750</a>
816
- <a name='L751'></a><a href='#L751'>751</a>
817
- <a name='L752'></a><a href='#L752'>752</a>
818
- <a name='L753'></a><a href='#L753'>753</a>
819
- <a name='L754'></a><a href='#L754'>754</a>
820
- <a name='L755'></a><a href='#L755'>755</a>
821
- <a name='L756'></a><a href='#L756'>756</a>
822
- <a name='L757'></a><a href='#L757'>757</a>
823
- <a name='L758'></a><a href='#L758'>758</a>
824
- <a name='L759'></a><a href='#L759'>759</a>
825
- <a name='L760'></a><a href='#L760'>760</a>
826
- <a name='L761'></a><a href='#L761'>761</a>
827
- <a name='L762'></a><a href='#L762'>762</a>
828
- <a name='L763'></a><a href='#L763'>763</a>
829
- <a name='L764'></a><a href='#L764'>764</a>
830
- <a name='L765'></a><a href='#L765'>765</a>
831
- <a name='L766'></a><a href='#L766'>766</a>
832
- <a name='L767'></a><a href='#L767'>767</a>
833
- <a name='L768'></a><a href='#L768'>768</a>
834
- <a name='L769'></a><a href='#L769'>769</a>
835
- <a name='L770'></a><a href='#L770'>770</a>
836
- <a name='L771'></a><a href='#L771'>771</a>
837
- <a name='L772'></a><a href='#L772'>772</a>
838
- <a name='L773'></a><a href='#L773'>773</a>
839
- <a name='L774'></a><a href='#L774'>774</a>
840
- <a name='L775'></a><a href='#L775'>775</a>
841
- <a name='L776'></a><a href='#L776'>776</a>
842
- <a name='L777'></a><a href='#L777'>777</a>
843
- <a name='L778'></a><a href='#L778'>778</a>
844
- <a name='L779'></a><a href='#L779'>779</a>
845
- <a name='L780'></a><a href='#L780'>780</a>
846
- <a name='L781'></a><a href='#L781'>781</a>
847
- <a name='L782'></a><a href='#L782'>782</a>
848
- <a name='L783'></a><a href='#L783'>783</a>
849
- <a name='L784'></a><a href='#L784'>784</a>
850
- <a name='L785'></a><a href='#L785'>785</a>
851
- <a name='L786'></a><a href='#L786'>786</a>
852
- <a name='L787'></a><a href='#L787'>787</a>
853
- <a name='L788'></a><a href='#L788'>788</a>
854
- <a name='L789'></a><a href='#L789'>789</a>
855
- <a name='L790'></a><a href='#L790'>790</a>
856
- <a name='L791'></a><a href='#L791'>791</a>
857
- <a name='L792'></a><a href='#L792'>792</a>
858
- <a name='L793'></a><a href='#L793'>793</a>
859
- <a name='L794'></a><a href='#L794'>794</a>
860
- <a name='L795'></a><a href='#L795'>795</a>
861
- <a name='L796'></a><a href='#L796'>796</a>
862
- <a name='L797'></a><a href='#L797'>797</a>
863
- <a name='L798'></a><a href='#L798'>798</a>
864
- <a name='L799'></a><a href='#L799'>799</a>
865
- <a name='L800'></a><a href='#L800'>800</a>
866
- <a name='L801'></a><a href='#L801'>801</a>
867
- <a name='L802'></a><a href='#L802'>802</a>
868
- <a name='L803'></a><a href='#L803'>803</a>
869
- <a name='L804'></a><a href='#L804'>804</a>
870
- <a name='L805'></a><a href='#L805'>805</a>
871
- <a name='L806'></a><a href='#L806'>806</a>
872
- <a name='L807'></a><a href='#L807'>807</a>
873
- <a name='L808'></a><a href='#L808'>808</a>
874
- <a name='L809'></a><a href='#L809'>809</a>
875
- <a name='L810'></a><a href='#L810'>810</a>
876
- <a name='L811'></a><a href='#L811'>811</a>
877
- <a name='L812'></a><a href='#L812'>812</a>
878
- <a name='L813'></a><a href='#L813'>813</a>
879
- <a name='L814'></a><a href='#L814'>814</a>
880
- <a name='L815'></a><a href='#L815'>815</a>
881
- <a name='L816'></a><a href='#L816'>816</a>
882
- <a name='L817'></a><a href='#L817'>817</a>
883
- <a name='L818'></a><a href='#L818'>818</a>
884
- <a name='L819'></a><a href='#L819'>819</a>
885
- <a name='L820'></a><a href='#L820'>820</a>
886
- <a name='L821'></a><a href='#L821'>821</a>
887
- <a name='L822'></a><a href='#L822'>822</a>
888
- <a name='L823'></a><a href='#L823'>823</a>
889
- <a name='L824'></a><a href='#L824'>824</a>
890
- <a name='L825'></a><a href='#L825'>825</a>
891
- <a name='L826'></a><a href='#L826'>826</a>
892
- <a name='L827'></a><a href='#L827'>827</a>
893
- <a name='L828'></a><a href='#L828'>828</a>
894
- <a name='L829'></a><a href='#L829'>829</a>
895
- <a name='L830'></a><a href='#L830'>830</a>
896
- <a name='L831'></a><a href='#L831'>831</a>
897
- <a name='L832'></a><a href='#L832'>832</a>
898
- <a name='L833'></a><a href='#L833'>833</a>
899
- <a name='L834'></a><a href='#L834'>834</a>
900
- <a name='L835'></a><a href='#L835'>835</a>
901
- <a name='L836'></a><a href='#L836'>836</a>
902
- <a name='L837'></a><a href='#L837'>837</a>
903
- <a name='L838'></a><a href='#L838'>838</a>
904
- <a name='L839'></a><a href='#L839'>839</a>
905
- <a name='L840'></a><a href='#L840'>840</a>
906
- <a name='L841'></a><a href='#L841'>841</a>
907
- <a name='L842'></a><a href='#L842'>842</a>
908
- <a name='L843'></a><a href='#L843'>843</a>
909
- <a name='L844'></a><a href='#L844'>844</a>
910
- <a name='L845'></a><a href='#L845'>845</a>
911
- <a name='L846'></a><a href='#L846'>846</a>
912
- <a name='L847'></a><a href='#L847'>847</a>
913
- <a name='L848'></a><a href='#L848'>848</a>
914
- <a name='L849'></a><a href='#L849'>849</a>
915
- <a name='L850'></a><a href='#L850'>850</a>
916
- <a name='L851'></a><a href='#L851'>851</a>
917
- <a name='L852'></a><a href='#L852'>852</a>
918
- <a name='L853'></a><a href='#L853'>853</a>
919
- <a name='L854'></a><a href='#L854'>854</a>
920
- <a name='L855'></a><a href='#L855'>855</a>
921
- <a name='L856'></a><a href='#L856'>856</a>
922
- <a name='L857'></a><a href='#L857'>857</a>
923
- <a name='L858'></a><a href='#L858'>858</a>
924
- <a name='L859'></a><a href='#L859'>859</a>
925
- <a name='L860'></a><a href='#L860'>860</a>
926
- <a name='L861'></a><a href='#L861'>861</a>
927
- <a name='L862'></a><a href='#L862'>862</a>
928
- <a name='L863'></a><a href='#L863'>863</a>
929
- <a name='L864'></a><a href='#L864'>864</a>
930
- <a name='L865'></a><a href='#L865'>865</a>
931
- <a name='L866'></a><a href='#L866'>866</a>
932
- <a name='L867'></a><a href='#L867'>867</a>
933
- <a name='L868'></a><a href='#L868'>868</a>
934
- <a name='L869'></a><a href='#L869'>869</a>
935
- <a name='L870'></a><a href='#L870'>870</a>
936
- <a name='L871'></a><a href='#L871'>871</a>
937
- <a name='L872'></a><a href='#L872'>872</a>
938
- <a name='L873'></a><a href='#L873'>873</a>
939
- <a name='L874'></a><a href='#L874'>874</a>
940
- <a name='L875'></a><a href='#L875'>875</a>
941
- <a name='L876'></a><a href='#L876'>876</a>
942
- <a name='L877'></a><a href='#L877'>877</a>
943
- <a name='L878'></a><a href='#L878'>878</a>
944
- <a name='L879'></a><a href='#L879'>879</a>
945
- <a name='L880'></a><a href='#L880'>880</a>
946
- <a name='L881'></a><a href='#L881'>881</a>
947
- <a name='L882'></a><a href='#L882'>882</a>
948
- <a name='L883'></a><a href='#L883'>883</a>
949
- <a name='L884'></a><a href='#L884'>884</a>
950
- <a name='L885'></a><a href='#L885'>885</a>
951
- <a name='L886'></a><a href='#L886'>886</a>
952
- <a name='L887'></a><a href='#L887'>887</a>
953
- <a name='L888'></a><a href='#L888'>888</a>
954
- <a name='L889'></a><a href='#L889'>889</a>
955
- <a name='L890'></a><a href='#L890'>890</a>
956
- <a name='L891'></a><a href='#L891'>891</a>
957
- <a name='L892'></a><a href='#L892'>892</a>
958
- <a name='L893'></a><a href='#L893'>893</a>
959
- <a name='L894'></a><a href='#L894'>894</a>
960
- <a name='L895'></a><a href='#L895'>895</a>
961
- <a name='L896'></a><a href='#L896'>896</a>
962
- <a name='L897'></a><a href='#L897'>897</a>
963
- <a name='L898'></a><a href='#L898'>898</a>
964
- <a name='L899'></a><a href='#L899'>899</a>
965
- <a name='L900'></a><a href='#L900'>900</a>
966
- <a name='L901'></a><a href='#L901'>901</a>
967
- <a name='L902'></a><a href='#L902'>902</a>
968
- <a name='L903'></a><a href='#L903'>903</a>
969
- <a name='L904'></a><a href='#L904'>904</a>
970
- <a name='L905'></a><a href='#L905'>905</a>
971
- <a name='L906'></a><a href='#L906'>906</a>
972
- <a name='L907'></a><a href='#L907'>907</a>
973
- <a name='L908'></a><a href='#L908'>908</a>
974
- <a name='L909'></a><a href='#L909'>909</a>
975
- <a name='L910'></a><a href='#L910'>910</a>
976
- <a name='L911'></a><a href='#L911'>911</a>
977
- <a name='L912'></a><a href='#L912'>912</a>
978
- <a name='L913'></a><a href='#L913'>913</a>
979
- <a name='L914'></a><a href='#L914'>914</a>
980
- <a name='L915'></a><a href='#L915'>915</a>
981
- <a name='L916'></a><a href='#L916'>916</a>
982
- <a name='L917'></a><a href='#L917'>917</a>
983
- <a name='L918'></a><a href='#L918'>918</a>
984
- <a name='L919'></a><a href='#L919'>919</a>
985
- <a name='L920'></a><a href='#L920'>920</a>
986
- <a name='L921'></a><a href='#L921'>921</a>
987
- <a name='L922'></a><a href='#L922'>922</a>
988
- <a name='L923'></a><a href='#L923'>923</a>
989
- <a name='L924'></a><a href='#L924'>924</a>
990
- <a name='L925'></a><a href='#L925'>925</a>
991
- <a name='L926'></a><a href='#L926'>926</a>
992
- <a name='L927'></a><a href='#L927'>927</a>
993
- <a name='L928'></a><a href='#L928'>928</a>
994
- <a name='L929'></a><a href='#L929'>929</a>
995
- <a name='L930'></a><a href='#L930'>930</a>
996
- <a name='L931'></a><a href='#L931'>931</a>
997
- <a name='L932'></a><a href='#L932'>932</a>
998
- <a name='L933'></a><a href='#L933'>933</a>
999
- <a name='L934'></a><a href='#L934'>934</a>
1000
- <a name='L935'></a><a href='#L935'>935</a>
1001
- <a name='L936'></a><a href='#L936'>936</a>
1002
- <a name='L937'></a><a href='#L937'>937</a>
1003
- <a name='L938'></a><a href='#L938'>938</a>
1004
- <a name='L939'></a><a href='#L939'>939</a>
1005
- <a name='L940'></a><a href='#L940'>940</a>
1006
- <a name='L941'></a><a href='#L941'>941</a>
1007
- <a name='L942'></a><a href='#L942'>942</a>
1008
- <a name='L943'></a><a href='#L943'>943</a>
1009
- <a name='L944'></a><a href='#L944'>944</a>
1010
- <a name='L945'></a><a href='#L945'>945</a>
1011
- <a name='L946'></a><a href='#L946'>946</a>
1012
- <a name='L947'></a><a href='#L947'>947</a>
1013
- <a name='L948'></a><a href='#L948'>948</a>
1014
- <a name='L949'></a><a href='#L949'>949</a>
1015
- <a name='L950'></a><a href='#L950'>950</a>
1016
- <a name='L951'></a><a href='#L951'>951</a>
1017
- <a name='L952'></a><a href='#L952'>952</a>
1018
- <a name='L953'></a><a href='#L953'>953</a>
1019
- <a name='L954'></a><a href='#L954'>954</a>
1020
- <a name='L955'></a><a href='#L955'>955</a>
1021
- <a name='L956'></a><a href='#L956'>956</a>
1022
- <a name='L957'></a><a href='#L957'>957</a>
1023
- <a name='L958'></a><a href='#L958'>958</a>
1024
- <a name='L959'></a><a href='#L959'>959</a>
1025
- <a name='L960'></a><a href='#L960'>960</a>
1026
- <a name='L961'></a><a href='#L961'>961</a>
1027
- <a name='L962'></a><a href='#L962'>962</a>
1028
- <a name='L963'></a><a href='#L963'>963</a>
1029
- <a name='L964'></a><a href='#L964'>964</a>
1030
- <a name='L965'></a><a href='#L965'>965</a>
1031
- <a name='L966'></a><a href='#L966'>966</a>
1032
- <a name='L967'></a><a href='#L967'>967</a>
1033
- <a name='L968'></a><a href='#L968'>968</a>
1034
- <a name='L969'></a><a href='#L969'>969</a>
1035
- <a name='L970'></a><a href='#L970'>970</a>
1036
- <a name='L971'></a><a href='#L971'>971</a>
1037
- <a name='L972'></a><a href='#L972'>972</a>
1038
- <a name='L973'></a><a href='#L973'>973</a>
1039
- <a name='L974'></a><a href='#L974'>974</a>
1040
- <a name='L975'></a><a href='#L975'>975</a>
1041
- <a name='L976'></a><a href='#L976'>976</a>
1042
- <a name='L977'></a><a href='#L977'>977</a>
1043
- <a name='L978'></a><a href='#L978'>978</a>
1044
- <a name='L979'></a><a href='#L979'>979</a>
1045
- <a name='L980'></a><a href='#L980'>980</a>
1046
- <a name='L981'></a><a href='#L981'>981</a>
1047
- <a name='L982'></a><a href='#L982'>982</a>
1048
- <a name='L983'></a><a href='#L983'>983</a>
1049
- <a name='L984'></a><a href='#L984'>984</a>
1050
- <a name='L985'></a><a href='#L985'>985</a>
1051
- <a name='L986'></a><a href='#L986'>986</a>
1052
- <a name='L987'></a><a href='#L987'>987</a>
1053
- <a name='L988'></a><a href='#L988'>988</a>
1054
- <a name='L989'></a><a href='#L989'>989</a>
1055
- <a name='L990'></a><a href='#L990'>990</a>
1056
- <a name='L991'></a><a href='#L991'>991</a>
1057
- <a name='L992'></a><a href='#L992'>992</a>
1058
- <a name='L993'></a><a href='#L993'>993</a>
1059
- <a name='L994'></a><a href='#L994'>994</a>
1060
- <a name='L995'></a><a href='#L995'>995</a>
1061
- <a name='L996'></a><a href='#L996'>996</a>
1062
- <a name='L997'></a><a href='#L997'>997</a>
1063
- <a name='L998'></a><a href='#L998'>998</a>
1064
- <a name='L999'></a><a href='#L999'>999</a>
1065
- <a name='L1000'></a><a href='#L1000'>1000</a>
1066
- <a name='L1001'></a><a href='#L1001'>1001</a>
1067
- <a name='L1002'></a><a href='#L1002'>1002</a>
1068
- <a name='L1003'></a><a href='#L1003'>1003</a>
1069
- <a name='L1004'></a><a href='#L1004'>1004</a>
1070
- <a name='L1005'></a><a href='#L1005'>1005</a>
1071
- <a name='L1006'></a><a href='#L1006'>1006</a>
1072
- <a name='L1007'></a><a href='#L1007'>1007</a>
1073
- <a name='L1008'></a><a href='#L1008'>1008</a>
1074
- <a name='L1009'></a><a href='#L1009'>1009</a>
1075
- <a name='L1010'></a><a href='#L1010'>1010</a>
1076
- <a name='L1011'></a><a href='#L1011'>1011</a>
1077
- <a name='L1012'></a><a href='#L1012'>1012</a>
1078
- <a name='L1013'></a><a href='#L1013'>1013</a>
1079
- <a name='L1014'></a><a href='#L1014'>1014</a>
1080
- <a name='L1015'></a><a href='#L1015'>1015</a>
1081
- <a name='L1016'></a><a href='#L1016'>1016</a>
1082
- <a name='L1017'></a><a href='#L1017'>1017</a>
1083
- <a name='L1018'></a><a href='#L1018'>1018</a>
1084
- <a name='L1019'></a><a href='#L1019'>1019</a>
1085
- <a name='L1020'></a><a href='#L1020'>1020</a>
1086
- <a name='L1021'></a><a href='#L1021'>1021</a>
1087
- <a name='L1022'></a><a href='#L1022'>1022</a>
1088
- <a name='L1023'></a><a href='#L1023'>1023</a>
1089
- <a name='L1024'></a><a href='#L1024'>1024</a>
1090
- <a name='L1025'></a><a href='#L1025'>1025</a>
1091
- <a name='L1026'></a><a href='#L1026'>1026</a>
1092
- <a name='L1027'></a><a href='#L1027'>1027</a>
1093
- <a name='L1028'></a><a href='#L1028'>1028</a>
1094
- <a name='L1029'></a><a href='#L1029'>1029</a>
1095
- <a name='L1030'></a><a href='#L1030'>1030</a>
1096
- <a name='L1031'></a><a href='#L1031'>1031</a>
1097
- <a name='L1032'></a><a href='#L1032'>1032</a>
1098
- <a name='L1033'></a><a href='#L1033'>1033</a>
1099
- <a name='L1034'></a><a href='#L1034'>1034</a>
1100
- <a name='L1035'></a><a href='#L1035'>1035</a>
1101
- <a name='L1036'></a><a href='#L1036'>1036</a>
1102
- <a name='L1037'></a><a href='#L1037'>1037</a>
1103
- <a name='L1038'></a><a href='#L1038'>1038</a>
1104
- <a name='L1039'></a><a href='#L1039'>1039</a>
1105
- <a name='L1040'></a><a href='#L1040'>1040</a>
1106
- <a name='L1041'></a><a href='#L1041'>1041</a>
1107
- <a name='L1042'></a><a href='#L1042'>1042</a>
1108
- <a name='L1043'></a><a href='#L1043'>1043</a>
1109
- <a name='L1044'></a><a href='#L1044'>1044</a>
1110
- <a name='L1045'></a><a href='#L1045'>1045</a>
1111
- <a name='L1046'></a><a href='#L1046'>1046</a>
1112
- <a name='L1047'></a><a href='#L1047'>1047</a>
1113
- <a name='L1048'></a><a href='#L1048'>1048</a>
1114
- <a name='L1049'></a><a href='#L1049'>1049</a>
1115
- <a name='L1050'></a><a href='#L1050'>1050</a>
1116
- <a name='L1051'></a><a href='#L1051'>1051</a>
1117
- <a name='L1052'></a><a href='#L1052'>1052</a>
1118
- <a name='L1053'></a><a href='#L1053'>1053</a>
1119
- <a name='L1054'></a><a href='#L1054'>1054</a>
1120
- <a name='L1055'></a><a href='#L1055'>1055</a>
1121
- <a name='L1056'></a><a href='#L1056'>1056</a>
1122
- <a name='L1057'></a><a href='#L1057'>1057</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</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-neutral">&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-neutral">&nbsp;</span>
1138
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1143
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1151
- <span class="cline-any cline-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-neutral">&nbsp;</span>
1153
- <span class="cline-any cline-neutral">&nbsp;</span>
1154
- <span class="cline-any cline-neutral">&nbsp;</span>
1155
- <span class="cline-any cline-neutral">&nbsp;</span>
1156
- <span class="cline-any cline-neutral">&nbsp;</span>
1157
- <span class="cline-any cline-neutral">&nbsp;</span>
1158
- <span class="cline-any cline-neutral">&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-neutral">&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-yes">1x</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-yes">1x</span>
1170
- <span class="cline-any cline-yes">1x</span>
1171
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
1179
- <span class="cline-any cline-yes">1x</span>
1180
- <span class="cline-any cline-yes">1x</span>
1181
- <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-yes">1x</span>
1183
- <span class="cline-any cline-yes">80x</span>
1184
- <span class="cline-any cline-yes">80x</span>
1185
- <span class="cline-any cline-yes">80x</span>
1186
- <span class="cline-any cline-yes">80x</span>
1187
- <span class="cline-any cline-yes">80x</span>
1188
- <span class="cline-any cline-yes">80x</span>
1189
- <span class="cline-any cline-yes">80x</span>
1190
- <span class="cline-any cline-yes">80x</span>
1191
- <span class="cline-any cline-yes">80x</span>
1192
- <span class="cline-any cline-yes">80x</span>
1193
- <span class="cline-any cline-yes">80x</span>
1194
- <span class="cline-any cline-neutral">&nbsp;</span>
1195
- <span class="cline-any cline-neutral">&nbsp;</span>
1196
- <span class="cline-any cline-neutral">&nbsp;</span>
1197
- <span class="cline-any cline-neutral">&nbsp;</span>
1198
- <span class="cline-any cline-neutral">&nbsp;</span>
1199
- <span class="cline-any cline-neutral">&nbsp;</span>
1200
- <span class="cline-any cline-neutral">&nbsp;</span>
1201
- <span class="cline-any cline-neutral">&nbsp;</span>
1202
- <span class="cline-any cline-neutral">&nbsp;</span>
1203
- <span class="cline-any cline-yes">80x</span>
1204
- <span class="cline-any cline-yes">80x</span>
1205
- <span class="cline-any cline-yes">80x</span>
1206
- <span class="cline-any cline-neutral">&nbsp;</span>
1207
- <span class="cline-any cline-neutral">&nbsp;</span>
1208
- <span class="cline-any cline-neutral">&nbsp;</span>
1209
- <span class="cline-any cline-neutral">&nbsp;</span>
1210
- <span class="cline-any cline-neutral">&nbsp;</span>
1211
- <span class="cline-any cline-neutral">&nbsp;</span>
1212
- <span class="cline-any cline-neutral">&nbsp;</span>
1213
- <span class="cline-any cline-neutral">&nbsp;</span>
1214
- <span class="cline-any cline-neutral">&nbsp;</span>
1215
- <span class="cline-any cline-neutral">&nbsp;</span>
1216
- <span class="cline-any cline-neutral">&nbsp;</span>
1217
- <span class="cline-any cline-neutral">&nbsp;</span>
1218
- <span class="cline-any cline-neutral">&nbsp;</span>
1219
- <span class="cline-any cline-neutral">&nbsp;</span>
1220
- <span class="cline-any cline-yes">2x</span>
1221
- <span class="cline-any cline-yes">80x</span>
1222
- <span class="cline-any cline-yes">80x</span>
1223
- <span class="cline-any cline-yes">80x</span>
1224
- <span class="cline-any cline-neutral">&nbsp;</span>
1225
- <span class="cline-any cline-yes">1x</span>
1226
- <span class="cline-any cline-yes">116x</span>
1227
- <span class="cline-any cline-yes">116x</span>
1228
- <span class="cline-any cline-neutral">&nbsp;</span>
1229
- <span class="cline-any cline-yes">1x</span>
1230
- <span class="cline-any cline-yes">53x</span>
1231
- <span class="cline-any cline-yes">70x</span>
1232
- <span class="cline-any cline-yes">70x</span>
1233
- <span class="cline-any cline-yes">70x</span>
1234
- <span class="cline-any cline-yes">70x</span>
1235
- <span class="cline-any cline-yes">53x</span>
1236
- <span class="cline-any cline-neutral">&nbsp;</span>
1237
- <span class="cline-any cline-yes">1x</span>
1238
- <span class="cline-any cline-yes">1x</span>
1239
- <span class="cline-any cline-yes">1x</span>
1240
- <span class="cline-any cline-neutral">&nbsp;</span>
1241
- <span class="cline-any cline-yes">1x</span>
1242
- <span class="cline-any cline-yes">6x</span>
1243
- <span class="cline-any cline-yes">6x</span>
1244
- <span class="cline-any cline-neutral">&nbsp;</span>
1245
- <span class="cline-any cline-yes">1x</span>
1246
- <span class="cline-any cline-yes">63x</span>
1247
- <span class="cline-any cline-yes">63x</span>
1248
- <span class="cline-any cline-neutral">&nbsp;</span>
1249
- <span class="cline-any cline-yes">63x</span>
1250
- <span class="cline-any cline-yes">88x</span>
1251
- <span class="cline-any cline-yes">10x</span>
1252
- <span class="cline-any cline-yes">10x</span>
1253
- <span class="cline-any cline-yes">10x</span>
1254
- <span class="cline-any cline-yes">10x</span>
1255
- <span class="cline-any cline-yes">10x</span>
1256
- <span class="cline-any cline-yes">88x</span>
1257
- <span class="cline-any cline-yes">63x</span>
1258
- <span class="cline-any cline-neutral">&nbsp;</span>
1259
- <span class="cline-any cline-yes">1x</span>
1260
- <span class="cline-any cline-yes">1x</span>
1261
- <span class="cline-any cline-yes">1x</span>
1262
- <span class="cline-any cline-neutral">&nbsp;</span>
1263
- <span class="cline-any cline-yes">1x</span>
1264
- <span class="cline-any cline-yes">3x</span>
1265
- <span class="cline-any cline-yes">3x</span>
1266
- <span class="cline-any cline-yes">3x</span>
1267
- <span class="cline-any cline-neutral">&nbsp;</span>
1268
- <span class="cline-any cline-yes">1x</span>
1269
- <span class="cline-any cline-yes">78x</span>
1270
- <span class="cline-any cline-yes">78x</span>
1271
- <span class="cline-any cline-yes">78x</span>
1272
- <span class="cline-any cline-neutral">&nbsp;</span>
1273
- <span class="cline-any cline-yes">78x</span>
1274
- <span class="cline-any cline-yes">3x</span>
1275
- <span class="cline-any cline-yes">3x</span>
1276
- <span class="cline-any cline-neutral">&nbsp;</span>
1277
- <span class="cline-any cline-yes">78x</span>
1278
- <span class="cline-any cline-neutral">&nbsp;</span>
1279
- <span class="cline-any cline-yes">78x</span>
1280
- <span class="cline-any cline-yes">78x</span>
1281
- <span class="cline-any cline-yes">78x</span>
1282
- <span class="cline-any cline-yes">78x</span>
1283
- <span class="cline-any cline-yes">78x</span>
1284
- <span class="cline-any cline-yes">78x</span>
1285
- <span class="cline-any cline-neutral">&nbsp;</span>
1286
- <span class="cline-any cline-yes">1x</span>
1287
- <span class="cline-any cline-yes">78x</span>
1288
- <span class="cline-any cline-yes">78x</span>
1289
- <span class="cline-any cline-yes">78x</span>
1290
- <span class="cline-any cline-yes">78x</span>
1291
- <span class="cline-any cline-yes">78x</span>
1292
- <span class="cline-any cline-neutral">&nbsp;</span>
1293
- <span class="cline-any cline-yes">1x</span>
1294
- <span class="cline-any cline-yes">78x</span>
1295
- <span class="cline-any cline-yes">3x</span>
1296
- <span class="cline-any cline-yes">3x</span>
1297
- <span class="cline-any cline-yes">3x</span>
1298
- <span class="cline-any cline-yes">3x</span>
1299
- <span class="cline-any cline-yes">3x</span>
1300
- <span class="cline-any cline-yes">78x</span>
1301
- <span class="cline-any cline-neutral">&nbsp;</span>
1302
- <span class="cline-any cline-yes">78x</span>
1303
- <span class="cline-any cline-yes">5x</span>
1304
- <span class="cline-any cline-yes">5x</span>
1305
- <span class="cline-any cline-yes">2x</span>
1306
- <span class="cline-any cline-yes">3x</span>
1307
- <span class="cline-any cline-yes">1x</span>
1308
- <span class="cline-any cline-yes">1x</span>
1309
- <span class="cline-any cline-yes">2x</span>
1310
- <span class="cline-any cline-yes">2x</span>
1311
- <span class="cline-any cline-yes">2x</span>
1312
- <span class="cline-any cline-yes">3x</span>
1313
- <span class="cline-any cline-yes">2x</span>
1314
- <span class="cline-any cline-neutral">&nbsp;</span>
1315
- <span class="cline-any cline-yes">5x</span>
1316
- <span class="cline-any cline-yes">3x</span>
1317
- <span class="cline-any cline-yes">3x</span>
1318
- <span class="cline-any cline-yes">3x</span>
1319
- <span class="cline-any cline-yes">3x</span>
1320
- <span class="cline-any cline-yes">3x</span>
1321
- <span class="cline-any cline-yes">5x</span>
1322
- <span class="cline-any cline-neutral">&nbsp;</span>
1323
- <span class="cline-any cline-yes">5x</span>
1324
- <span class="cline-any cline-yes">5x</span>
1325
- <span class="cline-any cline-yes">5x</span>
1326
- <span class="cline-any cline-yes">5x</span>
1327
- <span class="cline-any cline-yes">5x</span>
1328
- <span class="cline-any cline-yes">5x</span>
1329
- <span class="cline-any cline-yes">78x</span>
1330
- <span class="cline-any cline-neutral">&nbsp;</span>
1331
- <span class="cline-any cline-yes">78x</span>
1332
- <span class="cline-any cline-yes">34x</span>
1333
- <span class="cline-any cline-yes">34x</span>
1334
- <span class="cline-any cline-yes">34x</span>
1335
- <span class="cline-any cline-yes">34x</span>
1336
- <span class="cline-any cline-yes">34x</span>
1337
- <span class="cline-any cline-yes">34x</span>
1338
- <span class="cline-any cline-yes">34x</span>
1339
- <span class="cline-any cline-yes">34x</span>
1340
- <span class="cline-any cline-yes">34x</span>
1341
- <span class="cline-any cline-yes">34x</span>
1342
- <span class="cline-any cline-yes">34x</span>
1343
- <span class="cline-any cline-neutral">&nbsp;</span>
1344
- <span class="cline-any cline-yes">34x</span>
1345
- <span class="cline-any cline-yes">34x</span>
1346
- <span class="cline-any cline-yes">34x</span>
1347
- <span class="cline-any cline-yes">34x</span>
1348
- <span class="cline-any cline-yes">34x</span>
1349
- <span class="cline-any cline-yes">34x</span>
1350
- <span class="cline-any cline-yes">34x</span>
1351
- <span class="cline-any cline-yes">78x</span>
1352
- <span class="cline-any cline-neutral">&nbsp;</span>
1353
- <span class="cline-any cline-yes">78x</span>
1354
- <span class="cline-any cline-yes">18x</span>
1355
- <span class="cline-any cline-yes">18x</span>
1356
- <span class="cline-any cline-yes">18x</span>
1357
- <span class="cline-any cline-yes">78x</span>
1358
- <span class="cline-any cline-neutral">&nbsp;</span>
1359
- <span class="cline-any cline-yes">78x</span>
1360
- <span class="cline-any cline-yes">5x</span>
1361
- <span class="cline-any cline-yes">5x</span>
1362
- <span class="cline-any cline-yes">5x</span>
1363
- <span class="cline-any cline-yes">5x</span>
1364
- <span class="cline-any cline-yes">78x</span>
1365
- <span class="cline-any cline-neutral">&nbsp;</span>
1366
- <span class="cline-any cline-yes">78x</span>
1367
- <span class="cline-any cline-yes">36x</span>
1368
- <span class="cline-any cline-yes">36x</span>
1369
- <span class="cline-any cline-neutral">&nbsp;</span>
1370
- <span class="cline-any cline-yes">36x</span>
1371
- <span class="cline-any cline-yes">1x</span>
1372
- <span class="cline-any cline-yes">1x</span>
1373
- <span class="cline-any cline-yes">1x</span>
1374
- <span class="cline-any cline-yes">1x</span>
1375
- <span class="cline-any cline-yes">1x</span>
1376
- <span class="cline-any cline-yes">1x</span>
1377
- <span class="cline-any cline-neutral">&nbsp;</span>
1378
- <span class="cline-any cline-yes">35x</span>
1379
- <span class="cline-any cline-yes">36x</span>
1380
- <span class="cline-any cline-yes">36x</span>
1381
- <span class="cline-any cline-yes">36x</span>
1382
- <span class="cline-any cline-yes">36x</span>
1383
- <span class="cline-any cline-yes">36x</span>
1384
- <span class="cline-any cline-yes">36x</span>
1385
- <span class="cline-any cline-neutral">&nbsp;</span>
1386
- <span class="cline-any cline-yes">36x</span>
1387
- <span class="cline-any cline-neutral">&nbsp;</span>
1388
- <span class="cline-any cline-yes">35x</span>
1389
- <span class="cline-any cline-neutral">&nbsp;</span>
1390
- <span class="cline-any cline-yes">35x</span>
1391
- <span class="cline-any cline-yes">35x</span>
1392
- <span class="cline-any cline-yes">35x</span>
1393
- <span class="cline-any cline-yes">35x</span>
1394
- <span class="cline-any cline-yes">35x</span>
1395
- <span class="cline-any cline-yes">35x</span>
1396
- <span class="cline-any cline-yes">36x</span>
1397
- <span class="cline-any cline-yes">78x</span>
1398
- <span class="cline-any cline-neutral">&nbsp;</span>
1399
- <span class="cline-any cline-yes">78x</span>
1400
- <span class="cline-any cline-yes">9x</span>
1401
- <span class="cline-any cline-yes">9x</span>
1402
- <span class="cline-any cline-yes">9x</span>
1403
- <span class="cline-any cline-yes">44x</span>
1404
- <span class="cline-any cline-yes">44x</span>
1405
- <span class="cline-any cline-yes">44x</span>
1406
- <span class="cline-any cline-yes">44x</span>
1407
- <span class="cline-any cline-yes">44x</span>
1408
- <span class="cline-any cline-yes">44x</span>
1409
- <span class="cline-any cline-yes">44x</span>
1410
- <span class="cline-any cline-yes">44x</span>
1411
- <span class="cline-any cline-yes">44x</span>
1412
- <span class="cline-any cline-yes">9x</span>
1413
- <span class="cline-any cline-yes">9x</span>
1414
- <span class="cline-any cline-yes">9x</span>
1415
- <span class="cline-any cline-yes">78x</span>
1416
- <span class="cline-any cline-neutral">&nbsp;</span>
1417
- <span class="cline-any cline-yes">78x</span>
1418
- <span class="cline-any cline-yes">1x</span>
1419
- <span class="cline-any cline-yes">1x</span>
1420
- <span class="cline-any cline-yes">1x</span>
1421
- <span class="cline-any cline-yes">1x</span>
1422
- <span class="cline-any cline-yes">78x</span>
1423
- <span class="cline-any cline-neutral">&nbsp;</span>
1424
- <span class="cline-any cline-yes">78x</span>
1425
- <span class="cline-any cline-yes">2x</span>
1426
- <span class="cline-any cline-yes">2x</span>
1427
- <span class="cline-any cline-yes">2x</span>
1428
- <span class="cline-any cline-yes">78x</span>
1429
- <span class="cline-any cline-neutral">&nbsp;</span>
1430
- <span class="cline-any cline-yes">78x</span>
1431
- <span class="cline-any cline-yes">3x</span>
1432
- <span class="cline-any cline-yes">3x</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-yes">3x</span>
1438
- <span class="cline-any cline-yes">3x</span>
1439
- <span class="cline-any cline-yes">1x</span>
1440
- <span class="cline-any cline-yes">1x</span>
1441
- <span class="cline-any cline-yes">1x</span>
1442
- <span class="cline-any cline-neutral">&nbsp;</span>
1443
- <span class="cline-any cline-yes">2x</span>
1444
- <span class="cline-any cline-yes">3x</span>
1445
- <span class="cline-any cline-yes">3x</span>
1446
- <span class="cline-any cline-neutral">&nbsp;</span>
1447
- <span class="cline-any cline-yes">3x</span>
1448
- <span class="cline-any cline-yes">3x</span>
1449
- <span class="cline-any cline-yes">78x</span>
1450
- <span class="cline-any cline-yes">78x</span>
1451
- <span class="cline-any cline-neutral">&nbsp;</span>
1452
- <span class="cline-any cline-yes">1x</span>
1453
- <span class="cline-any cline-yes">57x</span>
1454
- <span class="cline-any cline-yes">57x</span>
1455
- <span class="cline-any cline-neutral">&nbsp;</span>
1456
- <span class="cline-any cline-yes">57x</span>
1457
- <span class="cline-any cline-yes">57x</span>
1458
- <span class="cline-any cline-yes">57x</span>
1459
- <span class="cline-any cline-yes">154x</span>
1460
- <span class="cline-any cline-yes">154x</span>
1461
- <span class="cline-any cline-yes">154x</span>
1462
- <span class="cline-any cline-yes">154x</span>
1463
- <span class="cline-any cline-yes">154x</span>
1464
- <span class="cline-any cline-yes">57x</span>
1465
- <span class="cline-any cline-yes">57x</span>
1466
- <span class="cline-any cline-neutral">&nbsp;</span>
1467
- <span class="cline-any cline-yes">57x</span>
1468
- <span class="cline-any cline-yes">57x</span>
1469
- <span class="cline-any cline-neutral">&nbsp;</span>
1470
- <span class="cline-any cline-yes">1x</span>
1471
- <span class="cline-any cline-yes">57x</span>
1472
- <span class="cline-any cline-yes">57x</span>
1473
- <span class="cline-any cline-yes">154x</span>
1474
- <span class="cline-any cline-yes">80x</span>
1475
- <span class="cline-any cline-yes">80x</span>
1476
- <span class="cline-any cline-yes">74x</span>
1477
- <span class="cline-any cline-yes">154x</span>
1478
- <span class="cline-any cline-yes">72x</span>
1479
- <span class="cline-any cline-yes">72x</span>
1480
- <span class="cline-any cline-yes">2x</span>
1481
- <span class="cline-any cline-yes">57x</span>
1482
- <span class="cline-any cline-yes">57x</span>
1483
- <span class="cline-any cline-yes">57x</span>
1484
- <span class="cline-any cline-yes">57x</span>
1485
- <span class="cline-any cline-neutral">&nbsp;</span>
1486
- <span class="cline-any cline-yes">1x</span>
1487
- <span class="cline-any cline-yes">57x</span>
1488
- <span class="cline-any cline-yes">57x</span>
1489
- <span class="cline-any cline-yes">57x</span>
1490
- <span class="cline-any cline-yes">172x</span>
1491
- <span class="cline-any cline-yes">83x</span>
1492
- <span class="cline-any cline-yes">83x</span>
1493
- <span class="cline-any cline-yes">89x</span>
1494
- <span class="cline-any cline-yes">172x</span>
1495
- <span class="cline-any cline-yes">88x</span>
1496
- <span class="cline-any cline-yes">88x</span>
1497
- <span class="cline-any cline-yes">1x</span>
1498
- <span class="cline-any cline-yes">57x</span>
1499
- <span class="cline-any cline-yes">57x</span>
1500
- <span class="cline-any cline-yes">57x</span>
1501
- <span class="cline-any cline-yes">57x</span>
1502
- <span class="cline-any cline-neutral">&nbsp;</span>
1503
- <span class="cline-any cline-yes">1x</span>
1504
- <span class="cline-any cline-yes">34x</span>
1505
- <span class="cline-any cline-yes">34x</span>
1506
- <span class="cline-any cline-yes">83x</span>
1507
- <span class="cline-any cline-yes">39x</span>
1508
- <span class="cline-any cline-yes">39x</span>
1509
- <span class="cline-any cline-yes">83x</span>
1510
- <span class="cline-any cline-yes">3x</span>
1511
- <span class="cline-any cline-yes">3x</span>
1512
- <span class="cline-any cline-yes">41x</span>
1513
- <span class="cline-any cline-yes">34x</span>
1514
- <span class="cline-any cline-yes">34x</span>
1515
- <span class="cline-any cline-yes">34x</span>
1516
- <span class="cline-any cline-yes">34x</span>
1517
- <span class="cline-any cline-yes">34x</span>
1518
- <span class="cline-any cline-yes">34x</span>
1519
- <span class="cline-any cline-yes">34x</span>
1520
- <span class="cline-any cline-neutral">&nbsp;</span>
1521
- <span class="cline-any cline-yes">1x</span>
1522
- <span class="cline-any cline-yes">39x</span>
1523
- <span class="cline-any cline-yes">39x</span>
1524
- <span class="cline-any cline-yes">21x</span>
1525
- <span class="cline-any cline-yes">21x</span>
1526
- <span class="cline-any cline-yes">18x</span>
1527
- <span class="cline-any cline-yes">18x</span>
1528
- <span class="cline-any cline-yes">18x</span>
1529
- <span class="cline-any cline-yes">18x</span>
1530
- <span class="cline-any cline-yes">18x</span>
1531
- <span class="cline-any cline-yes">18x</span>
1532
- <span class="cline-any cline-yes">18x</span>
1533
- <span class="cline-any cline-yes">39x</span>
1534
- <span class="cline-any cline-neutral">&nbsp;</span>
1535
- <span class="cline-any cline-yes">1x</span>
1536
- <span class="cline-any cline-yes">3x</span>
1537
- <span class="cline-any cline-yes">2x</span>
1538
- <span class="cline-any cline-yes">2x</span>
1539
- <span class="cline-any cline-yes">1x</span>
1540
- <span class="cline-any cline-yes">1x</span>
1541
- <span class="cline-any cline-yes">1x</span>
1542
- <span class="cline-any cline-yes">1x</span>
1543
- <span class="cline-any cline-yes">1x</span>
1544
- <span class="cline-any cline-yes">1x</span>
1545
- <span class="cline-any cline-yes">1x</span>
1546
- <span class="cline-any cline-yes">1x</span>
1547
- <span class="cline-any cline-yes">1x</span>
1548
- <span class="cline-any cline-yes">3x</span>
1549
- <span class="cline-any cline-neutral">&nbsp;</span>
1550
- <span class="cline-any cline-yes">1x</span>
1551
- <span class="cline-any cline-yes">72x</span>
1552
- <span class="cline-any cline-yes">72x</span>
1553
- <span class="cline-any cline-yes">72x</span>
1554
- <span class="cline-any cline-yes">72x</span>
1555
- <span class="cline-any cline-yes">72x</span>
1556
- <span class="cline-any cline-yes">72x</span>
1557
- <span class="cline-any cline-yes">72x</span>
1558
- <span class="cline-any cline-yes">72x</span>
1559
- <span class="cline-any cline-yes">72x</span>
1560
- <span class="cline-any cline-yes">72x</span>
1561
- <span class="cline-any cline-yes">72x</span>
1562
- <span class="cline-any cline-yes">72x</span>
1563
- <span class="cline-any cline-yes">72x</span>
1564
- <span class="cline-any cline-yes">72x</span>
1565
- <span class="cline-any cline-yes">72x</span>
1566
- <span class="cline-any cline-yes">72x</span>
1567
- <span class="cline-any cline-yes">72x</span>
1568
- <span class="cline-any cline-yes">72x</span>
1569
- <span class="cline-any cline-yes">72x</span>
1570
- <span class="cline-any cline-yes">72x</span>
1571
- <span class="cline-any cline-yes">72x</span>
1572
- <span class="cline-any cline-neutral">&nbsp;</span>
1573
- <span class="cline-any cline-yes">1x</span>
1574
- <span class="cline-any cline-yes">72x</span>
1575
- <span class="cline-any cline-yes">72x</span>
1576
- <span class="cline-any cline-yes">72x</span>
1577
- <span class="cline-any cline-yes">72x</span>
1578
- <span class="cline-any cline-yes">72x</span>
1579
- <span class="cline-any cline-yes">72x</span>
1580
- <span class="cline-any cline-yes">72x</span>
1581
- <span class="cline-any cline-yes">72x</span>
1582
- <span class="cline-any cline-yes">72x</span>
1583
- <span class="cline-any cline-yes">72x</span>
1584
- <span class="cline-any cline-yes">72x</span>
1585
- <span class="cline-any cline-yes">72x</span>
1586
- <span class="cline-any cline-yes">72x</span>
1587
- <span class="cline-any cline-yes">72x</span>
1588
- <span class="cline-any cline-yes">72x</span>
1589
- <span class="cline-any cline-yes">72x</span>
1590
- <span class="cline-any cline-yes">72x</span>
1591
- <span class="cline-any cline-yes">72x</span>
1592
- <span class="cline-any cline-yes">72x</span>
1593
- <span class="cline-any cline-yes">72x</span>
1594
- <span class="cline-any cline-yes">72x</span>
1595
- <span class="cline-any cline-neutral">&nbsp;</span>
1596
- <span class="cline-any cline-yes">1x</span>
1597
- <span class="cline-any cline-yes">38x</span>
1598
- <span class="cline-any cline-yes">38x</span>
1599
- <span class="cline-any cline-yes">38x</span>
1600
- <span class="cline-any cline-yes">38x</span>
1601
- <span class="cline-any cline-yes">38x</span>
1602
- <span class="cline-any cline-yes">38x</span>
1603
- <span class="cline-any cline-yes">38x</span>
1604
- <span class="cline-any cline-yes">38x</span>
1605
- <span class="cline-any cline-yes">38x</span>
1606
- <span class="cline-any cline-yes">38x</span>
1607
- <span class="cline-any cline-yes">38x</span>
1608
- <span class="cline-any cline-yes">38x</span>
1609
- <span class="cline-any cline-yes">38x</span>
1610
- <span class="cline-any cline-yes">38x</span>
1611
- <span class="cline-any cline-yes">38x</span>
1612
- <span class="cline-any cline-yes">38x</span>
1613
- <span class="cline-any cline-yes">38x</span>
1614
- <span class="cline-any cline-yes">38x</span>
1615
- <span class="cline-any cline-neutral">&nbsp;</span>
1616
- <span class="cline-any cline-yes">1x</span>
1617
- <span class="cline-any cline-yes">38x</span>
1618
- <span class="cline-any cline-yes">38x</span>
1619
- <span class="cline-any cline-yes">38x</span>
1620
- <span class="cline-any cline-yes">38x</span>
1621
- <span class="cline-any cline-yes">38x</span>
1622
- <span class="cline-any cline-yes">38x</span>
1623
- <span class="cline-any cline-yes">38x</span>
1624
- <span class="cline-any cline-yes">38x</span>
1625
- <span class="cline-any cline-yes">38x</span>
1626
- <span class="cline-any cline-yes">38x</span>
1627
- <span class="cline-any cline-yes">38x</span>
1628
- <span class="cline-any cline-yes">38x</span>
1629
- <span class="cline-any cline-yes">38x</span>
1630
- <span class="cline-any cline-yes">38x</span>
1631
- <span class="cline-any cline-yes">38x</span>
1632
- <span class="cline-any cline-yes">38x</span>
1633
- <span class="cline-any cline-yes">38x</span>
1634
- <span class="cline-any cline-yes">38x</span>
1635
- <span class="cline-any cline-neutral">&nbsp;</span>
1636
- <span class="cline-any cline-yes">1x</span>
1637
- <span class="cline-any cline-yes">27x</span>
1638
- <span class="cline-any cline-yes">27x</span>
1639
- <span class="cline-any cline-yes">27x</span>
1640
- <span class="cline-any cline-yes">27x</span>
1641
- <span class="cline-any cline-yes">27x</span>
1642
- <span class="cline-any cline-yes">27x</span>
1643
- <span class="cline-any cline-yes">27x</span>
1644
- <span class="cline-any cline-yes">27x</span>
1645
- <span class="cline-any cline-yes">27x</span>
1646
- <span class="cline-any cline-yes">27x</span>
1647
- <span class="cline-any cline-neutral">&nbsp;</span>
1648
- <span class="cline-any cline-yes">1x</span>
1649
- <span class="cline-any cline-yes">72x</span>
1650
- <span class="cline-any cline-yes">72x</span>
1651
- <span class="cline-any cline-yes">72x</span>
1652
- <span class="cline-any cline-yes">72x</span>
1653
- <span class="cline-any cline-yes">72x</span>
1654
- <span class="cline-any cline-neutral">&nbsp;</span>
1655
- <span class="cline-any cline-yes">1x</span>
1656
- <span class="cline-any cline-yes">72x</span>
1657
- <span class="cline-any cline-yes">72x</span>
1658
- <span class="cline-any cline-yes">72x</span>
1659
- <span class="cline-any cline-yes">72x</span>
1660
- <span class="cline-any cline-yes">72x</span>
1661
- <span class="cline-any cline-yes">72x</span>
1662
- <span class="cline-any cline-yes">72x</span>
1663
- <span class="cline-any cline-yes">72x</span>
1664
- <span class="cline-any cline-yes">72x</span>
1665
- <span class="cline-any cline-yes">72x</span>
1666
- <span class="cline-any cline-yes">72x</span>
1667
- <span class="cline-any cline-yes">72x</span>
1668
- <span class="cline-any cline-yes">72x</span>
1669
- <span class="cline-any cline-yes">72x</span>
1670
- <span class="cline-any cline-yes">72x</span>
1671
- <span class="cline-any cline-yes">72x</span>
1672
- <span class="cline-any cline-yes">72x</span>
1673
- <span class="cline-any cline-yes">72x</span>
1674
- <span class="cline-any cline-yes">72x</span>
1675
- <span class="cline-any cline-neutral">&nbsp;</span>
1676
- <span class="cline-any cline-yes">1x</span>
1677
- <span class="cline-any cline-yes">27x</span>
1678
- <span class="cline-any cline-yes">27x</span>
1679
- <span class="cline-any cline-yes">27x</span>
1680
- <span class="cline-any cline-yes">27x</span>
1681
- <span class="cline-any cline-yes">27x</span>
1682
- <span class="cline-any cline-yes">27x</span>
1683
- <span class="cline-any cline-yes">27x</span>
1684
- <span class="cline-any cline-yes">27x</span>
1685
- <span class="cline-any cline-neutral">&nbsp;</span>
1686
- <span class="cline-any cline-yes">1x</span>
1687
- <span class="cline-any cline-yes">36x</span>
1688
- <span class="cline-any cline-yes">36x</span>
1689
- <span class="cline-any cline-yes">13x</span>
1690
- <span class="cline-any cline-yes">13x</span>
1691
- <span class="cline-any cline-yes">13x</span>
1692
- <span class="cline-any cline-yes">23x</span>
1693
- <span class="cline-any cline-yes">36x</span>
1694
- <span class="cline-any cline-neutral">&nbsp;</span>
1695
- <span class="cline-any cline-yes">1x</span>
1696
- <span class="cline-any cline-yes">36x</span>
1697
- <span class="cline-any cline-yes">36x</span>
1698
- <span class="cline-any cline-yes">36x</span>
1699
- <span class="cline-any cline-yes">36x</span>
1700
- <span class="cline-any cline-yes">36x</span>
1701
- <span class="cline-any cline-yes">36x</span>
1702
- <span class="cline-any cline-yes">36x</span>
1703
- <span class="cline-any cline-neutral">&nbsp;</span>
1704
- <span class="cline-any cline-yes">36x</span>
1705
- <span class="cline-any cline-neutral">&nbsp;</span>
1706
- <span class="cline-any cline-yes">36x</span>
1707
- <span class="cline-any cline-yes">36x</span>
1708
- <span class="cline-any cline-neutral">&nbsp;</span>
1709
- <span class="cline-any cline-yes">1x</span>
1710
- <span class="cline-any cline-yes">36x</span>
1711
- <span class="cline-any cline-yes">36x</span>
1712
- <span class="cline-any cline-yes">36x</span>
1713
- <span class="cline-any cline-yes">36x</span>
1714
- <span class="cline-any cline-yes">36x</span>
1715
- <span class="cline-any cline-yes">36x</span>
1716
- <span class="cline-any cline-yes">36x</span>
1717
- <span class="cline-any cline-yes">36x</span>
1718
- <span class="cline-any cline-yes">36x</span>
1719
- <span class="cline-any cline-yes">36x</span>
1720
- <span class="cline-any cline-yes">36x</span>
1721
- <span class="cline-any cline-yes">36x</span>
1722
- <span class="cline-any cline-yes">36x</span>
1723
- <span class="cline-any cline-yes">36x</span>
1724
- <span class="cline-any cline-yes">36x</span>
1725
- <span class="cline-any cline-yes">36x</span>
1726
- <span class="cline-any cline-yes">36x</span>
1727
- <span class="cline-any cline-neutral">&nbsp;</span>
1728
- <span class="cline-any cline-yes">1x</span>
1729
- <span class="cline-any cline-yes">162x</span>
1730
- <span class="cline-any cline-yes">162x</span>
1731
- <span class="cline-any cline-yes">162x</span>
1732
- <span class="cline-any cline-yes">162x</span>
1733
- <span class="cline-any cline-yes">162x</span>
1734
- <span class="cline-any cline-neutral">&nbsp;</span>
1735
- <span class="cline-any cline-yes">1x</span>
1736
- <span class="cline-any cline-yes">73x</span>
1737
- <span class="cline-any cline-yes">73x</span>
1738
- <span class="cline-any cline-neutral">&nbsp;</span>
1739
- <span class="cline-any cline-yes">1x</span>
1740
- <span class="cline-any cline-yes">57x</span>
1741
- <span class="cline-any cline-yes">57x</span>
1742
- <span class="cline-any cline-yes">58x</span>
1743
- <span class="cline-any cline-yes">54x</span>
1744
- <span class="cline-any cline-yes">54x</span>
1745
- <span class="cline-any cline-yes">58x</span>
1746
- <span class="cline-any cline-yes">57x</span>
1747
- <span class="cline-any cline-yes">57x</span>
1748
- <span class="cline-any cline-neutral">&nbsp;</span>
1749
- <span class="cline-any cline-yes">1x</span>
1750
- <span class="cline-any cline-yes">57x</span>
1751
- <span class="cline-any cline-yes">57x</span>
1752
- <span class="cline-any cline-yes">58x</span>
1753
- <span class="cline-any cline-yes">4x</span>
1754
- <span class="cline-any cline-yes">4x</span>
1755
- <span class="cline-any cline-yes">58x</span>
1756
- <span class="cline-any cline-yes">73x</span>
1757
- <span class="cline-any cline-yes">1x</span>
1758
- <span class="cline-any cline-yes">1x</span>
1759
- <span class="cline-any cline-yes">73x</span>
1760
- <span class="cline-any cline-yes">54x</span>
1761
- <span class="cline-any cline-yes">57x</span>
1762
- <span class="cline-any cline-yes">57x</span>
1763
- <span class="cline-any cline-neutral">&nbsp;</span>
1764
- <span class="cline-any cline-yes">1x</span>
1765
- <span class="cline-any cline-yes">57x</span>
1766
- <span class="cline-any cline-yes">57x</span>
1767
- <span class="cline-any cline-neutral">&nbsp;</span>
1768
- <span class="cline-any cline-yes">57x</span>
1769
- <span class="cline-any cline-yes">57x</span>
1770
- <span class="cline-any cline-yes">7x</span>
1771
- <span class="cline-any cline-yes">7x</span>
1772
- <span class="cline-any cline-yes">8x</span>
1773
- <span class="cline-any cline-yes">8x</span>
1774
- <span class="cline-any cline-yes">8x</span>
1775
- <span class="cline-any cline-yes">8x</span>
1776
- <span class="cline-any cline-yes">7x</span>
1777
- <span class="cline-any cline-neutral">&nbsp;</span>
1778
- <span class="cline-any cline-yes">57x</span>
1779
- <span class="cline-any cline-neutral">&nbsp;</span>
1780
- <span class="cline-any cline-yes">57x</span>
1781
- <span class="cline-any cline-yes">57x</span>
1782
- <span class="cline-any cline-neutral">&nbsp;</span>
1783
- <span class="cline-any cline-yes">1x</span>
1784
- <span class="cline-any cline-yes">23x</span>
1785
- <span class="cline-any cline-yes">23x</span>
1786
- <span class="cline-any cline-yes">23x</span>
1787
- <span class="cline-any cline-yes">23x</span>
1788
- <span class="cline-any cline-yes">23x</span>
1789
- <span class="cline-any cline-yes">23x</span>
1790
- <span class="cline-any cline-yes">23x</span>
1791
- <span class="cline-any cline-yes">23x</span>
1792
- <span class="cline-any cline-neutral">&nbsp;</span>
1793
- <span class="cline-any cline-yes">23x</span>
1794
- <span class="cline-any cline-yes">23x</span>
1795
- <span class="cline-any cline-yes">23x</span>
1796
- <span class="cline-any cline-yes">23x</span>
1797
- <span class="cline-any cline-neutral">&nbsp;</span>
1798
- <span class="cline-any cline-yes">23x</span>
1799
- <span class="cline-any cline-yes">23x</span>
1800
- <span class="cline-any cline-yes">23x</span>
1801
- <span class="cline-any cline-neutral">&nbsp;</span>
1802
- <span class="cline-any cline-yes">23x</span>
1803
- <span class="cline-any cline-yes">23x</span>
1804
- <span class="cline-any cline-neutral">&nbsp;</span>
1805
- <span class="cline-any cline-yes">1x</span>
1806
- <span class="cline-any cline-yes">57x</span>
1807
- <span class="cline-any cline-yes">57x</span>
1808
- <span class="cline-any cline-yes">57x</span>
1809
- <span class="cline-any cline-yes">57x</span>
1810
- <span class="cline-any cline-yes">57x</span>
1811
- <span class="cline-any cline-yes">57x</span>
1812
- <span class="cline-any cline-yes">57x</span>
1813
- <span class="cline-any cline-yes">57x</span>
1814
- <span class="cline-any cline-neutral">&nbsp;</span>
1815
- <span class="cline-any cline-yes">57x</span>
1816
- <span class="cline-any cline-yes">54x</span>
1817
- <span class="cline-any cline-yes">1x</span>
1818
- <span class="cline-any cline-yes">1x</span>
1819
- <span class="cline-any cline-yes">54x</span>
1820
- <span class="cline-any cline-yes">71x</span>
1821
- <span class="cline-any cline-yes">39x</span>
1822
- <span class="cline-any cline-yes">39x</span>
1823
- <span class="cline-any cline-yes">32x</span>
1824
- <span class="cline-any cline-yes">71x</span>
1825
- <span class="cline-any cline-yes">18x</span>
1826
- <span class="cline-any cline-yes">18x</span>
1827
- <span class="cline-any cline-yes">18x</span>
1828
- <span class="cline-any cline-yes">32x</span>
1829
- <span class="cline-any cline-yes">32x</span>
1830
- <span class="cline-any cline-yes">53x</span>
1831
- <span class="cline-any cline-neutral">&nbsp;</span>
1832
- <span class="cline-any cline-yes">57x</span>
1833
- <span class="cline-any cline-yes">57x</span>
1834
- <span class="cline-any cline-neutral">&nbsp;</span>
1835
- <span class="cline-any cline-yes">1x</span>
1836
- <span class="cline-any cline-yes">57x</span>
1837
- <span class="cline-any cline-yes">57x</span>
1838
- <span class="cline-any cline-yes">122x</span>
1839
- <span class="cline-any cline-yes">122x</span>
1840
- <span class="cline-any cline-yes">122x</span>
1841
- <span class="cline-any cline-yes">122x</span>
1842
- <span class="cline-any cline-neutral">&nbsp;</span>
1843
- <span class="cline-any cline-yes">57x</span>
1844
- <span class="cline-any cline-yes">122x</span>
1845
- <span class="cline-any cline-yes">3x</span>
1846
- <span class="cline-any cline-yes">3x</span>
1847
- <span class="cline-any cline-yes">122x</span>
1848
- <span class="cline-any cline-yes">75x</span>
1849
- <span class="cline-any cline-yes">75x</span>
1850
- <span class="cline-any cline-yes">6x</span>
1851
- <span class="cline-any cline-yes">6x</span>
1852
- <span class="cline-any cline-yes">75x</span>
1853
- <span class="cline-any cline-yes">113x</span>
1854
- <span class="cline-any cline-yes">57x</span>
1855
- <span class="cline-any cline-neutral">&nbsp;</span>
1856
- <span class="cline-any cline-yes">57x</span>
1857
- <span class="cline-any cline-yes">57x</span>
1858
- <span class="cline-any cline-neutral">&nbsp;</span>
1859
- <span class="cline-any cline-yes">1x</span>
1860
- <span class="cline-any cline-yes">75x</span>
1861
- <span class="cline-any cline-yes">75x</span>
1862
- <span class="cline-any cline-yes">75x</span>
1863
- <span class="cline-any cline-yes">75x</span>
1864
- <span class="cline-any cline-yes">75x</span>
1865
- <span class="cline-any cline-yes">75x</span>
1866
- <span class="cline-any cline-neutral">&nbsp;</span>
1867
- <span class="cline-any cline-yes">75x</span>
1868
- <span class="cline-any cline-yes">167x</span>
1869
- <span class="cline-any cline-yes">167x</span>
1870
- <span class="cline-any cline-yes">6x</span>
1871
- <span class="cline-any cline-yes">6x</span>
1872
- <span class="cline-any cline-yes">167x</span>
1873
- <span class="cline-any cline-yes">2x</span>
1874
- <span class="cline-any cline-yes">2x</span>
1875
- <span class="cline-any cline-yes">159x</span>
1876
- <span class="cline-any cline-neutral">&nbsp;</span>
1877
- <span class="cline-any cline-yes">167x</span>
1878
- <span class="cline-any cline-yes">167x</span>
1879
- <span class="cline-any cline-yes">100x</span>
1880
- <span class="cline-any cline-yes">93x</span>
1881
- <span class="cline-any cline-yes">93x</span>
1882
- <span class="cline-any cline-yes">100x</span>
1883
- <span class="cline-any cline-yes">159x</span>
1884
- <span class="cline-any cline-neutral">&nbsp;</span>
1885
- <span class="cline-any cline-yes">69x</span>
1886
- <span class="cline-any cline-yes">75x</span>
1887
- <span class="cline-any cline-neutral">&nbsp;</span>
1888
- <span class="cline-any cline-yes">1x</span>
1889
- <span class="cline-any cline-yes">57x</span>
1890
- <span class="cline-any cline-neutral">&nbsp;</span>
1891
- <span class="cline-any cline-yes">57x</span>
1892
- <span class="cline-any cline-yes">154x</span>
1893
- <span class="cline-any cline-yes">71x</span>
1894
- <span class="cline-any cline-yes">71x</span>
1895
- <span class="cline-any cline-yes">154x</span>
1896
- <span class="cline-any cline-yes">9x</span>
1897
- <span class="cline-any cline-yes">9x</span>
1898
- <span class="cline-any cline-yes">12x</span>
1899
- <span class="cline-any cline-yes">12x</span>
1900
- <span class="cline-any cline-yes">10x</span>
1901
- <span class="cline-any cline-yes">18x</span>
1902
- <span class="cline-any cline-yes">18x</span>
1903
- <span class="cline-any cline-yes">10x</span>
1904
- <span class="cline-any cline-yes">12x</span>
1905
- <span class="cline-any cline-yes">9x</span>
1906
- <span class="cline-any cline-yes">154x</span>
1907
- <span class="cline-any cline-neutral">&nbsp;</span>
1908
- <span class="cline-any cline-yes">57x</span>
1909
- <span class="cline-any cline-yes">57x</span>
1910
- <span class="cline-any cline-neutral">&nbsp;</span>
1911
- <span class="cline-any cline-yes">1x</span>
1912
- <span class="cline-any cline-yes">23x</span>
1913
- <span class="cline-any cline-yes">23x</span>
1914
- <span class="cline-any cline-yes">23x</span>
1915
- <span class="cline-any cline-yes">23x</span>
1916
- <span class="cline-any cline-yes">23x</span>
1917
- <span class="cline-any cline-yes">23x</span>
1918
- <span class="cline-any cline-yes">23x</span>
1919
- <span class="cline-any cline-yes">80x</span>
1920
- <span class="cline-any cline-yes">42x</span>
1921
- <span class="cline-any cline-yes">42x</span>
1922
- <span class="cline-any cline-yes">42x</span>
1923
- <span class="cline-any cline-yes">42x</span>
1924
- <span class="cline-any cline-yes">80x</span>
1925
- <span class="cline-any cline-yes">34x</span>
1926
- <span class="cline-any cline-yes">34x</span>
1927
- <span class="cline-any cline-yes">34x</span>
1928
- <span class="cline-any cline-yes">38x</span>
1929
- <span class="cline-any cline-yes">4x</span>
1930
- <span class="cline-any cline-yes">4x</span>
1931
- <span class="cline-any cline-yes">4x</span>
1932
- <span class="cline-any cline-yes">4x</span>
1933
- <span class="cline-any cline-yes">4x</span>
1934
- <span class="cline-any cline-yes">80x</span>
1935
- <span class="cline-any cline-yes">23x</span>
1936
- <span class="cline-any cline-neutral">&nbsp;</span>
1937
- <span class="cline-any cline-yes">1x</span>
1938
- <span class="cline-any cline-yes">23x</span>
1939
- <span class="cline-any cline-yes">23x</span>
1940
- <span class="cline-any cline-yes">23x</span>
1941
- <span class="cline-any cline-yes">23x</span>
1942
- <span class="cline-any cline-yes">23x</span>
1943
- <span class="cline-any cline-yes">59x</span>
1944
- <span class="cline-any cline-yes">59x</span>
1945
- <span class="cline-any cline-yes">59x</span>
1946
- <span class="cline-any cline-yes">2x</span>
1947
- <span class="cline-any cline-yes">2x</span>
1948
- <span class="cline-any cline-yes">59x</span>
1949
- <span class="cline-any cline-yes">57x</span>
1950
- <span class="cline-any cline-yes">57x</span>
1951
- <span class="cline-any cline-yes">59x</span>
1952
- <span class="cline-any cline-yes">59x</span>
1953
- <span class="cline-any cline-yes">23x</span>
1954
- <span class="cline-any cline-neutral">&nbsp;</span>
1955
- <span class="cline-any cline-yes">1x</span>
1956
- <span class="cline-any cline-yes">118x</span>
1957
- <span class="cline-any cline-yes">51x</span>
1958
- <span class="cline-any cline-yes">51x</span>
1959
- <span class="cline-any cline-yes">118x</span>
1960
- <span class="cline-any cline-yes">59x</span>
1961
- <span class="cline-any cline-yes">59x</span>
1962
- <span class="cline-any cline-yes">8x</span>
1963
- <span class="cline-any cline-yes">8x</span>
1964
- <span class="cline-any cline-yes">118x</span>
1965
- <span class="cline-any cline-neutral">&nbsp;</span>
1966
- <span class="cline-any cline-yes">1x</span>
1967
- <span class="cline-any cline-yes">23x</span>
1968
- <span class="cline-any cline-yes">23x</span>
1969
- <span class="cline-any cline-yes">23x</span>
1970
- <span class="cline-any cline-yes">23x</span>
1971
- <span class="cline-any cline-yes">23x</span>
1972
- <span class="cline-any cline-yes">23x</span>
1973
- <span class="cline-any cline-yes">23x</span>
1974
- <span class="cline-any cline-yes">23x</span>
1975
- <span class="cline-any cline-neutral">&nbsp;</span>
1976
- <span class="cline-any cline-yes">23x</span>
1977
- <span class="cline-any cline-yes">23x</span>
1978
- <span class="cline-any cline-yes">23x</span>
1979
- <span class="cline-any cline-yes">23x</span>
1980
- <span class="cline-any cline-yes">23x</span>
1981
- <span class="cline-any cline-neutral">&nbsp;</span>
1982
- <span class="cline-any cline-yes">23x</span>
1983
- <span class="cline-any cline-yes">21x</span>
1984
- <span class="cline-any cline-yes">21x</span>
1985
- <span class="cline-any cline-yes">23x</span>
1986
- <span class="cline-any cline-yes">6x</span>
1987
- <span class="cline-any cline-yes">6x</span>
1988
- <span class="cline-any cline-yes">23x</span>
1989
- <span class="cline-any cline-yes">23x</span>
1990
- <span class="cline-any cline-yes">23x</span>
1991
- <span class="cline-any cline-yes">23x</span>
1992
- <span class="cline-any cline-yes">4x</span>
1993
- <span class="cline-any cline-yes">4x</span>
1994
- <span class="cline-any cline-yes">23x</span>
1995
- <span class="cline-any cline-yes">2x</span>
1996
- <span class="cline-any cline-yes">2x</span>
1997
- <span class="cline-any cline-yes">23x</span>
1998
- <span class="cline-any cline-neutral">&nbsp;</span>
1999
- <span class="cline-any cline-yes">1x</span>
2000
- <span class="cline-any cline-yes">38x</span>
2001
- <span class="cline-any cline-yes">38x</span>
2002
- <span class="cline-any cline-neutral">&nbsp;</span>
2003
- <span class="cline-any cline-yes">36x</span>
2004
- <span class="cline-any cline-yes">38x</span>
2005
- <span class="cline-any cline-yes">27x</span>
2006
- <span class="cline-any cline-yes">27x</span>
2007
- <span class="cline-any cline-neutral">&nbsp;</span>
2008
- <span class="cline-any cline-yes">36x</span>
2009
- <span class="cline-any cline-yes">36x</span>
2010
- <span class="cline-any cline-neutral">&nbsp;</span>
2011
- <span class="cline-any cline-yes">36x</span>
2012
- <span class="cline-any cline-yes">36x</span>
2013
- <span class="cline-any cline-neutral">&nbsp;</span>
2014
- <span class="cline-any cline-yes">36x</span>
2015
- <span class="cline-any cline-yes">38x</span>
2016
- <span class="cline-any cline-neutral">&nbsp;</span>
2017
- <span class="cline-any cline-yes">38x</span>
2018
- <span class="cline-any cline-yes">38x</span>
2019
- <span class="cline-any cline-yes">36x</span>
2020
- <span class="cline-any cline-neutral">&nbsp;</span>
2021
- <span class="cline-any cline-yes">36x</span>
2022
- <span class="cline-any cline-yes">37x</span>
2023
- <span class="cline-any cline-yes">37x</span>
2024
- <span class="cline-any cline-yes">37x</span>
2025
- <span class="cline-any cline-yes">36x</span>
2026
- <span class="cline-any cline-neutral">&nbsp;</span>
2027
- <span class="cline-any cline-yes">36x</span>
2028
- <span class="cline-any cline-yes">36x</span>
2029
- <span class="cline-any cline-yes">37x</span>
2030
- <span class="cline-any cline-yes">36x</span>
2031
- <span class="cline-any cline-yes">36x</span>
2032
- <span class="cline-any cline-neutral">&nbsp;</span>
2033
- <span class="cline-any cline-yes">38x</span>
2034
- <span class="cline-any cline-yes">37x</span>
2035
- <span class="cline-any cline-neutral">&nbsp;</span>
2036
- <span class="cline-any cline-yes">37x</span>
2037
- <span class="cline-any cline-yes">37x</span>
2038
- <span class="cline-any cline-yes">32x</span>
2039
- <span class="cline-any cline-yes">32x</span>
2040
- <span class="cline-any cline-neutral">&nbsp;</span>
2041
- <span class="cline-any cline-yes">37x</span>
2042
- <span class="cline-any cline-yes">37x</span>
2043
- <span class="cline-any cline-neutral">&nbsp;</span>
2044
- <span class="cline-any cline-yes">36x</span>
2045
- <span class="cline-any cline-yes">38x</span>
2046
- <span class="cline-any cline-neutral">&nbsp;</span>
2047
- <span class="cline-any cline-yes">1x</span>
2048
- <span class="cline-any cline-yes">36x</span>
2049
- <span class="cline-any cline-yes">37x</span>
2050
- <span class="cline-any cline-yes">4x</span>
2051
- <span class="cline-any cline-yes">4x</span>
2052
- <span class="cline-any cline-yes">37x</span>
2053
- <span class="cline-any cline-yes">32x</span>
2054
- <span class="cline-any cline-yes">36x</span>
2055
- <span class="cline-any cline-neutral">&nbsp;</span>
2056
- <span class="cline-any cline-neutral">&nbsp;</span>
2057
- <span class="cline-any cline-neutral">&nbsp;</span>
2058
- <span class="cline-any cline-neutral">&nbsp;</span>
2059
- <span class="cline-any cline-neutral">&nbsp;</span>
2060
- <span class="cline-any cline-neutral">&nbsp;</span>
2061
- <span class="cline-any cline-neutral">&nbsp;</span>
2062
- <span class="cline-any cline-neutral">&nbsp;</span>
2063
- <span class="cline-any cline-neutral">&nbsp;</span>
2064
- <span class="cline-any cline-neutral">&nbsp;</span>
2065
- <span class="cline-any cline-neutral">&nbsp;</span>
2066
- <span class="cline-any cline-neutral">&nbsp;</span>
2067
- <span class="cline-any cline-neutral">&nbsp;</span>
2068
- <span class="cline-any cline-neutral">&nbsp;</span>
2069
- <span class="cline-any cline-neutral">&nbsp;</span>
2070
- <span class="cline-any cline-neutral">&nbsp;</span>
2071
- <span class="cline-any cline-neutral">&nbsp;</span>
2072
- <span class="cline-any cline-neutral">&nbsp;</span>
2073
- <span class="cline-any cline-neutral">&nbsp;</span>
2074
- <span class="cline-any cline-neutral">&nbsp;</span>
2075
- <span class="cline-any cline-neutral">&nbsp;</span>
2076
- <span class="cline-any cline-neutral">&nbsp;</span>
2077
- <span class="cline-any cline-neutral">&nbsp;</span>
2078
- <span class="cline-any cline-neutral">&nbsp;</span>
2079
- <span class="cline-any cline-neutral">&nbsp;</span>
2080
- <span class="cline-any cline-neutral">&nbsp;</span>
2081
- <span class="cline-any cline-yes">1x</span>
2082
- <span class="cline-any cline-yes">38x</span>
2083
- <span class="cline-any cline-yes">38x</span>
2084
- <span class="cline-any cline-yes">38x</span>
2085
- <span class="cline-any cline-yes">38x</span>
2086
- <span class="cline-any cline-neutral">&nbsp;</span>
2087
- <span class="cline-any cline-yes">1x</span>
2088
- <span class="cline-any cline-yes">38x</span>
2089
- <span class="cline-any cline-yes">38x</span>
2090
- <span class="cline-any cline-yes">38x</span>
2091
- <span class="cline-any cline-yes">1x</span>
2092
- <span class="cline-any cline-yes">1x</span>
2093
- <span class="cline-any cline-yes">1x</span>
2094
- <span class="cline-any cline-yes">1x</span>
2095
- <span class="cline-any cline-yes">1x</span>
2096
- <span class="cline-any cline-yes">1x</span>
2097
- <span class="cline-any cline-yes">1x</span>
2098
- <span class="cline-any cline-yes">1x</span>
2099
- <span class="cline-any cline-yes">1x</span>
2100
- <span class="cline-any cline-yes">1x</span>
2101
- <span class="cline-any cline-yes">38x</span>
2102
- <span class="cline-any cline-yes">2x</span>
2103
- <span class="cline-any cline-yes">2x</span>
2104
- <span class="cline-any cline-yes">2x</span>
2105
- <span class="cline-any cline-yes">2x</span>
2106
- <span class="cline-any cline-yes">2x</span>
2107
- <span class="cline-any cline-yes">2x</span>
2108
- <span class="cline-any cline-yes">2x</span>
2109
- <span class="cline-any cline-yes">2x</span>
2110
- <span class="cline-any cline-yes">2x</span>
2111
- <span class="cline-any cline-yes">2x</span>
2112
- <span class="cline-any cline-neutral">&nbsp;</span>
2113
- <span class="cline-any cline-neutral">&nbsp;</span>
2114
- <span class="cline-any cline-neutral">&nbsp;</span>
2115
- <span class="cline-any cline-neutral">&nbsp;</span>
2116
- <span class="cline-any cline-yes">38x</span>
2117
- <span class="cline-any cline-yes">38x</span>
2118
- <span class="cline-any cline-neutral">&nbsp;</span>
2119
- <span class="cline-any cline-neutral">&nbsp;</span>
2120
- <span class="cline-any cline-neutral">&nbsp;</span>
2121
- <span class="cline-any cline-neutral">&nbsp;</span>
2122
- <span class="cline-any cline-neutral">&nbsp;</span>
2123
- <span class="cline-any cline-neutral">&nbsp;</span>
2124
- <span class="cline-any cline-neutral">&nbsp;</span>
2125
- <span class="cline-any cline-neutral">&nbsp;</span>
2126
- <span class="cline-any cline-neutral">&nbsp;</span>
2127
- <span class="cline-any cline-neutral">&nbsp;</span>
2128
- <span class="cline-any cline-neutral">&nbsp;</span>
2129
- <span class="cline-any cline-neutral">&nbsp;</span>
2130
- <span class="cline-any cline-neutral">&nbsp;</span>
2131
- <span class="cline-any cline-yes">1x</span>
2132
- <span class="cline-any cline-yes">5x</span>
2133
- <span class="cline-any cline-neutral">&nbsp;</span>
2134
- <span class="cline-any cline-neutral">&nbsp;</span>
2135
- <span class="cline-any cline-neutral">&nbsp;</span>
2136
- <span class="cline-any cline-neutral">&nbsp;</span>
2137
- <span class="cline-any cline-neutral">&nbsp;</span>
2138
- <span class="cline-any cline-neutral">&nbsp;</span>
2139
- <span class="cline-any cline-neutral">&nbsp;</span>
2140
- <span class="cline-any cline-neutral">&nbsp;</span>
2141
- <span class="cline-any cline-neutral">&nbsp;</span>
2142
- <span class="cline-any cline-neutral">&nbsp;</span>
2143
- <span class="cline-any cline-neutral">&nbsp;</span>
2144
- <span class="cline-any cline-neutral">&nbsp;</span>
2145
- <span class="cline-any cline-neutral">&nbsp;</span>
2146
- <span class="cline-any cline-neutral">&nbsp;</span>
2147
- <span class="cline-any cline-neutral">&nbsp;</span>
2148
- <span class="cline-any cline-neutral">&nbsp;</span>
2149
- <span class="cline-any cline-neutral">&nbsp;</span>
2150
- <span class="cline-any cline-neutral">&nbsp;</span>
2151
- <span class="cline-any cline-neutral">&nbsp;</span>
2152
- <span class="cline-any cline-neutral">&nbsp;</span>
2153
- <span class="cline-any cline-neutral">&nbsp;</span>
2154
- <span class="cline-any cline-neutral">&nbsp;</span>
2155
- <span class="cline-any cline-neutral">&nbsp;</span>
2156
- <span class="cline-any cline-neutral">&nbsp;</span>
2157
- <span class="cline-any cline-neutral">&nbsp;</span>
2158
- <span class="cline-any cline-neutral">&nbsp;</span>
2159
- <span class="cline-any cline-neutral">&nbsp;</span>
2160
- <span class="cline-any cline-neutral">&nbsp;</span>
2161
- <span class="cline-any cline-neutral">&nbsp;</span>
2162
- <span class="cline-any cline-neutral">&nbsp;</span>
2163
- <span class="cline-any cline-neutral">&nbsp;</span>
2164
- <span class="cline-any cline-neutral">&nbsp;</span>
2165
- <span class="cline-any cline-neutral">&nbsp;</span>
2166
- <span class="cline-any cline-neutral">&nbsp;</span>
2167
- <span class="cline-any cline-neutral">&nbsp;</span>
2168
- <span class="cline-any cline-neutral">&nbsp;</span>
2169
- <span class="cline-any cline-neutral">&nbsp;</span>
2170
- <span class="cline-any cline-neutral">&nbsp;</span>
2171
- <span class="cline-any cline-yes">5x</span>
2172
- <span class="cline-any cline-neutral">&nbsp;</span>
2173
- <span class="cline-any cline-neutral">&nbsp;</span>
2174
- <span class="cline-any cline-neutral">&nbsp;</span>
2175
- <span class="cline-any cline-neutral">&nbsp;</span>
2176
- <span class="cline-any cline-yes">5x</span>
2177
- <span class="cline-any cline-yes">1x</span>
2178
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { createServer, type Server as HttpServer } from 'node:http';
2179
- import {
2180
- type Command,
2181
- type CommandHandler,
2182
- createMessageBus,
2183
- type Event,
2184
- type MessageBus,
2185
- } from '@auto-engineer/message-bus';
2186
- import cors from 'cors';
2187
- import express from 'express';
2188
- import getPort from 'get-port';
2189
- import { nanoid } from 'nanoid';
2190
- import type { Pipeline } from '../builder/define';
2191
- import { filterGraph } from '../graph/filter-graph';
2192
- import type { FilterOptions, GraphIR, GraphNode, NodeStatus, NodeType } from '../graph/types';
2193
- import type { PipelineContext } from '../runtime/context';
2194
- import type { EventDefinition } from '../runtime/event-command-map';
2195
- import { EventCommandMapper } from '../runtime/event-command-map';
2196
- import { PhasedExecutor } from '../runtime/phased-executor';
2197
- import { PipelineRuntime } from '../runtime/pipeline-runtime';
2198
- import { SettledTracker } from '../runtime/settled-tracker';
2199
- import { createPipelineEventStore, type PipelineEventStoreContext } from '../store/pipeline-event-store';
2200
- import { SSEManager } from './sse-manager';
2201
- &nbsp;
2202
- export type { EventDefinition };
2203
- &nbsp;
2204
- export interface CommandHandlerWithMetadata extends CommandHandler {
2205
- alias?: string;
2206
- description?: string;
2207
- displayName?: string;
2208
- fields?: Record&lt;string, unknown&gt;;
2209
- examples?: unknown[];
2210
- events?: EventDefinition[];
2211
- }
2212
- &nbsp;
2213
- export interface PipelineServerConfig {
2214
- port: number;
2215
- }
2216
- &nbsp;
2217
- interface EventWithCorrelation extends Event {
2218
- correlationId: string;
2219
- }
2220
- &nbsp;
2221
- export class PipelineServer {
2222
- private app: express.Application;
2223
- private httpServer: HttpServer;
2224
- private messageBus: MessageBus;
2225
- private readonly commandHandlers: Map&lt;string, CommandHandlerWithMetadata&gt; = new Map();
2226
- private readonly pipelines: Map&lt;string, Pipeline&gt; = new Map();
2227
- private readonly runtimes: Map&lt;string, PipelineRuntime&gt; = new Map();
2228
- private actualPort: number;
2229
- private readonly requestedPort: number;
2230
- private readonly settledTracker: SettledTracker;
2231
- private readonly eventCommandMapper: EventCommandMapper;
2232
- private readonly phasedExecutor: PhasedExecutor;
2233
- private readonly sseManager: SSEManager;
2234
- private readonly eventStoreContext: PipelineEventStoreContext;
2235
- private readonly itemKeyExtractors = new Map&lt;string, (data: unknown) =&gt; string | undefined&gt;();
2236
- private readonly middleware: express.RequestHandler[] = [];
2237
- &nbsp;
2238
- constructor(config: PipelineServerConfig) {
2239
- this.requestedPort = config.port;
2240
- this.actualPort = config.port;
2241
- this.app = express();
2242
- this.app.use(cors());
2243
- this.app.use(express.json());
2244
- this.httpServer = createServer(this.app);
2245
- this.messageBus = createMessageBus();
2246
- this.eventStoreContext = createPipelineEventStore();
2247
- this.eventCommandMapper = new EventCommandMapper([]);
2248
- this.settledTracker = new SettledTracker({
2249
- readModel: this.eventStoreContext.readModel,
2250
- /* v8 ignore next 3 - integration callback tested via settled-tracker.specs.ts */
2251
- onDispatch: (commandType, data, correlationId) =&gt; {
2252
- void this.dispatchFromSettled(commandType, data, correlationId);
2253
- },
2254
- /* v8 ignore next 4 - integration callback tested via settled-tracker.specs.ts */
2255
- onEventEmit: async (event) =&gt; {
2256
- const correlationId = event.data.correlationId;
2257
- await this.eventStoreContext.eventStore.appendToStream(`pipeline-${correlationId}`, [event]);
2258
- },
2259
- });
2260
- this.phasedExecutor = new PhasedExecutor({
2261
- readModel: this.eventStoreContext.readModel,
2262
- /* v8 ignore next 3 - integration callback tested via phased-executor.specs.ts */
2263
- onDispatch: (commandType, data, correlationId) =&gt; {
2264
- void this.dispatchFromSettled(commandType, data, correlationId);
2265
- },
2266
- /* v8 ignore next 3 - integration callback tested via phased-executor.specs.ts */
2267
- onComplete: (event, correlationId) =&gt; {
2268
- void this.handlePhasedComplete(event, correlationId);
2269
- },
2270
- /* v8 ignore next 5 - integration callback tested via phased-executor.specs.ts */
2271
- onEventEmit: async (event) =&gt; {
2272
- const data = event.data as Record&lt;string, unknown&gt;;
2273
- const correlationId =
2274
- (data.correlationId as string) ?? (data.executionId as string)?.split('-')[1] ?? 'default';
2275
- await this.eventStoreContext.eventStore.appendToStream(`pipeline-${correlationId}`, [event]);
2276
- },
2277
- });
2278
- this.sseManager = new SSEManager();
2279
- }
2280
- &nbsp;
2281
- get port(): number {
2282
- return this.actualPort;
2283
- }
2284
- &nbsp;
2285
- registerCommandHandlers(handlers: CommandHandlerWithMetadata[]): void {
2286
- for (const handler of handlers) {
2287
- this.commandHandlers.set(handler.name, handler);
2288
- this.messageBus.registerCommandHandler(handler);
2289
- this.eventCommandMapper.addHandler(handler);
2290
- }
2291
- }
2292
- &nbsp;
2293
- getRegisteredCommands(): string[] {
2294
- return Array.from(this.commandHandlers.keys());
2295
- }
2296
- &nbsp;
2297
- registerItemKeyExtractor(commandType: string, extractor: (data: unknown) =&gt; string | undefined): void {
2298
- this.itemKeyExtractors.set(commandType, extractor);
2299
- }
2300
- &nbsp;
2301
- registerPipeline(pipeline: Pipeline): void {
2302
- this.pipelines.set(pipeline.descriptor.name, pipeline);
2303
- this.runtimes.set(pipeline.descriptor.name, new PipelineRuntime(pipeline.descriptor));
2304
- &nbsp;
2305
- for (const handler of pipeline.descriptor.handlers) {
2306
- if (handler.type === 'settled') {
2307
- this.settledTracker.registerHandler({
2308
- commandTypes: handler.commandTypes,
2309
- handler: handler.handler,
2310
- });
2311
- }
2312
- }
2313
- }
2314
- &nbsp;
2315
- getPipelineNames(): string[] {
2316
- return Array.from(this.pipelines.keys());
2317
- }
2318
- &nbsp;
2319
- use(handler: express.RequestHandler): this {
2320
- this.middleware.push(handler);
2321
- return this;
2322
- }
2323
- &nbsp;
2324
- async start(): Promise&lt;void&gt; {
2325
- if (this.requestedPort === 0) {
2326
- this.actualPort = await getPort();
2327
- }
2328
- &nbsp;
2329
- for (const handler of this.middleware) {
2330
- this.app.use(handler);
2331
- }
2332
- &nbsp;
2333
- this.setupRoutes();
2334
- &nbsp;
2335
- await new Promise&lt;void&gt;((resolve) =&gt; {
2336
- this.httpServer.listen(this.actualPort, () =&gt; {
2337
- resolve();
2338
- });
2339
- });
2340
- }
2341
- &nbsp;
2342
- async stop(): Promise&lt;void&gt; {
2343
- this.sseManager.closeAll();
2344
- await new Promise&lt;void&gt;((resolve) =&gt; {
2345
- this.httpServer.close(() =&gt; resolve());
2346
- });
2347
- }
2348
- &nbsp;
2349
- private setupRoutes(): void {
2350
- this.app.get('/health', (_req, res) =&gt; {
2351
- res.json({
2352
- status: 'healthy',
2353
- uptime: process.uptime(),
2354
- timestamp: new Date().toISOString(),
2355
- });
2356
- });
2357
- &nbsp;
2358
- this.app.get('/registry', (_req, res) =&gt; {
2359
- const eventHandlers: string[] = [];
2360
- for (const pipeline of this.pipelines.values()) {
2361
- for (const handler of pipeline.descriptor.handlers) {
2362
- if (handler.type === 'settled') {
2363
- continue;
2364
- }
2365
- if (!eventHandlers.includes(handler.eventType)) {
2366
- eventHandlers.push(handler.eventType);
2367
- }
2368
- }
2369
- }
2370
- &nbsp;
2371
- const commandsWithMetadata = Array.from(this.commandHandlers.entries()).map(([name, handler]) =&gt; {
2372
- const alias = handler.alias ?? name;
2373
- const description = handler.description ?? '';
2374
- const fields = handler.fields ?? {};
2375
- const examples = handler.examples ?? [];
2376
- return { id: alias, name, alias, description, fields, examples };
2377
- });
2378
- &nbsp;
2379
- res.json({
2380
- eventHandlers,
2381
- commandHandlers: Array.from(this.commandHandlers.keys()),
2382
- commandsWithMetadata,
2383
- folds: [],
2384
- });
2385
- });
2386
- &nbsp;
2387
- this.app.get('/pipeline', (req, res) =&gt; {
2388
- void (async () =&gt; {
2389
- const commandToEvents = this.buildCommandToEvents();
2390
- const rawGraph = this.buildCombinedGraph();
2391
- const pipelineEvents = this.extractPipelineEvents(rawGraph, commandToEvents);
2392
- const graphWithEvents = this.addCommandEventEdgesToGraph(rawGraph, commandToEvents, pipelineEvents);
2393
- const graphWithEnrichedEvents = this.enrichEventLabels(graphWithEvents);
2394
- const completeGraph = this.markBackLinks(graphWithEnrichedEvents);
2395
- const filterOptions = this.parseFilterOptions(req.query);
2396
- const filteredGraph = filterGraph(completeGraph, filterOptions);
2397
- const correlationId = req.query.correlationId as string | undefined;
2398
- const graphWithStatus = await this.addStatusToCommandNodes(filteredGraph, correlationId);
2399
- &nbsp;
2400
- const latestRun = await this.eventStoreContext.readModel.getLatestCorrelationId();
2401
- res.json({
2402
- nodes: graphWithStatus.nodes,
2403
- edges: graphWithStatus.edges,
2404
- latestRun,
2405
- });
2406
- })();
2407
- });
2408
- &nbsp;
2409
- this.app.get('/pipeline/mermaid', (req, res) =&gt; {
2410
- const filterOptions = this.parseFilterOptions(req.query);
2411
- const mermaid = this.buildMermaidDiagram(filterOptions);
2412
- res.type('text/plain').send(mermaid);
2413
- });
2414
- &nbsp;
2415
- this.app.get('/pipeline/diagram', (req, res) =&gt; {
2416
- const filterOptions = this.parseFilterOptions(req.query);
2417
- const mermaidDefinition = this.buildMermaidDiagram(filterOptions);
2418
- const html = this.buildDiagramHtml(mermaidDefinition);
2419
- res.type('text/html').send(html);
2420
- });
2421
- &nbsp;
2422
- this.app.post('/command', (req, res) =&gt; {
2423
- void (async () =&gt; {
2424
- const command = req.body as Command;
2425
- &nbsp;
2426
- if (!this.commandHandlers.has(command.type)) {
2427
- res.status(404).json({
2428
- status: 'nack',
2429
- error: `Command handler not found: ${command.type}`,
2430
- });
2431
- return;
2432
- }
2433
- &nbsp;
2434
- const requestId = command.requestId ?? `req-${nanoid()}`;
2435
- const correlationId = command.correlationId ?? `corr-${nanoid()}`;
2436
- const commandWithIds: Command &amp; { correlationId: string; requestId: string } = {
2437
- ...command,
2438
- requestId,
2439
- correlationId,
2440
- };
2441
- &nbsp;
2442
- await this.emitCommandDispatched(correlationId, requestId, commandWithIds.type, commandWithIds.data);
2443
- &nbsp;
2444
- void this.processCommand(commandWithIds);
2445
- &nbsp;
2446
- res.json({
2447
- status: 'ack',
2448
- commandId: commandWithIds.requestId,
2449
- correlationId: commandWithIds.correlationId,
2450
- timestamp: new Date().toISOString(),
2451
- });
2452
- })();
2453
- });
2454
- &nbsp;
2455
- this.app.get('/messages', (_req, res) =&gt; {
2456
- void (async () =&gt; {
2457
- const messages = await this.eventStoreContext.readModel.getMessages();
2458
- const serialized = messages.map((m, index) =&gt; ({
2459
- message: {
2460
- type: m.messageName,
2461
- data: m.messageData,
2462
- correlationId: m.correlationId,
2463
- requestId: m.requestId,
2464
- },
2465
- messageType: m.messageType,
2466
- revision: String(index),
2467
- position: String(index),
2468
- }));
2469
- res.json(serialized);
2470
- })();
2471
- });
2472
- &nbsp;
2473
- this.app.get('/stats', (_req, res) =&gt; {
2474
- void (async () =&gt; {
2475
- const stats = await this.eventStoreContext.readModel.getStats();
2476
- res.json(stats);
2477
- })();
2478
- });
2479
- &nbsp;
2480
- this.app.get('/events', (req, res) =&gt; {
2481
- const clientId = `sse-${nanoid()}`;
2482
- const correlationIdFilter = req.query.correlationId as string | undefined;
2483
- this.sseManager.addClient(clientId, res, correlationIdFilter);
2484
- });
2485
- &nbsp;
2486
- this.app.post('/execute', (req, res) =&gt; {
2487
- void (async () =&gt; {
2488
- const { command, payload } = req.body as {
2489
- command: string;
2490
- payload: Record&lt;string, unknown&gt;;
2491
- };
2492
- &nbsp;
2493
- const handler = this.commandHandlers.get(command);
2494
- if (!handler) {
2495
- res.status(400).json({ error: `Unknown command: ${command}` });
2496
- return;
2497
- }
2498
- &nbsp;
2499
- const resultEvent = await handler.handle({ type: command, data: payload });
2500
- const events = Array.isArray(resultEvent) ? resultEvent : [resultEvent];
2501
- const firstEvent = events[0];
2502
- &nbsp;
2503
- res.json({ event: firstEvent.type, data: firstEvent.data });
2504
- })();
2505
- });
2506
- }
2507
- &nbsp;
2508
- private buildCombinedGraph(): GraphIR {
2509
- const combinedGraph: GraphIR = { nodes: [], edges: [] };
2510
- const nodeSet = new Set&lt;string&gt;();
2511
- &nbsp;
2512
- for (const pipeline of this.pipelines.values()) {
2513
- const graph = pipeline.toGraph();
2514
- for (const node of graph.nodes) {
2515
- if (!nodeSet.has(node.id)) {
2516
- nodeSet.add(node.id);
2517
- combinedGraph.nodes.push(node);
2518
- }
2519
- }
2520
- combinedGraph.edges.push(...graph.edges);
2521
- }
2522
- &nbsp;
2523
- return this.enrichCommandLabels(combinedGraph);
2524
- }
2525
- &nbsp;
2526
- private enrichCommandLabels(graph: GraphIR): GraphIR {
2527
- return {
2528
- nodes: graph.nodes.map((node) =&gt; {
2529
- if (node.type !== 'command') {
2530
- return node;
2531
- }
2532
- const handler = this.commandHandlers.get(node.label);
2533
- if (handler?.displayName === undefined) {
2534
- return node;
2535
- }
2536
- return { ...node, label: handler.displayName };
2537
- }),
2538
- edges: graph.edges,
2539
- };
2540
- }
2541
- &nbsp;
2542
- private enrichEventLabels(graph: GraphIR): GraphIR {
2543
- const eventDisplayNames = this.buildEventDisplayNames();
2544
- return {
2545
- nodes: graph.nodes.map((node) =&gt; {
2546
- if (node.type !== 'event') {
2547
- return node;
2548
- }
2549
- const displayName = eventDisplayNames.get(node.label);
2550
- if (displayName === undefined) {
2551
- return node;
2552
- }
2553
- return { ...node, label: displayName };
2554
- }),
2555
- edges: graph.edges,
2556
- };
2557
- }
2558
- &nbsp;
2559
- private async addStatusToCommandNodes(graph: GraphIR, correlationId?: string): Promise&lt;GraphIR&gt; {
2560
- const nodesWithStatus = await Promise.all(
2561
- graph.nodes.map(async (node) =&gt; {
2562
- if (node.type === 'command') {
2563
- return this.addStatusToCommandNode(node, correlationId);
2564
- }
2565
- if (node.type === 'settled') {
2566
- return this.addStatusToSettledNode(node, correlationId);
2567
- }
2568
- return node;
2569
- }),
2570
- );
2571
- return {
2572
- nodes: nodesWithStatus,
2573
- edges: graph.edges,
2574
- };
2575
- }
2576
- &nbsp;
2577
- private async addStatusToCommandNode(node: GraphNode, correlationId?: string): Promise&lt;GraphNode&gt; {
2578
- const commandName = node.id.replace(/^cmd:/, '');
2579
- if (correlationId === undefined) {
2580
- return { ...node, status: 'idle' as NodeStatus, pendingCount: 0, endedCount: 0 };
2581
- }
2582
- const stats = await this.computeCommandStats(correlationId, commandName);
2583
- return {
2584
- ...node,
2585
- status: stats.aggregateStatus,
2586
- pendingCount: stats.pendingCount,
2587
- endedCount: stats.endedCount,
2588
- };
2589
- }
2590
- &nbsp;
2591
- private async addStatusToSettledNode(node: GraphNode, correlationId?: string): Promise&lt;GraphNode&gt; {
2592
- if (correlationId === undefined) {
2593
- return { ...node, status: 'idle' as NodeStatus, pendingCount: 0, endedCount: 0 };
2594
- }
2595
- const commandTypes = node.id.replace(/^settled:/, '');
2596
- const templateId = `template-${commandTypes}`;
2597
- const stats = await this.eventStoreContext.readModel.computeSettledStats(correlationId, templateId);
2598
- return {
2599
- ...node,
2600
- status: stats.status,
2601
- pendingCount: stats.pendingCount,
2602
- endedCount: stats.endedCount,
2603
- };
2604
- }
2605
- &nbsp;
2606
- private async emitItemStatusChanged(
2607
- correlationId: string,
2608
- commandType: string,
2609
- itemKey: string,
2610
- requestId: string,
2611
- status: 'running' | 'success' | 'error',
2612
- attemptCount: number,
2613
- ): Promise&lt;void&gt; {
2614
- await this.eventStoreContext.eventStore.appendToStream(`pipeline-${correlationId}`, [
2615
- {
2616
- type: 'ItemStatusChanged',
2617
- data: {
2618
- correlationId,
2619
- commandType,
2620
- itemKey,
2621
- requestId,
2622
- status,
2623
- attemptCount,
2624
- },
2625
- },
2626
- ]);
2627
- }
2628
- &nbsp;
2629
- private async emitNodeStatusChanged(
2630
- correlationId: string,
2631
- commandName: string,
2632
- status: NodeStatus,
2633
- previousStatus: NodeStatus,
2634
- ): Promise&lt;void&gt; {
2635
- const stats = await this.computeCommandStats(correlationId, commandName);
2636
- await this.eventStoreContext.eventStore.appendToStream(`pipeline-${correlationId}`, [
2637
- {
2638
- type: 'NodeStatusChanged',
2639
- data: {
2640
- correlationId,
2641
- commandName,
2642
- nodeId: `cmd:${commandName}`,
2643
- status,
2644
- previousStatus,
2645
- pendingCount: stats.pendingCount,
2646
- endedCount: stats.endedCount,
2647
- },
2648
- },
2649
- ]);
2650
- }
2651
- &nbsp;
2652
- private async emitCommandDispatched(
2653
- correlationId: string,
2654
- requestId: string,
2655
- commandType: string,
2656
- commandData: Record&lt;string, unknown&gt;,
2657
- ): Promise&lt;void&gt; {
2658
- await this.eventStoreContext.eventStore.appendToStream(`pipeline-${correlationId}`, [
2659
- {
2660
- type: 'CommandDispatched',
2661
- data: {
2662
- correlationId,
2663
- requestId,
2664
- commandType,
2665
- commandData,
2666
- timestamp: new Date(),
2667
- },
2668
- },
2669
- ]);
2670
- }
2671
- &nbsp;
2672
- private async emitDomainEventEmitted(
2673
- correlationId: string,
2674
- requestId: string,
2675
- eventType: string,
2676
- eventData: Record&lt;string, unknown&gt;,
2677
- ): Promise&lt;void&gt; {
2678
- await this.eventStoreContext.eventStore.appendToStream(`pipeline-${correlationId}`, [
2679
- {
2680
- type: 'DomainEventEmitted',
2681
- data: {
2682
- correlationId,
2683
- requestId,
2684
- eventType,
2685
- eventData,
2686
- timestamp: new Date(),
2687
- },
2688
- },
2689
- ]);
2690
- }
2691
- &nbsp;
2692
- private async emitPipelineRunStarted(correlationId: string, triggerCommand: string): Promise&lt;void&gt; {
2693
- await this.eventStoreContext.eventStore.appendToStream(`pipeline-${correlationId}`, [
2694
- {
2695
- type: 'PipelineRunStarted',
2696
- data: {
2697
- correlationId,
2698
- triggerCommand,
2699
- },
2700
- },
2701
- ]);
2702
- }
2703
- &nbsp;
2704
- private async updateNodeStatus(correlationId: string, commandName: string, status: NodeStatus): Promise&lt;void&gt; {
2705
- const existing = await this.eventStoreContext.readModel.getNodeStatus(correlationId, commandName);
2706
- const previousStatus: NodeStatus = existing?.status ?? 'idle';
2707
- await this.emitNodeStatusChanged(correlationId, commandName, status, previousStatus);
2708
- await this.broadcastNodeStatusChanged(correlationId, commandName, status, previousStatus);
2709
- }
2710
- &nbsp;
2711
- private async broadcastNodeStatusChanged(
2712
- correlationId: string,
2713
- commandName: string,
2714
- status: NodeStatus,
2715
- previousStatus: NodeStatus,
2716
- ): Promise&lt;void&gt; {
2717
- const stats = await this.computeCommandStats(correlationId, commandName);
2718
- const event: Event &amp; { correlationId: string } = {
2719
- type: 'NodeStatusChanged',
2720
- data: {
2721
- nodeId: `cmd:${commandName}`,
2722
- status,
2723
- previousStatus,
2724
- pendingCount: stats.pendingCount,
2725
- endedCount: stats.endedCount,
2726
- },
2727
- correlationId,
2728
- };
2729
- this.sseManager.broadcast(event);
2730
- }
2731
- &nbsp;
2732
- private async broadcastPipelineRunStarted(correlationId: string, triggerCommand: string): Promise&lt;void&gt; {
2733
- const event: Event &amp; { correlationId: string } = {
2734
- type: 'PipelineRunStarted',
2735
- data: { correlationId, triggerCommand },
2736
- correlationId,
2737
- };
2738
- this.sseManager.broadcast(event);
2739
- await this.emitPipelineRunStarted(correlationId, triggerCommand);
2740
- }
2741
- &nbsp;
2742
- private extractItemKey(commandType: string, data: unknown, requestId: string): string {
2743
- const extractor = this.itemKeyExtractors.get(commandType);
2744
- if (extractor !== undefined) {
2745
- const key = extractor(data);
2746
- if (key !== undefined) return key;
2747
- }
2748
- return requestId;
2749
- }
2750
- &nbsp;
2751
- private async getOrCreateItemStatus(
2752
- correlationId: string,
2753
- commandType: string,
2754
- itemKey: string,
2755
- requestId: string,
2756
- ): Promise&lt;{ attemptCount: number }&gt; {
2757
- const existing = await this.eventStoreContext.readModel.getItemStatus(correlationId, commandType, itemKey);
2758
- const attemptCount = (existing?.attemptCount ?? 0) + 1;
2759
- &nbsp;
2760
- await this.emitItemStatusChanged(correlationId, commandType, itemKey, requestId, 'running', attemptCount);
2761
- &nbsp;
2762
- return { attemptCount };
2763
- }
2764
- &nbsp;
2765
- private async updateItemStatus(
2766
- correlationId: string,
2767
- commandType: string,
2768
- itemKey: string,
2769
- status: 'running' | 'success' | 'error',
2770
- ): Promise&lt;void&gt; {
2771
- const existing = await this.eventStoreContext.readModel.getItemStatus(correlationId, commandType, itemKey);
2772
- if (existing !== null) {
2773
- await this.emitItemStatusChanged(
2774
- correlationId,
2775
- commandType,
2776
- itemKey,
2777
- existing.currentRequestId,
2778
- status,
2779
- existing.attemptCount,
2780
- );
2781
- }
2782
- }
2783
- &nbsp;
2784
- private async computeCommandStats(
2785
- correlationId: string,
2786
- commandType: string,
2787
- ): Promise&lt;{ pendingCount: number; endedCount: number; aggregateStatus: NodeStatus }&gt; {
2788
- return this.eventStoreContext.readModel.computeCommandStats(correlationId, commandType);
2789
- }
2790
- &nbsp;
2791
- private getEventName(event: EventDefinition): string {
2792
- return typeof event === 'string' ? event : event.name;
2793
- }
2794
- &nbsp;
2795
- private buildCommandToEvents(): Record&lt;string, string[]&gt; {
2796
- const commandToEvents: Record&lt;string, string[]&gt; = {};
2797
- for (const [name, handler] of this.commandHandlers.entries()) {
2798
- if (handler.events !== undefined &amp;&amp; Array.isArray(handler.events)) {
2799
- commandToEvents[name] = handler.events.map((e) =&gt; this.getEventName(e));
2800
- }
2801
- }
2802
- return commandToEvents;
2803
- }
2804
- &nbsp;
2805
- private buildEventDisplayNames(): Map&lt;string, string&gt; {
2806
- const eventDisplayNames = new Map&lt;string, string&gt;();
2807
- for (const handler of this.commandHandlers.values()) {
2808
- if (handler.events === undefined) {
2809
- continue;
2810
- }
2811
- for (const event of handler.events) {
2812
- if (typeof event !== 'string' &amp;&amp; event.displayName !== undefined) {
2813
- eventDisplayNames.set(event.name, event.displayName);
2814
- }
2815
- }
2816
- }
2817
- return eventDisplayNames;
2818
- }
2819
- &nbsp;
2820
- private parseFilterOptions(query: Record&lt;string, unknown&gt;): FilterOptions {
2821
- const excludeTypesParam = query.excludeTypes;
2822
- const maintainEdgesParam = query.maintainEdges;
2823
- &nbsp;
2824
- const excludeTypes: NodeType[] = [];
2825
- if (typeof excludeTypesParam === 'string' &amp;&amp; excludeTypesParam.length &gt; 0) {
2826
- const types = excludeTypesParam.split(',');
2827
- for (const t of types) {
2828
- if (t === 'event' || t === 'command' || t === 'settled') {
2829
- excludeTypes.push(t);
2830
- }
2831
- }
2832
- }
2833
- &nbsp;
2834
- const maintainEdges = maintainEdgesParam === 'true';
2835
- &nbsp;
2836
- return { excludeTypes, maintainEdges };
2837
- }
2838
- &nbsp;
2839
- private buildMermaidDiagram(filterOptions: FilterOptions): string {
2840
- const commandToEvents = this.buildCommandToEvents();
2841
- const rawGraph = this.buildCombinedGraph();
2842
- const pipelineEvents = this.extractPipelineEvents(rawGraph, commandToEvents);
2843
- const graphWithEvents = this.addCommandEventEdgesToGraph(rawGraph, commandToEvents, pipelineEvents);
2844
- const graphWithEnrichedEvents = this.enrichEventLabels(graphWithEvents);
2845
- const completeGraph = this.markBackLinks(graphWithEnrichedEvents);
2846
- const graph = filterGraph(completeGraph, filterOptions);
2847
- const lines: string[] = ['flowchart LR'];
2848
- &nbsp;
2849
- const eventNodes = new Set&lt;string&gt;();
2850
- const commandNodes = new Set&lt;string&gt;();
2851
- const settledNodes = new Set&lt;string&gt;();
2852
- const edgeContext = { index: 0, backLinkIndices: [] as number[] };
2853
- &nbsp;
2854
- this.addGraphNodesToMermaid(graph, lines, eventNodes, commandNodes, settledNodes);
2855
- this.addGraphEdgesToMermaid(graph, lines, edgeContext);
2856
- this.addMermaidStyles(lines, eventNodes, commandNodes, settledNodes, edgeContext.backLinkIndices);
2857
- &nbsp;
2858
- return lines.join('\n');
2859
- }
2860
- &nbsp;
2861
- private addCommandEventEdgesToGraph(
2862
- graph: GraphIR,
2863
- commandToEvents: Record&lt;string, string[]&gt;,
2864
- pipelineEvents: Set&lt;string&gt;,
2865
- ): GraphIR {
2866
- const commandNodes = new Set(graph.nodes.filter((n) =&gt; n.type === 'command').map((n) =&gt; n.id.replace('cmd:', '')));
2867
- const existingEventIds = new Set(graph.nodes.filter((n) =&gt; n.type === 'event').map((n) =&gt; n.id));
2868
- const newNodes = [...graph.nodes];
2869
- const newEdges = [...graph.edges];
2870
- &nbsp;
2871
- for (const [commandName, events] of Object.entries(commandToEvents)) {
2872
- if (!commandNodes.has(commandName)) {
2873
- continue;
2874
- }
2875
- for (const eventName of events) {
2876
- if (!pipelineEvents.has(eventName)) {
2877
- continue;
2878
- }
2879
- const eventId = `evt:${eventName}`;
2880
- if (!existingEventIds.has(eventId)) {
2881
- newNodes.push({ id: eventId, type: 'event', label: eventName });
2882
- existingEventIds.add(eventId);
2883
- }
2884
- newEdges.push({ from: `cmd:${commandName}`, to: eventId });
2885
- }
2886
- }
2887
- &nbsp;
2888
- return { nodes: newNodes, edges: newEdges };
2889
- }
2890
- &nbsp;
2891
- private markBackLinks(graph: GraphIR): GraphIR {
2892
- const outgoingEdgesWithBackLink = new Map&lt;string, Array&lt;{ to: string; isBackLink: boolean }&gt;&gt;();
2893
- for (const edge of graph.edges) {
2894
- const existing = outgoingEdgesWithBackLink.get(edge.from) ?? [];
2895
- existing.push({ to: edge.to, isBackLink: edge.backLink === true });
2896
- outgoingEdgesWithBackLink.set(edge.from, existing);
2897
- }
2898
- &nbsp;
2899
- const markedEdges = graph.edges.map((edge) =&gt; {
2900
- if (edge.backLink === true) {
2901
- return edge;
2902
- }
2903
- if (edge.from.startsWith('evt:') &amp;&amp; edge.to.startsWith('cmd:')) {
2904
- const createsBackLink = this.hasPathToExcludingBackLinks(edge.to, edge.from, outgoingEdgesWithBackLink);
2905
- if (createsBackLink) {
2906
- return { ...edge, backLink: true };
2907
- }
2908
- }
2909
- return edge;
2910
- });
2911
- &nbsp;
2912
- return { nodes: graph.nodes, edges: markedEdges };
2913
- }
2914
- &nbsp;
2915
- private hasPathToExcludingBackLinks(
2916
- from: string,
2917
- target: string,
2918
- outgoingEdges: Map&lt;string, Array&lt;{ to: string; isBackLink: boolean }&gt;&gt;,
2919
- ): boolean {
2920
- const visited = new Set&lt;string&gt;();
2921
- const queue = [from];
2922
- &nbsp;
2923
- while (queue.length &gt; 0) {
2924
- const current = queue.shift()!;
2925
- if (current === target) {
2926
- return true;
2927
- }
2928
- if (visited.has(current)) {
2929
- continue;
2930
- }
2931
- visited.add(current);
2932
- &nbsp;
2933
- const neighbors = outgoingEdges.get(current) ?? [];
2934
- for (const neighbor of neighbors) {
2935
- if (!neighbor.isBackLink &amp;&amp; !visited.has(neighbor.to)) {
2936
- queue.push(neighbor.to);
2937
- }
2938
- }
2939
- }
2940
- &nbsp;
2941
- return false;
2942
- }
2943
- &nbsp;
2944
- private extractPipelineEvents(graph: GraphIR, commandToEvents: Record&lt;string, string[]&gt;): Set&lt;string&gt; {
2945
- const pipelineEvents = new Set&lt;string&gt;();
2946
- &nbsp;
2947
- for (const node of graph.nodes) {
2948
- if (node.id.startsWith('evt:')) {
2949
- pipelineEvents.add(node.id.replace('evt:', ''));
2950
- }
2951
- if (node.id.startsWith('settled:')) {
2952
- const commandTypes = node.id.replace('settled:', '').split(',');
2953
- for (const commandType of commandTypes) {
2954
- const events = commandToEvents[commandType];
2955
- if (events !== undefined) {
2956
- for (const eventName of events) {
2957
- pipelineEvents.add(eventName);
2958
- }
2959
- }
2960
- }
2961
- }
2962
- }
2963
- &nbsp;
2964
- return pipelineEvents;
2965
- }
2966
- &nbsp;
2967
- private addGraphNodesToMermaid(
2968
- graph: GraphIR,
2969
- lines: string[],
2970
- eventNodes: Set&lt;string&gt;,
2971
- commandNodes: Set&lt;string&gt;,
2972
- settledNodes: Set&lt;string&gt;,
2973
- ): void {
2974
- for (const node of graph.nodes) {
2975
- if (node.id.startsWith('evt:')) {
2976
- const eventName = node.id.replace('evt:', '');
2977
- const safeId = `evt_${eventName}`;
2978
- eventNodes.add(safeId);
2979
- lines.push(` ${safeId}([${node.label}])`);
2980
- } else if (node.id.startsWith('cmd:')) {
2981
- const commandName = node.id.replace('cmd:', '');
2982
- commandNodes.add(commandName);
2983
- lines.push(` ${commandName}[${node.label}]`);
2984
- } else if (node.id.startsWith('settled:')) {
2985
- const commandTypes = node.id.replace('settled:', '').split(',');
2986
- const safeId = `settled_${commandTypes.join('_')}`;
2987
- settledNodes.add(safeId);
2988
- lines.push(` ${safeId}{{${commandTypes.join(', ')}}}`);
2989
- }
2990
- }
2991
- }
2992
- &nbsp;
2993
- private addGraphEdgesToMermaid(
2994
- graph: GraphIR,
2995
- lines: string[],
2996
- edgeContext: { index: number; backLinkIndices: number[] },
2997
- ): void {
2998
- for (const edge of graph.edges) {
2999
- const from = this.normalizeNodeId(edge.from);
3000
- const to = this.normalizeNodeId(edge.to);
3001
- if (edge.backLink === true) {
3002
- lines.push(` ${from} -.-&gt;|retry| ${to}`);
3003
- edgeContext.backLinkIndices.push(edgeContext.index);
3004
- } else {
3005
- lines.push(` ${from} --&gt; ${to}`);
3006
- }
3007
- edgeContext.index++;
3008
- }
3009
- }
3010
- &nbsp;
3011
- private normalizeNodeId(nodeId: string): string {
3012
- if (nodeId.startsWith('evt:')) {
3013
- return `evt_${nodeId.replace('evt:', '')}`;
3014
- }
3015
- if (nodeId.startsWith('cmd:')) {
3016
- return nodeId.replace('cmd:', '');
3017
- }
3018
- const commandTypes = nodeId.replace('settled:', '').split(',');
3019
- return `settled_${commandTypes.join('_')}`;
3020
- }
3021
- &nbsp;
3022
- private addMermaidStyles(
3023
- lines: string[],
3024
- eventNodes: Set&lt;string&gt;,
3025
- commandNodes: Set&lt;string&gt;,
3026
- settledNodes: Set&lt;string&gt;,
3027
- backLinkIndices: number[],
3028
- ): void {
3029
- const failedEvents = [...eventNodes].filter((id) =&gt; id.toLowerCase().includes('failed'));
3030
- const normalEvents = [...eventNodes].filter((id) =&gt; !id.toLowerCase().includes('failed'));
3031
- &nbsp;
3032
- lines.push('');
3033
- lines.push(' classDef event fill:#fff3e0,stroke:#e65100');
3034
- lines.push(' classDef eventFailed fill:#fff3e0,stroke:#e65100,color:#d32f2f');
3035
- lines.push(' classDef command fill:#e3f2fd,stroke:#1565c0');
3036
- lines.push(' classDef settled fill:#f3e5f5,stroke:#7b1fa2');
3037
- &nbsp;
3038
- if (normalEvents.length &gt; 0) {
3039
- lines.push(` class ${normalEvents.join(',')} event`);
3040
- }
3041
- if (failedEvents.length &gt; 0) {
3042
- lines.push(` class ${failedEvents.join(',')} eventFailed`);
3043
- }
3044
- if (commandNodes.size &gt; 0) {
3045
- lines.push(` class ${[...commandNodes].join(',')} command`);
3046
- }
3047
- if (settledNodes.size &gt; 0) {
3048
- lines.push(` class ${[...settledNodes].join(',')} settled`);
3049
- }
3050
- if (backLinkIndices.length &gt; 0) {
3051
- lines.push(` linkStyle ${backLinkIndices.join(',')} stroke:#d32f2f,stroke-width:2px`);
3052
- }
3053
- }
3054
- &nbsp;
3055
- private async processCommand(command: Command &amp; { correlationId: string; requestId: string }): Promise&lt;void&gt; {
3056
- const handler = this.commandHandlers.get(command.type);
3057
- if (!handler) return;
3058
- &nbsp;
3059
- const isNewCorrelationId = !(await this.eventStoreContext.readModel.hasCorrelation(command.correlationId));
3060
- if (isNewCorrelationId) {
3061
- await this.broadcastPipelineRunStarted(command.correlationId, command.type);
3062
- }
3063
- &nbsp;
3064
- const itemKey = this.extractItemKey(command.type, command.data, command.requestId);
3065
- await this.getOrCreateItemStatus(command.correlationId, command.type, itemKey, command.requestId);
3066
- &nbsp;
3067
- await this.updateNodeStatus(command.correlationId, command.type, 'running');
3068
- await this.settledTracker.onCommandStarted(command);
3069
- &nbsp;
3070
- const resultEvent = await handler.handle(command);
3071
- const events = Array.isArray(resultEvent) ? resultEvent : [resultEvent];
3072
- &nbsp;
3073
- const finalStatus = this.getStatusFromEvents(events);
3074
- await this.updateItemStatus(command.correlationId, command.type, itemKey, finalStatus);
3075
- await this.updateNodeStatus(command.correlationId, command.type, finalStatus);
3076
- &nbsp;
3077
- const eventsWithIds: EventWithCorrelation[] = events.map((event) =&gt; ({
3078
- ...event,
3079
- correlationId: command.correlationId,
3080
- requestId: command.requestId,
3081
- }));
3082
- &nbsp;
3083
- await Promise.all(
3084
- eventsWithIds.map((e) =&gt;
3085
- this.emitDomainEventEmitted(e.correlationId, command.requestId, e.type, e.data as Record&lt;string, unknown&gt;),
3086
- ),
3087
- );
3088
- &nbsp;
3089
- for (const eventWithIds of eventsWithIds) {
3090
- this.sseManager.broadcast(eventWithIds);
3091
- &nbsp;
3092
- const sourceCommand = this.eventCommandMapper.getSourceCommand(eventWithIds.type);
3093
- if (sourceCommand !== undefined) {
3094
- await this.settledTracker.onEventReceived(eventWithIds, sourceCommand);
3095
- }
3096
- &nbsp;
3097
- await this.routeEventToPhasedExecutor(eventWithIds);
3098
- }
3099
- &nbsp;
3100
- await Promise.all(eventsWithIds.map((e) =&gt; this.routeEventToPipelines(e)));
3101
- }
3102
- &nbsp;
3103
- private getStatusFromEvents(events: Event[]): 'success' | 'error' {
3104
- for (const event of events) {
3105
- if (event.type.includes('Failed')) {
3106
- return 'error';
3107
- }
3108
- }
3109
- return 'success';
3110
- }
3111
- &nbsp;
3112
- /* v8 ignore next 11 - integration path tested via settled-tracker.specs.ts */
3113
- private async dispatchFromSettled(commandType: string, data: unknown, correlationId: string): Promise&lt;void&gt; {
3114
- const requestId = `req-${nanoid()}`;
3115
- const command: Command &amp; { correlationId: string; requestId: string } = {
3116
- type: commandType,
3117
- data: data as Record&lt;string, unknown&gt;,
3118
- correlationId,
3119
- requestId,
3120
- };
3121
- await this.emitCommandDispatched(correlationId, requestId, commandType, data as Record&lt;string, unknown&gt;);
3122
- await this.processCommand(command);
3123
- }
3124
- &nbsp;
3125
- /* v8 ignore next 10 - integration path tested via phased-executor.specs.ts */
3126
- private async handlePhasedComplete(event: Event, correlationId: string): Promise&lt;void&gt; {
3127
- const requestId = `req-${nanoid()}`;
3128
- const eventWithIds: EventWithCorrelation = {
3129
- ...event,
3130
- correlationId,
3131
- };
3132
- await this.emitDomainEventEmitted(correlationId, requestId, event.type, event.data as Record&lt;string, unknown&gt;);
3133
- this.sseManager.broadcast(eventWithIds);
3134
- await this.routeEventToPipelines(eventWithIds);
3135
- }
3136
- &nbsp;
3137
- private async routeEventToPipelines(event: EventWithCorrelation): Promise&lt;void&gt; {
3138
- const ctx = this.createContext(event.correlationId);
3139
- const runtimes = Array.from(this.runtimes.values());
3140
- await Promise.all(runtimes.map((runtime) =&gt; runtime.handleEvent(event, ctx)));
3141
- }
3142
- &nbsp;
3143
- private createContext(correlationId: string): PipelineContext {
3144
- return {
3145
- correlationId,
3146
- emit: async (type: string, data: unknown) =&gt; {
3147
- const requestId = `req-${nanoid()}`;
3148
- const event: EventWithCorrelation = {
3149
- type,
3150
- data: data as Record&lt;string, unknown&gt;,
3151
- correlationId,
3152
- };
3153
- await this.emitDomainEventEmitted(correlationId, requestId, type, data as Record&lt;string, unknown&gt;);
3154
- this.sseManager.broadcast(event);
3155
- await this.routeEventToPipelines(event);
3156
- },
3157
- sendCommand: async (type: string, data: unknown) =&gt; {
3158
- const requestId = `req-${nanoid()}`;
3159
- const command: Command &amp; { correlationId: string; requestId: string } = {
3160
- type,
3161
- data: data as Record&lt;string, unknown&gt;,
3162
- correlationId,
3163
- requestId,
3164
- };
3165
- await this.emitCommandDispatched(correlationId, requestId, type, data as Record&lt;string, unknown&gt;);
3166
- await this.processCommand(command);
3167
- },
3168
- /* v8 ignore next 3 - integration path tested via pipeline-runtime.specs.ts */
3169
- startPhased: async (handler, event) =&gt; {
3170
- await this.phasedExecutor.startPhased(handler, event, correlationId);
3171
- },
3172
- };
3173
- }
3174
- &nbsp;
3175
- /* v8 ignore next 10 - integration path tested via phased-executor.specs.ts */
3176
- private async routeEventToPhasedExecutor(event: EventWithCorrelation): Promise&lt;void&gt; {
3177
- for (const pipeline of this.pipelines.values()) {
3178
- for (const handler of pipeline.descriptor.handlers) {
3179
- if (handler.type === 'foreach-phased') {
3180
- const itemKey = handler.completion.itemKey(event);
3181
- await this.phasedExecutor.onEventReceived(event, itemKey);
3182
- }
3183
- }
3184
- }
3185
- }
3186
- &nbsp;
3187
- private buildDiagramHtml(mermaidDefinition: string): string {
3188
- return `&lt;!DOCTYPE html&gt;
3189
- &lt;html lang="en"&gt;
3190
- &lt;head&gt;
3191
- &lt;meta charset="UTF-8"&gt;
3192
- &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
3193
- &lt;title&gt;Pipeline Diagram&lt;/title&gt;
3194
- &lt;script type="module"&gt;
3195
- import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
3196
- mermaid.initialize({ startOnLoad: true, theme: 'default' });
3197
- &lt;/script&gt;
3198
- &lt;style&gt;
3199
- body {
3200
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
3201
- margin: 0;
3202
- padding: 20px;
3203
- background: #f5f5f5;
3204
- }
3205
- .container {
3206
- max-width: 1200px;
3207
- margin: 0 auto;
3208
- background: white;
3209
- padding: 20px;
3210
- border-radius: 8px;
3211
- box-shadow: 0 2px 4px rgba(0,0,0,0.1);
3212
- }
3213
- h1 {
3214
- margin-top: 0;
3215
- color: #333;
3216
- }
3217
- .mermaid {
3218
- display: flex;
3219
- justify-content: center;
3220
- }
3221
- &lt;/style&gt;
3222
- &lt;/head&gt;
3223
- &lt;body&gt;
3224
- &lt;div class="container"&gt;
3225
- &lt;h1&gt;Pipeline Diagram&lt;/h1&gt;
3226
- &lt;div class="mermaid"&gt;
3227
- ${mermaidDefinition}
3228
- &lt;/div&gt;
3229
- &lt;/div&gt;
3230
- &lt;/body&gt;
3231
- &lt;/html&gt;`;
3232
- }
3233
- }
3234
- &nbsp;</pre></td></tr></table></pre>
3235
-
3236
- <div class='push'></div><!-- for sticky footer -->
3237
- </div><!-- /wrapper -->
3238
- <div class='footer quiet pad2 space-top1 center small'>
3239
- Code coverage generated by
3240
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
3241
- at 2026-01-06T00:27:41.742Z
3242
- </div>
3243
- <script src="../prettify.js"></script>
3244
- <script>
3245
- window.onload = function () {
3246
- prettyPrint();
3247
- };
3248
- </script>
3249
- <script src="../sorter.js"></script>
3250
- <script src="../block-navigation.js"></script>
3251
- </body>
3252
- </html>
3253
-