@epa-wg/custom-element-dist 0.0.32 → 0.0.34

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 (300) hide show
  1. package/.claude/settings.local.json +18 -0
  2. package/.github/workflows/deploy.yml +59 -0
  3. package/.idea/copilot.data.migration.agent.xml +6 -0
  4. package/.idea/copilot.data.migration.ask.xml +6 -0
  5. package/.idea/copilot.data.migration.edit.xml +6 -0
  6. package/.idea/custom-element-dist.iml +2 -0
  7. package/.storybook/main.ts +20 -21
  8. package/.storybook/preview.ts +23 -25
  9. package/README.md +6 -4
  10. package/coverage/block-navigation.js +1 -1
  11. package/coverage/coverage-final.json +8 -18
  12. package/coverage/index.html +45 -30
  13. package/coverage/sorter.js +21 -7
  14. package/coverage/src/custom-element/coverage.svg +1 -1
  15. package/coverage/src/custom-element/custom-element.js/coverage.svg +1 -1
  16. package/coverage/src/custom-element/custom-element.js.html +687 -480
  17. package/coverage/src/custom-element/http-request.js/coverage.svg +1 -1
  18. package/coverage/src/custom-element/http-request.js.html +39 -18
  19. package/coverage/src/custom-element/index.html +35 -35
  20. package/coverage/src/custom-element/local-storage.js.html +1 -1
  21. package/coverage/src/custom-element/location-element.js.html +31 -31
  22. package/coverage/src/custom-element/module-url.js/coverage.svg +1 -1
  23. package/coverage/src/custom-element/module-url.js.html +20 -20
  24. package/coverage/src/index.html +1 -1
  25. package/coverage/src/{stories/local-storage.test.stories.ts → material/theme/colors.js}/coverage.svg +1 -1
  26. package/coverage/src/material/theme/colors.js.html +217 -0
  27. package/coverage/src/{stories/location-element.test.stories.ts → material/theme}/coverage.svg +1 -1
  28. package/coverage/src/material/theme/index.html +116 -0
  29. package/coverage/src/mocks/handlers.ts.html +1 -1
  30. package/coverage/src/mocks/index.html +1 -1
  31. package/coverage/src/stories/coverage.svg +1 -1
  32. package/coverage/src/stories/{external-template.test.stories.ts → frame.canvas.ts}/coverage.svg +1 -1
  33. package/coverage/src/stories/frame.canvas.ts.html +175 -0
  34. package/coverage/src/stories/http-request.stories.ts.html +1 -1
  35. package/coverage/src/stories/index.html +14 -179
  36. package/coverage/src/stories/testStoryBook.ts.html +12 -12
  37. package/coverage/src/sum.ts.html +1 -1
  38. package/dist/custom-element-BoYMoUtP.js +619 -0
  39. package/dist/custom-element-BqtjrCRF.cjs +97 -0
  40. package/dist/custom-element-bundle.cjs +1 -1
  41. package/dist/custom-element-bundle.js +3 -3
  42. package/dist/demo/a.html +10 -3
  43. package/dist/demo/a.svg +26 -26
  44. package/dist/demo/attributes.html +153 -0
  45. package/dist/demo/external-templates-sb-6.html +42 -0
  46. package/dist/demo/external-templates-sb-7.html +42 -0
  47. package/dist/demo/html-template.html +5 -4
  48. package/dist/demo/module-url-sb-2.html +46 -0
  49. package/dist/demo/module-url-sb-4.html +48 -0
  50. package/dist/demo/module-url-sb-5.html +53 -0
  51. package/dist/demo/s.xml +3859 -7
  52. package/dist/demo/s.xslt +13 -48
  53. package/dist/demo/s1.xml +3706 -0
  54. package/dist/demo/ss.html +13 -4
  55. package/dist/http-request-DSaowcG1.cjs +1 -0
  56. package/dist/{http-request-BOvP4KTl.js → http-request-DTCzZ1gc.js} +15 -9
  57. package/dist/mockServiceWorker.js +31 -8
  58. package/package.json +25 -26
  59. package/public/demo/a.html +10 -3
  60. package/public/demo/a.svg +26 -26
  61. package/public/demo/attributes.html +153 -0
  62. package/public/demo/external-templates-sb-6.html +42 -0
  63. package/public/demo/external-templates-sb-7.html +42 -0
  64. package/public/demo/html-template.html +5 -4
  65. package/public/demo/module-url-sb-2.html +46 -0
  66. package/public/demo/module-url-sb-4.html +48 -0
  67. package/public/demo/module-url-sb-5.html +53 -0
  68. package/public/demo/s.xml +3859 -7
  69. package/public/demo/s.xslt +13 -48
  70. package/public/demo/s1.xml +3706 -0
  71. package/public/demo/ss.html +13 -4
  72. package/public/mockServiceWorker.js +31 -8
  73. package/src/custom-element/custom-element.d.ts +4 -0
  74. package/src/custom-element/custom-element.js +119 -50
  75. package/src/custom-element/demo/a.html +10 -3
  76. package/src/custom-element/demo/a.svg +26 -26
  77. package/src/custom-element/demo/attributes.html +153 -0
  78. package/src/custom-element/demo/html-template.html +5 -4
  79. package/src/custom-element/demo/s.xml +3859 -7
  80. package/src/custom-element/demo/s.xslt +13 -48
  81. package/src/custom-element/demo/s1.xml +3706 -0
  82. package/src/custom-element/demo/ss.html +13 -4
  83. package/src/custom-element/http-request.js +7 -0
  84. package/src/custom-element/ide/web-types-dce.json +1 -1
  85. package/src/custom-element/ide/web-types-xsl.json +1 -1
  86. package/src/custom-element/index.html +1 -1
  87. package/src/material/angular.css +987 -987
  88. package/src/material/components/action.html +262 -0
  89. package/src/material/components/autocomplete.html +167 -239
  90. package/src/material/components/badge.html +239 -0
  91. package/src/material/components/dropdown.html +7 -13
  92. package/src/material/components/icon-link.html +160 -160
  93. package/src/material/components/icon.html +252 -0
  94. package/src/material/components/input.html +569 -362
  95. package/src/material/components/menu.html +235 -234
  96. package/src/material/components.html +157 -121
  97. package/src/material/demo.css +36 -36
  98. package/src/material/index.html +109 -110
  99. package/src/material/material.css +356 -356
  100. package/src/material/theme/Base-Principles.md +339 -0
  101. package/src/material/theme/README.md +298 -18
  102. package/src/material/theme/UI Domain Model in web applications.svg +1 -0
  103. package/src/material/theme/User Semantic Theme tokens.svg +1 -0
  104. package/src/material/theme/action-pending-poc.html +62 -0
  105. package/src/material/theme/actions-color.html +141 -0
  106. package/src/material/theme/colors-light.html +631 -0
  107. package/src/material/theme/colors-native.html +51 -0
  108. package/src/material/theme/colors-poc.html +66 -0
  109. package/src/material/theme/colors.html +297 -0
  110. package/src/material/theme/colors.js +44 -0
  111. package/src/material/theme/consumer-theme.css +745 -0
  112. package/src/material/theme/semantic.css +132 -113
  113. package/src/material/theme/style-bug.html +123 -0
  114. package/src/material/theme/theme-data.css +43 -0
  115. package/src/material/theme/theme-data.xhtml +2926 -0
  116. package/src/material/theme/todo.md +274 -0
  117. package/src/material/theme/tokens/action-colors.png +0 -0
  118. package/src/material/theme/tokens/cem-article-illustration-4x1-letterbox-2000x500.png +0 -0
  119. package/src/material/theme/tokens/cem-breakpoints.md +519 -0
  120. package/src/material/theme/tokens/cem-colors.md +715 -0
  121. package/src/material/theme/tokens/cem-consumerflow-typography-matrix.svg +198 -0
  122. package/src/material/theme/tokens/cem-coupling.md +372 -0
  123. package/src/material/theme/tokens/cem-data-vs-reading-numerals.svg +164 -0
  124. package/src/material/theme/tokens/cem-dimension.md +625 -0
  125. package/src/material/theme/tokens/cem-layering.md +562 -0
  126. package/src/material/theme/tokens/cem-m3-parity.md +343 -0
  127. package/src/material/theme/tokens/cem-responsive.md +238 -0
  128. package/src/material/theme/tokens/cem-shape.md +691 -0
  129. package/src/material/theme/tokens/cem-stroke-density-illustration-4to1-v3.svg +102 -0
  130. package/src/material/theme/tokens/cem-stroke.md +480 -0
  131. package/src/material/theme/tokens/cem-timing.md +198 -0
  132. package/src/material/theme/tokens/cem-typography-model-stack.svg +64 -0
  133. package/src/material/theme/tokens/cem-voice-fonts-typography.md +718 -0
  134. package/src/material/theme/tokens/cem-voice-ladder.svg +91 -0
  135. package/src/material/theme/tokens/chips.png +0 -0
  136. package/src/material/theme/tokens/columns-page.png +0 -0
  137. package/src/material/theme/tokens/initials.png +0 -0
  138. package/src/material/theme/tokens/nav-buttons.png +0 -0
  139. package/src/material/theme/tokens/script.png +0 -0
  140. package/src/material/theme/tokens/sufler.png +0 -0
  141. package/src/material/theme/tokens/typography-icons.png +0 -0
  142. package/src/mocks/versions.mock.ts +1 -1
  143. package/src/stories/__screenshots__/attributes.test.stories.ts +1 -0
  144. package/src/stories/__screenshots__/dom-merge.test.stories.ts/dom-merge-dom-merge-OrderPreservingOn2ndTransform-1.png +0 -0
  145. package/src/stories/__screenshots__/external-template.test.stories.ts +1 -0
  146. package/src/stories/__screenshots__/module-url.test.stories.ts +1 -0
  147. package/src/stories/__screenshots__/stories.test.ts/attributes-Attributes-definition-1.png +0 -0
  148. package/src/stories/__screenshots__/stories.test.ts/attributes-Attributes-runtime-change-1.png +0 -0
  149. package/src/stories/__screenshots__/stories.test.ts/attributes-Instance-Attributes-1.png +0 -0
  150. package/src/stories/__screenshots__/stories.test.ts/attributes-Instance-Attributes-2.png +0 -0
  151. package/src/stories/__screenshots__/stories.test.ts/attributes-cloneAs-el-newTag--1.png +0 -0
  152. package/src/stories/__screenshots__/stories.test.ts/attributes-mergeAttr--from--to---1.png +0 -0
  153. package/src/stories/__screenshots__/stories.test.ts/attributes-mergeAttr--from--to---2.png +0 -0
  154. package/src/stories/__screenshots__/stories.test.ts/attributes-mergeAttr--from--to---3.png +0 -0
  155. package/src/stories/__screenshots__/stories.test.ts/attributes-mix-to-from--1.png +0 -0
  156. package/src/stories/__screenshots__/stories.test.ts/http-request-Attributes-definition-1.png +0 -0
  157. package/src/stories/__screenshots__/stories.test.ts/http-request-Attributes-runtime-change-1.png +0 -0
  158. package/src/stories/__screenshots__/stories.test.ts/http-request-Instance-Attributes-1.png +0 -0
  159. package/src/stories/__screenshots__/stories.test.ts/http-request-Instance-Attributes-2.png +0 -0
  160. package/src/stories/__screenshots__/stories.test.ts/http-request-cloneAs-el-newTag--1.png +0 -0
  161. package/src/stories/__screenshots__/stories.test.ts/http-request-http-request-headers-and-response-status-and-headers-1.png +0 -0
  162. package/src/stories/__screenshots__/stories.test.ts/http-request-http-request-with-delayed--5-seconds-response-1.png +0 -0
  163. package/src/stories/__screenshots__/stories.test.ts/http-request-http-request-with-error-1.png +0 -0
  164. package/src/stories/__screenshots__/stories.test.ts/http-request-mergeAttr--from--to---1.png +0 -0
  165. package/src/stories/__screenshots__/stories.test.ts/http-request-mergeAttr--from--to---2.png +0 -0
  166. package/src/stories/__screenshots__/stories.test.ts/http-request-mergeAttr--from--to---3.png +0 -0
  167. package/src/stories/__screenshots__/stories.test.ts/http-request-mix-to-from--1.png +0 -0
  168. package/src/stories/__screenshots__/stories.test.ts/http-request-url-and-slice-1.png +0 -0
  169. package/src/stories/__screenshots__/stories.test.ts/http-request-url-change-1.png +0 -0
  170. package/src/stories/__screenshots__/xslt-conditionals.test.stories.ts/xslt-conditionals-xslt-conditionals-MultipleIfOrderingWorkaround-1.png +0 -0
  171. package/src/stories/attributes.test.stories.ts +83 -17
  172. package/src/stories/dom-merge.test.stories.ts +25 -1
  173. package/src/stories/external-template.test.stories.ts +16 -14
  174. package/src/stories/frame.canvas.ts +31 -0
  175. package/src/stories/module-url.test.stories.ts +29 -61
  176. package/src/stories/xslt-conditionals.test.stories.ts +492 -0
  177. package/src/stories/xslt-if.test.stories.ts +89 -0
  178. package/storybook-static/assets/Color-F6OSRLHC-CzTOSlqB.js +1 -0
  179. package/storybook-static/assets/Configure-7GqRsAoJ.js +165 -0
  180. package/storybook-static/assets/DocsRenderer-CFRXHY34-Duc5rSIm.js +2 -0
  181. package/storybook-static/assets/{attributes.test.stories-D1X6EBrd.js → attributes.test.stories-DYuxF8h1.js} +109 -38
  182. package/storybook-static/assets/{css.test.stories-Cp_g2hE1.js → css.test.stories-LOmvINyb.js} +1 -1
  183. package/storybook-static/assets/custom-element-Bwx7otrT.js +97 -0
  184. package/storybook-static/assets/{dom-merge.test.stories-hbpdCka0.js → dom-merge.test.stories-CEKhWjaS.js} +47 -6
  185. package/storybook-static/assets/entry-preview-BNCt9WBs.js +26 -0
  186. package/storybook-static/assets/entry-preview-docs-CbF8-81D.js +2 -0
  187. package/storybook-static/assets/{external-template.test.stories-BK89h6sk.js → external-template.test.stories-jHu0wsJ-.js} +38 -40
  188. package/storybook-static/assets/{form.test.stories-BfoLe_rw.js → form.test.stories-CUyUnmwP.js} +1 -1
  189. package/storybook-static/assets/frame.canvas-E5n9h6j1.js +1 -0
  190. package/storybook-static/assets/{handlers-yVPwH_Nz.js → handlers-F7GUfMqr.js} +17 -14
  191. package/storybook-static/assets/http-request-BWeEEBkP.js +1 -0
  192. package/storybook-static/assets/{http-request.stories-CBFJS2Ws.js → http-request.stories-wyX5-QOv.js} +1 -1
  193. package/storybook-static/assets/iframe-BS_DPWl0.js +199 -0
  194. package/storybook-static/assets/index-CGuyH0k-.js +240 -0
  195. package/storybook-static/assets/index-DB7LLObI.js +1 -0
  196. package/storybook-static/assets/index-DO1nmyvI.js +11 -0
  197. package/storybook-static/assets/index-V1EGs-wm.js +621 -0
  198. package/storybook-static/assets/{local-storage.test.stories-C0Yzy6Am.js → local-storage.test.stories-BxOhsf1k.js} +1 -1
  199. package/storybook-static/assets/{location-element.test.stories-DNFrEu5A.js → location-element.test.stories-DqhvvUoa.js} +1 -1
  200. package/storybook-static/assets/module-url.test.stories-C1gG9G7Y.js +142 -0
  201. package/storybook-static/assets/preview-1xJJ3sKE.js +1 -0
  202. package/storybook-static/assets/preview-Bn8igYMp.js +1 -0
  203. package/storybook-static/assets/preview-CTOeX_lO.js +1 -0
  204. package/storybook-static/assets/preview-Cwy1XFu2.js +2 -0
  205. package/storybook-static/assets/preview-D6sehqkw.js +50 -0
  206. package/storybook-static/assets/preview-DfTudP20.js +1 -0
  207. package/storybook-static/assets/{set-url.test.stories-BBfLxv2u.js → set-url.test.stories-BKQNdknJ.js} +1 -1
  208. package/storybook-static/assets/{slice-events.test.stories-HcXF8XQI.js → slice-events.test.stories-ChqULCeA.js} +1 -1
  209. package/storybook-static/assets/{slots.test.stories-i6mnIFM2.js → slots.test.stories-BlyLoCRe.js} +1 -1
  210. package/storybook-static/assets/{version-select.test.stories-BsUFH6Va.js → version-select.test.stories-CPGSh1tR.js} +1 -1
  211. package/storybook-static/assets/xslt-conditionals.test.stories-YC6QPqWZ.js +633 -0
  212. package/storybook-static/assets/xslt-if.test.stories-BRSWy2-x.js +71 -0
  213. package/storybook-static/demo/a.html +10 -3
  214. package/storybook-static/demo/a.svg +26 -26
  215. package/storybook-static/demo/attributes.html +153 -0
  216. package/storybook-static/demo/external-templates-sb-6.html +42 -0
  217. package/storybook-static/demo/external-templates-sb-7.html +42 -0
  218. package/storybook-static/demo/html-template.html +5 -4
  219. package/storybook-static/demo/module-url-sb-2.html +46 -0
  220. package/storybook-static/demo/module-url-sb-4.html +48 -0
  221. package/storybook-static/demo/module-url-sb-5.html +53 -0
  222. package/storybook-static/demo/s.xml +3859 -7
  223. package/storybook-static/demo/s.xslt +13 -48
  224. package/storybook-static/demo/s1.xml +3706 -0
  225. package/storybook-static/demo/ss.html +13 -4
  226. package/storybook-static/iframe.html +2 -2
  227. package/storybook-static/index.html +6 -10
  228. package/storybook-static/index.json +1 -1
  229. package/storybook-static/mockServiceWorker.js +31 -8
  230. package/storybook-static/project.json +1 -1
  231. package/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js +3 -0
  232. package/storybook-static/sb-addons/essentials-backgrounds-4/manager-bundle.js +8 -8
  233. package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js +394 -0
  234. package/storybook-static/sb-addons/essentials-docs-3/manager-bundle.js +233 -0
  235. package/storybook-static/sb-addons/essentials-measure-7/manager-bundle.js +1 -1
  236. package/storybook-static/sb-addons/essentials-outline-8/manager-bundle.js +1 -1
  237. package/storybook-static/sb-addons/essentials-toolbars-6/manager-bundle.js +1 -1
  238. package/storybook-static/sb-addons/essentials-viewport-5/manager-bundle.js +1 -1
  239. package/storybook-static/sb-addons/interactions-9/manager-bundle.js +58 -58
  240. package/storybook-static/sb-manager/globals-module-info.js +9 -0
  241. package/storybook-static/sb-manager/globals-runtime.js +10719 -10473
  242. package/storybook-static/sb-manager/runtime.js +4944 -6321
  243. package/coverage/src/stories/attributes.test.stories.ts/coverage.svg +0 -10
  244. package/coverage/src/stories/attributes.test.stories.ts.html +0 -814
  245. package/coverage/src/stories/css.test.stories.ts/coverage.svg +0 -10
  246. package/coverage/src/stories/css.test.stories.ts.html +0 -460
  247. package/coverage/src/stories/dom-merge.test.stories.ts/coverage.svg +0 -10
  248. package/coverage/src/stories/dom-merge.test.stories.ts.html +0 -706
  249. package/coverage/src/stories/external-template.test.stories.ts.html +0 -865
  250. package/coverage/src/stories/form.test.stories.ts/coverage.svg +0 -10
  251. package/coverage/src/stories/form.test.stories.ts.html +0 -661
  252. package/coverage/src/stories/local-storage.test.stories.ts.html +0 -1315
  253. package/coverage/src/stories/location-element.test.stories.ts.html +0 -523
  254. package/coverage/src/stories/module-url.test.stories.ts/coverage.svg +0 -10
  255. package/coverage/src/stories/module-url.test.stories.ts.html +0 -640
  256. package/coverage/src/stories/set-url.test.stories.ts/coverage.svg +0 -10
  257. package/coverage/src/stories/set-url.test.stories.ts.html +0 -433
  258. package/coverage/src/stories/slice-events.test.stories.ts/coverage.svg +0 -10
  259. package/coverage/src/stories/slice-events.test.stories.ts.html +0 -952
  260. package/coverage/src/stories/slots.test.stories.ts/coverage.svg +0 -10
  261. package/coverage/src/stories/slots.test.stories.ts.html +0 -742
  262. package/coverage/src/stories/version-select.test.stories.ts/coverage.svg +0 -10
  263. package/coverage/src/stories/version-select.test.stories.ts.html +0 -397
  264. package/dist/custom-element-D2wf_rqP.js +0 -576
  265. package/dist/custom-element-Dtzhbjkc.cjs +0 -97
  266. package/dist/http-request-DPrY7mGh.cjs +0 -1
  267. package/storybook-static/assets/Color-F6OSRLHC-BU3iy8jH.js +0 -1
  268. package/storybook-static/assets/Configure-DN6ifayP.js +0 -165
  269. package/storybook-static/assets/DocsRenderer-CFRXHY34-BaVEufDj.js +0 -2
  270. package/storybook-static/assets/custom-element-uuAtIYWS.js +0 -97
  271. package/storybook-static/assets/entry-preview-DHVXbf3x.js +0 -26
  272. package/storybook-static/assets/entry-preview-docs-BbcIMweR.js +0 -2
  273. package/storybook-static/assets/http-request-DNq59pnj.js +0 -1
  274. package/storybook-static/assets/iframe-CJEL_4Nu.js +0 -2
  275. package/storybook-static/assets/index-BcZLpTeD.js +0 -8
  276. package/storybook-static/assets/index-CxRwF5Or.js +0 -234
  277. package/storybook-static/assets/index-D-8MO0q_.js +0 -1
  278. package/storybook-static/assets/index-D5fBh-7N.js +0 -1
  279. package/storybook-static/assets/index-DM-KBPdl.js +0 -1
  280. package/storybook-static/assets/index-RSFf30w1.js +0 -1
  281. package/storybook-static/assets/index-SnjB5uV8.js +0 -769
  282. package/storybook-static/assets/module-url.test.stories-CXibF5Ta.js +0 -208
  283. package/storybook-static/assets/preview-BhhEZcNS.js +0 -1
  284. package/storybook-static/assets/preview-Bnd0XhaF.js +0 -52
  285. package/storybook-static/assets/preview-CNKoaWES.js +0 -1
  286. package/storybook-static/assets/preview-DAeyCMnM.js +0 -1
  287. package/storybook-static/assets/preview-DHPc-V4N.js +0 -1
  288. package/storybook-static/assets/preview-DJMlNTk8.js +0 -2
  289. package/storybook-static/assets/preview-DYzi3Z2p.js +0 -1
  290. package/storybook-static/sb-addons/chromatic-com-storybook-10/manager-bundle.js +0 -333
  291. package/storybook-static/sb-addons/chromatic-com-storybook-10/manager-bundle.js.LEGAL.txt +0 -40
  292. package/storybook-static/sb-addons/essentials-actions-3/manager-bundle.js +0 -3
  293. package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js +0 -391
  294. package/storybook-static/sb-addons/links-1/manager-bundle.js +0 -3
  295. package/storybook-static/sb-preview/globals.js +0 -33
  296. package/storybook-static/sb-preview/runtime.js +0 -7174
  297. package/test-runner-jest.config.js +0 -15
  298. /package/storybook-static/sb-addons/{essentials-actions-3 → essentials-actions-2}/manager-bundle.js.LEGAL.txt +0 -0
  299. /package/storybook-static/sb-addons/{essentials-controls-2 → essentials-controls-1}/manager-bundle.js.LEGAL.txt +0 -0
  300. /package/storybook-static/sb-addons/{links-1 → essentials-docs-3}/manager-bundle.js.LEGAL.txt +0 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.35% </span>
26
+ <span class="strong">92.43% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>585/620</span>
28
+ <span class='fraction'>623/674</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">88.28% </span>
33
+ <span class="strong">85.96% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>309/350</span>
35
+ <span class='fraction'>337/392</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">96.26% </span>
40
+ <span class="strong">94.96% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>129/134</span>
42
+ <span class='fraction'>132/139</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.52% </span>
47
+ <span class="strong">92.34% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>518/548</span>
49
+ <span class='fraction'>555/601</span>
50
50
  </div>
51
51
 
52
52
 
@@ -977,41 +977,110 @@
977
977
  <a name='L912'></a><a href='#L912'>912</a>
978
978
  <a name='L913'></a><a href='#L913'>913</a>
979
979
  <a name='L914'></a><a href='#L914'>914</a>
980
- <a name='L915'></a><a href='#L915'>915</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">14x</span>
981
- <span class="cline-any cline-yes">14x</span>
982
- <span class="cline-any cline-yes">14x</span>
983
- <span class="cline-any cline-yes">14x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">16x</span>
1050
+ <span class="cline-any cline-yes">16x</span>
1051
+ <span class="cline-any cline-yes">16x</span>
1052
+ <span class="cline-any cline-yes">16x</span>
984
1053
  <span class="cline-any cline-neutral">&nbsp;</span>
985
1054
  <span class="cline-any cline-neutral">&nbsp;</span>
986
1055
  <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-yes">20712x</span>
988
- <span class="cline-any cline-yes">11477x</span>
989
- <span class="cline-any cline-yes">238x</span>
990
- <span class="cline-any cline-yes">7708x</span>
991
- <span class="cline-any cline-yes">3048x</span>
992
- <span class="cline-any cline-yes">61x</span>
993
- <span class="cline-any cline-yes">53x</span>
994
- <span class="cline-any cline-yes">233x</span>
995
- <span class="cline-any cline-yes">154x</span>
996
- <span class="cline-any cline-yes">5548x</span>
997
- <span class="cline-any cline-yes">229x</span>
998
- <span class="cline-any cline-yes">14x</span>
1056
+ <span class="cline-any cline-yes">20417x</span>
1057
+ <span class="cline-any cline-yes">11285x</span>
1058
+ <span class="cline-any cline-yes">221x</span>
1059
+ <span class="cline-any cline-yes">6607x</span>
1060
+ <span class="cline-any cline-yes">3382x</span>
1061
+ <span class="cline-any cline-yes">55x</span>
1062
+ <span class="cline-any cline-yes">47x</span>
1063
+ <span class="cline-any cline-yes">281x</span>
1064
+ <span class="cline-any cline-yes">183x</span>
1065
+ <span class="cline-any cline-yes">5420x</span>
1066
+ <span class="cline-any cline-yes">265x</span>
1067
+ <span class="cline-any cline-yes">16x</span>
999
1068
  <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-yes">910x</span>
1069
+ <span class="cline-any cline-yes">996x</span>
1001
1070
  <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-yes">910x</span>
1003
- <span class="cline-any cline-yes">910x</span>
1071
+ <span class="cline-any cline-yes">996x</span>
1072
+ <span class="cline-any cline-yes">996x</span>
1004
1073
  <span class="cline-any cline-no">&nbsp;</span>
1005
1074
  <span class="cline-any cline-no">&nbsp;</span>
1006
1075
  <span class="cline-any cline-no">&nbsp;</span>
1007
1076
  <span class="cline-any cline-neutral">&nbsp;</span>
1008
- <span class="cline-any cline-yes">14x</span>
1009
- <span class="cline-any cline-yes">39x</span>
1010
- <span class="cline-any cline-yes">39x</span>
1077
+ <span class="cline-any cline-yes">16x</span>
1078
+ <span class="cline-any cline-yes">61x</span>
1079
+ <span class="cline-any cline-yes">61x</span>
1080
+ <span class="cline-any cline-yes">85x</span>
1011
1081
  <span class="cline-any cline-yes">61x</span>
1012
- <span class="cline-any cline-yes">39x</span>
1013
1082
  <span class="cline-any cline-yes">11x</span>
1014
- <span class="cline-any cline-yes">39x</span>
1083
+ <span class="cline-any cline-yes">61x</span>
1015
1084
  <span class="cline-any cline-neutral">&nbsp;</span>
1016
1085
  <span class="cline-any cline-neutral">&nbsp;</span>
1017
1086
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1025,120 +1094,132 @@
1025
1094
  <span class="cline-any cline-neutral">&nbsp;</span>
1026
1095
  <span class="cline-any cline-neutral">&nbsp;</span>
1027
1096
  <span class="cline-any cline-neutral">&nbsp;</span>
1028
- <span class="cline-any cline-yes">307x</span>
1097
+ <span class="cline-any cline-yes">355x</span>
1029
1098
  <span class="cline-any cline-neutral">&nbsp;</span>
1030
1099
  <span class="cline-any cline-neutral">&nbsp;</span>
1031
- <span class="cline-any cline-yes">11x</span>
1100
+ <span class="cline-any cline-yes">5x</span>
1032
1101
  <span class="cline-any cline-no">&nbsp;</span>
1033
1102
  <span class="cline-any cline-neutral">&nbsp;</span>
1034
1103
  <span class="cline-any cline-neutral">&nbsp;</span>
1035
1104
  <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-yes">316x</span>
1037
- <span class="cline-any cline-yes">316x</span>
1038
- <span class="cline-any cline-yes">316x</span>
1039
- <span class="cline-any cline-yes">316x</span>
1105
+ <span class="cline-any cline-yes">392x</span>
1106
+ <span class="cline-any cline-yes">392x</span>
1107
+ <span class="cline-any cline-yes">392x</span>
1108
+ <span class="cline-any cline-yes">392x</span>
1040
1109
  <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-yes">316x</span>
1042
- <span class="cline-any cline-yes">477x</span>
1043
- <span class="cline-any cline-yes">316x</span>
1110
+ <span class="cline-any cline-yes">392x</span>
1111
+ <span class="cline-any cline-yes">488x</span>
1112
+ <span class="cline-any cline-yes">392x</span>
1044
1113
  <span class="cline-any cline-neutral">&nbsp;</span>
1045
1114
  <span class="cline-any cline-neutral">&nbsp;</span>
1046
1115
  <span class="cline-any cline-neutral">&nbsp;</span>
1047
1116
  <span class="cline-any cline-neutral">&nbsp;</span>
1048
1117
  <span class="cline-any cline-neutral">&nbsp;</span>
1049
- <span class="cline-any cline-yes">264x</span>
1118
+ <span class="cline-any cline-yes">253x</span>
1050
1119
  <span class="cline-any cline-neutral">&nbsp;</span>
1051
- <span class="cline-any cline-yes">261x</span>
1052
- <span class="cline-any cline-yes">47x</span>
1053
- <span class="cline-any cline-yes">261x</span>
1120
+ <span class="cline-any cline-yes">250x</span>
1121
+ <span class="cline-any cline-yes">43x</span>
1122
+ <span class="cline-any cline-yes">250x</span>
1054
1123
  <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-yes">264x</span>
1124
+ <span class="cline-any cline-yes">253x</span>
1056
1125
  <span class="cline-any cline-neutral">&nbsp;</span>
1057
1126
  <span class="cline-any cline-neutral">&nbsp;</span>
1058
1127
  <span class="cline-any cline-neutral">&nbsp;</span>
1059
- <span class="cline-any cline-yes">109x</span>
1128
+ <span class="cline-any cline-yes">169x</span>
1060
1129
  <span class="cline-any cline-neutral">&nbsp;</span>
1061
1130
  <span class="cline-any cline-neutral">&nbsp;</span>
1062
- <span class="cline-any cline-yes">592x</span>
1131
+ <span class="cline-any cline-yes">563x</span>
1063
1132
  <span class="cline-any cline-neutral">&nbsp;</span>
1064
1133
  <span class="cline-any cline-neutral">&nbsp;</span>
1065
1134
  <span class="cline-any cline-neutral">&nbsp;</span>
1066
- <span class="cline-any cline-yes">727x</span>
1067
- <span class="cline-any cline-yes">727x</span>
1068
- <span class="cline-any cline-yes">49x</span>
1069
- <span class="cline-any cline-yes">678x</span>
1135
+ <span class="cline-any cline-yes">704x</span>
1136
+ <span class="cline-any cline-yes">704x</span>
1137
+ <span class="cline-any cline-yes">47x</span>
1138
+ <span class="cline-any cline-yes">657x</span>
1070
1139
  <span class="cline-any cline-yes">22x</span>
1140
+ <span class="cline-any cline-yes">635x</span>
1071
1141
  <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-yes">656x</span>
1073
- <span class="cline-any cline-yes">26x</span>
1074
- <span class="cline-any cline-yes">51x</span>
1075
- <span class="cline-any cline-yes">26x</span>
1142
+ <span class="cline-any cline-no">&nbsp;</span>
1143
+ <span class="cline-any cline-no">&nbsp;</span>
1144
+ <span class="cline-any cline-no">&nbsp;</span>
1145
+ <span class="cline-any cline-neutral">&nbsp;</span>
1146
+ <span class="cline-any cline-yes">635x</span>
1147
+ <span class="cline-any cline-yes">24x</span>
1148
+ <span class="cline-any cline-yes">49x</span>
1149
+ <span class="cline-any cline-yes">24x</span>
1076
1150
  <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-yes">630x</span>
1151
+ <span class="cline-any cline-yes">611x</span>
1078
1152
  <span class="cline-any cline-yes">11x</span>
1079
1153
  <span class="cline-any cline-yes">11x</span>
1080
1154
  <span class="cline-any cline-yes">28x</span>
1081
1155
  <span class="cline-any cline-yes">11x</span>
1082
1156
  <span class="cline-any cline-neutral">&nbsp;</span>
1083
- <span class="cline-any cline-yes">619x</span>
1084
- <span class="cline-any cline-yes">619x</span>
1085
- <span class="cline-any cline-yes">7708x</span>
1086
- <span class="cline-any cline-yes">2777x</span>
1157
+ <span class="cline-any cline-yes">600x</span>
1158
+ <span class="cline-any cline-yes">600x</span>
1087
1159
  <span class="cline-any cline-neutral">&nbsp;</span>
1088
- <span class="cline-any cline-yes">4931x</span>
1089
- <span class="cline-any cline-yes">4638x</span>
1160
+ <span class="cline-any cline-yes">7349x</span>
1161
+ <span class="cline-any cline-yes">1377x</span>
1162
+ <span class="cline-any cline-yes">5972x</span>
1163
+ <span class="cline-any cline-yes">1258x</span>
1090
1164
  <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-yes">293x</span>
1092
- <span class="cline-any cline-yes">619x</span>
1093
1165
  <span class="cline-any cline-neutral">&nbsp;</span>
1166
+ <span class="cline-any cline-yes">1258x</span>
1094
1167
  <span class="cline-any cline-neutral">&nbsp;</span>
1168
+ <span class="cline-any cline-yes">4714x</span>
1169
+ <span class="cline-any cline-yes">4424x</span>
1095
1170
  <span class="cline-any cline-neutral">&nbsp;</span>
1171
+ <span class="cline-any cline-yes">290x</span>
1096
1172
  <span class="cline-any cline-neutral">&nbsp;</span>
1097
- <span class="cline-any cline-yes">2600x</span>
1098
- <span class="cline-any cline-yes">5295x</span>
1173
+ <span class="cline-any cline-yes">600x</span>
1099
1174
  <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-yes">2774x</span>
1101
- <span class="cline-any cline-yes">2774x</span>
1102
- <span class="cline-any cline-yes">2774x</span>
1103
- <span class="cline-any cline-yes">2774x</span>
1104
- <span class="cline-any cline-yes">2774x</span>
1105
- <span class="cline-any cline-yes">2774x</span>
1106
- <span class="cline-any cline-yes">2774x</span>
1107
- <span class="cline-any cline-yes">269x</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-yes">2973x</span>
1179
+ <span class="cline-any cline-yes">6016x</span>
1180
+ <span class="cline-any cline-neutral">&nbsp;</span>
1181
+ <span class="cline-any cline-yes">3130x</span>
1182
+ <span class="cline-any cline-yes">3130x</span>
1183
+ <span class="cline-any cline-yes">3130x</span>
1184
+ <span class="cline-any cline-yes">3130x</span>
1185
+ <span class="cline-any cline-yes">3130x</span>
1186
+ <span class="cline-any cline-yes">3130x</span>
1187
+ <span class="cline-any cline-yes">3130x</span>
1188
+ <span class="cline-any cline-yes">286x</span>
1108
1189
  <span class="cline-any cline-yes">23x</span>
1109
- <span class="cline-any cline-yes">269x</span>
1110
- <span class="cline-any cline-yes">269x</span>
1111
- <span class="cline-any cline-yes">269x</span>
1112
- <span class="cline-any cline-yes">269x</span>
1190
+ <span class="cline-any cline-yes">286x</span>
1191
+ <span class="cline-any cline-yes">286x</span>
1192
+ <span class="cline-any cline-yes">286x</span>
1193
+ <span class="cline-any cline-yes">286x</span>
1113
1194
  <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-yes">2774x</span>
1115
- <span class="cline-any cline-yes">2509x</span>
1116
- <span class="cline-any cline-yes">2774x</span>
1117
- <span class="cline-any cline-yes">2774x</span>
1118
- <span class="cline-any cline-yes">2801x</span>
1119
- <span class="cline-any cline-yes">2774x</span>
1195
+ <span class="cline-any cline-yes">3130x</span>
1196
+ <span class="cline-any cline-yes">2848x</span>
1197
+ <span class="cline-any cline-yes">3130x</span>
1198
+ <span class="cline-any cline-yes">3130x</span>
1199
+ <span class="cline-any cline-yes">3157x</span>
1200
+ <span class="cline-any cline-yes">3130x</span>
1120
1201
  <span class="cline-any cline-neutral">&nbsp;</span>
1121
1202
  <span class="cline-any cline-neutral">&nbsp;</span>
1122
1203
  <span class="cline-any cline-neutral">&nbsp;</span>
1123
1204
  <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-yes">75x</span>
1125
- <span class="cline-any cline-yes">74x</span>
1126
- <span class="cline-any cline-yes">74x</span>
1127
- <span class="cline-any cline-yes">2851x</span>
1205
+ <span class="cline-any cline-yes">87x</span>
1206
+ <span class="cline-any cline-yes">87x</span>
1207
+ <span class="cline-any cline-yes">87x</span>
1208
+ <span class="cline-any cline-yes">3259x</span>
1128
1209
  <span class="cline-any cline-neutral">&nbsp;</span>
1129
- <span class="cline-any cline-yes">75x</span>
1210
+ <span class="cline-any cline-yes">87x</span>
1130
1211
  <span class="cline-any cline-neutral">&nbsp;</span>
1131
1212
  <span class="cline-any cline-neutral">&nbsp;</span>
1132
1213
  <span class="cline-any cline-neutral">&nbsp;</span>
1133
1214
  <span class="cline-any cline-neutral">&nbsp;</span>
1134
- <span class="cline-any cline-yes">79x</span>
1135
- <span class="cline-any cline-yes">79x</span>
1136
- <span class="cline-any cline-yes">79x</span>
1215
+ <span class="cline-any cline-yes">87x</span>
1216
+ <span class="cline-any cline-yes">87x</span>
1217
+ <span class="cline-any cline-yes">87x</span>
1137
1218
  <span class="cline-any cline-neutral">&nbsp;</span>
1138
- <span class="cline-any cline-yes">79x</span>
1139
- <span class="cline-any cline-yes">3x</span>
1219
+ <span class="cline-any cline-yes">87x</span>
1220
+ <span class="cline-any cline-yes">2x</span>
1140
1221
  <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-yes">76x</span>
1222
+ <span class="cline-any cline-yes">85x</span>
1142
1223
  <span class="cline-any cline-neutral">&nbsp;</span>
1143
1224
  <span class="cline-any cline-neutral">&nbsp;</span>
1144
1225
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1195,34 +1276,36 @@
1195
1276
  <span class="cline-any cline-neutral">&nbsp;</span>
1196
1277
  <span class="cline-any cline-neutral">&nbsp;</span>
1197
1278
  <span class="cline-any cline-neutral">&nbsp;</span>
1198
- <span class="cline-any cline-yes">76x</span>
1199
- <span class="cline-any cline-yes">76x</span>
1279
+ <span class="cline-any cline-yes">85x</span>
1280
+ <span class="cline-any cline-yes">85x</span>
1200
1281
  <span class="cline-any cline-neutral">&nbsp;</span>
1201
- <span class="cline-any cline-yes">76x</span>
1202
- <span class="cline-any cline-yes">4x</span>
1282
+ <span class="cline-any cline-yes">85x</span>
1283
+ <span class="cline-any cline-yes">2x</span>
1203
1284
  <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-yes">3x</span>
1205
- <span class="cline-any cline-yes">3x</span>
1285
+ <span class="cline-any cline-yes">2x</span>
1286
+ <span class="cline-any cline-yes">2x</span>
1206
1287
  <span class="cline-any cline-neutral">&nbsp;</span>
1207
1288
  <span class="cline-any cline-neutral">&nbsp;</span>
1208
- <span class="cline-any cline-yes">75x</span>
1209
- <span class="cline-any cline-yes">75x</span>
1210
- <span class="cline-any cline-yes">2550x</span>
1211
- <span class="cline-any cline-yes">75x</span>
1212
- <span class="cline-any cline-yes">75x</span>
1213
- <span class="cline-any cline-yes">75x</span>
1214
- <span class="cline-any cline-yes">75x</span>
1215
- <span class="cline-any cline-yes">75x</span>
1216
- <span class="cline-any cline-yes">75x</span>
1289
+ <span class="cline-any cline-yes">85x</span>
1290
+ <span class="cline-any cline-yes">85x</span>
1291
+ <span class="cline-any cline-yes">2890x</span>
1292
+ <span class="cline-any cline-yes">85x</span>
1293
+ <span class="cline-any cline-yes">85x</span>
1294
+ <span class="cline-any cline-yes">85x</span>
1295
+ <span class="cline-any cline-yes">85x</span>
1296
+ <span class="cline-any cline-yes">85x</span>
1297
+ <span class="cline-any cline-yes">85x</span>
1298
+ <span class="cline-any cline-yes">82x</span>
1299
+ <span class="cline-any cline-yes">85x</span>
1217
1300
  <span class="cline-any cline-neutral">&nbsp;</span>
1218
- <span class="cline-any cline-yes">75x</span>
1219
- <span class="cline-any cline-yes">51x</span>
1220
- <span class="cline-any cline-yes">647x</span>
1221
- <span class="cline-any cline-yes">51x</span>
1301
+ <span class="cline-any cline-yes">85x</span>
1302
+ <span class="cline-any cline-yes">64x</span>
1303
+ <span class="cline-any cline-yes">714x</span>
1304
+ <span class="cline-any cline-yes">64x</span>
1222
1305
  <span class="cline-any cline-neutral">&nbsp;</span>
1223
- <span class="cline-any cline-yes">24x</span>
1306
+ <span class="cline-any cline-yes">21x</span>
1224
1307
  <span class="cline-any cline-neutral">&nbsp;</span>
1225
- <span class="cline-any cline-yes">75x</span>
1308
+ <span class="cline-any cline-yes">85x</span>
1226
1309
  <span class="cline-any cline-neutral">&nbsp;</span>
1227
1310
  <span class="cline-any cline-neutral">&nbsp;</span>
1228
1311
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1260,32 +1343,42 @@
1260
1343
  <span class="cline-any cline-neutral">&nbsp;</span>
1261
1344
  <span class="cline-any cline-neutral">&nbsp;</span>
1262
1345
  <span class="cline-any cline-neutral">&nbsp;</span>
1263
- <span class="cline-any cline-yes">75x</span>
1346
+ <span class="cline-any cline-yes">85x</span>
1264
1347
  <span class="cline-any cline-neutral">&nbsp;</span>
1265
- <span class="cline-any cline-yes">75x</span>
1266
- <span class="cline-any cline-yes">155x</span>
1267
- <span class="cline-any cline-yes">75x</span>
1268
- <span class="cline-any cline-yes">75x</span>
1269
- <span class="cline-any cline-yes">3x</span>
1270
- <span class="cline-any cline-yes">72x</span>
1348
+ <span class="cline-any cline-yes">85x</span>
1349
+ <span class="cline-any cline-yes">176x</span>
1350
+ <span class="cline-any cline-yes">85x</span>
1351
+ <span class="cline-any cline-yes">85x</span>
1352
+ <span class="cline-any cline-no">&nbsp;</span>
1353
+ <span class="cline-any cline-yes">85x</span>
1271
1354
  <span class="cline-any cline-no">&nbsp;</span>
1272
1355
  <span class="cline-any cline-no">&nbsp;</span>
1273
1356
  <span class="cline-any cline-no">&nbsp;</span>
1274
1357
  <span class="cline-any cline-neutral">&nbsp;</span>
1275
1358
  <span class="cline-any cline-neutral">&nbsp;</span>
1276
- <span class="cline-any cline-yes">72x</span>
1359
+ <span class="cline-any cline-yes">85x</span>
1360
+ <span class="cline-any cline-yes">42x</span>
1361
+ <span class="cline-any cline-yes">42x</span>
1277
1362
  <span class="cline-any cline-neutral">&nbsp;</span>
1278
- <span class="cline-any cline-yes">27x</span>
1279
- <span class="cline-any cline-yes">27x</span>
1280
- <span class="cline-any cline-yes">27x</span>
1363
+ <span class="cline-any cline-no">&nbsp;</span>
1364
+ <span class="cline-any cline-no">&nbsp;</span>
1365
+ <span class="cline-any cline-neutral">&nbsp;</span>
1366
+ <span class="cline-any cline-yes">42x</span>
1367
+ <span class="cline-any cline-neutral">&nbsp;</span>
1368
+ <span class="cline-any cline-neutral">&nbsp;</span>
1369
+ <span class="cline-any cline-yes">85x</span>
1281
1370
  <span class="cline-any cline-neutral">&nbsp;</span>
1282
- <span class="cline-any cline-yes">27x</span>
1283
- <span class="cline-any cline-yes">27x</span>
1371
+ <span class="cline-any cline-yes">47x</span>
1372
+ <span class="cline-any cline-yes">47x</span>
1373
+ <span class="cline-any cline-yes">47x</span>
1374
+ <span class="cline-any cline-neutral">&nbsp;</span>
1375
+ <span class="cline-any cline-yes">47x</span>
1376
+ <span class="cline-any cline-yes">47x</span>
1284
1377
  <span class="cline-any cline-yes">9x</span>
1285
1378
  <span class="cline-any cline-neutral">&nbsp;</span>
1286
- <span class="cline-any cline-yes">27x</span>
1379
+ <span class="cline-any cline-yes">47x</span>
1287
1380
  <span class="cline-any cline-neutral">&nbsp;</span>
1288
- <span class="cline-any cline-yes">27x</span>
1381
+ <span class="cline-any cline-yes">47x</span>
1289
1382
  <span class="cline-any cline-neutral">&nbsp;</span>
1290
1383
  <span class="cline-any cline-yes">14x</span>
1291
1384
  <span class="cline-any cline-yes">14x</span>
@@ -1294,70 +1387,79 @@
1294
1387
  <span class="cline-any cline-neutral">&nbsp;</span>
1295
1388
  <span class="cline-any cline-neutral">&nbsp;</span>
1296
1389
  <span class="cline-any cline-yes">14x</span>
1297
- <span class="cline-any cline-yes">8x</span>
1298
- <span class="cline-any cline-yes">8x</span>
1299
- <span class="cline-any cline-neutral">&nbsp;</span>
1300
- <span class="cline-any cline-yes">8x</span>
1301
- <span class="cline-any cline-yes">8x</span>
1302
- <span class="cline-any cline-yes">8x</span>
1303
- <span class="cline-any cline-yes">8x</span>
1304
- <span class="cline-any cline-yes">8x</span>
1390
+ <span class="cline-any cline-yes">6x</span>
1391
+ <span class="cline-any cline-yes">6x</span>
1392
+ <span class="cline-any cline-yes">6x</span>
1393
+ <span class="cline-any cline-yes">6x</span>
1394
+ <span class="cline-any cline-yes">6x</span>
1395
+ <span class="cline-any cline-no">&nbsp;</span>
1396
+ <span class="cline-any cline-no">&nbsp;</span>
1397
+ <span class="cline-any cline-no">&nbsp;</span>
1398
+ <span class="cline-any cline-no">&nbsp;</span>
1305
1399
  <span class="cline-any cline-neutral">&nbsp;</span>
1306
1400
  <span class="cline-any cline-yes">6x</span>
1401
+ <span class="cline-any cline-yes">6x</span>
1402
+ <span class="cline-any cline-yes">6x</span>
1403
+ <span class="cline-any cline-neutral">&nbsp;</span>
1404
+ <span class="cline-any cline-yes">8x</span>
1307
1405
  <span class="cline-any cline-yes">14x</span>
1308
1406
  <span class="cline-any cline-yes">14x</span>
1309
1407
  <span class="cline-any cline-yes">14x</span>
1310
1408
  <span class="cline-any cline-neutral">&nbsp;</span>
1311
- <span class="cline-any cline-yes">13x</span>
1312
- <span class="cline-any cline-yes">13x</span>
1409
+ <span class="cline-any cline-neutral">&nbsp;</span>
1410
+ <span class="cline-any cline-yes">33x</span>
1411
+ <span class="cline-any cline-yes">33x</span>
1412
+ <span class="cline-any cline-neutral">&nbsp;</span>
1413
+ <span class="cline-any cline-yes">33x</span>
1414
+ <span class="cline-any cline-yes">24x</span>
1313
1415
  <span class="cline-any cline-neutral">&nbsp;</span>
1314
1416
  <span class="cline-any cline-neutral">&nbsp;</span>
1315
- <span class="cline-any cline-yes">72x</span>
1417
+ <span class="cline-any cline-yes">85x</span>
1316
1418
  <span class="cline-any cline-yes">7x</span>
1317
1419
  <span class="cline-any cline-yes">7x</span>
1318
1420
  <span class="cline-any cline-yes">7x</span>
1319
1421
  <span class="cline-any cline-neutral">&nbsp;</span>
1320
- <span class="cline-any cline-yes">72x</span>
1321
- <span class="cline-any cline-yes">72x</span>
1422
+ <span class="cline-any cline-yes">85x</span>
1423
+ <span class="cline-any cline-yes">85x</span>
1322
1424
  <span class="cline-any cline-neutral">&nbsp;</span>
1323
- <span class="cline-any cline-yes">72x</span>
1324
- <span class="cline-any cline-yes">72x</span>
1425
+ <span class="cline-any cline-yes">85x</span>
1426
+ <span class="cline-any cline-yes">85x</span>
1325
1427
  <span class="cline-any cline-neutral">&nbsp;</span>
1326
- <span class="cline-any cline-yes">72x</span>
1327
- <span class="cline-any cline-yes">72x</span>
1328
- <span class="cline-any cline-yes">13x</span>
1329
- <span class="cline-any cline-yes">13x</span>
1330
- <span class="cline-any cline-yes">13x</span>
1331
- <span class="cline-any cline-yes">13x</span>
1332
- <span class="cline-any cline-yes">13x</span>
1333
- <span class="cline-any cline-yes">13x</span>
1428
+ <span class="cline-any cline-yes">85x</span>
1429
+ <span class="cline-any cline-yes">85x</span>
1430
+ <span class="cline-any cline-yes">14x</span>
1431
+ <span class="cline-any cline-yes">14x</span>
1432
+ <span class="cline-any cline-yes">14x</span>
1433
+ <span class="cline-any cline-yes">14x</span>
1434
+ <span class="cline-any cline-yes">14x</span>
1435
+ <span class="cline-any cline-yes">14x</span>
1334
1436
  <span class="cline-any cline-neutral">&nbsp;</span>
1335
1437
  <span class="cline-any cline-neutral">&nbsp;</span>
1336
- <span class="cline-any cline-yes">72x</span>
1438
+ <span class="cline-any cline-yes">85x</span>
1337
1439
  <span class="cline-any cline-neutral">&nbsp;</span>
1338
- <span class="cline-any cline-yes">72x</span>
1339
- <span class="cline-any cline-yes">72x</span>
1340
- <span class="cline-any cline-yes">72x</span>
1440
+ <span class="cline-any cline-yes">85x</span>
1441
+ <span class="cline-any cline-yes">85x</span>
1442
+ <span class="cline-any cline-yes">85x</span>
1341
1443
  <span class="cline-any cline-neutral">&nbsp;</span>
1342
1444
  <span class="cline-any cline-neutral">&nbsp;</span>
1343
1445
  <span class="cline-any cline-neutral">&nbsp;</span>
1344
1446
  <span class="cline-any cline-neutral">&nbsp;</span>
1345
- <span class="cline-any cline-yes">19x</span>
1346
- <span class="cline-any cline-yes">19x</span>
1347
- <span class="cline-any cline-yes">19x</span>
1348
- <span class="cline-any cline-yes">19x</span>
1447
+ <span class="cline-any cline-yes">13x</span>
1448
+ <span class="cline-any cline-yes">13x</span>
1449
+ <span class="cline-any cline-yes">13x</span>
1450
+ <span class="cline-any cline-yes">13x</span>
1349
1451
  <span class="cline-any cline-neutral">&nbsp;</span>
1350
- <span class="cline-any cline-yes">19x</span>
1351
- <span class="cline-any cline-yes">19x</span>
1352
- <span class="cline-any cline-yes">19x</span>
1452
+ <span class="cline-any cline-yes">13x</span>
1453
+ <span class="cline-any cline-yes">13x</span>
1454
+ <span class="cline-any cline-yes">13x</span>
1353
1455
  <span class="cline-any cline-neutral">&nbsp;</span>
1354
1456
  <span class="cline-any cline-no">&nbsp;</span>
1355
1457
  <span class="cline-any cline-neutral">&nbsp;</span>
1356
- <span class="cline-any cline-yes">19x</span>
1458
+ <span class="cline-any cline-yes">13x</span>
1357
1459
  <span class="cline-any cline-neutral">&nbsp;</span>
1358
- <span class="cline-any cline-yes">19x</span>
1460
+ <span class="cline-any cline-yes">13x</span>
1359
1461
  <span class="cline-any cline-neutral">&nbsp;</span>
1360
- <span class="cline-any cline-yes">19x</span>
1462
+ <span class="cline-any cline-yes">13x</span>
1361
1463
  <span class="cline-any cline-neutral">&nbsp;</span>
1362
1464
  <span class="cline-any cline-neutral">&nbsp;</span>
1363
1465
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1374,20 +1476,20 @@
1374
1476
  <span class="cline-any cline-yes">1x</span>
1375
1477
  <span class="cline-any cline-yes">1x</span>
1376
1478
  <span class="cline-any cline-neutral">&nbsp;</span>
1377
- <span class="cline-any cline-yes">330x</span>
1479
+ <span class="cline-any cline-yes">311x</span>
1378
1480
  <span class="cline-any cline-neutral">&nbsp;</span>
1379
1481
  <span class="cline-any cline-neutral">&nbsp;</span>
1380
- <span class="cline-any cline-yes">14x</span>
1381
- <span class="cline-any cline-yes">274x</span>
1382
- <span class="cline-any cline-yes">278x</span>
1383
- <span class="cline-any cline-yes">278x</span>
1384
- <span class="cline-any cline-yes">278x</span>
1482
+ <span class="cline-any cline-yes">16x</span>
1483
+ <span class="cline-any cline-yes">257x</span>
1484
+ <span class="cline-any cline-yes">261x</span>
1485
+ <span class="cline-any cline-yes">261x</span>
1486
+ <span class="cline-any cline-yes">261x</span>
1385
1487
  <span class="cline-any cline-yes">2x</span>
1386
1488
  <span class="cline-any cline-yes">2x</span>
1387
1489
  <span class="cline-any cline-yes">2x</span>
1388
1490
  <span class="cline-any cline-yes">2x</span>
1389
1491
  <span class="cline-any cline-neutral">&nbsp;</span>
1390
- <span class="cline-any cline-yes">636x</span>
1492
+ <span class="cline-any cline-yes">618x</span>
1391
1493
  <span class="cline-any cline-neutral">&nbsp;</span>
1392
1494
  <span class="cline-any cline-neutral">&nbsp;</span>
1393
1495
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1400,28 +1502,28 @@
1400
1502
  <span class="cline-any cline-neutral">&nbsp;</span>
1401
1503
  <span class="cline-any cline-neutral">&nbsp;</span>
1402
1504
  <span class="cline-any cline-neutral">&nbsp;</span>
1403
- <span class="cline-any cline-yes">496x</span>
1404
- <span class="cline-any cline-yes">222x</span>
1405
- <span class="cline-any cline-yes">274x</span>
1505
+ <span class="cline-any cline-yes">465x</span>
1506
+ <span class="cline-any cline-yes">208x</span>
1507
+ <span class="cline-any cline-yes">257x</span>
1406
1508
  <span class="cline-any cline-neutral">&nbsp;</span>
1407
1509
  <span class="cline-any cline-neutral">&nbsp;</span>
1408
1510
  <span class="cline-any cline-neutral">&nbsp;</span>
1409
1511
  <span class="cline-any cline-neutral">&nbsp;</span>
1410
1512
  <span class="cline-any cline-neutral">&nbsp;</span>
1411
- <span class="cline-any cline-yes">274x</span>
1513
+ <span class="cline-any cline-yes">257x</span>
1412
1514
  <span class="cline-any cline-neutral">&nbsp;</span>
1413
- <span class="cline-any cline-yes">278x</span>
1414
- <span class="cline-any cline-yes">278x</span>
1415
- <span class="cline-any cline-yes">278x</span>
1416
- <span class="cline-any cline-yes">492x</span>
1417
- <span class="cline-any cline-yes">1513x</span>
1418
- <span class="cline-any cline-yes">438x</span>
1419
- <span class="cline-any cline-yes">278x</span>
1420
- <span class="cline-any cline-yes">98x</span>
1421
- <span class="cline-any cline-yes">278x</span>
1422
- <span class="cline-any cline-yes">278x</span>
1423
- <span class="cline-any cline-yes">278x</span>
1424
- <span class="cline-any cline-yes">278x</span>
1515
+ <span class="cline-any cline-yes">261x</span>
1516
+ <span class="cline-any cline-yes">261x</span>
1517
+ <span class="cline-any cline-yes">261x</span>
1518
+ <span class="cline-any cline-yes">462x</span>
1519
+ <span class="cline-any cline-yes">1426x</span>
1520
+ <span class="cline-any cline-yes">412x</span>
1521
+ <span class="cline-any cline-yes">261x</span>
1522
+ <span class="cline-any cline-yes">102x</span>
1523
+ <span class="cline-any cline-yes">261x</span>
1524
+ <span class="cline-any cline-yes">261x</span>
1525
+ <span class="cline-any cline-yes">261x</span>
1526
+ <span class="cline-any cline-yes">261x</span>
1425
1527
  <span class="cline-any cline-yes">18x</span>
1426
1528
  <span class="cline-any cline-yes">4x</span>
1427
1529
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1430,149 +1532,167 @@
1430
1532
  <span class="cline-any cline-yes">18x</span>
1431
1533
  <span class="cline-any cline-yes">18x</span>
1432
1534
  <span class="cline-any cline-neutral">&nbsp;</span>
1433
- <span class="cline-any cline-yes">260x</span>
1535
+ <span class="cline-any cline-yes">243x</span>
1434
1536
  <span class="cline-any cline-yes">11x</span>
1435
1537
  <span class="cline-any cline-yes">11x</span>
1436
1538
  <span class="cline-any cline-yes">11x</span>
1437
1539
  <span class="cline-any cline-neutral">&nbsp;</span>
1438
1540
  <span class="cline-any cline-neutral">&nbsp;</span>
1439
- <span class="cline-any cline-yes">249x</span>
1440
- <span class="cline-any cline-yes">249x</span>
1441
- <span class="cline-any cline-yes">249x</span>
1442
- <span class="cline-any cline-yes">11x</span>
1541
+ <span class="cline-any cline-yes">232x</span>
1542
+ <span class="cline-any cline-yes">232x</span>
1543
+ <span class="cline-any cline-yes">232x</span>
1443
1544
  <span class="cline-any cline-neutral">&nbsp;</span>
1444
- <span class="cline-any cline-yes">238x</span>
1445
- <span class="cline-any cline-yes">176x</span>
1545
+ <span class="cline-any cline-yes">11x</span>
1546
+ <span class="cline-any cline-yes">11x</span>
1446
1547
  <span class="cline-any cline-neutral">&nbsp;</span>
1447
- <span class="cline-any cline-yes">62x</span>
1448
1548
  <span class="cline-any cline-neutral">&nbsp;</span>
1449
- <span class="cline-any cline-yes">267x</span>
1549
+ <span class="cline-any cline-yes">221x</span>
1550
+ <span class="cline-any cline-yes">221x</span>
1551
+ <span class="cline-any cline-yes">221x</span>
1450
1552
  <span class="cline-any cline-neutral">&nbsp;</span>
1451
1553
  <span class="cline-any cline-neutral">&nbsp;</span>
1554
+ <span class="cline-any cline-yes">250x</span>
1452
1555
  <span class="cline-any cline-neutral">&nbsp;</span>
1453
1556
  <span class="cline-any cline-neutral">&nbsp;</span>
1454
- <span class="cline-any cline-yes">3430x</span>
1455
- <span class="cline-any cline-yes">3430x</span>
1456
1557
  <span class="cline-any cline-neutral">&nbsp;</span>
1457
- <span class="cline-any cline-yes">14x</span>
1458
1558
  <span class="cline-any cline-neutral">&nbsp;</span>
1459
- <span class="cline-any cline-yes">80x</span>
1460
- <span class="cline-any cline-yes">57x</span>
1461
- <span class="cline-any cline-yes">23x</span>
1462
- <span class="cline-any cline-yes">4x</span>
1463
- <span class="cline-any cline-yes">4x</span>
1464
- <span class="cline-any cline-yes">4x</span>
1559
+ <span class="cline-any cline-yes">3812x</span>
1560
+ <span class="cline-any cline-yes">3812x</span>
1465
1561
  <span class="cline-any cline-neutral">&nbsp;</span>
1466
- <span class="cline-any cline-yes">19x</span>
1467
- <span class="cline-any cline-yes">19x</span>
1468
- <span class="cline-any cline-yes">19x</span>
1469
- <span class="cline-any cline-yes">2x</span>
1562
+ <span class="cline-any cline-yes">16x</span>
1470
1563
  <span class="cline-any cline-neutral">&nbsp;</span>
1471
- <span class="cline-any cline-yes">17x</span>
1472
- <span class="cline-any cline-yes">17x</span>
1473
- <span class="cline-any cline-yes">14x</span>
1474
- <span class="cline-any cline-yes">8x</span>
1564
+ <span class="cline-any cline-yes">87x</span>
1565
+ <span class="cline-any cline-yes">69x</span>
1566
+ <span class="cline-any cline-yes">18x</span>
1567
+ <span class="cline-any cline-yes">5x</span>
1568
+ <span class="cline-any cline-yes">5x</span>
1569
+ <span class="cline-any cline-yes">5x</span>
1475
1570
  <span class="cline-any cline-neutral">&nbsp;</span>
1571
+ <span class="cline-any cline-yes">13x</span>
1572
+ <span class="cline-any cline-yes">13x</span>
1573
+ <span class="cline-any cline-yes">13x</span>
1574
+ <span class="cline-any cline-no">&nbsp;</span>
1476
1575
  <span class="cline-any cline-neutral">&nbsp;</span>
1576
+ <span class="cline-any cline-yes">13x</span>
1577
+ <span class="cline-any cline-yes">13x</span>
1578
+ <span class="cline-any cline-yes">11x</span>
1477
1579
  <span class="cline-any cline-yes">3x</span>
1478
1580
  <span class="cline-any cline-neutral">&nbsp;</span>
1479
- <span class="cline-any cline-yes">19x</span>
1480
- <span class="cline-any cline-yes">19x</span>
1481
1581
  <span class="cline-any cline-neutral">&nbsp;</span>
1482
- <span class="cline-any cline-yes">19x</span>
1483
- <span class="cline-any cline-yes">9x</span>
1484
- <span class="cline-any cline-yes">9x</span>
1485
- <span class="cline-any cline-yes">7x</span>
1582
+ <span class="cline-any cline-yes">2x</span>
1583
+ <span class="cline-any cline-neutral">&nbsp;</span>
1584
+ <span class="cline-any cline-yes">13x</span>
1585
+ <span class="cline-any cline-yes">13x</span>
1586
+ <span class="cline-any cline-neutral">&nbsp;</span>
1587
+ <span class="cline-any cline-yes">13x</span>
1588
+ <span class="cline-any cline-yes">4x</span>
1589
+ <span class="cline-any cline-yes">4x</span>
1590
+ <span class="cline-any cline-yes">2x</span>
1486
1591
  <span class="cline-any cline-yes">2x</span>
1487
1592
  <span class="cline-any cline-yes">2x</span>
1488
1593
  <span class="cline-any cline-neutral">&nbsp;</span>
1489
- <span class="cline-any cline-yes">10x</span>
1594
+ <span class="cline-any cline-yes">9x</span>
1490
1595
  <span class="cline-any cline-no">&nbsp;</span>
1491
1596
  <span class="cline-any cline-neutral">&nbsp;</span>
1492
1597
  <span class="cline-any cline-neutral">&nbsp;</span>
1493
- <span class="cline-any cline-yes">3150x</span>
1494
- <span class="cline-any cline-yes">7958x</span>
1495
- <span class="cline-any cline-yes">7958x</span>
1496
- <span class="cline-any cline-yes">7958x</span>
1497
- <span class="cline-any cline-yes">138x</span>
1598
+ <span class="cline-any cline-yes">3275x</span>
1599
+ <span class="cline-any cline-yes">8200x</span>
1600
+ <span class="cline-any cline-yes">8200x</span>
1601
+ <span class="cline-any cline-yes">8200x</span>
1602
+ <span class="cline-any cline-yes">2246x</span>
1603
+ <span class="cline-any cline-yes">5954x</span>
1604
+ <span class="cline-any cline-no">&nbsp;</span>
1605
+ <span class="cline-any cline-no">&nbsp;</span>
1606
+ <span class="cline-any cline-neutral">&nbsp;</span>
1607
+ <span class="cline-any cline-yes">5954x</span>
1608
+ <span class="cline-any cline-yes">238x</span>
1609
+ <span class="cline-any cline-neutral">&nbsp;</span>
1610
+ <span class="cline-any cline-yes">5954x</span>
1611
+ <span class="cline-any cline-yes">139x</span>
1498
1612
  <span class="cline-any cline-neutral">&nbsp;</span>
1499
1613
  <span class="cline-any cline-no">&nbsp;</span>
1614
+ <span class="cline-any cline-yes">3275x</span>
1615
+ <span class="cline-any cline-yes">3275x</span>
1616
+ <span class="cline-any cline-yes">3275x</span>
1617
+ <span class="cline-any cline-yes">3275x</span>
1618
+ <span class="cline-any cline-yes">8216x</span>
1619
+ <span class="cline-any cline-yes">16x</span>
1500
1620
  <span class="cline-any cline-neutral">&nbsp;</span>
1501
1621
  <span class="cline-any cline-neutral">&nbsp;</span>
1502
1622
  <span class="cline-any cline-neutral">&nbsp;</span>
1503
- <span class="cline-any cline-yes">3732x</span>
1504
- <span class="cline-any cline-yes">3732x</span>
1623
+ <span class="cline-any cline-yes">3614x</span>
1624
+ <span class="cline-any cline-yes">3614x</span>
1505
1625
  <span class="cline-any cline-neutral">&nbsp;</span>
1506
- <span class="cline-any cline-yes">8287x</span>
1507
- <span class="cline-any cline-yes">8287x</span>
1508
- <span class="cline-any cline-yes">7243x</span>
1509
- <span class="cline-any cline-yes">3014x</span>
1510
- <span class="cline-any cline-yes">3014x</span>
1511
- <span class="cline-any cline-yes">29x</span>
1626
+ <span class="cline-any cline-yes">8035x</span>
1627
+ <span class="cline-any cline-yes">8035x</span>
1628
+ <span class="cline-any cline-yes">7110x</span>
1629
+ <span class="cline-any cline-yes">2844x</span>
1630
+ <span class="cline-any cline-yes">2844x</span>
1631
+ <span class="cline-any cline-yes">11x</span>
1512
1632
  <span class="cline-any cline-neutral">&nbsp;</span>
1513
- <span class="cline-any cline-yes">4229x</span>
1633
+ <span class="cline-any cline-yes">4266x</span>
1514
1634
  <span class="cline-any cline-neutral">&nbsp;</span>
1515
- <span class="cline-any cline-yes">1044x</span>
1516
- <span class="cline-any cline-yes">1044x</span>
1517
- <span class="cline-any cline-yes">259x</span>
1635
+ <span class="cline-any cline-yes">925x</span>
1636
+ <span class="cline-any cline-yes">925x</span>
1637
+ <span class="cline-any cline-yes">228x</span>
1518
1638
  <span class="cline-any cline-neutral">&nbsp;</span>
1519
- <span class="cline-any cline-yes">8287x</span>
1639
+ <span class="cline-any cline-yes">8035x</span>
1520
1640
  <span class="cline-any cline-neutral">&nbsp;</span>
1521
1641
  <span class="cline-any cline-neutral">&nbsp;</span>
1522
1642
  <span class="cline-any cline-neutral">&nbsp;</span>
1523
1643
  <span class="cline-any cline-neutral">&nbsp;</span>
1524
- <span class="cline-any cline-yes">232x</span>
1525
- <span class="cline-any cline-yes">232x</span>
1526
- <span class="cline-any cline-yes">1372x</span>
1527
- <span class="cline-any cline-yes">16x</span>
1528
- <span class="cline-any cline-yes">216x</span>
1644
+ <span class="cline-any cline-yes">234x</span>
1645
+ <span class="cline-any cline-yes">234x</span>
1646
+ <span class="cline-any cline-yes">1125x</span>
1647
+ <span class="cline-any cline-yes">5x</span>
1648
+ <span class="cline-any cline-yes">229x</span>
1529
1649
  <span class="cline-any cline-neutral">&nbsp;</span>
1530
1650
  <span class="cline-any cline-neutral">&nbsp;</span>
1531
1651
  <span class="cline-any cline-neutral">&nbsp;</span>
1532
- <span class="cline-any cline-yes">2671x</span>
1652
+ <span class="cline-any cline-yes">2634x</span>
1533
1653
  <span class="cline-any cline-no">&nbsp;</span>
1534
- <span class="cline-any cline-yes">2671x</span>
1654
+ <span class="cline-any cline-yes">2634x</span>
1535
1655
  <span class="cline-any cline-yes">8x</span>
1536
1656
  <span class="cline-any cline-neutral">&nbsp;</span>
1537
- <span class="cline-any cline-yes">2663x</span>
1538
- <span class="cline-any cline-yes">2663x</span>
1539
- <span class="cline-any cline-yes">5753x</span>
1540
- <span class="cline-any cline-yes">5753x</span>
1541
- <span class="cline-any cline-yes">2581x</span>
1542
- <span class="cline-any cline-yes">2581x</span>
1657
+ <span class="cline-any cline-yes">2626x</span>
1658
+ <span class="cline-any cline-yes">2626x</span>
1659
+ <span class="cline-any cline-yes">5648x</span>
1660
+ <span class="cline-any cline-yes">5648x</span>
1661
+ <span class="cline-any cline-yes">2468x</span>
1662
+ <span class="cline-any cline-yes">2468x</span>
1543
1663
  <span class="cline-any cline-neutral">&nbsp;</span>
1544
- <span class="cline-any cline-yes">3172x</span>
1664
+ <span class="cline-any cline-yes">3180x</span>
1545
1665
  <span class="cline-any cline-neutral">&nbsp;</span>
1546
- <span class="cline-any cline-yes">2663x</span>
1547
- <span class="cline-any cline-yes">5956x</span>
1548
- <span class="cline-any cline-yes">5956x</span>
1549
- <span class="cline-any cline-yes">5956x</span>
1550
- <span class="cline-any cline-yes">5724x</span>
1551
- <span class="cline-any cline-yes">2574x</span>
1552
- <span class="cline-any cline-yes">182x</span>
1666
+ <span class="cline-any cline-yes">2626x</span>
1667
+ <span class="cline-any cline-yes">5871x</span>
1668
+ <span class="cline-any cline-yes">5871x</span>
1669
+ <span class="cline-any cline-yes">5871x</span>
1670
+ <span class="cline-any cline-yes">5637x</span>
1671
+ <span class="cline-any cline-yes">2466x</span>
1672
+ <span class="cline-any cline-yes">173x</span>
1553
1673
  <span class="cline-any cline-neutral">&nbsp;</span>
1554
- <span class="cline-any cline-yes">3150x</span>
1555
- <span class="cline-any cline-yes">3150x</span>
1556
- <span class="cline-any cline-yes">2413x</span>
1674
+ <span class="cline-any cline-yes">3171x</span>
1675
+ <span class="cline-any cline-yes">3171x</span>
1676
+ <span class="cline-any cline-yes">2354x</span>
1557
1677
  <span class="cline-any cline-neutral">&nbsp;</span>
1558
- <span class="cline-any cline-yes">5724x</span>
1678
+ <span class="cline-any cline-yes">5637x</span>
1559
1679
  <span class="cline-any cline-neutral">&nbsp;</span>
1560
- <span class="cline-any cline-yes">232x</span>
1680
+ <span class="cline-any cline-yes">234x</span>
1561
1681
  <span class="cline-any cline-neutral">&nbsp;</span>
1562
- <span class="cline-any cline-yes">2663x</span>
1563
- <span class="cline-any cline-yes">29x</span>
1564
- <span class="cline-any cline-yes">29x</span>
1682
+ <span class="cline-any cline-yes">2626x</span>
1683
+ <span class="cline-any cline-yes">11x</span>
1684
+ <span class="cline-any cline-yes">11x</span>
1565
1685
  <span class="cline-any cline-neutral">&nbsp;</span>
1566
1686
  <span class="cline-any cline-neutral">&nbsp;</span>
1567
1687
  <span class="cline-any cline-yes">1x</span>
1568
1688
  <span class="cline-any cline-yes">1x</span>
1569
1689
  <span class="cline-any cline-yes">1x</span>
1570
1690
  <span class="cline-any cline-neutral">&nbsp;</span>
1571
- <span class="cline-any cline-yes">14x</span>
1691
+ <span class="cline-any cline-yes">16x</span>
1572
1692
  <span class="cline-any cline-yes">7x</span>
1573
1693
  <span class="cline-any cline-yes">7x</span>
1574
1694
  <span class="cline-any cline-neutral">&nbsp;</span>
1575
- <span class="cline-any cline-yes">14x</span>
1695
+ <span class="cline-any cline-yes">16x</span>
1576
1696
  <span class="cline-any cline-yes">125x</span>
1577
1697
  <span class="cline-any cline-yes">59x</span>
1578
1698
  <span class="cline-any cline-yes">66x</span>
@@ -1582,7 +1702,7 @@
1582
1702
  <span class="cline-any cline-yes">66x</span>
1583
1703
  <span class="cline-any cline-neutral">&nbsp;</span>
1584
1704
  <span class="cline-any cline-neutral">&nbsp;</span>
1585
- <span class="cline-any cline-yes">14x</span>
1705
+ <span class="cline-any cline-yes">16x</span>
1586
1706
  <span class="cline-any cline-neutral">&nbsp;</span>
1587
1707
  <span class="cline-any cline-yes">60x</span>
1588
1708
  <span class="cline-any cline-yes">60x</span>
@@ -1602,168 +1722,184 @@
1602
1722
  <span class="cline-any cline-yes">14x</span>
1603
1723
  <span class="cline-any cline-yes">18x</span>
1604
1724
  <span class="cline-any cline-neutral">&nbsp;</span>
1605
- <span class="cline-any cline-yes">14x</span>
1606
- <span class="cline-any cline-yes">14x</span>
1725
+ <span class="cline-any cline-yes">16x</span>
1726
+ <span class="cline-any cline-yes">16x</span>
1727
+ <span class="cline-any cline-yes">149x</span>
1728
+ <span class="cline-any cline-yes">149x</span>
1729
+ <span class="cline-any cline-yes">153x</span>
1730
+ <span class="cline-any cline-yes">149x</span>
1731
+ <span class="cline-any cline-yes">293x</span>
1732
+ <span class="cline-any cline-yes">149x</span>
1733
+ <span class="cline-any cline-yes">35x</span>
1734
+ <span class="cline-any cline-yes">35x</span>
1735
+ <span class="cline-any cline-yes">35x</span>
1736
+ <span class="cline-any cline-neutral">&nbsp;</span>
1737
+ <span class="cline-any cline-yes">149x</span>
1738
+ <span class="cline-any cline-yes">67x</span>
1739
+ <span class="cline-any cline-neutral">&nbsp;</span>
1607
1740
  <span class="cline-any cline-yes">82x</span>
1608
1741
  <span class="cline-any cline-yes">82x</span>
1609
- <span class="cline-any cline-yes">104x</span>
1610
1742
  <span class="cline-any cline-yes">82x</span>
1611
- <span class="cline-any cline-yes">120x</span>
1743
+ <span class="cline-any cline-yes">1120x</span>
1612
1744
  <span class="cline-any cline-yes">82x</span>
1613
- <span class="cline-any cline-yes">36x</span>
1614
- <span class="cline-any cline-neutral">&nbsp;</span>
1615
- <span class="cline-any cline-yes">46x</span>
1616
- <span class="cline-any cline-yes">46x</span>
1617
- <span class="cline-any cline-yes">46x</span>
1618
- <span class="cline-any cline-yes">902x</span>
1619
- <span class="cline-any cline-yes">46x</span>
1620
1745
  <span class="cline-any cline-neutral">&nbsp;</span>
1621
- <span class="cline-any cline-yes">46x</span>
1746
+ <span class="cline-any cline-yes">82x</span>
1622
1747
  <span class="cline-any cline-neutral">&nbsp;</span>
1623
1748
  <span class="cline-any cline-neutral">&nbsp;</span>
1624
1749
  <span class="cline-any cline-neutral">&nbsp;</span>
1625
1750
  <span class="cline-any cline-neutral">&nbsp;</span>
1626
1751
  <span class="cline-any cline-neutral">&nbsp;</span>
1627
1752
  <span class="cline-any cline-neutral">&nbsp;</span>
1628
- <span class="cline-any cline-yes">14x</span>
1753
+ <span class="cline-any cline-yes">16x</span>
1629
1754
  <span class="cline-any cline-neutral">&nbsp;</span>
1630
1755
  <span class="cline-any cline-neutral">&nbsp;</span>
1631
- <span class="cline-any cline-yes">80x</span>
1632
- <span class="cline-any cline-yes">13x</span>
1633
- <span class="cline-any cline-yes">80x</span>
1634
- <span class="cline-any cline-yes">80x</span>
1635
- <span class="cline-any cline-yes">80x</span>
1756
+ <span class="cline-any cline-yes">87x</span>
1757
+ <span class="cline-any cline-yes">12x</span>
1758
+ <span class="cline-any cline-yes">87x</span>
1759
+ <span class="cline-any cline-yes">87x</span>
1760
+ <span class="cline-any cline-yes">87x</span>
1636
1761
  <span class="cline-any cline-neutral">&nbsp;</span>
1637
- <span class="cline-any cline-yes">80x</span>
1638
- <span class="cline-any cline-yes">79x</span>
1762
+ <span class="cline-any cline-yes">87x</span>
1763
+ <span class="cline-any cline-yes">87x</span>
1639
1764
  <span class="cline-any cline-yes">7x</span>
1640
1765
  <span class="cline-any cline-yes">7x</span>
1641
1766
  <span class="cline-any cline-yes">7x</span>
1642
1767
  <span class="cline-any cline-yes">7x</span>
1643
1768
  <span class="cline-any cline-neutral">&nbsp;</span>
1644
- <span class="cline-any cline-yes">80x</span>
1645
- <span class="cline-any cline-yes">79x</span>
1646
- <span class="cline-any cline-yes">78x</span>
1647
- <span class="cline-any cline-yes">78x</span>
1769
+ <span class="cline-any cline-yes">87x</span>
1770
+ <span class="cline-any cline-yes">87x</span>
1771
+ <span class="cline-any cline-yes">87x</span>
1772
+ <span class="cline-any cline-yes">87x</span>
1648
1773
  <span class="cline-any cline-neutral">&nbsp;</span>
1649
- <span class="cline-any cline-yes">3x</span>
1650
- <span class="cline-any cline-yes">75x</span>
1774
+ <span class="cline-any cline-no">&nbsp;</span>
1775
+ <span class="cline-any cline-yes">87x</span>
1651
1776
  <span class="cline-any cline-neutral">&nbsp;</span>
1652
1777
  <span class="cline-any cline-neutral">&nbsp;</span>
1653
- <span class="cline-any cline-yes">76x</span>
1778
+ <span class="cline-any cline-yes">87x</span>
1654
1779
  <span class="cline-any cline-neutral">&nbsp;</span>
1655
- <span class="cline-any cline-yes">76x</span>
1656
- <span class="cline-any cline-yes">76x</span>
1657
- <span class="cline-any cline-yes">82x</span>
1658
- <span class="cline-any cline-yes">82x</span>
1659
- <span class="cline-any cline-yes">81x</span>
1780
+ <span class="cline-any cline-yes">87x</span>
1781
+ <span class="cline-any cline-yes">87x</span>
1782
+ <span class="cline-any cline-yes">87x</span>
1783
+ <span class="cline-any cline-yes">80x</span>
1784
+ <span class="cline-any cline-yes">79x</span>
1660
1785
  <span class="cline-any cline-neutral">&nbsp;</span>
1661
1786
  <span class="cline-any cline-neutral">&nbsp;</span>
1662
- <span class="cline-any cline-yes">76x</span>
1787
+ <span class="cline-any cline-yes">87x</span>
1788
+ <span class="cline-any cline-yes">87x</span>
1663
1789
  <span class="cline-any cline-neutral">&nbsp;</span>
1664
1790
  <span class="cline-any cline-neutral">&nbsp;</span>
1665
1791
  <span class="cline-any cline-neutral">&nbsp;</span>
1666
- <span class="cline-any cline-yes">75x</span>
1667
- <span class="cline-any cline-yes">82x</span>
1792
+ <span class="cline-any cline-yes">87x</span>
1793
+ <span class="cline-any cline-yes">97x</span>
1794
+ <span class="cline-any cline-no">&nbsp;</span>
1668
1795
  <span class="cline-any cline-neutral">&nbsp;</span>
1669
- <span class="cline-any cline-yes">79x</span>
1670
- <span class="cline-any cline-yes">79x</span>
1796
+ <span class="cline-any cline-yes">98x</span>
1797
+ <span class="cline-any cline-yes">98x</span>
1671
1798
  <span class="cline-any cline-neutral">&nbsp;</span>
1672
- <span class="cline-any cline-yes">38x</span>
1799
+ <span class="cline-any cline-yes">34x</span>
1673
1800
  <span class="cline-any cline-no">&nbsp;</span>
1674
- <span class="cline-any cline-yes">38x</span>
1675
- <span class="cline-any cline-yes">38x</span>
1676
- <span class="cline-any cline-yes">38x</span>
1801
+ <span class="cline-any cline-yes">34x</span>
1802
+ <span class="cline-any cline-yes">34x</span>
1803
+ <span class="cline-any cline-yes">34x</span>
1677
1804
  <span class="cline-any cline-neutral">&nbsp;</span>
1678
- <span class="cline-any cline-yes">38x</span>
1679
- <span class="cline-any cline-yes">242x</span>
1805
+ <span class="cline-any cline-yes">34x</span>
1806
+ <span class="cline-any cline-yes">226x</span>
1680
1807
  <span class="cline-any cline-yes">1x</span>
1681
1808
  <span class="cline-any cline-yes">1x</span>
1682
1809
  <span class="cline-any cline-yes">1x</span>
1683
1810
  <span class="cline-any cline-neutral">&nbsp;</span>
1684
- <span class="cline-any cline-yes">241x</span>
1685
- <span class="cline-any cline-yes">205x</span>
1686
- <span class="cline-any cline-yes">36x</span>
1687
- <span class="cline-any cline-yes">24x</span>
1811
+ <span class="cline-any cline-yes">225x</span>
1812
+ <span class="cline-any cline-yes">193x</span>
1813
+ <span class="cline-any cline-yes">32x</span>
1814
+ <span class="cline-any cline-yes">20x</span>
1688
1815
  <span class="cline-any cline-neutral">&nbsp;</span>
1689
- <span class="cline-any cline-yes">79x</span>
1690
- <span class="cline-any cline-yes">236x</span>
1691
- <span class="cline-any cline-yes">236x</span>
1692
- <span class="cline-any cline-yes">155x</span>
1693
- <span class="cline-any cline-yes">236x</span>
1816
+ <span class="cline-any cline-yes">98x</span>
1817
+ <span class="cline-any cline-yes">254x</span>
1818
+ <span class="cline-any cline-yes">254x</span>
1819
+ <span class="cline-any cline-yes">178x</span>
1820
+ <span class="cline-any cline-yes">254x</span>
1694
1821
  <span class="cline-any cline-neutral">&nbsp;</span>
1695
- <span class="cline-any cline-yes">79x</span>
1696
- <span class="cline-any cline-yes">79x</span>
1697
- <span class="cline-any cline-yes">79x</span>
1698
- <span class="cline-any cline-yes">79x</span>
1699
- <span class="cline-any cline-yes">137x</span>
1700
- <span class="cline-any cline-yes">79x</span>
1701
- <span class="cline-any cline-yes">79x</span>
1702
- <span class="cline-any cline-yes">79x</span>
1822
+ <span class="cline-any cline-yes">98x</span>
1823
+ <span class="cline-any cline-yes">98x</span>
1824
+ <span class="cline-any cline-yes">98x</span>
1825
+ <span class="cline-any cline-yes">98x</span>
1826
+ <span class="cline-any cline-yes">156x</span>
1827
+ <span class="cline-any cline-yes">98x</span>
1828
+ <span class="cline-any cline-yes">98x</span>
1829
+ <span class="cline-any cline-yes">98x</span>
1830
+ <span class="cline-any cline-yes">98x</span>
1703
1831
  <span class="cline-any cline-neutral">&nbsp;</span>
1704
- <span class="cline-any cline-yes">79x</span>
1705
- <span class="cline-any cline-yes">79x</span>
1706
- <span class="cline-any cline-yes">79x</span>
1707
- <span class="cline-any cline-yes">79x</span>
1832
+ <span class="cline-any cline-yes">98x</span>
1833
+ <span class="cline-any cline-yes">98x</span>
1834
+ <span class="cline-any cline-yes">98x</span>
1835
+ <span class="cline-any cline-yes">98x</span>
1708
1836
  <span class="cline-any cline-neutral">&nbsp;</span>
1709
- <span class="cline-any cline-yes">79x</span>
1710
- <span class="cline-any cline-yes">79x</span>
1711
- <span class="cline-any cline-yes">227x</span>
1837
+ <span class="cline-any cline-yes">98x</span>
1838
+ <span class="cline-any cline-yes">98x</span>
1839
+ <span class="cline-any cline-yes">235x</span>
1712
1840
  <span class="cline-any cline-neutral">&nbsp;</span>
1713
- <span class="cline-any cline-yes">227x</span>
1714
- <span class="cline-any cline-yes">265x</span>
1715
- <span class="cline-any cline-yes">265x</span>
1716
- <span class="cline-any cline-yes">14x</span>
1717
- <span class="cline-any cline-yes">251x</span>
1718
- <span class="cline-any cline-yes">251x</span>
1841
+ <span class="cline-any cline-yes">235x</span>
1842
+ <span class="cline-any cline-yes">255x</span>
1843
+ <span class="cline-any cline-yes">255x</span>
1844
+ <span class="cline-any cline-yes">22x</span>
1845
+ <span class="cline-any cline-yes">233x</span>
1846
+ <span class="cline-any cline-yes">233x</span>
1719
1847
  <span class="cline-any cline-neutral">&nbsp;</span>
1720
- <span class="cline-any cline-yes">227x</span>
1848
+ <span class="cline-any cline-yes">235x</span>
1721
1849
  <span class="cline-any cline-neutral">&nbsp;</span>
1722
1850
  <span class="cline-any cline-neutral">&nbsp;</span>
1723
1851
  <span class="cline-any cline-neutral">&nbsp;</span>
1724
- <span class="cline-any cline-yes">79x</span>
1725
- <span class="cline-any cline-yes">273x</span>
1726
- <span class="cline-any cline-yes">273x</span>
1727
- <span class="cline-any cline-yes">148x</span>
1728
- <span class="cline-any cline-yes">148x</span>
1729
- <span class="cline-any cline-yes">148x</span>
1852
+ <span class="cline-any cline-yes">98x</span>
1853
+ <span class="cline-any cline-yes">256x</span>
1854
+ <span class="cline-any cline-yes">256x</span>
1855
+ <span class="cline-any cline-yes">137x</span>
1856
+ <span class="cline-any cline-yes">137x</span>
1857
+ <span class="cline-any cline-yes">137x</span>
1730
1858
  <span class="cline-any cline-neutral">&nbsp;</span>
1731
1859
  <span class="cline-any cline-neutral">&nbsp;</span>
1732
- <span class="cline-any cline-yes">79x</span>
1733
- <span class="cline-any cline-yes">258x</span>
1734
- <span class="cline-any cline-yes">258x</span>
1860
+ <span class="cline-any cline-yes">98x</span>
1861
+ <span class="cline-any cline-yes">261x</span>
1862
+ <span class="cline-any cline-yes">261x</span>
1863
+ <span class="cline-any cline-yes">261x</span>
1735
1864
  <span class="cline-any cline-neutral">&nbsp;</span>
1736
- <span class="cline-any cline-yes">258x</span>
1737
- <span class="cline-any cline-yes">258x</span>
1738
- <span class="cline-any cline-yes">258x</span>
1865
+ <span class="cline-any cline-yes">280x</span>
1866
+ <span class="cline-any cline-yes">280x</span>
1867
+ <span class="cline-any cline-yes">280x</span>
1739
1868
  <span class="cline-any cline-no">&nbsp;</span>
1740
- <span class="cline-any cline-yes">258x</span>
1869
+ <span class="cline-any cline-yes">280x</span>
1741
1870
  <span class="cline-any cline-neutral">&nbsp;</span>
1742
- <span class="cline-any cline-yes">258x</span>
1743
- <span class="cline-any cline-yes">258x</span>
1871
+ <span class="cline-any cline-yes">280x</span>
1872
+ <span class="cline-any cline-yes">280x</span>
1744
1873
  <span class="cline-any cline-no">&nbsp;</span>
1745
- <span class="cline-any cline-yes">258x</span>
1746
- <span class="cline-any cline-yes">258x</span>
1874
+ <span class="cline-any cline-yes">280x</span>
1875
+ <span class="cline-any cline-yes">280x</span>
1747
1876
  <span class="cline-any cline-neutral">&nbsp;</span>
1748
- <span class="cline-any cline-neutral">&nbsp;</span>
1749
- <span class="cline-any cline-yes">258x</span>
1750
- <span class="cline-any cline-yes">27x</span>
1877
+ <span class="cline-any cline-yes">280x</span>
1878
+ <span class="cline-any cline-yes">280x</span>
1879
+ <span class="cline-any cline-yes">44x</span>
1880
+ <span class="cline-any cline-yes">7x</span>
1751
1881
  <span class="cline-any cline-yes">7x</span>
1752
1882
  <span class="cline-any cline-yes">7x</span>
1753
1883
  <span class="cline-any cline-neutral">&nbsp;</span>
1754
1884
  <span class="cline-any cline-neutral">&nbsp;</span>
1755
1885
  <span class="cline-any cline-neutral">&nbsp;</span>
1756
- <span class="cline-any cline-yes">258x</span>
1757
- <span class="cline-any cline-yes">36x</span>
1758
- <span class="cline-any cline-yes">36x</span>
1759
- <span class="cline-any cline-yes">24x</span>
1760
- <span class="cline-any cline-yes">24x</span>
1886
+ <span class="cline-any cline-yes">280x</span>
1887
+ <span class="cline-any cline-yes">60x</span>
1888
+ <span class="cline-any cline-yes">60x</span>
1889
+ <span class="cline-any cline-yes">22x</span>
1890
+ <span class="cline-any cline-yes">22x</span>
1891
+ <span class="cline-any cline-yes">22x</span>
1761
1892
  <span class="cline-any cline-neutral">&nbsp;</span>
1762
1893
  <span class="cline-any cline-neutral">&nbsp;</span>
1894
+ <span class="cline-any cline-yes">280x</span>
1763
1895
  <span class="cline-any cline-neutral">&nbsp;</span>
1896
+ <span class="cline-any cline-yes">261x</span>
1897
+ <span class="cline-any cline-yes">19x</span>
1898
+ <span class="cline-any cline-no">&nbsp;</span>
1764
1899
  <span class="cline-any cline-neutral">&nbsp;</span>
1765
- <span class="cline-any cline-yes">584x</span>
1766
- <span class="cline-any cline-yes">584x</span>
1900
+ <span class="cline-any cline-neutral">&nbsp;</span>
1901
+ <span class="cline-any cline-yes">538x</span>
1902
+ <span class="cline-any cline-yes">538x</span>
1767
1903
  <span class="cline-any cline-no">&nbsp;</span>
1768
1904
  <span class="cline-any cline-no">&nbsp;</span>
1769
1905
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1777,26 +1913,26 @@
1777
1913
  <span class="cline-any cline-no">&nbsp;</span>
1778
1914
  <span class="cline-any cline-no">&nbsp;</span>
1779
1915
  <span class="cline-any cline-neutral">&nbsp;</span>
1780
- <span class="cline-any cline-yes">584x</span>
1916
+ <span class="cline-any cline-yes">538x</span>
1781
1917
  <span class="cline-any cline-neutral">&nbsp;</span>
1782
- <span class="cline-any cline-yes">258x</span>
1783
- <span class="cline-any cline-yes">584x</span>
1784
- <span class="cline-any cline-yes">584x</span>
1785
- <span class="cline-any cline-yes">584x</span>
1786
- <span class="cline-any cline-yes">584x</span>
1787
- <span class="cline-any cline-yes">88x</span>
1788
- <span class="cline-any cline-yes">88x</span>
1918
+ <span class="cline-any cline-yes">261x</span>
1919
+ <span class="cline-any cline-yes">538x</span>
1920
+ <span class="cline-any cline-yes">538x</span>
1921
+ <span class="cline-any cline-yes">538x</span>
1922
+ <span class="cline-any cline-yes">538x</span>
1923
+ <span class="cline-any cline-yes">84x</span>
1924
+ <span class="cline-any cline-yes">84x</span>
1789
1925
  <span class="cline-any cline-yes">3x</span>
1790
1926
  <span class="cline-any cline-neutral">&nbsp;</span>
1791
- <span class="cline-any cline-yes">88x</span>
1927
+ <span class="cline-any cline-yes">84x</span>
1792
1928
  <span class="cline-any cline-neutral">&nbsp;</span>
1793
- <span class="cline-any cline-yes">98x</span>
1794
- <span class="cline-any cline-yes">245x</span>
1795
- <span class="cline-any cline-yes">245x</span>
1796
- <span class="cline-any cline-yes">245x</span>
1797
- <span class="cline-any cline-yes">245x</span>
1929
+ <span class="cline-any cline-yes">94x</span>
1930
+ <span class="cline-any cline-yes">232x</span>
1931
+ <span class="cline-any cline-yes">232x</span>
1932
+ <span class="cline-any cline-yes">232x</span>
1933
+ <span class="cline-any cline-yes">232x</span>
1798
1934
  <span class="cline-any cline-neutral">&nbsp;</span>
1799
- <span class="cline-any cline-yes">245x</span>
1935
+ <span class="cline-any cline-yes">232x</span>
1800
1936
  <span class="cline-any cline-yes">11x</span>
1801
1937
  <span class="cline-any cline-yes">4x</span>
1802
1938
  <span class="cline-any cline-yes">7x</span>
@@ -1806,11 +1942,11 @@
1806
1942
  <span class="cline-any cline-neutral">&nbsp;</span>
1807
1943
  <span class="cline-any cline-no">&nbsp;</span>
1808
1944
  <span class="cline-any cline-neutral">&nbsp;</span>
1809
- <span class="cline-any cline-yes">245x</span>
1810
- <span class="cline-any cline-yes">245x</span>
1811
- <span class="cline-any cline-yes">245x</span>
1945
+ <span class="cline-any cline-yes">232x</span>
1946
+ <span class="cline-any cline-yes">232x</span>
1947
+ <span class="cline-any cline-yes">232x</span>
1812
1948
  <span class="cline-any cline-neutral">&nbsp;</span>
1813
- <span class="cline-any cline-yes">245x</span>
1949
+ <span class="cline-any cline-yes">232x</span>
1814
1950
  <span class="cline-any cline-yes">11x</span>
1815
1951
  <span class="cline-any cline-yes">11x</span>
1816
1952
  <span class="cline-any cline-yes">11x</span>
@@ -1829,67 +1965,69 @@
1829
1965
  <span class="cline-any cline-neutral">&nbsp;</span>
1830
1966
  <span class="cline-any cline-yes">9x</span>
1831
1967
  <span class="cline-any cline-neutral">&nbsp;</span>
1832
- <span class="cline-any cline-yes">243x</span>
1968
+ <span class="cline-any cline-yes">230x</span>
1833
1969
  <span class="cline-any cline-neutral">&nbsp;</span>
1834
- <span class="cline-any cline-yes">88x</span>
1835
- <span class="cline-any cline-yes">42x</span>
1836
- <span class="cline-any cline-yes">30x</span>
1970
+ <span class="cline-any cline-yes">84x</span>
1971
+ <span class="cline-any cline-yes">38x</span>
1972
+ <span class="cline-any cline-yes">26x</span>
1837
1973
  <span class="cline-any cline-neutral">&nbsp;</span>
1838
1974
  <span class="cline-any cline-yes">12x</span>
1839
1975
  <span class="cline-any cline-neutral">&nbsp;</span>
1840
1976
  <span class="cline-any cline-neutral">&nbsp;</span>
1841
1977
  <span class="cline-any cline-neutral">&nbsp;</span>
1842
- <span class="cline-any cline-yes">258x</span>
1978
+ <span class="cline-any cline-yes">261x</span>
1843
1979
  <span class="cline-any cline-neutral">&nbsp;</span>
1844
- <span class="cline-any cline-yes">79x</span>
1845
- <span class="cline-any cline-yes">79x</span>
1980
+ <span class="cline-any cline-yes">98x</span>
1981
+ <span class="cline-any cline-yes">98x</span>
1846
1982
  <span class="cline-any cline-neutral">&nbsp;</span>
1847
1983
  <span class="cline-any cline-neutral">&nbsp;</span>
1848
- <span class="cline-any cline-yes">37x</span>
1984
+ <span class="cline-any cline-yes">35x</span>
1849
1985
  <span class="cline-any cline-no">&nbsp;</span>
1850
- <span class="cline-any cline-yes">37x</span>
1851
- <span class="cline-any cline-yes">37x</span>
1852
- <span class="cline-any cline-yes">37x</span>
1986
+ <span class="cline-any cline-yes">35x</span>
1987
+ <span class="cline-any cline-yes">35x</span>
1988
+ <span class="cline-any cline-yes">35x</span>
1989
+ <span class="cline-any cline-yes">35x</span>
1853
1990
  <span class="cline-any cline-neutral">&nbsp;</span>
1854
1991
  <span class="cline-any cline-no">&nbsp;</span>
1855
1992
  <span class="cline-any cline-no">&nbsp;</span>
1856
1993
  <span class="cline-any cline-neutral">&nbsp;</span>
1994
+ <span class="cline-any cline-yes">35x</span>
1857
1995
  <span class="cline-any cline-neutral">&nbsp;</span>
1858
- <span class="cline-any cline-yes">37x</span>
1996
+ <span class="cline-any cline-yes">35x</span>
1859
1997
  <span class="cline-any cline-neutral">&nbsp;</span>
1860
1998
  <span class="cline-any cline-neutral">&nbsp;</span>
1861
- <span class="cline-any cline-yes">57x</span>
1862
- <span class="cline-any cline-yes">51x</span>
1999
+ <span class="cline-any cline-yes">77x</span>
2000
+ <span class="cline-any cline-yes">71x</span>
1863
2001
  <span class="cline-any cline-yes">6x</span>
1864
2002
  <span class="cline-any cline-yes">6x</span>
1865
2003
  <span class="cline-any cline-neutral">&nbsp;</span>
1866
2004
  <span class="cline-any cline-neutral">&nbsp;</span>
1867
2005
  <span class="cline-any cline-no">&nbsp;</span>
1868
2006
  <span class="cline-any cline-neutral">&nbsp;</span>
1869
- <span class="cline-any cline-yes">75x</span>
2007
+ <span class="cline-any cline-yes">87x</span>
1870
2008
  <span class="cline-any cline-neutral">&nbsp;</span>
1871
- <span class="cline-any cline-yes">75x</span>
1872
- <span class="cline-any cline-yes">75x</span>
2009
+ <span class="cline-any cline-yes">87x</span>
2010
+ <span class="cline-any cline-yes">87x</span>
1873
2011
  <span class="cline-any cline-neutral">&nbsp;</span>
1874
- <span class="cline-any cline-yes">75x</span>
1875
- <span class="cline-any cline-yes">22x</span>
2012
+ <span class="cline-any cline-yes">87x</span>
2013
+ <span class="cline-any cline-yes">40x</span>
1876
2014
  <span class="cline-any cline-neutral">&nbsp;</span>
1877
- <span class="cline-any cline-yes">53x</span>
1878
- <span class="cline-any cline-yes">53x</span>
1879
- <span class="cline-any cline-yes">53x</span>
1880
- <span class="cline-any cline-yes">53x</span>
1881
- <span class="cline-any cline-yes">99x</span>
1882
- <span class="cline-any cline-yes">142x</span>
1883
- <span class="cline-any cline-yes">53x</span>
2015
+ <span class="cline-any cline-yes">47x</span>
2016
+ <span class="cline-any cline-yes">47x</span>
2017
+ <span class="cline-any cline-yes">47x</span>
2018
+ <span class="cline-any cline-yes">47x</span>
2019
+ <span class="cline-any cline-yes">80x</span>
2020
+ <span class="cline-any cline-yes">128x</span>
2021
+ <span class="cline-any cline-yes">47x</span>
1884
2022
  <span class="cline-any cline-neutral">&nbsp;</span>
1885
2023
  <span class="cline-any cline-neutral">&nbsp;</span>
1886
- <span class="cline-any cline-yes">135x</span>
2024
+ <span class="cline-any cline-yes">158x</span>
1887
2025
  <span class="cline-any cline-yes">3x</span>
1888
2026
  <span class="cline-any cline-neutral">&nbsp;</span>
1889
2027
  <span class="cline-any cline-yes">1x</span>
1890
2028
  <span class="cline-any cline-neutral">&nbsp;</span>
1891
2029
  <span class="cline-any cline-neutral">&nbsp;</span>
1892
- <span class="cline-any cline-yes">14x</span>
2030
+ <span class="cline-any cline-yes">16x</span>
1893
2031
  <span class="cline-any cline-neutral">&nbsp;</span>
1894
2032
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const XSL_NS_URL = 'http://www.w3.org/1999/XSL/Transform'
1895
2033
  , HTML_NS_URL = 'http://www.w3.org/1999/xhtml'
@@ -1898,7 +2036,7 @@
1898
2036
  &nbsp;
1899
2037
  // const log = x =&gt; console.debug( new XMLSerializer().serializeToString( x ) );
1900
2038
  &nbsp;
1901
- const attr = (el, attr)=&gt; el.getAttribute?.(attr)
2039
+ const attr = (el, attr)=&gt; el?.getAttribute?.(attr)
1902
2040
  , isText = e =&gt; e.nodeType === 3
1903
2041
  , isString = s =&gt; typeof s === 'string'
1904
2042
  , isNode = e =&gt; e &amp;&amp; typeof e.nodeType === 'number'
@@ -1982,7 +2120,12 @@ obj2node( o, tag, doc )
1982
2120
  return create(tag,o,doc);
1983
2121
  if( t === 'number' )
1984
2122
  return create(tag,''+o,doc);
1985
- &nbsp;
2123
+ <span class="missing-if-branch" title="if path not taken" >I</span>if( isNode(o) )
2124
+ {
2125
+ const el = <span class="cstat-no" title="statement not covered" >create(tag);</span>
2126
+ <span class="cstat-no" title="statement not covered" > el.append(o);</span>
2127
+ <span class="cstat-no" title="statement not covered" > return el;</span>
2128
+ }
1986
2129
  if( o instanceof Array )
1987
2130
  { const ret = create('array','',doc);
1988
2131
  o.map( ae =&gt; ret.append( obj2node(ae,tag,doc)) );
@@ -1996,13 +2139,20 @@ obj2node( o, tag, doc )
1996
2139
  }
1997
2140
  const ret = create(tag,'',doc);
1998
2141
  for( let k in o )
1999
- if( isNode(o[k]) || typeof o[k] ==='function' || o[k] instanceof Window )
2142
+ {
2143
+ if( typeof o[ k ] === 'function' || o[ k ] instanceof Window )
2000
2144
  continue
2001
- else
2002
- if( typeof o[k] !== "object" &amp;&amp; isValidTagName(k) )
2003
- ret.setAttribute(k, o[k] );
2145
+ if( isNode( o[ k ] ) )
2146
+ { <span class="missing-if-branch" title="if path not taken" >I</span>if( k === 'data' || k==='value' )
2147
+ ;
2004
2148
  else
2005
- ret.append(obj2node(o[k], k, doc))
2149
+ continue
2150
+ }
2151
+ if( typeof o[ k ] !== "object" &amp;&amp; isValidTagName( k ) )
2152
+ ret.setAttribute( k, o[ k ] )
2153
+ else
2154
+ ret.append( obj2node( o[ k ], k, doc ) )
2155
+ }
2006
2156
  return ret;
2007
2157
  }
2008
2158
  export function
@@ -2035,7 +2185,7 @@ tagUid( node )
2035
2185
  }
2036
2186
  }));
2037
2187
  &nbsp;
2038
- if( 'all' in node ) {
2188
+ <span class="missing-if-branch" title="else path not taken" >E</span>if( 'all' in node ) {
2039
2189
  let i= 1;
2040
2190
  for( let e of node.all )
2041
2191
  e.setAttribute &amp;&amp; !e.tagName.startsWith('xsl:') &amp;&amp; e.setAttribute('data-dce-id', '' + i++)
@@ -2127,6 +2277,8 @@ createXsltFromDom( templateNode, S = 'xsl:stylesheet' )
2127
2277
  const d = xml2dom( '&lt;xhtml/&gt;' )
2128
2278
  , n = d.importNode(r, true);
2129
2279
  d.replaceChild(n,d.documentElement);
2280
+ if( n.namespaceURI === HTML_NS_URL &amp;&amp; !attr(n,'xmlns'))
2281
+ n.setAttribute('xmlns',HTML_NS_URL);
2130
2282
  return xslHtmlNs(n);
2131
2283
  };
2132
2284
  if( e )
@@ -2179,13 +2331,23 @@ createXsltFromDom( templateNode, S = 'xsl:stylesheet' )
2179
2331
  const fr = sanitizeProcessor.transformToFragment(tc, document)
2180
2332
  , $ = (e,css) =&gt; e.querySelector(css)
2181
2333
  , payload = $( xslDom, 'template[mode="payload"]');
2182
- if( !fr )
2183
- return console.error("transformation error",{ xml:tc.outerHTML, xsl: xmlString( sanitizeXsl ) });
2334
+ <span class="missing-if-branch" title="if path not taken" >I</span>if( !fr )
2335
+ <span class="cstat-no" title="statement not covered" > return console.error("transformation error",{ xml:tc.outerHTML, xsl: xmlString( sanitizeXsl ) });</span>
2184
2336
  <span class="missing-if-branch" title="if path not taken" >I</span>if( 'dce-root'!==fr.firstElementChild.localName )
2185
2337
  { const r = <span class="cstat-no" title="statement not covered" >fr.ownerDocument.createElement('dce-root');</span>
2186
2338
  <span class="cstat-no" title="statement not covered" > [...fr.childNodes].forEach(<span class="fstat-no" title="function not covered" >n=</span>&gt;<span class="cstat-no" title="statement not covered" >r.append(n))</span>;</span>
2187
2339
  <span class="cstat-no" title="statement not covered" > fr.append(r)</span>
2188
2340
  }
2341
+ &nbsp;
2342
+ [...fr.querySelectorAll('[test]')].forEach( n=&gt;{
2343
+ const t = attr(n,'test')
2344
+ , r = t.replace(/hasBoolAttribute\((.*?)\)/g,
2345
+ <span class="fstat-no" title="function not covered" > (m</span>atch, p1, p2,p3,p4)=&gt;
2346
+ { const a = <span class="cstat-no" title="statement not covered" >p1.substring(1);</span>
2347
+ <span class="cstat-no" title="statement not covered" > return `(not($${a} = \'false\') and ($${a} = '' or $${a} = '${a}' or $${a} = 'true' ))`</span>
2348
+ });
2349
+ t!== r &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >n.setAttribute('test',r);</span>
2350
+ });
2189
2351
  &nbsp;
2190
2352
  [...fr.querySelectorAll('dce-root&gt;attribute')].forEach( a=&gt;
2191
2353
  {
@@ -2194,7 +2356,7 @@ createXsltFromDom( templateNode, S = 'xsl:stylesheet' )
2194
2356
  , name = attr(a,'name');
2195
2357
  &nbsp;
2196
2358
  declaredAttributes.push(name);
2197
- if( a.childNodes.length)
2359
+ if( a.childNodes.length )
2198
2360
  hardcodedAttributes[name] = a.textContent;
2199
2361
  &nbsp;
2200
2362
  payload.append(p);
@@ -2210,10 +2372,15 @@ createXsltFromDom( templateNode, S = 'xsl:stylesheet' )
2210
2372
  if( select?.length&gt;1 )
2211
2373
  { p.removeAttribute('select');
2212
2374
  const c = $( xslDom, 'template[match="ignore"]&gt;choose').cloneNode(true);
2213
- // todo multiple ?? operators
2214
2375
  emptyNode(c.firstElementChild).append( createText(c,'{'+select[0]+'}'));
2215
- emptyNode(c.lastElementChild ).append( createText(c,'{'+select[1]+'}'));
2216
- c.firstElementChild.setAttribute('test','string-length('+select[0]+')');
2376
+ c.firstElementChild.setAttribute('test',select[0]);
2377
+ for( let i=1; i&lt;select.length-1; i++)
2378
+ { const when = <span class="cstat-no" title="statement not covered" >c.firstElementChild.cloneNode(true);</span>
2379
+ <span class="cstat-no" title="statement not covered" > emptyNode(when).append( createText(c,'{'+select[i]+'}'));</span>
2380
+ <span class="cstat-no" title="statement not covered" > when.setAttribute('test',select[i]);</span>
2381
+ <span class="cstat-no" title="statement not covered" > c.insertBefore(when, c.lastElementChild);</span>
2382
+ }
2383
+ emptyNode(c.lastElementChild ).append( createText(c,'{'+select[select.length-1]+'}'));
2217
2384
  p.append(c);
2218
2385
  val = c.cloneNode(true);
2219
2386
  }else
@@ -2222,8 +2389,12 @@ createXsltFromDom( templateNode, S = 'xsl:stylesheet' )
2222
2389
  a.append(val);
2223
2390
  a.removeAttribute('select');
2224
2391
  }else
2225
- { keepAttributes( p, 'name' );
2392
+ {
2393
+ keepAttributes( p, 'name' );
2226
2394
  p.setAttribute('select','/datadom/attributes/'+name)
2395
+ &nbsp;
2396
+ if( !hardcodedAttributes[name] )
2397
+ a.remove();
2227
2398
  }
2228
2399
  });
2229
2400
  [...fr.querySelectorAll('[value]')].filter(el=&gt;el.getAttribute('value').match( /\{(.*)\?\?(.*)\}/g )).forEach(el=&gt;
@@ -2353,12 +2524,15 @@ event2slice( x, sliceNames, ev, dce )
2353
2524
  const v = notChecked? '' : el.value ?? attr( el, 'value' );
2354
2525
  cleanSliceValue();
2355
2526
  if( v === null || v === undefined )
2527
+ {
2356
2528
  [...s.childNodes].filter(n=&gt;n.localName!=='event').map(<span class="fstat-no" title="function not covered" >n=</span>&gt;<span class="cstat-no" title="statement not covered" >n.remove())</span>;
2529
+ s.removeAttribute('value');
2530
+ }
2357
2531
  else
2358
- if( isString(v) )
2359
- s.append( createText( d, v) );
2360
- else
2361
- s.append( obj2node(v,'value',s.ownerDocument) )
2532
+ { const ve = isString(v) ? createText( d, v) : obj2node(v,'value',s.ownerDocument);
2533
+ s.append( ve );
2534
+ s.setAttribute('value',v);
2535
+ }
2362
2536
  }
2363
2537
  return s
2364
2538
  })
@@ -2375,12 +2549,12 @@ const loadTemplateRoots = async ( src, dce )=&gt;
2375
2549
  if( src.startsWith('#') )
2376
2550
  return ( n =&gt;
2377
2551
  { const a = n.querySelectorAll(src)
2378
- return [...( a.length ? a : n.getRootNode().querySelectorAll(src) )]
2552
+ return [...( a.length ? a : <span class="branch-1 cbranch-no" title="branch not covered" >n.getRootNode().querySelectorAll(src) </span>)]
2379
2553
  })(dce.parentElement)
2380
2554
  try
2381
2555
  { const [path, hash] = src.split('#');
2382
- if( '.' === src.charAt(0))
2383
- src = new URL(path, dce.closest('[base]')?.getAttribute('base') || location ).href;
2556
+ <span class="missing-if-branch" title="if path not taken" >I</span>if( '.' === src.charAt(0))
2557
+ <span class="cstat-no" title="statement not covered" > src = new URL(path, dce.closest('[base]')?.getAttribute('base') || location ).href;</span>
2384
2558
  else
2385
2559
  try
2386
2560
  { src = import.meta.resolve( path );
@@ -2406,11 +2580,26 @@ const loadTemplateRoots = async ( src, dce )=&gt;
2406
2580
  export function mergeAttr( from, to )
2407
2581
  { for( let a of from.attributes)
2408
2582
  try
2409
- { a.namespaceURI? <span class="branch-0 cbranch-no" title="branch not covered" >to.setAttributeNS( a.namespaceURI, a.name, a.value ) </span>: to.setAttribute( a.name, a.value )
2583
+ { const name = a.name;
2584
+ if( name.startsWith('xmlns') )
2585
+ continue;
2586
+ <span class="missing-if-branch" title="if path not taken" >I</span>if( a.namespaceURI )
2587
+ { <span class="cstat-no" title="statement not covered" >if( !to.hasAttributeNS(a.namespaceURI, name) || to.getAttributeNS(a.namespaceURI, name) !== a.value )</span>
2588
+ <span class="cstat-no" title="statement not covered" > to.setAttributeNS( a.namespaceURI, name, a.value )</span>
2589
+ }else
2590
+ { if( !to.hasAttribute(name) || to.getAttribute(name) !== a.value )
2591
+ to.setAttribute( a.name, a.value )
2592
+ }
2410
2593
  if( a.name === 'value')
2411
2594
  to.value = a.value
2412
2595
  }catch(e)
2413
2596
  { <span class="cstat-no" title="statement not covered" >console.warn('attribute assignment error',e?.message || e); </span>}
2597
+ const ea = to.dceExportedAttributes
2598
+ , aa = to.getAttribute('dce-exported-attributes')
2599
+ , em = aa ? new Set( aa.split(' ') ) : null;
2600
+ for( let a of to.getAttributeNames() )
2601
+ if( !from.hasAttribute(a) &amp;&amp; !ea?.has(a) &amp;&amp; !em?.has(a) )
2602
+ to.removeAttribute(a)
2414
2603
  }
2415
2604
  export function assureUnique(n, id=0)
2416
2605
  {
@@ -2523,14 +2712,19 @@ export const toXsl = (el, defParent) =&gt; {
2523
2712
  x.setAttribute( a.name, a.value );
2524
2713
  while(el.firstChild)
2525
2714
  x.append(el.firstChild);
2715
+ const replacement = el.localName === 'if' || el.localName === 'choose' ? (() =&gt; {
2716
+ const span = create('span');
2717
+ span.append(x);
2718
+ return span;
2719
+ })() : x;
2526
2720
  if( el.parentElement )
2527
- el.parentElement.replaceChild( x, el );
2721
+ el.parentElement.replaceChild( replacement, el );
2528
2722
  else
2529
2723
  { const p = (el.parentElement || defParent)
2530
2724
  , arr = [...p.childNodes];
2531
2725
  arr.forEach((n, i) =&gt; {
2532
2726
  if (n === el)
2533
- arr[i] = x;
2727
+ arr[i] = replacement;
2534
2728
  });
2535
2729
  p.replaceChildren(...arr);
2536
2730
  }
@@ -2543,7 +2737,7 @@ CustomElement extends HTMLElement
2543
2737
  async connectedCallback()
2544
2738
  {
2545
2739
  if(this.firstElementChild &amp;&amp; this.firstElementChild.localName !== 'template')
2546
- console.warn('custom-element used without template wrapping content\n', this.outerHTML);
2740
+ console.log('custom-element used without template wrapping content\n', this.outerHTML);
2547
2741
  const templateRoots = await loadTemplateRoots( attr( this, 'src' ), this )
2548
2742
  , tag = attr( this, 'tag' )
2549
2743
  , tagName = tag ? tag : 'dce-'+crypto.randomUUID();
@@ -2560,7 +2754,7 @@ CustomElement extends HTMLElement
2560
2754
  { p = new XSLTProcessor();
2561
2755
  try{ p.importStylesheet( td ) }
2562
2756
  catch( e )
2563
- { console.error(e, xmlString(td)) }
2757
+ { <span class="cstat-no" title="statement not covered" >console.error(e, xmlString(td)) </span>}
2564
2758
  return p
2565
2759
  })
2566
2760
  &nbsp;
@@ -2574,11 +2768,13 @@ CustomElement extends HTMLElement
2574
2768
  .map(splitSliceNames).flat();
2575
2769
  &nbsp;
2576
2770
  const { declaredAttributes, hardcodedAttributes, exposedAttributes } = templateDocs[0];
2771
+ const dceExportedAttributes = new Set([...Object.keys(hardcodedAttributes), ...Object.keys(exposedAttributes)]);
2577
2772
  &nbsp;
2578
2773
  class DceElement extends HTMLElement
2579
2774
  {
2580
2775
  static get observedAttributes(){ return declaredAttributes; }
2581
2776
  #inTransform = 0;
2777
+ <span class="fstat-no" title="function not covered" > get </span>dceExportedAttributes(){ <span class="cstat-no" title="statement not covered" >return dceExportedAttributes; </span>}
2582
2778
  connectedCallback()
2583
2779
  { let payload = sanitizeBlankText(this.childNodes);
2584
2780
  if( this.firstElementChild?.tagName === 'TEMPLATE' )
@@ -2612,8 +2808,9 @@ CustomElement extends HTMLElement
2612
2808
  this.innerHTML='';
2613
2809
  const attrsRoot = injectData( x, 'attributes' , this.attributes, e =&gt; createXmlNode( e.nodeName, e.value ) )
2614
2810
  , inAttrs = a=&gt; this.hasAttribute(a) || [...attrsRoot.children].find(e=&gt;e.localName === a);
2811
+ mergeAttr( this, attrsRoot );
2615
2812
  Object.keys(hardcodedAttributes).map(a=&gt; inAttrs(a) || attrsRoot.append(createXmlNode(a,hardcodedAttributes[a])) );
2616
- declaredAttributes.map(a=&gt; inAttrs(a) || attrsRoot.append(createXmlNode(a)) );
2813
+ Object.keys(exposedAttributes).map(a=&gt; inAttrs(a) || attrsRoot.append(createXmlNode(a)) );
2617
2814
  &nbsp;
2618
2815
  injectData( x, 'dataset', Object.keys( this.dataset ), k =&gt; createXmlNode( k, this.dataset[ k ] ) );
2619
2816
  const sliceRoot = injectData( x, 'slice', sliceNames, k =&gt; createXmlNode( k, '' ) )
@@ -2646,34 +2843,42 @@ CustomElement extends HTMLElement
2646
2843
  const transform = this.transform = ()=&gt;
2647
2844
  { <span class="missing-if-branch" title="if path not taken" >I</span>if(this.#inTransform){ <span class="cstat-no" title="statement not covered" >debugger </span>}
2648
2845
  this.#inTransform = 1;
2846
+ const renderModel = ()=&gt;
2847
+ {
2848
+ const ff = xp.map( (p,i) =&gt;
2849
+ { const f = p.transformToFragment(x.ownerDocument, document)
2850
+ <span class="missing-if-branch" title="if path not taken" >I</span>if( !f )
2851
+ <span class="cstat-no" title="statement not covered" > console.error( "XSLT transformation error. xsl:\n", xmlString(templateDocs[i]), '\nxml:\n', xmlString(x) );</span>
2852
+ return f
2853
+ });
2854
+ ff.map( f =&gt;
2855
+ { <span class="missing-if-branch" title="if path not taken" >I</span>if( !f )
2856
+ <span class="cstat-no" title="statement not covered" > return;</span>
2857
+ assureUnique(f);
2858
+ merge( this, f.childNodes )
2859
+ })
2860
+ let attrChangedCount = 0;
2861
+ Object.entries(hardcodedAttributes).map(( [a,v] )=&gt;
2862
+ { if( !this.hasAttribute(a) &amp;&amp; v !== attr(this,a) )
2863
+ { this.setAttribute( a, v );
2864
+ this.#applyAttribute( a, v );
2865
+ attrChangedCount++;
2866
+ }
2867
+ });
2649
2868
  &nbsp;
2650
- const ff = xp.map( (p,i) =&gt;
2651
- { const f = p.transformToFragment(x.ownerDocument, document)
2652
- <span class="missing-if-branch" title="if path not taken" >I</span>if( !f )
2653
- <span class="cstat-no" title="statement not covered" > console.error( "XSLT transformation error. xsl:\n", xmlString(templateDocs[i]), '\nxml:\n', xmlString(x) );</span>
2654
- return f
2655
- });
2656
- ff.map( f =&gt;
2657
- { <span class="missing-if-branch" title="if path not taken" >I</span>if( !f )
2658
- <span class="cstat-no" title="statement not covered" > return;</span>
2659
- assureUnique(f);
2660
- merge( this, f.childNodes )
2661
- })
2662
- &nbsp;
2663
- Object.entries(hardcodedAttributes).map(( [a,v] )=&gt;
2664
- { if( !this.hasAttribute(a) &amp;&amp; v !== attr(this,a) )
2665
- { this.setAttribute( a, v );
2666
- this.#applyAttribute( a, v );
2667
- }
2668
- });
2669
- &nbsp;
2670
- Object.keys(exposedAttributes).map( a =&gt;
2671
- { let v = attr(this.firstElementChild,a);
2672
- if( v !== attr(this,a) )
2673
- { this.setAttribute( a, v );
2674
- this.#applyAttribute( a, v );
2675
- }
2676
- });
2869
+ Object.keys(exposedAttributes).map( a =&gt;
2870
+ { let v = attr(this.firstElementChild,a);
2871
+ if( v !== attr(this,a) )
2872
+ { this.setAttribute( a, v );
2873
+ this.#applyAttribute( a, v );
2874
+ attrChangedCount++;
2875
+ }
2876
+ });
2877
+ return attrChangedCount;
2878
+ };
2879
+ if( renderModel() )
2880
+ <span class="missing-if-branch" title="if path not taken" >I</span>if( renderModel() )
2881
+ <span class="cstat-no" title="statement not covered" > console.warn("model update should not be the result of transform more than once");</span>
2677
2882
  &nbsp;
2678
2883
  function getSliceTarget(el)
2679
2884
  { let r = el;
@@ -2761,13 +2966,15 @@ CustomElement extends HTMLElement
2761
2966
  #applyAttribute(name, newValue)
2762
2967
  { <span class="missing-if-branch" title="if path not taken" >I</span>if( 'value' === name )
2763
2968
  <span class="cstat-no" title="statement not covered" > this.value = newValue;</span>
2969
+ const attrs = this.xml.querySelector('attributes');
2764
2970
  let a = this.xml.querySelector(`attributes&gt;${name}`);
2765
2971
  if( a )
2766
2972
  emptyNode(a).append( createText(a,newValue) );
2767
2973
  else
2768
2974
  <span class="missing-if-branch" title="else path not taken" >E</span>{ <span class="cstat-no" title="statement not covered" >a = create( name, newValue, this.xml );</span>
2769
- <span class="cstat-no" title="statement not covered" > this.xml.querySelector('attributes').append( a );</span>
2975
+ <span class="cstat-no" title="statement not covered" > attrs.append( a );</span>
2770
2976
  }
2977
+ this.#inTransform || attrs.setAttribute(name,newValue);
2771
2978
  &nbsp;
2772
2979
  this.dispatchEvent(new CustomEvent('change', { bubbles: true,detail: { [name]: newValue }}))
2773
2980
  }
@@ -2812,7 +3019,7 @@ export default CustomElement;
2812
3019
  <div class='footer quiet pad2 space-top1 center small'>
2813
3020
  Code coverage generated by
2814
3021
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2815
- at 2024-11-28T15:54:41.264Z
3022
+ at 2025-12-30T06:55:41.793Z
2816
3023
  </div>
2817
3024
  <script src="../../prettify.js"></script>
2818
3025
  <script>