@epa-wg/custom-element-dist 0.0.37 → 0.0.38
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.
- package/.yarn/install-state.gz +0 -0
- package/AGENTS.md +1 -0
- package/CLAUDE.md +89 -0
- package/README.md +5 -5
- package/bin/postinstall.sh +12 -9
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/coverage-final.json +12 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +176 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/src/coverage.svg +10 -0
- package/coverage/src/custom-element/coverage.svg +10 -0
- package/coverage/src/custom-element/custom-element.js/coverage.svg +10 -0
- package/coverage/src/custom-element/custom-element.js.html +3058 -0
- package/coverage/src/custom-element/http-request.js/coverage.svg +10 -0
- package/coverage/src/custom-element/http-request.js.html +373 -0
- package/coverage/src/custom-element/index.html +176 -0
- package/coverage/src/custom-element/local-storage.js/coverage.svg +10 -0
- package/coverage/src/custom-element/local-storage.js.html +361 -0
- package/coverage/src/custom-element/location-element.js/coverage.svg +10 -0
- package/coverage/src/custom-element/location-element.js.html +412 -0
- package/coverage/src/custom-element/module-url.js/coverage.svg +10 -0
- package/coverage/src/custom-element/module-url.js.html +187 -0
- package/coverage/src/index.html +116 -0
- package/coverage/src/material/theme/colors.js/coverage.svg +10 -0
- package/coverage/src/material/theme/colors.js.html +217 -0
- package/coverage/src/material/theme/coverage.svg +10 -0
- package/coverage/src/material/theme/index.html +116 -0
- package/coverage/src/mocks/coverage.svg +10 -0
- package/coverage/src/mocks/handlers.ts/coverage.svg +10 -0
- package/coverage/src/mocks/handlers.ts.html +196 -0
- package/coverage/src/mocks/index.html +116 -0
- package/coverage/src/stories/coverage.svg +10 -0
- package/coverage/src/stories/frame.canvas.ts/coverage.svg +10 -0
- package/coverage/src/stories/frame.canvas.ts.html +217 -0
- package/coverage/src/stories/http-request.stories.ts/coverage.svg +10 -0
- package/coverage/src/stories/http-request.stories.ts.html +820 -0
- package/coverage/src/stories/index.html +146 -0
- package/coverage/src/stories/testStoryBook.ts/coverage.svg +10 -0
- package/coverage/src/stories/testStoryBook.ts.html +160 -0
- package/coverage/src/sum.ts/coverage.svg +10 -0
- package/coverage/src/sum.ts.html +94 -0
- package/dist/{custom-element-BqBcmDiN.js → custom-element-Cr_I3Xd-.js} +69 -65
- package/dist/custom-element-D5IF46oF.cjs +97 -0
- package/dist/custom-element-bundle.cjs +1 -1
- package/dist/custom-element-bundle.js +3 -3
- package/dist/demo/a.html +41 -64
- package/dist/demo/s.xslt +94 -350
- package/dist/{local-storage-DzmNKzgN.js → local-storage-w0k66UWM.js} +4 -4
- package/package.json +3 -2
- package/public/demo/a.html +41 -64
- package/public/demo/s.xslt +94 -350
- package/src/custom-element/custom-element.js +9 -4
- package/src/custom-element/demo/a.html +41 -64
- package/src/custom-element/demo/s.xslt +94 -350
- package/src/custom-element/ide/customData-dce.json +8 -8
- package/src/custom-element/ide/web-types-dce.json +8 -8
- package/src/custom-element/ide/web-types-xsl.json +1 -1
- package/src/material/components/action.html +77 -22
- package/src/material/components/autocomplete.html +7 -6
- package/src/material/components/badge.html +33 -34
- package/src/material/components/cem-theme-components.css +131 -0
- package/src/material/components/dropdown.html +27 -12
- package/src/material/components/icon-link.html +25 -18
- package/src/material/components/icon.html +15 -14
- package/src/material/components/input.html +27 -24
- package/src/material/components/menu.html +23 -18
- package/src/material/components.html +19 -18
- package/src/material/demo.css +24 -12
- package/src/material/index.html +15 -9
- package/src/material/theme/consumer-theme.css +0 -733
- package/src/material/theme/semantic.css +1 -85
- package/src/mocks/versions.mock.ts +1 -1
- package/src/stories/__screenshots__/http-request.test.ts/http-request-url-change-1.png +0 -0
- package/src/stories/__screenshots__/location-element.test.stories.ts/location-element-location-element-Demo-1.png +0 -0
- package/src/stories/frame.canvas.ts +17 -4
- package/src/stories/testStoryBook.ts +2 -5
- package/storybook-static/assets/{Color-F6OSRLHC-FZZzFn7T.js → Color-F6OSRLHC-CGlEPECH.js} +1 -1
- package/storybook-static/assets/{Configure-DyfktOJO.js → Configure-RleqRiQ0.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-CFRXHY34-5isVpCzj.js → DocsRenderer-CFRXHY34-Bz2y61tp.js} +2 -2
- package/storybook-static/assets/{attributes.test.stories-CrDC-RXf.js → attributes.test.stories-Bs0zZtYO.js} +1 -1
- package/storybook-static/assets/{css.test.stories-ChWnZJwa.js → css.test.stories-CK4N9Fqq.js} +1 -1
- package/storybook-static/assets/custom-element-PxTx2W9y.js +97 -0
- package/storybook-static/assets/{dom-merge.test.stories-DkarPqD_.js → dom-merge.test.stories-DLFviA8F.js} +1 -1
- package/storybook-static/assets/{external-template.test.stories-DCboR8sG.js → external-template.test.stories-CqR1aaHv.js} +1 -1
- package/storybook-static/assets/{form.test.stories-BjeeUu0b.js → form.test.stories-Cinvg_DI.js} +1 -1
- package/storybook-static/assets/frame.canvas-BB4_DNn6.js +1 -0
- package/storybook-static/assets/handlers-CxSWbsdK.js +291 -0
- package/storybook-static/assets/{http-request.stories-WIldq1MC.js → http-request.stories-_1_UMvj-.js} +1 -1
- package/storybook-static/assets/{iframe-CBHPj1E5.js → iframe-fXv0bS2C.js} +2 -2
- package/storybook-static/assets/{index-BL0FQnAE.js → index-Dm-gke4Y.js} +3 -3
- package/storybook-static/assets/{index-CzwPLrca.js → index-DxjDM4Ny.js} +1 -1
- package/storybook-static/assets/{local-storage.test.stories-DLMK0p2s.js → local-storage.test.stories-M4WOSQC5.js} +1 -1
- package/storybook-static/assets/{location-element.test.stories-BroqoLMS.js → location-element.test.stories-Ce6Ma8hE.js} +1 -1
- package/storybook-static/assets/{module-url.test.stories-B-0dibET.js → module-url.test.stories-PwnZWqKL.js} +1 -1
- package/storybook-static/assets/{preview-BG24UPL5.js → preview-Dq4-5PA5.js} +2 -2
- package/storybook-static/assets/{preview-C1KnQPMW.js → preview-kbHljohz.js} +1 -1
- package/storybook-static/assets/{set-url.test.stories-Dhq4YQyr.js → set-url.test.stories-BdNTYEwI.js} +1 -1
- package/storybook-static/assets/{slice-events.test.stories-BZJGIFku.js → slice-events.test.stories-BdvLtK0h.js} +1 -1
- package/storybook-static/assets/{slots.test.stories-DKivHwZH.js → slots.test.stories-CoTPvRog.js} +1 -1
- package/storybook-static/assets/{version-select.test.stories-Dntyd7qb.js → version-select.test.stories-hs-HsDVE.js} +1 -1
- package/storybook-static/assets/{xslt-conditionals.test.stories-Iq5iQNRj.js → xslt-conditionals.test.stories-C4oXVQWa.js} +1 -1
- package/storybook-static/assets/{xslt-for-each.test.stories-BMygBmj8.js → xslt-for-each.test.stories-Da4vCZe1.js} +1 -1
- package/storybook-static/assets/{xslt-if.test.stories-CVrFWdAX.js → xslt-if.test.stories-CMlnBGX2.js} +1 -1
- package/storybook-static/demo/a.html +41 -64
- package/storybook-static/demo/s.xslt +94 -350
- package/storybook-static/iframe.html +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/custom-element-jpOyXHF6.cjs +0 -97
- package/storybook-static/assets/custom-element-wuk8gYiP.js +0 -97
- package/storybook-static/assets/frame.canvas-E5n9h6j1.js +0 -1
- package/storybook-static/assets/handlers-B7UMnC7v.js +0 -291
|
@@ -0,0 +1,3058 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/custom-element/custom-element.js</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/custom-element</a> custom-element.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">92.48% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>628/679</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">86.32% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>341/395</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">94.96% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>132/139</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">92.4% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>560/606</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
+
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
+
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
+
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
+
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
+
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
+
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
+
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
+
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
+
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
+
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
+
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
+
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
+
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
+
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
+
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
+
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
+
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
+
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
+
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
+
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
+
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
+
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
+
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
+
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
+
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
+
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
+
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
+
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
+
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
+
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
+
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
+
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
+
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
+
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
+
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
+
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
+
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
+
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
+
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
+
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
+
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
+
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
+
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
+
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
+
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
+
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
+
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
+
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
+
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
+
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
+
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
+
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
+
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
+
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
+
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
+
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
+
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
+
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
+
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
+
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
+
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
+
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
+
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
+
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
+
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
+
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
+
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
+
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
+
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
+
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
+
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
+
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
+
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
+
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
+
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
+
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
+
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
+
<a name='L361'></a><a href='#L361'>361</a>
|
|
427
|
+
<a name='L362'></a><a href='#L362'>362</a>
|
|
428
|
+
<a name='L363'></a><a href='#L363'>363</a>
|
|
429
|
+
<a name='L364'></a><a href='#L364'>364</a>
|
|
430
|
+
<a name='L365'></a><a href='#L365'>365</a>
|
|
431
|
+
<a name='L366'></a><a href='#L366'>366</a>
|
|
432
|
+
<a name='L367'></a><a href='#L367'>367</a>
|
|
433
|
+
<a name='L368'></a><a href='#L368'>368</a>
|
|
434
|
+
<a name='L369'></a><a href='#L369'>369</a>
|
|
435
|
+
<a name='L370'></a><a href='#L370'>370</a>
|
|
436
|
+
<a name='L371'></a><a href='#L371'>371</a>
|
|
437
|
+
<a name='L372'></a><a href='#L372'>372</a>
|
|
438
|
+
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
|
+
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
|
+
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
+
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
+
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
+
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
+
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
+
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
+
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
+
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
+
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
+
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
+
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
+
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
+
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
+
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
+
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
+
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
+
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
+
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
+
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
+
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
+
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
+
<a name='L445'></a><a href='#L445'>445</a>
|
|
511
|
+
<a name='L446'></a><a href='#L446'>446</a>
|
|
512
|
+
<a name='L447'></a><a href='#L447'>447</a>
|
|
513
|
+
<a name='L448'></a><a href='#L448'>448</a>
|
|
514
|
+
<a name='L449'></a><a href='#L449'>449</a>
|
|
515
|
+
<a name='L450'></a><a href='#L450'>450</a>
|
|
516
|
+
<a name='L451'></a><a href='#L451'>451</a>
|
|
517
|
+
<a name='L452'></a><a href='#L452'>452</a>
|
|
518
|
+
<a name='L453'></a><a href='#L453'>453</a>
|
|
519
|
+
<a name='L454'></a><a href='#L454'>454</a>
|
|
520
|
+
<a name='L455'></a><a href='#L455'>455</a>
|
|
521
|
+
<a name='L456'></a><a href='#L456'>456</a>
|
|
522
|
+
<a name='L457'></a><a href='#L457'>457</a>
|
|
523
|
+
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
|
+
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
|
+
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
+
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
+
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
+
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
+
<a name='L464'></a><a href='#L464'>464</a>
|
|
530
|
+
<a name='L465'></a><a href='#L465'>465</a>
|
|
531
|
+
<a name='L466'></a><a href='#L466'>466</a>
|
|
532
|
+
<a name='L467'></a><a href='#L467'>467</a>
|
|
533
|
+
<a name='L468'></a><a href='#L468'>468</a>
|
|
534
|
+
<a name='L469'></a><a href='#L469'>469</a>
|
|
535
|
+
<a name='L470'></a><a href='#L470'>470</a>
|
|
536
|
+
<a name='L471'></a><a href='#L471'>471</a>
|
|
537
|
+
<a name='L472'></a><a href='#L472'>472</a>
|
|
538
|
+
<a name='L473'></a><a href='#L473'>473</a>
|
|
539
|
+
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
|
+
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
|
+
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
+
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
+
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
+
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
+
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
+
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
+
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
+
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
+
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
+
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
+
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
+
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
+
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
+
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
+
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
+
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
+
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
+
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
+
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
+
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
+
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
+
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
+
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
+
<a name='L499'></a><a href='#L499'>499</a>
|
|
565
|
+
<a name='L500'></a><a href='#L500'>500</a>
|
|
566
|
+
<a name='L501'></a><a href='#L501'>501</a>
|
|
567
|
+
<a name='L502'></a><a href='#L502'>502</a>
|
|
568
|
+
<a name='L503'></a><a href='#L503'>503</a>
|
|
569
|
+
<a name='L504'></a><a href='#L504'>504</a>
|
|
570
|
+
<a name='L505'></a><a href='#L505'>505</a>
|
|
571
|
+
<a name='L506'></a><a href='#L506'>506</a>
|
|
572
|
+
<a name='L507'></a><a href='#L507'>507</a>
|
|
573
|
+
<a name='L508'></a><a href='#L508'>508</a>
|
|
574
|
+
<a name='L509'></a><a href='#L509'>509</a>
|
|
575
|
+
<a name='L510'></a><a href='#L510'>510</a>
|
|
576
|
+
<a name='L511'></a><a href='#L511'>511</a>
|
|
577
|
+
<a name='L512'></a><a href='#L512'>512</a>
|
|
578
|
+
<a name='L513'></a><a href='#L513'>513</a>
|
|
579
|
+
<a name='L514'></a><a href='#L514'>514</a>
|
|
580
|
+
<a name='L515'></a><a href='#L515'>515</a>
|
|
581
|
+
<a name='L516'></a><a href='#L516'>516</a>
|
|
582
|
+
<a name='L517'></a><a href='#L517'>517</a>
|
|
583
|
+
<a name='L518'></a><a href='#L518'>518</a>
|
|
584
|
+
<a name='L519'></a><a href='#L519'>519</a>
|
|
585
|
+
<a name='L520'></a><a href='#L520'>520</a>
|
|
586
|
+
<a name='L521'></a><a href='#L521'>521</a>
|
|
587
|
+
<a name='L522'></a><a href='#L522'>522</a>
|
|
588
|
+
<a name='L523'></a><a href='#L523'>523</a>
|
|
589
|
+
<a name='L524'></a><a href='#L524'>524</a>
|
|
590
|
+
<a name='L525'></a><a href='#L525'>525</a>
|
|
591
|
+
<a name='L526'></a><a href='#L526'>526</a>
|
|
592
|
+
<a name='L527'></a><a href='#L527'>527</a>
|
|
593
|
+
<a name='L528'></a><a href='#L528'>528</a>
|
|
594
|
+
<a name='L529'></a><a href='#L529'>529</a>
|
|
595
|
+
<a name='L530'></a><a href='#L530'>530</a>
|
|
596
|
+
<a name='L531'></a><a href='#L531'>531</a>
|
|
597
|
+
<a name='L532'></a><a href='#L532'>532</a>
|
|
598
|
+
<a name='L533'></a><a href='#L533'>533</a>
|
|
599
|
+
<a name='L534'></a><a href='#L534'>534</a>
|
|
600
|
+
<a name='L535'></a><a href='#L535'>535</a>
|
|
601
|
+
<a name='L536'></a><a href='#L536'>536</a>
|
|
602
|
+
<a name='L537'></a><a href='#L537'>537</a>
|
|
603
|
+
<a name='L538'></a><a href='#L538'>538</a>
|
|
604
|
+
<a name='L539'></a><a href='#L539'>539</a>
|
|
605
|
+
<a name='L540'></a><a href='#L540'>540</a>
|
|
606
|
+
<a name='L541'></a><a href='#L541'>541</a>
|
|
607
|
+
<a name='L542'></a><a href='#L542'>542</a>
|
|
608
|
+
<a name='L543'></a><a href='#L543'>543</a>
|
|
609
|
+
<a name='L544'></a><a href='#L544'>544</a>
|
|
610
|
+
<a name='L545'></a><a href='#L545'>545</a>
|
|
611
|
+
<a name='L546'></a><a href='#L546'>546</a>
|
|
612
|
+
<a name='L547'></a><a href='#L547'>547</a>
|
|
613
|
+
<a name='L548'></a><a href='#L548'>548</a>
|
|
614
|
+
<a name='L549'></a><a href='#L549'>549</a>
|
|
615
|
+
<a name='L550'></a><a href='#L550'>550</a>
|
|
616
|
+
<a name='L551'></a><a href='#L551'>551</a>
|
|
617
|
+
<a name='L552'></a><a href='#L552'>552</a>
|
|
618
|
+
<a name='L553'></a><a href='#L553'>553</a>
|
|
619
|
+
<a name='L554'></a><a href='#L554'>554</a>
|
|
620
|
+
<a name='L555'></a><a href='#L555'>555</a>
|
|
621
|
+
<a name='L556'></a><a href='#L556'>556</a>
|
|
622
|
+
<a name='L557'></a><a href='#L557'>557</a>
|
|
623
|
+
<a name='L558'></a><a href='#L558'>558</a>
|
|
624
|
+
<a name='L559'></a><a href='#L559'>559</a>
|
|
625
|
+
<a name='L560'></a><a href='#L560'>560</a>
|
|
626
|
+
<a name='L561'></a><a href='#L561'>561</a>
|
|
627
|
+
<a name='L562'></a><a href='#L562'>562</a>
|
|
628
|
+
<a name='L563'></a><a href='#L563'>563</a>
|
|
629
|
+
<a name='L564'></a><a href='#L564'>564</a>
|
|
630
|
+
<a name='L565'></a><a href='#L565'>565</a>
|
|
631
|
+
<a name='L566'></a><a href='#L566'>566</a>
|
|
632
|
+
<a name='L567'></a><a href='#L567'>567</a>
|
|
633
|
+
<a name='L568'></a><a href='#L568'>568</a>
|
|
634
|
+
<a name='L569'></a><a href='#L569'>569</a>
|
|
635
|
+
<a name='L570'></a><a href='#L570'>570</a>
|
|
636
|
+
<a name='L571'></a><a href='#L571'>571</a>
|
|
637
|
+
<a name='L572'></a><a href='#L572'>572</a>
|
|
638
|
+
<a name='L573'></a><a href='#L573'>573</a>
|
|
639
|
+
<a name='L574'></a><a href='#L574'>574</a>
|
|
640
|
+
<a name='L575'></a><a href='#L575'>575</a>
|
|
641
|
+
<a name='L576'></a><a href='#L576'>576</a>
|
|
642
|
+
<a name='L577'></a><a href='#L577'>577</a>
|
|
643
|
+
<a name='L578'></a><a href='#L578'>578</a>
|
|
644
|
+
<a name='L579'></a><a href='#L579'>579</a>
|
|
645
|
+
<a name='L580'></a><a href='#L580'>580</a>
|
|
646
|
+
<a name='L581'></a><a href='#L581'>581</a>
|
|
647
|
+
<a name='L582'></a><a href='#L582'>582</a>
|
|
648
|
+
<a name='L583'></a><a href='#L583'>583</a>
|
|
649
|
+
<a name='L584'></a><a href='#L584'>584</a>
|
|
650
|
+
<a name='L585'></a><a href='#L585'>585</a>
|
|
651
|
+
<a name='L586'></a><a href='#L586'>586</a>
|
|
652
|
+
<a name='L587'></a><a href='#L587'>587</a>
|
|
653
|
+
<a name='L588'></a><a href='#L588'>588</a>
|
|
654
|
+
<a name='L589'></a><a href='#L589'>589</a>
|
|
655
|
+
<a name='L590'></a><a href='#L590'>590</a>
|
|
656
|
+
<a name='L591'></a><a href='#L591'>591</a>
|
|
657
|
+
<a name='L592'></a><a href='#L592'>592</a>
|
|
658
|
+
<a name='L593'></a><a href='#L593'>593</a>
|
|
659
|
+
<a name='L594'></a><a href='#L594'>594</a>
|
|
660
|
+
<a name='L595'></a><a href='#L595'>595</a>
|
|
661
|
+
<a name='L596'></a><a href='#L596'>596</a>
|
|
662
|
+
<a name='L597'></a><a href='#L597'>597</a>
|
|
663
|
+
<a name='L598'></a><a href='#L598'>598</a>
|
|
664
|
+
<a name='L599'></a><a href='#L599'>599</a>
|
|
665
|
+
<a name='L600'></a><a href='#L600'>600</a>
|
|
666
|
+
<a name='L601'></a><a href='#L601'>601</a>
|
|
667
|
+
<a name='L602'></a><a href='#L602'>602</a>
|
|
668
|
+
<a name='L603'></a><a href='#L603'>603</a>
|
|
669
|
+
<a name='L604'></a><a href='#L604'>604</a>
|
|
670
|
+
<a name='L605'></a><a href='#L605'>605</a>
|
|
671
|
+
<a name='L606'></a><a href='#L606'>606</a>
|
|
672
|
+
<a name='L607'></a><a href='#L607'>607</a>
|
|
673
|
+
<a name='L608'></a><a href='#L608'>608</a>
|
|
674
|
+
<a name='L609'></a><a href='#L609'>609</a>
|
|
675
|
+
<a name='L610'></a><a href='#L610'>610</a>
|
|
676
|
+
<a name='L611'></a><a href='#L611'>611</a>
|
|
677
|
+
<a name='L612'></a><a href='#L612'>612</a>
|
|
678
|
+
<a name='L613'></a><a href='#L613'>613</a>
|
|
679
|
+
<a name='L614'></a><a href='#L614'>614</a>
|
|
680
|
+
<a name='L615'></a><a href='#L615'>615</a>
|
|
681
|
+
<a name='L616'></a><a href='#L616'>616</a>
|
|
682
|
+
<a name='L617'></a><a href='#L617'>617</a>
|
|
683
|
+
<a name='L618'></a><a href='#L618'>618</a>
|
|
684
|
+
<a name='L619'></a><a href='#L619'>619</a>
|
|
685
|
+
<a name='L620'></a><a href='#L620'>620</a>
|
|
686
|
+
<a name='L621'></a><a href='#L621'>621</a>
|
|
687
|
+
<a name='L622'></a><a href='#L622'>622</a>
|
|
688
|
+
<a name='L623'></a><a href='#L623'>623</a>
|
|
689
|
+
<a name='L624'></a><a href='#L624'>624</a>
|
|
690
|
+
<a name='L625'></a><a href='#L625'>625</a>
|
|
691
|
+
<a name='L626'></a><a href='#L626'>626</a>
|
|
692
|
+
<a name='L627'></a><a href='#L627'>627</a>
|
|
693
|
+
<a name='L628'></a><a href='#L628'>628</a>
|
|
694
|
+
<a name='L629'></a><a href='#L629'>629</a>
|
|
695
|
+
<a name='L630'></a><a href='#L630'>630</a>
|
|
696
|
+
<a name='L631'></a><a href='#L631'>631</a>
|
|
697
|
+
<a name='L632'></a><a href='#L632'>632</a>
|
|
698
|
+
<a name='L633'></a><a href='#L633'>633</a>
|
|
699
|
+
<a name='L634'></a><a href='#L634'>634</a>
|
|
700
|
+
<a name='L635'></a><a href='#L635'>635</a>
|
|
701
|
+
<a name='L636'></a><a href='#L636'>636</a>
|
|
702
|
+
<a name='L637'></a><a href='#L637'>637</a>
|
|
703
|
+
<a name='L638'></a><a href='#L638'>638</a>
|
|
704
|
+
<a name='L639'></a><a href='#L639'>639</a>
|
|
705
|
+
<a name='L640'></a><a href='#L640'>640</a>
|
|
706
|
+
<a name='L641'></a><a href='#L641'>641</a>
|
|
707
|
+
<a name='L642'></a><a href='#L642'>642</a>
|
|
708
|
+
<a name='L643'></a><a href='#L643'>643</a>
|
|
709
|
+
<a name='L644'></a><a href='#L644'>644</a>
|
|
710
|
+
<a name='L645'></a><a href='#L645'>645</a>
|
|
711
|
+
<a name='L646'></a><a href='#L646'>646</a>
|
|
712
|
+
<a name='L647'></a><a href='#L647'>647</a>
|
|
713
|
+
<a name='L648'></a><a href='#L648'>648</a>
|
|
714
|
+
<a name='L649'></a><a href='#L649'>649</a>
|
|
715
|
+
<a name='L650'></a><a href='#L650'>650</a>
|
|
716
|
+
<a name='L651'></a><a href='#L651'>651</a>
|
|
717
|
+
<a name='L652'></a><a href='#L652'>652</a>
|
|
718
|
+
<a name='L653'></a><a href='#L653'>653</a>
|
|
719
|
+
<a name='L654'></a><a href='#L654'>654</a>
|
|
720
|
+
<a name='L655'></a><a href='#L655'>655</a>
|
|
721
|
+
<a name='L656'></a><a href='#L656'>656</a>
|
|
722
|
+
<a name='L657'></a><a href='#L657'>657</a>
|
|
723
|
+
<a name='L658'></a><a href='#L658'>658</a>
|
|
724
|
+
<a name='L659'></a><a href='#L659'>659</a>
|
|
725
|
+
<a name='L660'></a><a href='#L660'>660</a>
|
|
726
|
+
<a name='L661'></a><a href='#L661'>661</a>
|
|
727
|
+
<a name='L662'></a><a href='#L662'>662</a>
|
|
728
|
+
<a name='L663'></a><a href='#L663'>663</a>
|
|
729
|
+
<a name='L664'></a><a href='#L664'>664</a>
|
|
730
|
+
<a name='L665'></a><a href='#L665'>665</a>
|
|
731
|
+
<a name='L666'></a><a href='#L666'>666</a>
|
|
732
|
+
<a name='L667'></a><a href='#L667'>667</a>
|
|
733
|
+
<a name='L668'></a><a href='#L668'>668</a>
|
|
734
|
+
<a name='L669'></a><a href='#L669'>669</a>
|
|
735
|
+
<a name='L670'></a><a href='#L670'>670</a>
|
|
736
|
+
<a name='L671'></a><a href='#L671'>671</a>
|
|
737
|
+
<a name='L672'></a><a href='#L672'>672</a>
|
|
738
|
+
<a name='L673'></a><a href='#L673'>673</a>
|
|
739
|
+
<a name='L674'></a><a href='#L674'>674</a>
|
|
740
|
+
<a name='L675'></a><a href='#L675'>675</a>
|
|
741
|
+
<a name='L676'></a><a href='#L676'>676</a>
|
|
742
|
+
<a name='L677'></a><a href='#L677'>677</a>
|
|
743
|
+
<a name='L678'></a><a href='#L678'>678</a>
|
|
744
|
+
<a name='L679'></a><a href='#L679'>679</a>
|
|
745
|
+
<a name='L680'></a><a href='#L680'>680</a>
|
|
746
|
+
<a name='L681'></a><a href='#L681'>681</a>
|
|
747
|
+
<a name='L682'></a><a href='#L682'>682</a>
|
|
748
|
+
<a name='L683'></a><a href='#L683'>683</a>
|
|
749
|
+
<a name='L684'></a><a href='#L684'>684</a>
|
|
750
|
+
<a name='L685'></a><a href='#L685'>685</a>
|
|
751
|
+
<a name='L686'></a><a href='#L686'>686</a>
|
|
752
|
+
<a name='L687'></a><a href='#L687'>687</a>
|
|
753
|
+
<a name='L688'></a><a href='#L688'>688</a>
|
|
754
|
+
<a name='L689'></a><a href='#L689'>689</a>
|
|
755
|
+
<a name='L690'></a><a href='#L690'>690</a>
|
|
756
|
+
<a name='L691'></a><a href='#L691'>691</a>
|
|
757
|
+
<a name='L692'></a><a href='#L692'>692</a>
|
|
758
|
+
<a name='L693'></a><a href='#L693'>693</a>
|
|
759
|
+
<a name='L694'></a><a href='#L694'>694</a>
|
|
760
|
+
<a name='L695'></a><a href='#L695'>695</a>
|
|
761
|
+
<a name='L696'></a><a href='#L696'>696</a>
|
|
762
|
+
<a name='L697'></a><a href='#L697'>697</a>
|
|
763
|
+
<a name='L698'></a><a href='#L698'>698</a>
|
|
764
|
+
<a name='L699'></a><a href='#L699'>699</a>
|
|
765
|
+
<a name='L700'></a><a href='#L700'>700</a>
|
|
766
|
+
<a name='L701'></a><a href='#L701'>701</a>
|
|
767
|
+
<a name='L702'></a><a href='#L702'>702</a>
|
|
768
|
+
<a name='L703'></a><a href='#L703'>703</a>
|
|
769
|
+
<a name='L704'></a><a href='#L704'>704</a>
|
|
770
|
+
<a name='L705'></a><a href='#L705'>705</a>
|
|
771
|
+
<a name='L706'></a><a href='#L706'>706</a>
|
|
772
|
+
<a name='L707'></a><a href='#L707'>707</a>
|
|
773
|
+
<a name='L708'></a><a href='#L708'>708</a>
|
|
774
|
+
<a name='L709'></a><a href='#L709'>709</a>
|
|
775
|
+
<a name='L710'></a><a href='#L710'>710</a>
|
|
776
|
+
<a name='L711'></a><a href='#L711'>711</a>
|
|
777
|
+
<a name='L712'></a><a href='#L712'>712</a>
|
|
778
|
+
<a name='L713'></a><a href='#L713'>713</a>
|
|
779
|
+
<a name='L714'></a><a href='#L714'>714</a>
|
|
780
|
+
<a name='L715'></a><a href='#L715'>715</a>
|
|
781
|
+
<a name='L716'></a><a href='#L716'>716</a>
|
|
782
|
+
<a name='L717'></a><a href='#L717'>717</a>
|
|
783
|
+
<a name='L718'></a><a href='#L718'>718</a>
|
|
784
|
+
<a name='L719'></a><a href='#L719'>719</a>
|
|
785
|
+
<a name='L720'></a><a href='#L720'>720</a>
|
|
786
|
+
<a name='L721'></a><a href='#L721'>721</a>
|
|
787
|
+
<a name='L722'></a><a href='#L722'>722</a>
|
|
788
|
+
<a name='L723'></a><a href='#L723'>723</a>
|
|
789
|
+
<a name='L724'></a><a href='#L724'>724</a>
|
|
790
|
+
<a name='L725'></a><a href='#L725'>725</a>
|
|
791
|
+
<a name='L726'></a><a href='#L726'>726</a>
|
|
792
|
+
<a name='L727'></a><a href='#L727'>727</a>
|
|
793
|
+
<a name='L728'></a><a href='#L728'>728</a>
|
|
794
|
+
<a name='L729'></a><a href='#L729'>729</a>
|
|
795
|
+
<a name='L730'></a><a href='#L730'>730</a>
|
|
796
|
+
<a name='L731'></a><a href='#L731'>731</a>
|
|
797
|
+
<a name='L732'></a><a href='#L732'>732</a>
|
|
798
|
+
<a name='L733'></a><a href='#L733'>733</a>
|
|
799
|
+
<a name='L734'></a><a href='#L734'>734</a>
|
|
800
|
+
<a name='L735'></a><a href='#L735'>735</a>
|
|
801
|
+
<a name='L736'></a><a href='#L736'>736</a>
|
|
802
|
+
<a name='L737'></a><a href='#L737'>737</a>
|
|
803
|
+
<a name='L738'></a><a href='#L738'>738</a>
|
|
804
|
+
<a name='L739'></a><a href='#L739'>739</a>
|
|
805
|
+
<a name='L740'></a><a href='#L740'>740</a>
|
|
806
|
+
<a name='L741'></a><a href='#L741'>741</a>
|
|
807
|
+
<a name='L742'></a><a href='#L742'>742</a>
|
|
808
|
+
<a name='L743'></a><a href='#L743'>743</a>
|
|
809
|
+
<a name='L744'></a><a href='#L744'>744</a>
|
|
810
|
+
<a name='L745'></a><a href='#L745'>745</a>
|
|
811
|
+
<a name='L746'></a><a href='#L746'>746</a>
|
|
812
|
+
<a name='L747'></a><a href='#L747'>747</a>
|
|
813
|
+
<a name='L748'></a><a href='#L748'>748</a>
|
|
814
|
+
<a name='L749'></a><a href='#L749'>749</a>
|
|
815
|
+
<a name='L750'></a><a href='#L750'>750</a>
|
|
816
|
+
<a name='L751'></a><a href='#L751'>751</a>
|
|
817
|
+
<a name='L752'></a><a href='#L752'>752</a>
|
|
818
|
+
<a name='L753'></a><a href='#L753'>753</a>
|
|
819
|
+
<a name='L754'></a><a href='#L754'>754</a>
|
|
820
|
+
<a name='L755'></a><a href='#L755'>755</a>
|
|
821
|
+
<a name='L756'></a><a href='#L756'>756</a>
|
|
822
|
+
<a name='L757'></a><a href='#L757'>757</a>
|
|
823
|
+
<a name='L758'></a><a href='#L758'>758</a>
|
|
824
|
+
<a name='L759'></a><a href='#L759'>759</a>
|
|
825
|
+
<a name='L760'></a><a href='#L760'>760</a>
|
|
826
|
+
<a name='L761'></a><a href='#L761'>761</a>
|
|
827
|
+
<a name='L762'></a><a href='#L762'>762</a>
|
|
828
|
+
<a name='L763'></a><a href='#L763'>763</a>
|
|
829
|
+
<a name='L764'></a><a href='#L764'>764</a>
|
|
830
|
+
<a name='L765'></a><a href='#L765'>765</a>
|
|
831
|
+
<a name='L766'></a><a href='#L766'>766</a>
|
|
832
|
+
<a name='L767'></a><a href='#L767'>767</a>
|
|
833
|
+
<a name='L768'></a><a href='#L768'>768</a>
|
|
834
|
+
<a name='L769'></a><a href='#L769'>769</a>
|
|
835
|
+
<a name='L770'></a><a href='#L770'>770</a>
|
|
836
|
+
<a name='L771'></a><a href='#L771'>771</a>
|
|
837
|
+
<a name='L772'></a><a href='#L772'>772</a>
|
|
838
|
+
<a name='L773'></a><a href='#L773'>773</a>
|
|
839
|
+
<a name='L774'></a><a href='#L774'>774</a>
|
|
840
|
+
<a name='L775'></a><a href='#L775'>775</a>
|
|
841
|
+
<a name='L776'></a><a href='#L776'>776</a>
|
|
842
|
+
<a name='L777'></a><a href='#L777'>777</a>
|
|
843
|
+
<a name='L778'></a><a href='#L778'>778</a>
|
|
844
|
+
<a name='L779'></a><a href='#L779'>779</a>
|
|
845
|
+
<a name='L780'></a><a href='#L780'>780</a>
|
|
846
|
+
<a name='L781'></a><a href='#L781'>781</a>
|
|
847
|
+
<a name='L782'></a><a href='#L782'>782</a>
|
|
848
|
+
<a name='L783'></a><a href='#L783'>783</a>
|
|
849
|
+
<a name='L784'></a><a href='#L784'>784</a>
|
|
850
|
+
<a name='L785'></a><a href='#L785'>785</a>
|
|
851
|
+
<a name='L786'></a><a href='#L786'>786</a>
|
|
852
|
+
<a name='L787'></a><a href='#L787'>787</a>
|
|
853
|
+
<a name='L788'></a><a href='#L788'>788</a>
|
|
854
|
+
<a name='L789'></a><a href='#L789'>789</a>
|
|
855
|
+
<a name='L790'></a><a href='#L790'>790</a>
|
|
856
|
+
<a name='L791'></a><a href='#L791'>791</a>
|
|
857
|
+
<a name='L792'></a><a href='#L792'>792</a>
|
|
858
|
+
<a name='L793'></a><a href='#L793'>793</a>
|
|
859
|
+
<a name='L794'></a><a href='#L794'>794</a>
|
|
860
|
+
<a name='L795'></a><a href='#L795'>795</a>
|
|
861
|
+
<a name='L796'></a><a href='#L796'>796</a>
|
|
862
|
+
<a name='L797'></a><a href='#L797'>797</a>
|
|
863
|
+
<a name='L798'></a><a href='#L798'>798</a>
|
|
864
|
+
<a name='L799'></a><a href='#L799'>799</a>
|
|
865
|
+
<a name='L800'></a><a href='#L800'>800</a>
|
|
866
|
+
<a name='L801'></a><a href='#L801'>801</a>
|
|
867
|
+
<a name='L802'></a><a href='#L802'>802</a>
|
|
868
|
+
<a name='L803'></a><a href='#L803'>803</a>
|
|
869
|
+
<a name='L804'></a><a href='#L804'>804</a>
|
|
870
|
+
<a name='L805'></a><a href='#L805'>805</a>
|
|
871
|
+
<a name='L806'></a><a href='#L806'>806</a>
|
|
872
|
+
<a name='L807'></a><a href='#L807'>807</a>
|
|
873
|
+
<a name='L808'></a><a href='#L808'>808</a>
|
|
874
|
+
<a name='L809'></a><a href='#L809'>809</a>
|
|
875
|
+
<a name='L810'></a><a href='#L810'>810</a>
|
|
876
|
+
<a name='L811'></a><a href='#L811'>811</a>
|
|
877
|
+
<a name='L812'></a><a href='#L812'>812</a>
|
|
878
|
+
<a name='L813'></a><a href='#L813'>813</a>
|
|
879
|
+
<a name='L814'></a><a href='#L814'>814</a>
|
|
880
|
+
<a name='L815'></a><a href='#L815'>815</a>
|
|
881
|
+
<a name='L816'></a><a href='#L816'>816</a>
|
|
882
|
+
<a name='L817'></a><a href='#L817'>817</a>
|
|
883
|
+
<a name='L818'></a><a href='#L818'>818</a>
|
|
884
|
+
<a name='L819'></a><a href='#L819'>819</a>
|
|
885
|
+
<a name='L820'></a><a href='#L820'>820</a>
|
|
886
|
+
<a name='L821'></a><a href='#L821'>821</a>
|
|
887
|
+
<a name='L822'></a><a href='#L822'>822</a>
|
|
888
|
+
<a name='L823'></a><a href='#L823'>823</a>
|
|
889
|
+
<a name='L824'></a><a href='#L824'>824</a>
|
|
890
|
+
<a name='L825'></a><a href='#L825'>825</a>
|
|
891
|
+
<a name='L826'></a><a href='#L826'>826</a>
|
|
892
|
+
<a name='L827'></a><a href='#L827'>827</a>
|
|
893
|
+
<a name='L828'></a><a href='#L828'>828</a>
|
|
894
|
+
<a name='L829'></a><a href='#L829'>829</a>
|
|
895
|
+
<a name='L830'></a><a href='#L830'>830</a>
|
|
896
|
+
<a name='L831'></a><a href='#L831'>831</a>
|
|
897
|
+
<a name='L832'></a><a href='#L832'>832</a>
|
|
898
|
+
<a name='L833'></a><a href='#L833'>833</a>
|
|
899
|
+
<a name='L834'></a><a href='#L834'>834</a>
|
|
900
|
+
<a name='L835'></a><a href='#L835'>835</a>
|
|
901
|
+
<a name='L836'></a><a href='#L836'>836</a>
|
|
902
|
+
<a name='L837'></a><a href='#L837'>837</a>
|
|
903
|
+
<a name='L838'></a><a href='#L838'>838</a>
|
|
904
|
+
<a name='L839'></a><a href='#L839'>839</a>
|
|
905
|
+
<a name='L840'></a><a href='#L840'>840</a>
|
|
906
|
+
<a name='L841'></a><a href='#L841'>841</a>
|
|
907
|
+
<a name='L842'></a><a href='#L842'>842</a>
|
|
908
|
+
<a name='L843'></a><a href='#L843'>843</a>
|
|
909
|
+
<a name='L844'></a><a href='#L844'>844</a>
|
|
910
|
+
<a name='L845'></a><a href='#L845'>845</a>
|
|
911
|
+
<a name='L846'></a><a href='#L846'>846</a>
|
|
912
|
+
<a name='L847'></a><a href='#L847'>847</a>
|
|
913
|
+
<a name='L848'></a><a href='#L848'>848</a>
|
|
914
|
+
<a name='L849'></a><a href='#L849'>849</a>
|
|
915
|
+
<a name='L850'></a><a href='#L850'>850</a>
|
|
916
|
+
<a name='L851'></a><a href='#L851'>851</a>
|
|
917
|
+
<a name='L852'></a><a href='#L852'>852</a>
|
|
918
|
+
<a name='L853'></a><a href='#L853'>853</a>
|
|
919
|
+
<a name='L854'></a><a href='#L854'>854</a>
|
|
920
|
+
<a name='L855'></a><a href='#L855'>855</a>
|
|
921
|
+
<a name='L856'></a><a href='#L856'>856</a>
|
|
922
|
+
<a name='L857'></a><a href='#L857'>857</a>
|
|
923
|
+
<a name='L858'></a><a href='#L858'>858</a>
|
|
924
|
+
<a name='L859'></a><a href='#L859'>859</a>
|
|
925
|
+
<a name='L860'></a><a href='#L860'>860</a>
|
|
926
|
+
<a name='L861'></a><a href='#L861'>861</a>
|
|
927
|
+
<a name='L862'></a><a href='#L862'>862</a>
|
|
928
|
+
<a name='L863'></a><a href='#L863'>863</a>
|
|
929
|
+
<a name='L864'></a><a href='#L864'>864</a>
|
|
930
|
+
<a name='L865'></a><a href='#L865'>865</a>
|
|
931
|
+
<a name='L866'></a><a href='#L866'>866</a>
|
|
932
|
+
<a name='L867'></a><a href='#L867'>867</a>
|
|
933
|
+
<a name='L868'></a><a href='#L868'>868</a>
|
|
934
|
+
<a name='L869'></a><a href='#L869'>869</a>
|
|
935
|
+
<a name='L870'></a><a href='#L870'>870</a>
|
|
936
|
+
<a name='L871'></a><a href='#L871'>871</a>
|
|
937
|
+
<a name='L872'></a><a href='#L872'>872</a>
|
|
938
|
+
<a name='L873'></a><a href='#L873'>873</a>
|
|
939
|
+
<a name='L874'></a><a href='#L874'>874</a>
|
|
940
|
+
<a name='L875'></a><a href='#L875'>875</a>
|
|
941
|
+
<a name='L876'></a><a href='#L876'>876</a>
|
|
942
|
+
<a name='L877'></a><a href='#L877'>877</a>
|
|
943
|
+
<a name='L878'></a><a href='#L878'>878</a>
|
|
944
|
+
<a name='L879'></a><a href='#L879'>879</a>
|
|
945
|
+
<a name='L880'></a><a href='#L880'>880</a>
|
|
946
|
+
<a name='L881'></a><a href='#L881'>881</a>
|
|
947
|
+
<a name='L882'></a><a href='#L882'>882</a>
|
|
948
|
+
<a name='L883'></a><a href='#L883'>883</a>
|
|
949
|
+
<a name='L884'></a><a href='#L884'>884</a>
|
|
950
|
+
<a name='L885'></a><a href='#L885'>885</a>
|
|
951
|
+
<a name='L886'></a><a href='#L886'>886</a>
|
|
952
|
+
<a name='L887'></a><a href='#L887'>887</a>
|
|
953
|
+
<a name='L888'></a><a href='#L888'>888</a>
|
|
954
|
+
<a name='L889'></a><a href='#L889'>889</a>
|
|
955
|
+
<a name='L890'></a><a href='#L890'>890</a>
|
|
956
|
+
<a name='L891'></a><a href='#L891'>891</a>
|
|
957
|
+
<a name='L892'></a><a href='#L892'>892</a>
|
|
958
|
+
<a name='L893'></a><a href='#L893'>893</a>
|
|
959
|
+
<a name='L894'></a><a href='#L894'>894</a>
|
|
960
|
+
<a name='L895'></a><a href='#L895'>895</a>
|
|
961
|
+
<a name='L896'></a><a href='#L896'>896</a>
|
|
962
|
+
<a name='L897'></a><a href='#L897'>897</a>
|
|
963
|
+
<a name='L898'></a><a href='#L898'>898</a>
|
|
964
|
+
<a name='L899'></a><a href='#L899'>899</a>
|
|
965
|
+
<a name='L900'></a><a href='#L900'>900</a>
|
|
966
|
+
<a name='L901'></a><a href='#L901'>901</a>
|
|
967
|
+
<a name='L902'></a><a href='#L902'>902</a>
|
|
968
|
+
<a name='L903'></a><a href='#L903'>903</a>
|
|
969
|
+
<a name='L904'></a><a href='#L904'>904</a>
|
|
970
|
+
<a name='L905'></a><a href='#L905'>905</a>
|
|
971
|
+
<a name='L906'></a><a href='#L906'>906</a>
|
|
972
|
+
<a name='L907'></a><a href='#L907'>907</a>
|
|
973
|
+
<a name='L908'></a><a href='#L908'>908</a>
|
|
974
|
+
<a name='L909'></a><a href='#L909'>909</a>
|
|
975
|
+
<a name='L910'></a><a href='#L910'>910</a>
|
|
976
|
+
<a name='L911'></a><a href='#L911'>911</a>
|
|
977
|
+
<a name='L912'></a><a href='#L912'>912</a>
|
|
978
|
+
<a name='L913'></a><a href='#L913'>913</a>
|
|
979
|
+
<a name='L914'></a><a href='#L914'>914</a>
|
|
980
|
+
<a name='L915'></a><a href='#L915'>915</a>
|
|
981
|
+
<a name='L916'></a><a href='#L916'>916</a>
|
|
982
|
+
<a name='L917'></a><a href='#L917'>917</a>
|
|
983
|
+
<a name='L918'></a><a href='#L918'>918</a>
|
|
984
|
+
<a name='L919'></a><a href='#L919'>919</a>
|
|
985
|
+
<a name='L920'></a><a href='#L920'>920</a>
|
|
986
|
+
<a name='L921'></a><a href='#L921'>921</a>
|
|
987
|
+
<a name='L922'></a><a href='#L922'>922</a>
|
|
988
|
+
<a name='L923'></a><a href='#L923'>923</a>
|
|
989
|
+
<a name='L924'></a><a href='#L924'>924</a>
|
|
990
|
+
<a name='L925'></a><a href='#L925'>925</a>
|
|
991
|
+
<a name='L926'></a><a href='#L926'>926</a>
|
|
992
|
+
<a name='L927'></a><a href='#L927'>927</a>
|
|
993
|
+
<a name='L928'></a><a href='#L928'>928</a>
|
|
994
|
+
<a name='L929'></a><a href='#L929'>929</a>
|
|
995
|
+
<a name='L930'></a><a href='#L930'>930</a>
|
|
996
|
+
<a name='L931'></a><a href='#L931'>931</a>
|
|
997
|
+
<a name='L932'></a><a href='#L932'>932</a>
|
|
998
|
+
<a name='L933'></a><a href='#L933'>933</a>
|
|
999
|
+
<a name='L934'></a><a href='#L934'>934</a>
|
|
1000
|
+
<a name='L935'></a><a href='#L935'>935</a>
|
|
1001
|
+
<a name='L936'></a><a href='#L936'>936</a>
|
|
1002
|
+
<a name='L937'></a><a href='#L937'>937</a>
|
|
1003
|
+
<a name='L938'></a><a href='#L938'>938</a>
|
|
1004
|
+
<a name='L939'></a><a href='#L939'>939</a>
|
|
1005
|
+
<a name='L940'></a><a href='#L940'>940</a>
|
|
1006
|
+
<a name='L941'></a><a href='#L941'>941</a>
|
|
1007
|
+
<a name='L942'></a><a href='#L942'>942</a>
|
|
1008
|
+
<a name='L943'></a><a href='#L943'>943</a>
|
|
1009
|
+
<a name='L944'></a><a href='#L944'>944</a>
|
|
1010
|
+
<a name='L945'></a><a href='#L945'>945</a>
|
|
1011
|
+
<a name='L946'></a><a href='#L946'>946</a>
|
|
1012
|
+
<a name='L947'></a><a href='#L947'>947</a>
|
|
1013
|
+
<a name='L948'></a><a href='#L948'>948</a>
|
|
1014
|
+
<a name='L949'></a><a href='#L949'>949</a>
|
|
1015
|
+
<a name='L950'></a><a href='#L950'>950</a>
|
|
1016
|
+
<a name='L951'></a><a href='#L951'>951</a>
|
|
1017
|
+
<a name='L952'></a><a href='#L952'>952</a>
|
|
1018
|
+
<a name='L953'></a><a href='#L953'>953</a>
|
|
1019
|
+
<a name='L954'></a><a href='#L954'>954</a>
|
|
1020
|
+
<a name='L955'></a><a href='#L955'>955</a>
|
|
1021
|
+
<a name='L956'></a><a href='#L956'>956</a>
|
|
1022
|
+
<a name='L957'></a><a href='#L957'>957</a>
|
|
1023
|
+
<a name='L958'></a><a href='#L958'>958</a>
|
|
1024
|
+
<a name='L959'></a><a href='#L959'>959</a>
|
|
1025
|
+
<a name='L960'></a><a href='#L960'>960</a>
|
|
1026
|
+
<a name='L961'></a><a href='#L961'>961</a>
|
|
1027
|
+
<a name='L962'></a><a href='#L962'>962</a>
|
|
1028
|
+
<a name='L963'></a><a href='#L963'>963</a>
|
|
1029
|
+
<a name='L964'></a><a href='#L964'>964</a>
|
|
1030
|
+
<a name='L965'></a><a href='#L965'>965</a>
|
|
1031
|
+
<a name='L966'></a><a href='#L966'>966</a>
|
|
1032
|
+
<a name='L967'></a><a href='#L967'>967</a>
|
|
1033
|
+
<a name='L968'></a><a href='#L968'>968</a>
|
|
1034
|
+
<a name='L969'></a><a href='#L969'>969</a>
|
|
1035
|
+
<a name='L970'></a><a href='#L970'>970</a>
|
|
1036
|
+
<a name='L971'></a><a href='#L971'>971</a>
|
|
1037
|
+
<a name='L972'></a><a href='#L972'>972</a>
|
|
1038
|
+
<a name='L973'></a><a href='#L973'>973</a>
|
|
1039
|
+
<a name='L974'></a><a href='#L974'>974</a>
|
|
1040
|
+
<a name='L975'></a><a href='#L975'>975</a>
|
|
1041
|
+
<a name='L976'></a><a href='#L976'>976</a>
|
|
1042
|
+
<a name='L977'></a><a href='#L977'>977</a>
|
|
1043
|
+
<a name='L978'></a><a href='#L978'>978</a>
|
|
1044
|
+
<a name='L979'></a><a href='#L979'>979</a>
|
|
1045
|
+
<a name='L980'></a><a href='#L980'>980</a>
|
|
1046
|
+
<a name='L981'></a><a href='#L981'>981</a>
|
|
1047
|
+
<a name='L982'></a><a href='#L982'>982</a>
|
|
1048
|
+
<a name='L983'></a><a href='#L983'>983</a>
|
|
1049
|
+
<a name='L984'></a><a href='#L984'>984</a>
|
|
1050
|
+
<a name='L985'></a><a href='#L985'>985</a>
|
|
1051
|
+
<a name='L986'></a><a href='#L986'>986</a>
|
|
1052
|
+
<a name='L987'></a><a href='#L987'>987</a>
|
|
1053
|
+
<a name='L988'></a><a href='#L988'>988</a>
|
|
1054
|
+
<a name='L989'></a><a href='#L989'>989</a>
|
|
1055
|
+
<a name='L990'></a><a href='#L990'>990</a>
|
|
1056
|
+
<a name='L991'></a><a href='#L991'>991</a>
|
|
1057
|
+
<a name='L992'></a><a href='#L992'>992</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
|
|
1058
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1059
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1060
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1061
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1062
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1063
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1064
|
+
<span class="cline-any cline-yes">20760x</span>
|
|
1065
|
+
<span class="cline-any cline-yes">11421x</span>
|
|
1066
|
+
<span class="cline-any cline-yes">223x</span>
|
|
1067
|
+
<span class="cline-any cline-yes">6634x</span>
|
|
1068
|
+
<span class="cline-any cline-yes">3417x</span>
|
|
1069
|
+
<span class="cline-any cline-yes">55x</span>
|
|
1070
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1071
|
+
<span class="cline-any cline-yes">284x</span>
|
|
1072
|
+
<span class="cline-any cline-yes">185x</span>
|
|
1073
|
+
<span class="cline-any cline-yes">5425x</span>
|
|
1074
|
+
<span class="cline-any cline-yes">268x</span>
|
|
1075
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1076
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
+
<span class="cline-any cline-yes">984x</span>
|
|
1078
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1079
|
+
<span class="cline-any cline-yes">984x</span>
|
|
1080
|
+
<span class="cline-any cline-yes">984x</span>
|
|
1081
|
+
<span class="cline-any cline-no"> </span>
|
|
1082
|
+
<span class="cline-any cline-no"> </span>
|
|
1083
|
+
<span class="cline-any cline-no"> </span>
|
|
1084
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1085
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1086
|
+
<span class="cline-any cline-yes">61x</span>
|
|
1087
|
+
<span class="cline-any cline-yes">61x</span>
|
|
1088
|
+
<span class="cline-any cline-yes">85x</span>
|
|
1089
|
+
<span class="cline-any cline-yes">61x</span>
|
|
1090
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1091
|
+
<span class="cline-any cline-yes">61x</span>
|
|
1092
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1093
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1094
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1095
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1096
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1097
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1098
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1099
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1100
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1101
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1102
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1103
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1104
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1105
|
+
<span class="cline-any cline-yes">359x</span>
|
|
1106
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1108
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1109
|
+
<span class="cline-any cline-no"> </span>
|
|
1110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1111
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1112
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1113
|
+
<span class="cline-any cline-yes">396x</span>
|
|
1114
|
+
<span class="cline-any cline-yes">396x</span>
|
|
1115
|
+
<span class="cline-any cline-yes">396x</span>
|
|
1116
|
+
<span class="cline-any cline-yes">396x</span>
|
|
1117
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1118
|
+
<span class="cline-any cline-yes">396x</span>
|
|
1119
|
+
<span class="cline-any cline-yes">489x</span>
|
|
1120
|
+
<span class="cline-any cline-yes">396x</span>
|
|
1121
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1122
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1126
|
+
<span class="cline-any cline-yes">253x</span>
|
|
1127
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1128
|
+
<span class="cline-any cline-yes">250x</span>
|
|
1129
|
+
<span class="cline-any cline-yes">43x</span>
|
|
1130
|
+
<span class="cline-any cline-yes">250x</span>
|
|
1131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1132
|
+
<span class="cline-any cline-yes">253x</span>
|
|
1133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1136
|
+
<span class="cline-any cline-yes">169x</span>
|
|
1137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1139
|
+
<span class="cline-any cline-yes">563x</span>
|
|
1140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1143
|
+
<span class="cline-any cline-yes">706x</span>
|
|
1144
|
+
<span class="cline-any cline-yes">706x</span>
|
|
1145
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1146
|
+
<span class="cline-any cline-yes">659x</span>
|
|
1147
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1148
|
+
<span class="cline-any cline-yes">637x</span>
|
|
1149
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1150
|
+
<span class="cline-any cline-no"> </span>
|
|
1151
|
+
<span class="cline-any cline-no"> </span>
|
|
1152
|
+
<span class="cline-any cline-no"> </span>
|
|
1153
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1154
|
+
<span class="cline-any cline-yes">637x</span>
|
|
1155
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1156
|
+
<span class="cline-any cline-yes">49x</span>
|
|
1157
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1159
|
+
<span class="cline-any cline-yes">613x</span>
|
|
1160
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1161
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1162
|
+
<span class="cline-any cline-yes">28x</span>
|
|
1163
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1165
|
+
<span class="cline-any cline-yes">602x</span>
|
|
1166
|
+
<span class="cline-any cline-yes">602x</span>
|
|
1167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1168
|
+
<span class="cline-any cline-yes">7379x</span>
|
|
1169
|
+
<span class="cline-any cline-yes">1382x</span>
|
|
1170
|
+
<span class="cline-any cline-yes">5997x</span>
|
|
1171
|
+
<span class="cline-any cline-yes">1266x</span>
|
|
1172
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1173
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1174
|
+
<span class="cline-any cline-yes">1266x</span>
|
|
1175
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1176
|
+
<span class="cline-any cline-yes">4731x</span>
|
|
1177
|
+
<span class="cline-any cline-yes">4441x</span>
|
|
1178
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1179
|
+
<span class="cline-any cline-yes">290x</span>
|
|
1180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1181
|
+
<span class="cline-any cline-yes">602x</span>
|
|
1182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1183
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1184
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1185
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1186
|
+
<span class="cline-any cline-yes">2988x</span>
|
|
1187
|
+
<span class="cline-any cline-yes">6065x</span>
|
|
1188
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1189
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1190
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1191
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1192
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1193
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1194
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1195
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1196
|
+
<span class="cline-any cline-yes">288x</span>
|
|
1197
|
+
<span class="cline-any cline-yes">23x</span>
|
|
1198
|
+
<span class="cline-any cline-yes">288x</span>
|
|
1199
|
+
<span class="cline-any cline-yes">288x</span>
|
|
1200
|
+
<span class="cline-any cline-yes">288x</span>
|
|
1201
|
+
<span class="cline-any cline-yes">288x</span>
|
|
1202
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1203
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1204
|
+
<span class="cline-any cline-yes">2881x</span>
|
|
1205
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1206
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1207
|
+
<span class="cline-any cline-yes">3192x</span>
|
|
1208
|
+
<span class="cline-any cline-yes">3165x</span>
|
|
1209
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1211
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1213
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1214
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1215
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1216
|
+
<span class="cline-any cline-yes">3276x</span>
|
|
1217
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1218
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1220
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1223
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1224
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1225
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1227
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1228
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1230
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1234
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1237
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1238
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1247
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1253
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1254
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1255
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1261
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1262
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1264
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1271
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1273
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1279
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1280
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1281
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1287
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1288
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1290
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1291
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1293
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1294
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1297
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1298
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1299
|
+
<span class="cline-any cline-yes">2924x</span>
|
|
1300
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1301
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1302
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1303
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1304
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1305
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1306
|
+
<span class="cline-any cline-yes">83x</span>
|
|
1307
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1309
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1310
|
+
<span class="cline-any cline-yes">65x</span>
|
|
1311
|
+
<span class="cline-any cline-yes">719x</span>
|
|
1312
|
+
<span class="cline-any cline-yes">65x</span>
|
|
1313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1314
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1316
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1334
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1354
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1358
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1359
|
+
<span class="cline-any cline-yes">178x</span>
|
|
1360
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1361
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1362
|
+
<span class="cline-any cline-no"> </span>
|
|
1363
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1364
|
+
<span class="cline-any cline-no"> </span>
|
|
1365
|
+
<span class="cline-any cline-no"> </span>
|
|
1366
|
+
<span class="cline-any cline-no"> </span>
|
|
1367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1369
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1370
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1371
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1373
|
+
<span class="cline-any cline-no"> </span>
|
|
1374
|
+
<span class="cline-any cline-no"> </span>
|
|
1375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1376
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1379
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1381
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1382
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1383
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1385
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1386
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1387
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1389
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1391
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1393
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1394
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1396
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1397
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1399
|
+
<span class="cline-any cline-yes">14x</span>
|
|
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-yes">6x</span>
|
|
1404
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1405
|
+
<span class="cline-any cline-no"> </span>
|
|
1406
|
+
<span class="cline-any cline-no"> </span>
|
|
1407
|
+
<span class="cline-any cline-no"> </span>
|
|
1408
|
+
<span class="cline-any cline-no"> </span>
|
|
1409
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1410
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1411
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1412
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1413
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1414
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1415
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1416
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1417
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1418
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1420
|
+
<span class="cline-any cline-yes">33x</span>
|
|
1421
|
+
<span class="cline-any cline-yes">33x</span>
|
|
1422
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1423
|
+
<span class="cline-any cline-yes">33x</span>
|
|
1424
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1425
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1426
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1427
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1428
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1429
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1430
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1431
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1432
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1433
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1434
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1435
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1436
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1438
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1439
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1440
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1441
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1442
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1443
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1444
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1445
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1446
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1447
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1448
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1449
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1450
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1451
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1452
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1453
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1454
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1455
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1456
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1457
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1458
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1459
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1460
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1461
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1462
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1463
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1464
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1465
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1466
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1467
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1468
|
+
<span class="cline-any cline-no"> </span>
|
|
1469
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1470
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1471
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1472
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1473
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1475
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1476
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1477
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1478
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1479
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1480
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1481
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1482
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1483
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1484
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1485
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1486
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1487
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1488
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1489
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1490
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1491
|
+
<span class="cline-any cline-yes">314x</span>
|
|
1492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1493
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1494
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1495
|
+
<span class="cline-any cline-yes">259x</span>
|
|
1496
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1497
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1498
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1499
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1500
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1501
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1502
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1503
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1504
|
+
<span class="cline-any cline-yes">620x</span>
|
|
1505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1506
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1510
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1511
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1512
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1513
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1515
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1516
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1517
|
+
<span class="cline-any cline-yes">470x</span>
|
|
1518
|
+
<span class="cline-any cline-yes">211x</span>
|
|
1519
|
+
<span class="cline-any cline-yes">259x</span>
|
|
1520
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1521
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1522
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1523
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1524
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1525
|
+
<span class="cline-any cline-yes">259x</span>
|
|
1526
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1527
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1528
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1529
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1530
|
+
<span class="cline-any cline-yes">465x</span>
|
|
1531
|
+
<span class="cline-any cline-yes">1436x</span>
|
|
1532
|
+
<span class="cline-any cline-yes">414x</span>
|
|
1533
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1534
|
+
<span class="cline-any cline-yes">104x</span>
|
|
1535
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1536
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1537
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1538
|
+
<span class="cline-any cline-yes">263x</span>
|
|
1539
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1540
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1541
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1542
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1543
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1544
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1545
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1546
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1547
|
+
<span class="cline-any cline-yes">245x</span>
|
|
1548
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1549
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1550
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1552
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1553
|
+
<span class="cline-any cline-yes">234x</span>
|
|
1554
|
+
<span class="cline-any cline-yes">234x</span>
|
|
1555
|
+
<span class="cline-any cline-yes">234x</span>
|
|
1556
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1557
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1558
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1559
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1560
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1561
|
+
<span class="cline-any cline-yes">223x</span>
|
|
1562
|
+
<span class="cline-any cline-yes">223x</span>
|
|
1563
|
+
<span class="cline-any cline-yes">223x</span>
|
|
1564
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1565
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1566
|
+
<span class="cline-any cline-yes">252x</span>
|
|
1567
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1568
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1569
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1570
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1571
|
+
<span class="cline-any cline-yes">3857x</span>
|
|
1572
|
+
<span class="cline-any cline-yes">3857x</span>
|
|
1573
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1574
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1575
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1576
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1577
|
+
<span class="cline-any cline-yes">70x</span>
|
|
1578
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1579
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1580
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1581
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1582
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1583
|
+
<span class="cline-any cline-yes">13x</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-no"> </span>
|
|
1587
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1588
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1589
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1590
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1591
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1592
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1593
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1594
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1595
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1596
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1597
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1598
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1599
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1600
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1601
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1602
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1603
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1604
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1605
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1606
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1607
|
+
<span class="cline-any cline-no"> </span>
|
|
1608
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1609
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1610
|
+
<span class="cline-any cline-yes">3319x</span>
|
|
1611
|
+
<span class="cline-any cline-yes">8298x</span>
|
|
1612
|
+
<span class="cline-any cline-yes">8298x</span>
|
|
1613
|
+
<span class="cline-any cline-yes">8298x</span>
|
|
1614
|
+
<span class="cline-any cline-yes">2248x</span>
|
|
1615
|
+
<span class="cline-any cline-yes">6050x</span>
|
|
1616
|
+
<span class="cline-any cline-no"> </span>
|
|
1617
|
+
<span class="cline-any cline-no"> </span>
|
|
1618
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1619
|
+
<span class="cline-any cline-yes">6050x</span>
|
|
1620
|
+
<span class="cline-any cline-yes">238x</span>
|
|
1621
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1622
|
+
<span class="cline-any cline-yes">6050x</span>
|
|
1623
|
+
<span class="cline-any cline-yes">143x</span>
|
|
1624
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1625
|
+
<span class="cline-any cline-no"> </span>
|
|
1626
|
+
<span class="cline-any cline-yes">3319x</span>
|
|
1627
|
+
<span class="cline-any cline-yes">3319x</span>
|
|
1628
|
+
<span class="cline-any cline-yes">3319x</span>
|
|
1629
|
+
<span class="cline-any cline-yes">3319x</span>
|
|
1630
|
+
<span class="cline-any cline-yes">8314x</span>
|
|
1631
|
+
<span class="cline-any cline-yes">16x</span>
|
|
1632
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1633
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1634
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1635
|
+
<span class="cline-any cline-yes">3729x</span>
|
|
1636
|
+
<span class="cline-any cline-yes">3729x</span>
|
|
1637
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1638
|
+
<span class="cline-any cline-yes">8211x</span>
|
|
1639
|
+
<span class="cline-any cline-yes">8211x</span>
|
|
1640
|
+
<span class="cline-any cline-yes">7297x</span>
|
|
1641
|
+
<span class="cline-any cline-yes">2951x</span>
|
|
1642
|
+
<span class="cline-any cline-yes">2951x</span>
|
|
1643
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1644
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1645
|
+
<span class="cline-any cline-yes">4346x</span>
|
|
1646
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1647
|
+
<span class="cline-any cline-yes">914x</span>
|
|
1648
|
+
<span class="cline-any cline-yes">914x</span>
|
|
1649
|
+
<span class="cline-any cline-yes">236x</span>
|
|
1650
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1651
|
+
<span class="cline-any cline-yes">8211x</span>
|
|
1652
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1653
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1654
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1655
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1656
|
+
<span class="cline-any cline-yes">252x</span>
|
|
1657
|
+
<span class="cline-any cline-yes">252x</span>
|
|
1658
|
+
<span class="cline-any cline-yes">1203x</span>
|
|
1659
|
+
<span class="cline-any cline-yes">15x</span>
|
|
1660
|
+
<span class="cline-any cline-yes">237x</span>
|
|
1661
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1662
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1663
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1664
|
+
<span class="cline-any cline-yes">2698x</span>
|
|
1665
|
+
<span class="cline-any cline-no"> </span>
|
|
1666
|
+
<span class="cline-any cline-yes">2698x</span>
|
|
1667
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1668
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1669
|
+
<span class="cline-any cline-yes">2690x</span>
|
|
1670
|
+
<span class="cline-any cline-yes">2690x</span>
|
|
1671
|
+
<span class="cline-any cline-yes">5720x</span>
|
|
1672
|
+
<span class="cline-any cline-yes">5720x</span>
|
|
1673
|
+
<span class="cline-any cline-yes">2492x</span>
|
|
1674
|
+
<span class="cline-any cline-yes">2492x</span>
|
|
1675
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1676
|
+
<span class="cline-any cline-yes">3228x</span>
|
|
1677
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1678
|
+
<span class="cline-any cline-yes">2690x</span>
|
|
1679
|
+
<span class="cline-any cline-yes">5953x</span>
|
|
1680
|
+
<span class="cline-any cline-yes">5953x</span>
|
|
1681
|
+
<span class="cline-any cline-yes">5953x</span>
|
|
1682
|
+
<span class="cline-any cline-yes">5701x</span>
|
|
1683
|
+
<span class="cline-any cline-yes">2487x</span>
|
|
1684
|
+
<span class="cline-any cline-yes">173x</span>
|
|
1685
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1686
|
+
<span class="cline-any cline-yes">3214x</span>
|
|
1687
|
+
<span class="cline-any cline-yes">3214x</span>
|
|
1688
|
+
<span class="cline-any cline-yes">2413x</span>
|
|
1689
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1690
|
+
<span class="cline-any cline-yes">5701x</span>
|
|
1691
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1692
|
+
<span class="cline-any cline-yes">252x</span>
|
|
1693
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1694
|
+
<span class="cline-any cline-yes">2690x</span>
|
|
1695
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1696
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1697
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1698
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1699
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1700
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1701
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1702
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1703
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1704
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1705
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1706
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1707
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1708
|
+
<span class="cline-any cline-yes">125x</span>
|
|
1709
|
+
<span class="cline-any cline-yes">59x</span>
|
|
1710
|
+
<span class="cline-any cline-yes">66x</span>
|
|
1711
|
+
<span class="cline-any cline-yes">66x</span>
|
|
1712
|
+
<span class="cline-any cline-yes">66x</span>
|
|
1713
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1714
|
+
<span class="cline-any cline-yes">66x</span>
|
|
1715
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1716
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1717
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1718
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1719
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1720
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1721
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1722
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1723
|
+
<span class="cline-any cline-yes">52x</span>
|
|
1724
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1725
|
+
<span class="cline-any cline-yes">52x</span>
|
|
1726
|
+
<span class="cline-any cline-yes">52x</span>
|
|
1727
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1728
|
+
<span class="cline-any cline-yes">26x</span>
|
|
1729
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1730
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1731
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1732
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1733
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1734
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1735
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1736
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1737
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1738
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1739
|
+
<span class="cline-any cline-yes">151x</span>
|
|
1740
|
+
<span class="cline-any cline-yes">151x</span>
|
|
1741
|
+
<span class="cline-any cline-yes">155x</span>
|
|
1742
|
+
<span class="cline-any cline-yes">151x</span>
|
|
1743
|
+
<span class="cline-any cline-yes">297x</span>
|
|
1744
|
+
<span class="cline-any cline-yes">151x</span>
|
|
1745
|
+
<span class="cline-any cline-yes">54x</span>
|
|
1746
|
+
<span class="cline-any cline-yes">54x</span>
|
|
1747
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1748
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1749
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1750
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1751
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1752
|
+
<span class="cline-any cline-yes">151x</span>
|
|
1753
|
+
<span class="cline-any cline-yes">68x</span>
|
|
1754
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1755
|
+
<span class="cline-any cline-yes">83x</span>
|
|
1756
|
+
<span class="cline-any cline-yes">83x</span>
|
|
1757
|
+
<span class="cline-any cline-yes">83x</span>
|
|
1758
|
+
<span class="cline-any cline-yes">1125x</span>
|
|
1759
|
+
<span class="cline-any cline-yes">83x</span>
|
|
1760
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1761
|
+
<span class="cline-any cline-yes">83x</span>
|
|
1762
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1763
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1764
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1765
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1766
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1767
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1768
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1769
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1770
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1771
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1772
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1773
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1774
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1775
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1776
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1777
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1778
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1779
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1780
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1781
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1782
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1783
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1784
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1785
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1786
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1787
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1788
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1789
|
+
<span class="cline-any cline-no"> </span>
|
|
1790
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1791
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1792
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1793
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1794
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1795
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1796
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1797
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1798
|
+
<span class="cline-any cline-yes">81x</span>
|
|
1799
|
+
<span class="cline-any cline-yes">80x</span>
|
|
1800
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1801
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1802
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1803
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1804
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1805
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1806
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1807
|
+
<span class="cline-any cline-yes">88x</span>
|
|
1808
|
+
<span class="cline-any cline-yes">98x</span>
|
|
1809
|
+
<span class="cline-any cline-no"> </span>
|
|
1810
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1811
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1812
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1813
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1814
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1815
|
+
<span class="cline-any cline-no"> </span>
|
|
1816
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1817
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1818
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1819
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1820
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1821
|
+
<span class="cline-any cline-yes">226x</span>
|
|
1822
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1823
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1824
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1825
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1826
|
+
<span class="cline-any cline-yes">225x</span>
|
|
1827
|
+
<span class="cline-any cline-yes">193x</span>
|
|
1828
|
+
<span class="cline-any cline-yes">32x</span>
|
|
1829
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1830
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1831
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1832
|
+
<span class="cline-any cline-yes">255x</span>
|
|
1833
|
+
<span class="cline-any cline-yes">255x</span>
|
|
1834
|
+
<span class="cline-any cline-yes">178x</span>
|
|
1835
|
+
<span class="cline-any cline-yes">255x</span>
|
|
1836
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1837
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1838
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1839
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1840
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1841
|
+
<span class="cline-any cline-yes">156x</span>
|
|
1842
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1843
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1844
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1845
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1846
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1847
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1848
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1849
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1850
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1851
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1852
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1853
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1854
|
+
<span class="cline-any cline-yes">241x</span>
|
|
1855
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1856
|
+
<span class="cline-any cline-yes">241x</span>
|
|
1857
|
+
<span class="cline-any cline-yes">257x</span>
|
|
1858
|
+
<span class="cline-any cline-yes">257x</span>
|
|
1859
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1860
|
+
<span class="cline-any cline-yes">237x</span>
|
|
1861
|
+
<span class="cline-any cline-yes">237x</span>
|
|
1862
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1863
|
+
<span class="cline-any cline-yes">241x</span>
|
|
1864
|
+
<span class="cline-any cline-yes">241x</span>
|
|
1865
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1866
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1867
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1868
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1869
|
+
<span class="cline-any cline-yes">258x</span>
|
|
1870
|
+
<span class="cline-any cline-yes">258x</span>
|
|
1871
|
+
<span class="cline-any cline-yes">142x</span>
|
|
1872
|
+
<span class="cline-any cline-yes">142x</span>
|
|
1873
|
+
<span class="cline-any cline-yes">142x</span>
|
|
1874
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1875
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1876
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1877
|
+
<span class="cline-any cline-yes">266x</span>
|
|
1878
|
+
<span class="cline-any cline-yes">266x</span>
|
|
1879
|
+
<span class="cline-any cline-yes">266x</span>
|
|
1880
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1881
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1882
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1883
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1884
|
+
<span class="cline-any cline-no"> </span>
|
|
1885
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1886
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1887
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1888
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1889
|
+
<span class="cline-any cline-no"> </span>
|
|
1890
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1891
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1892
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1893
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1894
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1895
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1896
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1897
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1898
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1899
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1900
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1901
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1902
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1903
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1904
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1905
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1906
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1907
|
+
<span class="cline-any cline-yes">22x</span>
|
|
1908
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1909
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1910
|
+
<span class="cline-any cline-yes">285x</span>
|
|
1911
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1912
|
+
<span class="cline-any cline-yes">266x</span>
|
|
1913
|
+
<span class="cline-any cline-yes">19x</span>
|
|
1914
|
+
<span class="cline-any cline-no"> </span>
|
|
1915
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1916
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1917
|
+
<span class="cline-any cline-yes">555x</span>
|
|
1918
|
+
<span class="cline-any cline-yes">555x</span>
|
|
1919
|
+
<span class="cline-any cline-no"> </span>
|
|
1920
|
+
<span class="cline-any cline-no"> </span>
|
|
1921
|
+
<span class="cline-any cline-no"> </span>
|
|
1922
|
+
<span class="cline-any cline-no"> </span>
|
|
1923
|
+
<span class="cline-any cline-no"> </span>
|
|
1924
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1925
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1926
|
+
<span class="cline-any cline-no"> </span>
|
|
1927
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1928
|
+
<span class="cline-any cline-no"> </span>
|
|
1929
|
+
<span class="cline-any cline-no"> </span>
|
|
1930
|
+
<span class="cline-any cline-no"> </span>
|
|
1931
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1932
|
+
<span class="cline-any cline-yes">555x</span>
|
|
1933
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1934
|
+
<span class="cline-any cline-yes">266x</span>
|
|
1935
|
+
<span class="cline-any cline-yes">555x</span>
|
|
1936
|
+
<span class="cline-any cline-yes">555x</span>
|
|
1937
|
+
<span class="cline-any cline-yes">555x</span>
|
|
1938
|
+
<span class="cline-any cline-yes">555x</span>
|
|
1939
|
+
<span class="cline-any cline-yes">85x</span>
|
|
1940
|
+
<span class="cline-any cline-yes">85x</span>
|
|
1941
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1942
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1943
|
+
<span class="cline-any cline-yes">85x</span>
|
|
1944
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1945
|
+
<span class="cline-any cline-yes">95x</span>
|
|
1946
|
+
<span class="cline-any cline-yes">233x</span>
|
|
1947
|
+
<span class="cline-any cline-yes">233x</span>
|
|
1948
|
+
<span class="cline-any cline-yes">233x</span>
|
|
1949
|
+
<span class="cline-any cline-yes">233x</span>
|
|
1950
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1951
|
+
<span class="cline-any cline-yes">233x</span>
|
|
1952
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1953
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1954
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1955
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1956
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1957
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1958
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1959
|
+
<span class="cline-any cline-no"> </span>
|
|
1960
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1961
|
+
<span class="cline-any cline-yes">233x</span>
|
|
1962
|
+
<span class="cline-any cline-yes">233x</span>
|
|
1963
|
+
<span class="cline-any cline-yes">233x</span>
|
|
1964
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1965
|
+
<span class="cline-any cline-yes">233x</span>
|
|
1966
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1967
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1968
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1969
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1970
|
+
<span class="cline-any cline-no"> </span>
|
|
1971
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1972
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1973
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1974
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1975
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1976
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1977
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1978
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1979
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1980
|
+
<span class="cline-any cline-no"> </span>
|
|
1981
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1982
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1983
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1984
|
+
<span class="cline-any cline-yes">231x</span>
|
|
1985
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1986
|
+
<span class="cline-any cline-yes">85x</span>
|
|
1987
|
+
<span class="cline-any cline-yes">39x</span>
|
|
1988
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1989
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1990
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1991
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1992
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1993
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1994
|
+
<span class="cline-any cline-yes">266x</span>
|
|
1995
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1996
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1997
|
+
<span class="cline-any cline-yes">99x</span>
|
|
1998
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1999
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2000
|
+
<span class="cline-any cline-yes">35x</span>
|
|
2001
|
+
<span class="cline-any cline-no"> </span>
|
|
2002
|
+
<span class="cline-any cline-yes">35x</span>
|
|
2003
|
+
<span class="cline-any cline-yes">35x</span>
|
|
2004
|
+
<span class="cline-any cline-yes">35x</span>
|
|
2005
|
+
<span class="cline-any cline-yes">35x</span>
|
|
2006
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2007
|
+
<span class="cline-any cline-no"> </span>
|
|
2008
|
+
<span class="cline-any cline-no"> </span>
|
|
2009
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2010
|
+
<span class="cline-any cline-yes">35x</span>
|
|
2011
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2012
|
+
<span class="cline-any cline-yes">35x</span>
|
|
2013
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2014
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2015
|
+
<span class="cline-any cline-yes">77x</span>
|
|
2016
|
+
<span class="cline-any cline-yes">71x</span>
|
|
2017
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2018
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2019
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2020
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2021
|
+
<span class="cline-any cline-no"> </span>
|
|
2022
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2023
|
+
<span class="cline-any cline-yes">88x</span>
|
|
2024
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2025
|
+
<span class="cline-any cline-yes">88x</span>
|
|
2026
|
+
<span class="cline-any cline-yes">88x</span>
|
|
2027
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2028
|
+
<span class="cline-any cline-yes">88x</span>
|
|
2029
|
+
<span class="cline-any cline-yes">41x</span>
|
|
2030
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2031
|
+
<span class="cline-any cline-yes">47x</span>
|
|
2032
|
+
<span class="cline-any cline-yes">47x</span>
|
|
2033
|
+
<span class="cline-any cline-yes">47x</span>
|
|
2034
|
+
<span class="cline-any cline-yes">47x</span>
|
|
2035
|
+
<span class="cline-any cline-yes">80x</span>
|
|
2036
|
+
<span class="cline-any cline-yes">128x</span>
|
|
2037
|
+
<span class="cline-any cline-yes">47x</span>
|
|
2038
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2039
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2040
|
+
<span class="cline-any cline-yes">160x</span>
|
|
2041
|
+
<span class="cline-any cline-yes">3x</span>
|
|
2042
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2043
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2044
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2045
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2046
|
+
<span class="cline-any cline-yes">17x</span>
|
|
2047
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2048
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const XSL_NS_URL = 'http://www.w3.org/1999/XSL/Transform'
|
|
2049
|
+
, HTML_NS_URL = 'http://www.w3.org/1999/xhtml'
|
|
2050
|
+
, EXSL_NS_URL = 'http://exslt.org/common'
|
|
2051
|
+
, DCE_NS_URL ="urn:schemas-epa-wg:dce";
|
|
2052
|
+
|
|
2053
|
+
// const log = x => console.debug( new XMLSerializer().serializeToString( x ) );
|
|
2054
|
+
|
|
2055
|
+
const attr = (el, attr)=> el?.getAttribute?.(attr)
|
|
2056
|
+
, isText = e => e.nodeType === 3
|
|
2057
|
+
, isString = s => typeof s === 'string'
|
|
2058
|
+
, isNode = e => e && typeof e.nodeType === 'number'
|
|
2059
|
+
, createText = ( d, t) => (d.ownerDocument || d ).createTextNode( t )
|
|
2060
|
+
, removeChildren = n => { while(n.firstChild) n.firstChild.remove(); return n; }
|
|
2061
|
+
, emptyNode = n => { n.getAttributeNames().map( a => n.removeAttribute(a) ); return removeChildren(n); }
|
|
2062
|
+
, xslNs = x => ( x?.setAttribute('xmlns:xsl', XSL_NS_URL ), x )
|
|
2063
|
+
, xslHtmlNs = x => ( x?.setAttribute('xmlns:xhtml', HTML_NS_URL ), xslNs(x) )
|
|
2064
|
+
, isValidTagName = tag=> ( /^[_a-zA-Z][-_:a-zA-Z0-9]*$/ .test(tag) )
|
|
2065
|
+
, mix = (o,kv) => { Object.keys(kv).map(k=> o[k] = kv[k] ) ; return o}
|
|
2066
|
+
, create = ( tag, t = '', d=document ) =>
|
|
2067
|
+
{
|
|
2068
|
+
const create = tag => ( e => ((t && e.append(createText(d.ownerDocument||d, t))),e) )((d.ownerDocument || d ).createElement( tag ))
|
|
2069
|
+
|
|
2070
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if( isValidTagName(tag) )
|
|
2071
|
+
return create(tag)
|
|
2072
|
+
const e = <span class="cstat-no" title="statement not covered" >create('dce-object');</span>
|
|
2073
|
+
<span class="cstat-no" title="statement not covered" > e.setAttribute('dce-object-name',tag)</span>
|
|
2074
|
+
<span class="cstat-no" title="statement not covered" > return e;</span>
|
|
2075
|
+
}
|
|
2076
|
+
, cloneAs = (p,tag) =>
|
|
2077
|
+
{ const px = p.ownerDocument.createElementNS(p.namespaceURI,tag);
|
|
2078
|
+
for( let a of p.attributes)
|
|
2079
|
+
px.setAttribute(a.name, a.value);
|
|
2080
|
+
for( let c of p.childNodes )
|
|
2081
|
+
px.append(c.cloneNode(true));
|
|
2082
|
+
return px;
|
|
2083
|
+
};
|
|
2084
|
+
|
|
2085
|
+
export {cloneAs,mix};
|
|
2086
|
+
|
|
2087
|
+
function
|
|
2088
|
+
ASSERT(x)
|
|
2089
|
+
{
|
|
2090
|
+
// if(!x)
|
|
2091
|
+
// debugger
|
|
2092
|
+
}
|
|
2093
|
+
export function
|
|
2094
|
+
xml2dom( xmlString )
|
|
2095
|
+
{
|
|
2096
|
+
return new DOMParser().parseFromString( xmlString, "application/xml" )
|
|
2097
|
+
}
|
|
2098
|
+
export function
|
|
2099
|
+
xmlString(doc){ return new XMLSerializer().serializeToString( doc ) }
|
|
2100
|
+
function <span class="fstat-no" title="function not covered" >x(</span>doc) { <span class="cstat-no" title="statement not covered" >return xmlString(doc) </span>}
|
|
2101
|
+
|
|
2102
|
+
function
|
|
2103
|
+
injectData( root, sectionName, arr, cb )
|
|
2104
|
+
{ const create = ( tag ) => root.ownerDocument.createElement( tag );
|
|
2105
|
+
const inject = ( tag, parent, s ) =>
|
|
2106
|
+
{ parent.append( s = create( tag ) );
|
|
2107
|
+
return s;
|
|
2108
|
+
};
|
|
2109
|
+
const l = inject( sectionName, root );
|
|
2110
|
+
[ ...arr ].forEach( e => l.append( cb( e ) ) );
|
|
2111
|
+
return l;
|
|
2112
|
+
}
|
|
2113
|
+
|
|
2114
|
+
function
|
|
2115
|
+
assureSlot( e )
|
|
2116
|
+
{
|
|
2117
|
+
if( !e.slot )
|
|
2118
|
+
{
|
|
2119
|
+
if( !e.setAttribute )
|
|
2120
|
+
e = create( 'span', e.textContent.replaceAll( '\n', '' ) );
|
|
2121
|
+
e.setAttribute( 'slot', '' )
|
|
2122
|
+
}
|
|
2123
|
+
return e;
|
|
2124
|
+
}
|
|
2125
|
+
function
|
|
2126
|
+
keepAttributes(e, aNames)
|
|
2127
|
+
{ e.getAttributeNames().forEach( n=> aNames.includes(n) || e.removeAttribute(n) ); }
|
|
2128
|
+
|
|
2129
|
+
export const
|
|
2130
|
+
sanitizeBlankText = payload=> [...payload].filter(e=>!(e.nodeType===3 && e.data.trim() ==='' ));
|
|
2131
|
+
|
|
2132
|
+
export function
|
|
2133
|
+
obj2node( o, tag, doc )
|
|
2134
|
+
{ const t = typeof o;
|
|
2135
|
+
if( t === 'string' )
|
|
2136
|
+
return create(tag,o,doc);
|
|
2137
|
+
if( t === 'number' )
|
|
2138
|
+
return create(tag,''+o,doc);
|
|
2139
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if( isNode(o) )
|
|
2140
|
+
{
|
|
2141
|
+
const el = <span class="cstat-no" title="statement not covered" >create(tag);</span>
|
|
2142
|
+
<span class="cstat-no" title="statement not covered" > el.append(o);</span>
|
|
2143
|
+
<span class="cstat-no" title="statement not covered" > return el;</span>
|
|
2144
|
+
}
|
|
2145
|
+
if( o instanceof Array )
|
|
2146
|
+
{ const ret = create('array','',doc);
|
|
2147
|
+
o.map( ae => ret.append( obj2node(ae,tag,doc)) );
|
|
2148
|
+
return ret
|
|
2149
|
+
}
|
|
2150
|
+
if( o instanceof FormData )
|
|
2151
|
+
{ const ret = create('form-data','',doc);
|
|
2152
|
+
for( const p of o )
|
|
2153
|
+
ret.append( obj2node(p[1],p[0],doc) );
|
|
2154
|
+
return ret
|
|
2155
|
+
}
|
|
2156
|
+
const ret = create(tag,'',doc);
|
|
2157
|
+
for( let k in o )
|
|
2158
|
+
{
|
|
2159
|
+
if( typeof o[ k ] === 'function' || o[ k ] instanceof Window )
|
|
2160
|
+
continue
|
|
2161
|
+
if( isNode( o[ k ] ) )
|
|
2162
|
+
{ <span class="missing-if-branch" title="if path not taken" >I</span>if( k === 'data' || k==='value' )
|
|
2163
|
+
;
|
|
2164
|
+
else
|
|
2165
|
+
continue
|
|
2166
|
+
}
|
|
2167
|
+
if( typeof o[ k ] !== "object" && isValidTagName( k ) )
|
|
2168
|
+
ret.setAttribute( k, o[ k ] )
|
|
2169
|
+
else
|
|
2170
|
+
ret.append( obj2node( o[ k ], k, doc ) )
|
|
2171
|
+
}
|
|
2172
|
+
return ret;
|
|
2173
|
+
}
|
|
2174
|
+
export function
|
|
2175
|
+
tagUid( node )
|
|
2176
|
+
{ // {} to xsl:value-of
|
|
2177
|
+
forEach$(node,'*',d => [...d.childNodes]
|
|
2178
|
+
.filter( e => e.nodeType === 3 && e.parentNode.localName !== 'style' && e.data )
|
|
2179
|
+
.forEach( e=>
|
|
2180
|
+
{ const s = e.data,
|
|
2181
|
+
m = s.matchAll( /{([^}]*)}/g );
|
|
2182
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if(m)
|
|
2183
|
+
{ let l = 0
|
|
2184
|
+
, txt = t => createText(e,t)
|
|
2185
|
+
, tt = [];
|
|
2186
|
+
[...m].forEach(t=>
|
|
2187
|
+
{ if( t.index > l )
|
|
2188
|
+
tt.push( txt( t.input.substring( l, t.index ) ))
|
|
2189
|
+
const v = node.querySelector('value-of').cloneNode();
|
|
2190
|
+
v.setAttribute('select', t[1] );
|
|
2191
|
+
tt.push(v);
|
|
2192
|
+
l = t.index+t[0].length;
|
|
2193
|
+
})
|
|
2194
|
+
if( l < s.length)
|
|
2195
|
+
tt.push( txt( s.substring(l,s.length) ));
|
|
2196
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if( tt.length )
|
|
2197
|
+
{ for( let t of tt )
|
|
2198
|
+
d.insertBefore(t,e);
|
|
2199
|
+
d.removeChild(e);
|
|
2200
|
+
}
|
|
2201
|
+
}
|
|
2202
|
+
}));
|
|
2203
|
+
|
|
2204
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if( 'all' in node ) {
|
|
2205
|
+
let i= 1;
|
|
2206
|
+
for( let e of node.all )
|
|
2207
|
+
e.setAttribute && !e.tagName.startsWith('xsl:') && e.setAttribute('data-dce-id', '' + i++)
|
|
2208
|
+
}
|
|
2209
|
+
return node
|
|
2210
|
+
}
|
|
2211
|
+
export function
|
|
2212
|
+
createXsltFromDom( templateNode, S = 'xsl:stylesheet' )
|
|
2213
|
+
{
|
|
2214
|
+
const declaredAttributes = []
|
|
2215
|
+
, hardcodedAttributes = {}
|
|
2216
|
+
, exposedAttributes={};
|
|
2217
|
+
|
|
2218
|
+
if( templateNode.tagName === S || templateNode.documentElement?.tagName === S )
|
|
2219
|
+
return tagUid(mix( templateNode, { declaredAttributes, hardcodedAttributes, exposedAttributes } ));
|
|
2220
|
+
|
|
2221
|
+
const sanitizeXsl = xml2dom(`<xsl:stylesheet version="1.0" xmlns:xsl="${ XSL_NS_URL }" xmlns:xhtml="${ HTML_NS_URL }" xmlns:exsl="${EXSL_NS_URL}" exclude-result-prefixes="exsl" >
|
|
2222
|
+
<xsl:output method="xml"/>
|
|
2223
|
+
<xsl:template match="/"><dce-root xmlns="${ HTML_NS_URL }"><xsl:apply-templates select="*" /></dce-root></xsl:template>
|
|
2224
|
+
<xsl:template match="*[name()='template']">
|
|
2225
|
+
<xsl:apply-templates mode="sanitize" select="*|text()"/>
|
|
2226
|
+
</xsl:template>
|
|
2227
|
+
<xsl:template match="*">
|
|
2228
|
+
<xsl:apply-templates mode="sanitize" select="*|text()"/>
|
|
2229
|
+
</xsl:template>
|
|
2230
|
+
<xsl:template match="*[name()='svg']|*[name()='math']">
|
|
2231
|
+
<xsl:apply-templates mode="sanitize" select="."/>
|
|
2232
|
+
</xsl:template>
|
|
2233
|
+
<xsl:template mode="sanitize" match="*[count(text())=1 and count(*)=0]">
|
|
2234
|
+
<xsl:copy>
|
|
2235
|
+
<xsl:apply-templates mode="sanitize" select="@*"/>
|
|
2236
|
+
<xsl:value-of select="text()"></xsl:value-of>
|
|
2237
|
+
</xsl:copy>
|
|
2238
|
+
</xsl:template>
|
|
2239
|
+
<xsl:template mode="sanitize" match="xhtml:*[count(text())=1 and count(*)=0]">
|
|
2240
|
+
<xsl:element name="{local-name()}">
|
|
2241
|
+
<xsl:apply-templates mode="sanitize" select="@*"/>
|
|
2242
|
+
<xsl:value-of select="text()"></xsl:value-of>
|
|
2243
|
+
</xsl:element>
|
|
2244
|
+
</xsl:template>
|
|
2245
|
+
<xsl:template mode="sanitize" match="*|@*">
|
|
2246
|
+
<xsl:copy>
|
|
2247
|
+
<xsl:apply-templates mode="sanitize" select="*|@*|text()"/>
|
|
2248
|
+
</xsl:copy>
|
|
2249
|
+
</xsl:template>
|
|
2250
|
+
<xsl:template mode="sanitize" match="text()[normalize-space(.) = '']"/>
|
|
2251
|
+
<xsl:template mode="sanitize" match="text()">
|
|
2252
|
+
<dce-text>
|
|
2253
|
+
<xsl:copy/>
|
|
2254
|
+
</dce-text>
|
|
2255
|
+
</xsl:template>
|
|
2256
|
+
<xsl:template mode="sanitize" match="xsl:value-of|*[name()='slot']">
|
|
2257
|
+
<xsl:copy>
|
|
2258
|
+
<xsl:apply-templates mode="sanitize" select="*|@*|text()"/>
|
|
2259
|
+
</xsl:copy>
|
|
2260
|
+
</xsl:template>
|
|
2261
|
+
<xsl:template mode="sanitize" match="xhtml:*">
|
|
2262
|
+
<xsl:element name="{local-name()}">
|
|
2263
|
+
<xsl:apply-templates mode="sanitize" select="*|@*|text()"/>
|
|
2264
|
+
</xsl:element>
|
|
2265
|
+
</xsl:template>
|
|
2266
|
+
<xsl:template mode="sanitize" match="xhtml:input">
|
|
2267
|
+
<xsl:element name="{local-name()}">
|
|
2268
|
+
<xsl:apply-templates mode="sanitize" select="*[not(name()='slice')]|@*|text()"/>
|
|
2269
|
+
</xsl:element>
|
|
2270
|
+
<xsl:for-each select="slice">
|
|
2271
|
+
<xsl:copy>
|
|
2272
|
+
<xsl:attribute name="for" >^</xsl:attribute>
|
|
2273
|
+
<xsl:apply-templates mode="sanitize" select="*|@*|text()"/>
|
|
2274
|
+
</xsl:copy>
|
|
2275
|
+
</xsl:for-each>
|
|
2276
|
+
</xsl:template>
|
|
2277
|
+
</xsl:stylesheet>`)
|
|
2278
|
+
const sanitizeProcessor = new XSLTProcessor()
|
|
2279
|
+
, tc = (n =>
|
|
2280
|
+
{
|
|
2281
|
+
forEach$(n,'custom-element', ce=>{
|
|
2282
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if( 'template' === ce.firstElementChild.localName )
|
|
2283
|
+
{
|
|
2284
|
+
[...ce.firstElementChild.content.childNodes].forEach(n=>ce.append(n));
|
|
2285
|
+
ce.firstElementChild.remove();
|
|
2286
|
+
}
|
|
2287
|
+
})
|
|
2288
|
+
forEach$(n,'script', s=> s.remove() );
|
|
2289
|
+
const xslRoot = n.content ?? n.firstElementChild?.content ?? n.body ?? n;
|
|
2290
|
+
xslTags.forEach( tag => forEach$( xslRoot, tag, el=>toXsl(el,xslRoot) ) );
|
|
2291
|
+
const e = n.firstElementChild?.content || n.content
|
|
2292
|
+
, asXmlNode = r => {
|
|
2293
|
+
const d = xml2dom( '<xhtml/>' )
|
|
2294
|
+
, n = d.importNode(r, true);
|
|
2295
|
+
d.replaceChild(n,d.documentElement);
|
|
2296
|
+
if( n.namespaceURI === HTML_NS_URL && !attr(n,'xmlns'))
|
|
2297
|
+
n.setAttribute('xmlns',HTML_NS_URL);
|
|
2298
|
+
return xslHtmlNs(n);
|
|
2299
|
+
};
|
|
2300
|
+
if( e )
|
|
2301
|
+
{ const t = create('div');
|
|
2302
|
+
[ ...e.childNodes ].map( c => t.append(c.cloneNode(true)) )
|
|
2303
|
+
return asXmlNode(t)
|
|
2304
|
+
}
|
|
2305
|
+
return asXmlNode(n.documentElement || n.body || n)
|
|
2306
|
+
})(templateNode)
|
|
2307
|
+
, xslDom = xml2dom(
|
|
2308
|
+
`<xsl:stylesheet version="1.0"
|
|
2309
|
+
xmlns:xsl="${ XSL_NS_URL }"
|
|
2310
|
+
xmlns:xhtml="${ HTML_NS_URL }"
|
|
2311
|
+
xmlns:dce="urn:schemas-epa-wg:dce"
|
|
2312
|
+
xmlns:exsl="http://exslt.org/common"
|
|
2313
|
+
exclude-result-prefixes="exsl"
|
|
2314
|
+
>
|
|
2315
|
+
<xsl:template match="ignore">
|
|
2316
|
+
<xsl:choose>
|
|
2317
|
+
<xsl:when test="//attr">{//attr}</xsl:when>
|
|
2318
|
+
<xsl:otherwise>{def}</xsl:otherwise>
|
|
2319
|
+
</xsl:choose><xsl:value-of select="."></xsl:value-of></xsl:template>
|
|
2320
|
+
<xsl:template mode="payload" match="attributes"></xsl:template>
|
|
2321
|
+
<xsl:template match="/">
|
|
2322
|
+
<xsl:apply-templates mode="payload" select="/datadom/attributes"/>
|
|
2323
|
+
</xsl:template>
|
|
2324
|
+
<xsl:template name="slot" >
|
|
2325
|
+
<xsl:param name="slotname" />
|
|
2326
|
+
<xsl:param name="defaultvalue" />
|
|
2327
|
+
<xsl:choose>
|
|
2328
|
+
<xsl:when test="//payload/*[@slot=$slotname]">
|
|
2329
|
+
<xsl:copy-of select="//payload/*[@slot=$slotname]"/>
|
|
2330
|
+
</xsl:when>
|
|
2331
|
+
<xsl:otherwise>
|
|
2332
|
+
<xsl:copy-of select="$defaultvalue"/>
|
|
2333
|
+
</xsl:otherwise>
|
|
2334
|
+
</xsl:choose>
|
|
2335
|
+
</xsl:template>
|
|
2336
|
+
<xsl:variable name="js-injected-body">
|
|
2337
|
+
<xsl:call-template name="slot" >
|
|
2338
|
+
<xsl:with-param name="slotname" select="''"/>
|
|
2339
|
+
<xsl:with-param name="defaultvalue"/>
|
|
2340
|
+
</xsl:call-template>
|
|
2341
|
+
</xsl:variable>
|
|
2342
|
+
</xsl:stylesheet>`
|
|
2343
|
+
);
|
|
2344
|
+
|
|
2345
|
+
sanitizeProcessor.importStylesheet( sanitizeXsl );
|
|
2346
|
+
|
|
2347
|
+
// Use a detached (no browsing context) document so Chrome does not eagerly
|
|
2348
|
+
// load img/link resources from the intermediate XSLT fragment
|
|
2349
|
+
const fr = sanitizeProcessor.transformToFragment(tc, document.implementation.createHTMLDocument(''))
|
|
2350
|
+
, $ = (e,css) => e.querySelector(css)
|
|
2351
|
+
, payload = $( xslDom, 'template[mode="payload"]');
|
|
2352
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if( !fr )
|
|
2353
|
+
<span class="cstat-no" title="statement not covered" > return console.error("transformation error",{ xml:tc.outerHTML, xsl: xmlString( sanitizeXsl ) });</span>
|
|
2354
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if( 'dce-root'!==fr.firstElementChild.localName )
|
|
2355
|
+
{ const r = <span class="cstat-no" title="statement not covered" >fr.ownerDocument.createElement('dce-root');</span>
|
|
2356
|
+
<span class="cstat-no" title="statement not covered" > [...fr.childNodes].forEach(<span class="fstat-no" title="function not covered" >n=</span>><span class="cstat-no" title="statement not covered" >r.append(n))</span>;</span>
|
|
2357
|
+
<span class="cstat-no" title="statement not covered" > fr.append(r)</span>
|
|
2358
|
+
}
|
|
2359
|
+
|
|
2360
|
+
[...fr.querySelectorAll('[test]')].forEach( n=>{
|
|
2361
|
+
const t = attr(n,'test')
|
|
2362
|
+
, r = t.replace(/hasBoolAttribute\((.*?)\)/g,
|
|
2363
|
+
<span class="fstat-no" title="function not covered" > (m</span>atch, p1, p2,p3,p4)=>
|
|
2364
|
+
{ const a = <span class="cstat-no" title="statement not covered" >p1.substring(1);</span>
|
|
2365
|
+
<span class="cstat-no" title="statement not covered" > return `(not($${a} = \'false\') and ($${a} = '' or $${a} = '${a}' or $${a} = 'true' ))`</span>
|
|
2366
|
+
});
|
|
2367
|
+
t!== r && <span class="branch-1 cbranch-no" title="branch not covered" >n.setAttribute('test',r);</span>
|
|
2368
|
+
});
|
|
2369
|
+
|
|
2370
|
+
[...fr.querySelectorAll('dce-root>attribute')].forEach( a=>
|
|
2371
|
+
{
|
|
2372
|
+
keepAttributes(a,'namespace,name,select');
|
|
2373
|
+
const p = cloneAs(a,'xsl:param')
|
|
2374
|
+
, name = attr(a,'name');
|
|
2375
|
+
|
|
2376
|
+
declaredAttributes.push(name);
|
|
2377
|
+
if( a.childNodes.length )
|
|
2378
|
+
hardcodedAttributes[name] = a.textContent;
|
|
2379
|
+
|
|
2380
|
+
payload.append(p);
|
|
2381
|
+
|
|
2382
|
+
if( a.hasAttribute('select') )
|
|
2383
|
+
{
|
|
2384
|
+
exposedAttributes[ name ] = attr( a, 'select' );
|
|
2385
|
+
keepAttributes( p, 'select,name' );
|
|
2386
|
+
|
|
2387
|
+
let select = attr(a,'select').split('??');
|
|
2388
|
+
|
|
2389
|
+
let val;
|
|
2390
|
+
if( select?.length>1 )
|
|
2391
|
+
{ p.removeAttribute('select');
|
|
2392
|
+
const c = $( xslDom, 'template[match="ignore"]>choose').cloneNode(true);
|
|
2393
|
+
emptyNode(c.firstElementChild).append( createText(c,'{'+select[0]+'}'));
|
|
2394
|
+
c.firstElementChild.setAttribute('test',select[0]);
|
|
2395
|
+
for( let i=1; i<select.length-1; i++)
|
|
2396
|
+
{ const when = <span class="cstat-no" title="statement not covered" >c.firstElementChild.cloneNode(true);</span>
|
|
2397
|
+
<span class="cstat-no" title="statement not covered" > emptyNode(when).append( createText(c,'{'+select[i]+'}'));</span>
|
|
2398
|
+
<span class="cstat-no" title="statement not covered" > when.setAttribute('test',select[i]);</span>
|
|
2399
|
+
<span class="cstat-no" title="statement not covered" > c.insertBefore(when, c.lastElementChild);</span>
|
|
2400
|
+
}
|
|
2401
|
+
emptyNode(c.lastElementChild ).append( createText(c,'{'+select[select.length-1]+'}'));
|
|
2402
|
+
p.append(c);
|
|
2403
|
+
val = c.cloneNode(true);
|
|
2404
|
+
}else
|
|
2405
|
+
val = cloneAs(a,'xsl:value-of');
|
|
2406
|
+
val.removeAttribute('name');
|
|
2407
|
+
a.append(val);
|
|
2408
|
+
a.removeAttribute('select');
|
|
2409
|
+
}else
|
|
2410
|
+
{
|
|
2411
|
+
keepAttributes( p, 'name' );
|
|
2412
|
+
p.setAttribute('select','/datadom/attributes/'+name)
|
|
2413
|
+
|
|
2414
|
+
if( !hardcodedAttributes[name] )
|
|
2415
|
+
a.remove();
|
|
2416
|
+
}
|
|
2417
|
+
});
|
|
2418
|
+
[...fr.querySelectorAll('[value]')].filter(el=>el.getAttribute('value').match( /\{(.*)\?\?(.*)\}/g )).forEach(el=>
|
|
2419
|
+
{ const v = attr(el,'value');
|
|
2420
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if(v)
|
|
2421
|
+
el.setAttribute('value', evalCurly(v));
|
|
2422
|
+
});
|
|
2423
|
+
for( const c of fr.childNodes )
|
|
2424
|
+
payload.append(xslDom.importNode(c,true))
|
|
2425
|
+
|
|
2426
|
+
const embeddedTemplates = [...payload.getElementsByTagName('xsl:template')];
|
|
2427
|
+
embeddedTemplates.forEach(t=>payload.ownerDocument.documentElement.append(t));
|
|
2428
|
+
|
|
2429
|
+
const slotCall = $(xslDom,'call-template[name="slot"]')
|
|
2430
|
+
, slot2xsl = s =>
|
|
2431
|
+
{ const v = slotCall.cloneNode(true)
|
|
2432
|
+
, name = attr(s,'name');
|
|
2433
|
+
name && v.firstElementChild.setAttribute('select',`'${ name }'`)
|
|
2434
|
+
for( let c of s.childNodes)
|
|
2435
|
+
v.lastElementChild.append(c)
|
|
2436
|
+
return v
|
|
2437
|
+
};
|
|
2438
|
+
|
|
2439
|
+
forEach$( payload,'slot', s => s.parentNode.replaceChild( slot2xsl(s), s ) )
|
|
2440
|
+
|
|
2441
|
+
const ret = tagUid(xslDom);
|
|
2442
|
+
mix( ret, { declaredAttributes, hardcodedAttributes, exposedAttributes } );
|
|
2443
|
+
return ret;
|
|
2444
|
+
}
|
|
2445
|
+
export async function
|
|
2446
|
+
xhrTemplate(src)
|
|
2447
|
+
{
|
|
2448
|
+
const dom = await new Promise((resolve,reject)=>
|
|
2449
|
+
{ const xhr = new XMLHttpRequest();
|
|
2450
|
+
xhr.open("GET", src);
|
|
2451
|
+
xhr.onload = () =>
|
|
2452
|
+
{ if( xhr.readyState === xhr.DONE && xhr.status === 200 )
|
|
2453
|
+
{ const mime = xhr.getResponseHeader('content-type')?.includes('xml')
|
|
2454
|
+
? 'text/xml' : 'text/html';
|
|
2455
|
+
const doc = new DOMParser().parseFromString(xhr.responseText, mime);
|
|
2456
|
+
resolve( mime === 'text/html' ? doc.body : doc )
|
|
2457
|
+
}
|
|
2458
|
+
else
|
|
2459
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="else path not taken" >E</span>reject(`${xhr.statusText} - ${src}`)</span>
|
|
2460
|
+
};
|
|
2461
|
+
xhr.addEventListener("error", <span class="fstat-no" title="function not covered" >ev=</span>><span class="cstat-no" title="statement not covered" >reject(ev) </span>);
|
|
2462
|
+
|
|
2463
|
+
xhr.send();
|
|
2464
|
+
})
|
|
2465
|
+
return dom
|
|
2466
|
+
}
|
|
2467
|
+
export function
|
|
2468
|
+
deepEqual(a, b, O=false)
|
|
2469
|
+
{
|
|
2470
|
+
if( a === b )
|
|
2471
|
+
return true;
|
|
2472
|
+
|
|
2473
|
+
if( (typeof a !== "object" || a === null) || (typeof b !== "object" || b === null)
|
|
2474
|
+
|| Object.keys(a).length !== Object.keys(b).length )
|
|
2475
|
+
return O;
|
|
2476
|
+
|
|
2477
|
+
for( let k in a )
|
|
2478
|
+
if( !(k in b) || !deepEqual( a[k], b[k] ) )
|
|
2479
|
+
return O
|
|
2480
|
+
return true;
|
|
2481
|
+
}
|
|
2482
|
+
const splitSliceNames = v => v.split('|').map( s=>s.trim() ).filter(s=>s);
|
|
2483
|
+
|
|
2484
|
+
export const
|
|
2485
|
+
assureSlices = ( root, names) =>
|
|
2486
|
+
splitSliceNames(names).map( xp =>
|
|
2487
|
+
{ let d = root.ownerDocument
|
|
2488
|
+
, append = n=> (root.append(n),n);
|
|
2489
|
+
if(xp.includes('/'))
|
|
2490
|
+
{ const ret = [], r = d.evaluate( xp, root );
|
|
2491
|
+
for( let n; n = r.iterateNext(); )
|
|
2492
|
+
ret.push( n )
|
|
2493
|
+
return ret
|
|
2494
|
+
}
|
|
2495
|
+
return [...root.childNodes].find(n=>n.localName === xp) || append( create(xp,'',d) );
|
|
2496
|
+
}).flat();
|
|
2497
|
+
|
|
2498
|
+
/**
|
|
2499
|
+
*
|
|
2500
|
+
* @param x slice node
|
|
2501
|
+
* @param sliceNames slice name, xPath in /datadom/slice/
|
|
2502
|
+
* @param ev Event obj
|
|
2503
|
+
* @param dce
|
|
2504
|
+
*/
|
|
2505
|
+
export function
|
|
2506
|
+
event2slice( x, sliceNames, ev, dce )
|
|
2507
|
+
{
|
|
2508
|
+
if( ev.sliceProcessed )
|
|
2509
|
+
return
|
|
2510
|
+
ev.sliceProcessed = 1;
|
|
2511
|
+
// evaluate slices[]
|
|
2512
|
+
// inject @attributes
|
|
2513
|
+
// inject event
|
|
2514
|
+
// evaluate slice-value
|
|
2515
|
+
// slice[i] = slice-value
|
|
2516
|
+
return assureSlices( x, sliceNames ?? <span class="branch-1 cbranch-no" title="branch not covered" >'' </span>).map( s =>
|
|
2517
|
+
{
|
|
2518
|
+
const d = x.ownerDocument
|
|
2519
|
+
, el = ev.sliceEventSource
|
|
2520
|
+
, sel = ev.sliceElement
|
|
2521
|
+
, cleanSliceValue = ()=>[...s.childNodes].filter(n=>n.nodeType===3 || n.localName==='value' || n.localName==='form-data').map(n=>n.remove());
|
|
2522
|
+
el.getAttributeNames().map( a => s.setAttribute( a, attr(el,a) ) );
|
|
2523
|
+
[...s.childNodes].filter(n=>n.localName==='event').map(n=>n.remove());
|
|
2524
|
+
if( 'validationMessage' in el )
|
|
2525
|
+
s.setAttribute('validation-message', el.validationMessage);
|
|
2526
|
+
ev.type==='init' && cleanSliceValue();
|
|
2527
|
+
s.append( obj2node( ev, 'event', d ) );
|
|
2528
|
+
const notChecked = ( 'checkbox' === el.type || 'radio' === el.type ) && !el.checked ;
|
|
2529
|
+
if( sel.hasAttribute('slice-value') )
|
|
2530
|
+
{ if( el.value === undefined)
|
|
2531
|
+
s.removeAttribute('value')
|
|
2532
|
+
else
|
|
2533
|
+
s.setAttribute('value', el.value );
|
|
2534
|
+
const v = notChecked? '' : xPath( attr( sel, 'slice-value'),s );
|
|
2535
|
+
cleanSliceValue();
|
|
2536
|
+
s.append( createText( d, v ) );
|
|
2537
|
+
}else
|
|
2538
|
+
{ if( 'elements' in el )
|
|
2539
|
+
{ cleanSliceValue();
|
|
2540
|
+
s.append( obj2node(new FormData(el),'value', s.ownerDocument) )
|
|
2541
|
+
return s
|
|
2542
|
+
}
|
|
2543
|
+
|
|
2544
|
+
const v = notChecked? '' : el.value ?? attr( el, 'value' );
|
|
2545
|
+
cleanSliceValue();
|
|
2546
|
+
if( v === null || v === undefined )
|
|
2547
|
+
{
|
|
2548
|
+
[...s.childNodes].filter(n=>n.localName!=='event').map(<span class="fstat-no" title="function not covered" >n=</span>><span class="cstat-no" title="statement not covered" >n.remove())</span>;
|
|
2549
|
+
s.removeAttribute('value');
|
|
2550
|
+
}
|
|
2551
|
+
else
|
|
2552
|
+
{ const ve = isString(v) ? createText( d, v) : obj2node(v,'value',s.ownerDocument);
|
|
2553
|
+
s.append( ve );
|
|
2554
|
+
s.setAttribute('value',v);
|
|
2555
|
+
}
|
|
2556
|
+
}
|
|
2557
|
+
return s
|
|
2558
|
+
})
|
|
2559
|
+
}
|
|
2560
|
+
|
|
2561
|
+
function forEach$( el, css, cb){
|
|
2562
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if( el.querySelectorAll )
|
|
2563
|
+
[...el.querySelectorAll(css)].forEach(cb)
|
|
2564
|
+
}
|
|
2565
|
+
const loadTemplateRoots = async ( src, dce )=>
|
|
2566
|
+
{
|
|
2567
|
+
if( !src || !src.trim() )
|
|
2568
|
+
return [dce]
|
|
2569
|
+
if( src.startsWith('#') )
|
|
2570
|
+
return ( n =>
|
|
2571
|
+
{ const a = n.querySelectorAll(src)
|
|
2572
|
+
return [...( a.length ? a : <span class="branch-1 cbranch-no" title="branch not covered" >n.getRootNode().querySelectorAll(src) </span>)]
|
|
2573
|
+
})(dce.parentElement)
|
|
2574
|
+
try
|
|
2575
|
+
{ const [path, hash] = src.split('#');
|
|
2576
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if( '.' === src.charAt(0))
|
|
2577
|
+
<span class="cstat-no" title="statement not covered" > src = new URL(path, dce.closest('[base]')?.getAttribute('base') || location ).href;</span>
|
|
2578
|
+
else
|
|
2579
|
+
try
|
|
2580
|
+
{ src = import.meta.resolve( path );
|
|
2581
|
+
if(hash)
|
|
2582
|
+
src +='#'+hash;
|
|
2583
|
+
}
|
|
2584
|
+
catch( e )
|
|
2585
|
+
{ console.error(e.message) }
|
|
2586
|
+
// todo cache
|
|
2587
|
+
const dom = await xhrTemplate(src);
|
|
2588
|
+
dce.setAttributeNS('xml', 'base', src );
|
|
2589
|
+
|
|
2590
|
+
if( hash )
|
|
2591
|
+
{ const ret = dom.querySelectorAll('#'+hash);
|
|
2592
|
+
if( ret.length )
|
|
2593
|
+
return [...ret];
|
|
2594
|
+
console.error('template not found',src+'#'+hash);
|
|
2595
|
+
return [dce]
|
|
2596
|
+
}
|
|
2597
|
+
return [dom]
|
|
2598
|
+
}catch (error){ <span class="cstat-no" title="statement not covered" >return [dce]}</span>
|
|
2599
|
+
}
|
|
2600
|
+
export function mergeAttr( from, to )
|
|
2601
|
+
{ for( let a of from.attributes)
|
|
2602
|
+
try
|
|
2603
|
+
{ const name = a.name;
|
|
2604
|
+
if( name.startsWith('xmlns') )
|
|
2605
|
+
continue;
|
|
2606
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if( a.namespaceURI )
|
|
2607
|
+
{ <span class="cstat-no" title="statement not covered" >if( !to.hasAttributeNS(a.namespaceURI, name) || to.getAttributeNS(a.namespaceURI, name) !== a.value )</span>
|
|
2608
|
+
<span class="cstat-no" title="statement not covered" > to.setAttributeNS( a.namespaceURI, name, a.value )</span>
|
|
2609
|
+
}else
|
|
2610
|
+
{ if( !to.hasAttribute(name) || to.getAttribute(name) !== a.value )
|
|
2611
|
+
to.setAttribute( a.name, a.value )
|
|
2612
|
+
}
|
|
2613
|
+
if( a.name === 'value')
|
|
2614
|
+
to.value = a.value
|
|
2615
|
+
}catch(e)
|
|
2616
|
+
{ <span class="cstat-no" title="statement not covered" >console.warn('attribute assignment error',e?.message || e); </span>}
|
|
2617
|
+
const ea = to.dceExportedAttributes
|
|
2618
|
+
, aa = to.getAttribute('dce-exported-attributes')
|
|
2619
|
+
, em = aa ? new Set( aa.split(' ') ) : null;
|
|
2620
|
+
for( let a of to.getAttributeNames() )
|
|
2621
|
+
if( !from.hasAttribute(a) && !ea?.has(a) && !em?.has(a) )
|
|
2622
|
+
to.removeAttribute(a)
|
|
2623
|
+
}
|
|
2624
|
+
export function assureUnique(n, id=0)
|
|
2625
|
+
{
|
|
2626
|
+
const m = {}
|
|
2627
|
+
for( const e of n.childNodes )
|
|
2628
|
+
{
|
|
2629
|
+
const a = attr(e,'data-dce-id') || e.dceId || 0;
|
|
2630
|
+
if( !m[a] )
|
|
2631
|
+
{ if( !a )
|
|
2632
|
+
{ m[a] = e.dceId = ++id;
|
|
2633
|
+
if( e.setAttribute )
|
|
2634
|
+
e.setAttribute('data-dce-id', e.dceId )
|
|
2635
|
+
}else
|
|
2636
|
+
m[a] = 1;
|
|
2637
|
+
}else
|
|
2638
|
+
{ const v = e.dceId = a + '-' + m[a]++;
|
|
2639
|
+
if( e.setAttribute )
|
|
2640
|
+
e.setAttribute('data-dce-id', v )
|
|
2641
|
+
}
|
|
2642
|
+
e.childNodes.length && assureUnique(e)
|
|
2643
|
+
}
|
|
2644
|
+
}
|
|
2645
|
+
export function appendByDceId(parent,e,k)
|
|
2646
|
+
{
|
|
2647
|
+
k = 1*k;
|
|
2648
|
+
for( let n of parent.childNodes )
|
|
2649
|
+
if( (n.dceId ?? n.getAttribute('data-dce-id')*1) > k )
|
|
2650
|
+
return parent.insertBefore(e,n);
|
|
2651
|
+
parent.append(e)
|
|
2652
|
+
}
|
|
2653
|
+
export function merge( parent, fromArr )
|
|
2654
|
+
{
|
|
2655
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if( 'dce-root' === parent.firstElementChild?.localName && 'dce-root' !== fromArr[0]?.localName)
|
|
2656
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2657
|
+
if( !fromArr.length )
|
|
2658
|
+
return 'dce-root' !== parent.firstElementChild?.localName && removeChildren(parent);
|
|
2659
|
+
|
|
2660
|
+
const id2old = {};
|
|
2661
|
+
for( let c of parent.childNodes)
|
|
2662
|
+
{ ASSERT( !id2old[c.dceId] );
|
|
2663
|
+
if( isText(c) )
|
|
2664
|
+
{ ASSERT( c.data.trim() );
|
|
2665
|
+
id2old[c.dceId || <span class="branch-1 cbranch-no" title="branch not covered" >0]</span> = c;
|
|
2666
|
+
} else
|
|
2667
|
+
id2old[attr(c, 'data-dce-id') || <span class="branch-1 cbranch-no" title="branch not covered" >0]</span> = c;
|
|
2668
|
+
}
|
|
2669
|
+
for( let e of [...fromArr] )
|
|
2670
|
+
{ const k = attr(e, 'data-dce-id') || e.dceId;
|
|
2671
|
+
const o = id2old[ k ];
|
|
2672
|
+
if( o )
|
|
2673
|
+
{ if( isText(e) )
|
|
2674
|
+
{ if( o.nodeValue !== e.nodeValue )
|
|
2675
|
+
o.nodeValue = e.nodeValue;
|
|
2676
|
+
}else
|
|
2677
|
+
{ mergeAttr(e,o)
|
|
2678
|
+
if( o.childNodes.length || e.childNodes.length )
|
|
2679
|
+
merge(o, e.childNodes)
|
|
2680
|
+
}
|
|
2681
|
+
delete id2old[ k ]
|
|
2682
|
+
}else
|
|
2683
|
+
appendByDceId(parent,e,k)
|
|
2684
|
+
}
|
|
2685
|
+
for( let v of Object.values(id2old) )
|
|
2686
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if( v.localName !== 'dce-root')
|
|
2687
|
+
v.remove();
|
|
2688
|
+
}
|
|
2689
|
+
export function assureUID(n,attr)
|
|
2690
|
+
{ <span class="missing-if-branch" title="else path not taken" >E</span>if( !n.hasAttribute(attr) )
|
|
2691
|
+
n.setAttribute(attr, crypto.randomUUID());
|
|
2692
|
+
return n.getAttribute(attr)
|
|
2693
|
+
}
|
|
2694
|
+
export const evalCurly = s =>
|
|
2695
|
+
{ const exp = [...s?.matchAll( /([^{}]*)(\{)([^}]+)}([^{}]*)/g ) ].map(l=>`${l[1]}{${ xPathDefaults(l[3] )}}${l[4]}`);
|
|
2696
|
+
return exp.join('');
|
|
2697
|
+
}
|
|
2698
|
+
export const xPathDefaults = x=>
|
|
2699
|
+
{ if(!x.trim())
|
|
2700
|
+
return x;
|
|
2701
|
+
const xx = x.split('??')
|
|
2702
|
+
, a = xx.shift()
|
|
2703
|
+
, b = xPathDefaults(xx.join('??'));
|
|
2704
|
+
|
|
2705
|
+
return xx.length ? `concat( ${a} , substring( ${b} , (1+string-length( ${b} )) * string-length( ${a} ) ) )`: x
|
|
2706
|
+
// return xx.length ? `${a}|(${xPathDefaults(xx.join('??'))})[not(${a})]`: a
|
|
2707
|
+
}
|
|
2708
|
+
export const xPath = (x,root)=>
|
|
2709
|
+
{
|
|
2710
|
+
const xx = x.split('??');
|
|
2711
|
+
if( xx.length > 1 )
|
|
2712
|
+
return xPath(xx[0], root) || xPath(xx[1], root);
|
|
2713
|
+
|
|
2714
|
+
x = xPathDefaults(x);
|
|
2715
|
+
|
|
2716
|
+
const it = root.ownerDocument.evaluate(x, root);
|
|
2717
|
+
switch( it.resultType )
|
|
2718
|
+
{ case XPathResult.NUMBER_TYPE: return it.numberValue;
|
|
2719
|
+
case XPathResult.STRING_TYPE: return it.stringValue;
|
|
2720
|
+
case XPathResult.BOOLEAN_TYPE: return it.booleanValue;
|
|
2721
|
+
}
|
|
2722
|
+
|
|
2723
|
+
let ret = '';
|
|
2724
|
+
for( let n ;n=it.iterateNext(); )
|
|
2725
|
+
ret += n.textContent;
|
|
2726
|
+
return ret
|
|
2727
|
+
}
|
|
2728
|
+
export const xslTags = 'stylesheet,transform,import,include,strip-space,preserve-space,output,key,decimal-format,namespace-alias,value-of,copy-of,number,apply-templates,apply-imports,for-each,sort,if,choose,when,otherwise,attribute-set,call-template,with-param,variable,param,text,processing-instruction,element,attribute,comment,copy,message,fallback'.split(',');
|
|
2729
|
+
export const toXsl = (el, defParent) => {
|
|
2730
|
+
const x = create('xsl:'+el.localName);
|
|
2731
|
+
for( let a of el.attributes )
|
|
2732
|
+
x.setAttribute( a.name, a.value );
|
|
2733
|
+
while(el.firstChild)
|
|
2734
|
+
x.append(el.firstChild);
|
|
2735
|
+
const replacement = 'if,choose,for-each'.includes(el.localName) ? (() => {
|
|
2736
|
+
const parent = el.parentElement;
|
|
2737
|
+
if( !parent || parent.childNodes.length ===1 )
|
|
2738
|
+
return x;
|
|
2739
|
+
const span = create('span');
|
|
2740
|
+
span.append(x);
|
|
2741
|
+
return span;
|
|
2742
|
+
})() : x;
|
|
2743
|
+
if( el.parentElement )
|
|
2744
|
+
el.parentElement.replaceChild( replacement, el );
|
|
2745
|
+
else
|
|
2746
|
+
{ const p = (el.parentElement || defParent)
|
|
2747
|
+
, arr = [...p.childNodes];
|
|
2748
|
+
arr.forEach((n, i) => {
|
|
2749
|
+
if (n === el)
|
|
2750
|
+
arr[i] = replacement;
|
|
2751
|
+
});
|
|
2752
|
+
p.replaceChildren(...arr);
|
|
2753
|
+
}
|
|
2754
|
+
};
|
|
2755
|
+
|
|
2756
|
+
export class
|
|
2757
|
+
CustomElement extends HTMLElement
|
|
2758
|
+
{
|
|
2759
|
+
static observedAttributes = ['src','tag','hidden'];
|
|
2760
|
+
async connectedCallback()
|
|
2761
|
+
{
|
|
2762
|
+
if(this.firstElementChild && this.firstElementChild.localName !== 'template')
|
|
2763
|
+
console.log('custom-element used without template wrapping content\n', this.outerHTML);
|
|
2764
|
+
const templateRoots = await loadTemplateRoots( attr( this, 'src' ), this )
|
|
2765
|
+
, tag = attr( this, 'tag' )
|
|
2766
|
+
, tagName = tag ? tag : 'dce-'+crypto.randomUUID();
|
|
2767
|
+
|
|
2768
|
+
for( const t of templateRoots )
|
|
2769
|
+
forEach$(t.templateNode||t.content||t, 'style',s=>{
|
|
2770
|
+
const slot = s.closest('slot');
|
|
2771
|
+
const sName = slot ? <span class="branch-0 cbranch-no" title="branch not covered" >`slot[name="${slot.name}"]`:</span>'';
|
|
2772
|
+
s.innerHTML = `${tagName} ${sName}{${s.innerHTML}}`;
|
|
2773
|
+
this.append(s);
|
|
2774
|
+
})
|
|
2775
|
+
const templateDocs = templateRoots.map( n => createXsltFromDom( n ) )
|
|
2776
|
+
, xp = templateDocs.map( (td, p) =>
|
|
2777
|
+
{ p = new XSLTProcessor();
|
|
2778
|
+
try{ p.importStylesheet( td ) }
|
|
2779
|
+
catch( e )
|
|
2780
|
+
{ <span class="cstat-no" title="statement not covered" >console.error(e, xmlString(td)) </span>}
|
|
2781
|
+
return p
|
|
2782
|
+
})
|
|
2783
|
+
|
|
2784
|
+
Object.defineProperty( this, "xsltString", { get: ()=>templateDocs.map( td => xmlString(td) ).join('\n') });
|
|
2785
|
+
|
|
2786
|
+
const dce = this
|
|
2787
|
+
, sliceNodes = [...this.templateNode.querySelectorAll('[slice]')]
|
|
2788
|
+
, sliceNames = sliceNodes.map(e=>attr(e,'slice'))
|
|
2789
|
+
.filter(n=>!n.includes('/'))
|
|
2790
|
+
.filter((v, i, a)=>a.indexOf(v) === i)
|
|
2791
|
+
.map(splitSliceNames).flat();
|
|
2792
|
+
|
|
2793
|
+
const { declaredAttributes, hardcodedAttributes, exposedAttributes } = templateDocs[0];
|
|
2794
|
+
const dceExportedAttributes = new Set([...Object.keys(hardcodedAttributes), ...Object.keys(exposedAttributes)]);
|
|
2795
|
+
|
|
2796
|
+
class DceElement extends HTMLElement
|
|
2797
|
+
{
|
|
2798
|
+
static get observedAttributes(){ return declaredAttributes; }
|
|
2799
|
+
#inTransform = 0;
|
|
2800
|
+
<span class="fstat-no" title="function not covered" > get </span>dceExportedAttributes(){ <span class="cstat-no" title="statement not covered" >return dceExportedAttributes; </span>}
|
|
2801
|
+
connectedCallback()
|
|
2802
|
+
{ let payload = sanitizeBlankText(this.childNodes);
|
|
2803
|
+
if( this.firstElementChild?.tagName === 'TEMPLATE' )
|
|
2804
|
+
{
|
|
2805
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if( this.firstElementChild !== this.lastElementChild )
|
|
2806
|
+
{ <span class="cstat-no" title="statement not covered" >console.error('payload should have TEMPLATE as only child', this.outerHTML ) </span>}
|
|
2807
|
+
const t = this.firstElementChild;
|
|
2808
|
+
t.remove();
|
|
2809
|
+
payload = sanitizeBlankText(t.content.childNodes);
|
|
2810
|
+
|
|
2811
|
+
for( const n of payload )
|
|
2812
|
+
if( n.localName === 'style' ){
|
|
2813
|
+
const id = assureUID(this,'data-dce-style')
|
|
2814
|
+
n.innerHTML= `${tagName}[data-dce-style="${id}"]{${n.innerHTML}}`;
|
|
2815
|
+
t.insertAdjacentElement('beforebegin',n);
|
|
2816
|
+
}else
|
|
2817
|
+
if(n.nodeType===1)
|
|
2818
|
+
t.insertAdjacentElement('beforebegin',n);
|
|
2819
|
+
else if(n.nodeType===3)
|
|
2820
|
+
t.insertAdjacentText('beforebegin',n.data);
|
|
2821
|
+
}
|
|
2822
|
+
const x = xml2dom( '<datadom/>' ).documentElement;
|
|
2823
|
+
const createXmlNode = ( tag, t = '' ) => ( e =>
|
|
2824
|
+
{ if( t )
|
|
2825
|
+
e.append( createText( x, t ))
|
|
2826
|
+
return e;
|
|
2827
|
+
})(x.ownerDocument.createElement( tag ))
|
|
2828
|
+
const payloadNode = injectData( x, 'payload' , payload , assureSlot );
|
|
2829
|
+
xslNs(payloadNode);
|
|
2830
|
+
xslHtmlNs(payloadNode);
|
|
2831
|
+
this.innerHTML='';
|
|
2832
|
+
const attrsRoot = injectData( x, 'attributes' , this.attributes, e => createXmlNode( e.nodeName, e.value ) )
|
|
2833
|
+
, inAttrs = a=> this.hasAttribute(a) || [...attrsRoot.children].find(e=>e.localName === a);
|
|
2834
|
+
mergeAttr( this, attrsRoot );
|
|
2835
|
+
Object.keys(hardcodedAttributes).map(a=> inAttrs(a) || attrsRoot.append(createXmlNode(a,hardcodedAttributes[a])) );
|
|
2836
|
+
Object.keys(exposedAttributes).map(a=> inAttrs(a) || attrsRoot.append(createXmlNode(a)) );
|
|
2837
|
+
|
|
2838
|
+
injectData( x, 'dataset', Object.keys( this.dataset ), k => createXmlNode( k, this.dataset[ k ] ) );
|
|
2839
|
+
const sliceRoot = injectData( x, 'slice', sliceNames, k => createXmlNode( k, '' ) )
|
|
2840
|
+
, sliceXPath = x => xPath(x, sliceRoot);
|
|
2841
|
+
this.xml = x;
|
|
2842
|
+
|
|
2843
|
+
const sliceEvents=[];
|
|
2844
|
+
const applySlices = ()=>
|
|
2845
|
+
{ const processed = {}
|
|
2846
|
+
|
|
2847
|
+
for(let ev; ev = sliceEvents.pop(); )
|
|
2848
|
+
{ const s = attr( ev.sliceElement, 'slice');
|
|
2849
|
+
if( processed[s] )
|
|
2850
|
+
continue;
|
|
2851
|
+
event2slice( sliceRoot, s, ev, this );
|
|
2852
|
+
processed[s] = ev;
|
|
2853
|
+
}
|
|
2854
|
+
Object.keys(processed).length !== 0 && transform();
|
|
2855
|
+
this.customElementRegistry?.initialize(this);
|
|
2856
|
+
}
|
|
2857
|
+
let timeoutID;
|
|
2858
|
+
|
|
2859
|
+
this.onSlice = ev=>
|
|
2860
|
+
{ sliceEvents.push(ev);
|
|
2861
|
+
if( !timeoutID )
|
|
2862
|
+
timeoutID = setTimeout(()=>
|
|
2863
|
+
{ applySlices();
|
|
2864
|
+
timeoutID =0;
|
|
2865
|
+
},1);
|
|
2866
|
+
};
|
|
2867
|
+
const transform = this.transform = ()=>
|
|
2868
|
+
{ <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>}
|
|
2869
|
+
this.#inTransform = 1;
|
|
2870
|
+
const renderModel = ()=>
|
|
2871
|
+
{
|
|
2872
|
+
const ff = xp.map( (p,i) =>
|
|
2873
|
+
{ const f = p.transformToFragment(x.ownerDocument, document)
|
|
2874
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if( !f )
|
|
2875
|
+
<span class="cstat-no" title="statement not covered" > console.error( "XSLT transformation error. xsl:\n", xmlString(templateDocs[i]), '\nxml:\n', xmlString(x) );</span>
|
|
2876
|
+
return f
|
|
2877
|
+
});
|
|
2878
|
+
ff.map( f =>
|
|
2879
|
+
{ <span class="missing-if-branch" title="if path not taken" >I</span>if( !f )
|
|
2880
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2881
|
+
assureUnique(f);
|
|
2882
|
+
merge( this, f.childNodes )
|
|
2883
|
+
})
|
|
2884
|
+
let attrChangedCount = 0;
|
|
2885
|
+
Object.entries(hardcodedAttributes).map(( [a,v] )=>
|
|
2886
|
+
{ if( !this.hasAttribute(a) && v !== attr(this,a) )
|
|
2887
|
+
{ this.setAttribute( a, v );
|
|
2888
|
+
this.#applyAttribute( a, v );
|
|
2889
|
+
attrChangedCount++;
|
|
2890
|
+
}
|
|
2891
|
+
});
|
|
2892
|
+
|
|
2893
|
+
Object.keys(exposedAttributes).map( a =>
|
|
2894
|
+
{ let v = attr(this.firstElementChild,a);
|
|
2895
|
+
if( v !== attr(this,a) )
|
|
2896
|
+
{ this.setAttribute( a, v );
|
|
2897
|
+
this.#applyAttribute( a, v );
|
|
2898
|
+
attrChangedCount++;
|
|
2899
|
+
}
|
|
2900
|
+
});
|
|
2901
|
+
return attrChangedCount;
|
|
2902
|
+
};
|
|
2903
|
+
if( renderModel() )
|
|
2904
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if( renderModel() )
|
|
2905
|
+
<span class="cstat-no" title="statement not covered" > console.warn("model update should not be the result of transform more than once");</span>
|
|
2906
|
+
|
|
2907
|
+
function getSliceTarget(el)
|
|
2908
|
+
{ let r = el;
|
|
2909
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if( el.localName === 'slice')
|
|
2910
|
+
{ const ref= <span class="cstat-no" title="statement not covered" >attr(el,'for');</span>
|
|
2911
|
+
<span class="cstat-no" title="statement not covered" > if( !ref )</span>
|
|
2912
|
+
<span class="cstat-no" title="statement not covered" > r = el.parentElement;</span>
|
|
2913
|
+
<span class="cstat-no" title="statement not covered" > if( '^' === ref )</span>
|
|
2914
|
+
{ <span class="cstat-no" title="statement not covered" >do <span class="cstat-no" title="statement not covered" >r = r.previousElementSibling;</span></span>
|
|
2915
|
+
while( r.localName === 'slice' )
|
|
2916
|
+
} else
|
|
2917
|
+
<span class="cstat-no" title="statement not covered" > r = this.querySelector(ref)</span>
|
|
2918
|
+
|
|
2919
|
+
<span class="cstat-no" title="statement not covered" > if( !r )</span>
|
|
2920
|
+
<span class="cstat-no" title="statement not covered" > return console.warn(`can not find selector in "slice for=${ref}" `, el.outerHTML);</span>
|
|
2921
|
+
<span class="cstat-no" title="statement not covered" > attr(el,'slice') || el.setAttribute('slice', attr(el,'name'))</span>
|
|
2922
|
+
}
|
|
2923
|
+
return r;
|
|
2924
|
+
}
|
|
2925
|
+
forEach$( this,'[slice],[slice-event]', el =>
|
|
2926
|
+
{ let evs = attr(el,'slice-event');
|
|
2927
|
+
const sVal = el.hasAttribute('slice-value') || el.hasAttribute('value') || el.value;
|
|
2928
|
+
const tgt = getSliceTarget(el);
|
|
2929
|
+
if( !el.dceInitialized )
|
|
2930
|
+
{ el.dceInitialized = 1;
|
|
2931
|
+
if( tgt.hasAttribute('custom-validity') )
|
|
2932
|
+
evs += ' change submit';
|
|
2933
|
+
|
|
2934
|
+
[...new Set((evs || 'change') .split(' '))]
|
|
2935
|
+
.forEach( t=>
|
|
2936
|
+
tgt.addEventListener( t, ev=>
|
|
2937
|
+
{ ev.sliceElement = el;
|
|
2938
|
+
ev.sliceEventSource = ev.currentTarget || <span class="branch-1 cbranch-no" title="branch not covered" >ev.target;</span>
|
|
2939
|
+
ev.sliceProcessed = 0;
|
|
2940
|
+
const slices = event2slice( sliceRoot, attr( ev.sliceElement, 'slice'), ev, this );
|
|
2941
|
+
|
|
2942
|
+
forEach$(this,'[custom-validity]',el =>
|
|
2943
|
+
{ if( !el.setCustomValidity )
|
|
2944
|
+
return;
|
|
2945
|
+
const x = attr( el, 'custom-validity' );
|
|
2946
|
+
try
|
|
2947
|
+
{ const v = x && xPath( x, attrsRoot );
|
|
2948
|
+
el.setCustomValidity( v === true? <span class="branch-0 cbranch-no" title="branch not covered" >'':</span> v === false ? <span class="branch-0 cbranch-no" title="branch not covered" >'invalid' </span>: v );
|
|
2949
|
+
}catch(err)
|
|
2950
|
+
{ <span class="cstat-no" title="statement not covered" >console.error(err, 'xPath', x) </span>}
|
|
2951
|
+
})
|
|
2952
|
+
const x = attr(tgt,'custom-validity')
|
|
2953
|
+
, v = x && xPath( x, attrsRoot )
|
|
2954
|
+
, msg = v === true? <span class="branch-0 cbranch-no" title="branch not covered" >'' </span>: v;
|
|
2955
|
+
|
|
2956
|
+
if( x )
|
|
2957
|
+
{ el.setCustomValidity ? el.setCustomValidity( msg ) : ( el.validationMessage = msg );
|
|
2958
|
+
slices.map( s => s.setAttribute('validation-message', msg ) );
|
|
2959
|
+
if( ev.type === 'submit' )
|
|
2960
|
+
{ <span class="missing-if-branch" title="if path not taken" >I</span>if( v === true )
|
|
2961
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2962
|
+
setTimeout(transform,1)
|
|
2963
|
+
if( !!v === v )
|
|
2964
|
+
{ v || ev.preventDefault();
|
|
2965
|
+
return v;
|
|
2966
|
+
}
|
|
2967
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if( v )
|
|
2968
|
+
{ ev.preventDefault();
|
|
2969
|
+
return !1
|
|
2970
|
+
}
|
|
2971
|
+
<span class="cstat-no" title="statement not covered" > return ;</span>
|
|
2972
|
+
}else
|
|
2973
|
+
setTimeout(transform,1)
|
|
2974
|
+
}
|
|
2975
|
+
this.onSlice(ev);
|
|
2976
|
+
} ));
|
|
2977
|
+
if( !evs || evs.includes('init') )
|
|
2978
|
+
{ if( sVal )
|
|
2979
|
+
this.onSlice({type:'init', target: tgt, sliceElement:el, sliceEventSource:tgt })
|
|
2980
|
+
else
|
|
2981
|
+
el.value = sliceXPath( attr(el,'slice') )
|
|
2982
|
+
}
|
|
2983
|
+
}
|
|
2984
|
+
});
|
|
2985
|
+
this.#inTransform = 0;
|
|
2986
|
+
};
|
|
2987
|
+
transform();
|
|
2988
|
+
applySlices();
|
|
2989
|
+
}
|
|
2990
|
+
#applyAttribute(name, newValue)
|
|
2991
|
+
{ <span class="missing-if-branch" title="if path not taken" >I</span>if( 'value' === name )
|
|
2992
|
+
<span class="cstat-no" title="statement not covered" > this.value = newValue;</span>
|
|
2993
|
+
const attrs = this.xml.querySelector('attributes');
|
|
2994
|
+
let a = this.xml.querySelector(`attributes>${name}`);
|
|
2995
|
+
if( a )
|
|
2996
|
+
emptyNode(a).append( createText(a,newValue) );
|
|
2997
|
+
else
|
|
2998
|
+
<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>
|
|
2999
|
+
<span class="cstat-no" title="statement not covered" > attrs.append( a );</span>
|
|
3000
|
+
}
|
|
3001
|
+
this.#inTransform || attrs.setAttribute(name,newValue);
|
|
3002
|
+
|
|
3003
|
+
this.dispatchEvent(new CustomEvent('change', { bubbles: true,detail: { [name]: newValue }}))
|
|
3004
|
+
}
|
|
3005
|
+
attributeChangedCallback(name, oldValue, newValue)
|
|
3006
|
+
{ if( !this.xml || this.#inTransform )
|
|
3007
|
+
return;
|
|
3008
|
+
this.#applyAttribute(name, newValue);
|
|
3009
|
+
this.transform(); // needs throttling
|
|
3010
|
+
}
|
|
3011
|
+
|
|
3012
|
+
<span class="fstat-no" title="function not covered" > get </span>dce(){ <span class="cstat-no" title="statement not covered" >return dce </span>}
|
|
3013
|
+
}
|
|
3014
|
+
const registerTag = tag =>
|
|
3015
|
+
{
|
|
3016
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if( window.customElements.get(tag) !== DceElement )
|
|
3017
|
+
window.customElements.define( tag, DceElement);
|
|
3018
|
+
};
|
|
3019
|
+
if(tag)
|
|
3020
|
+
registerTag(tag);
|
|
3021
|
+
else
|
|
3022
|
+
{ const t = tagName;
|
|
3023
|
+
this.setAttribute('tag', t );
|
|
3024
|
+
registerTag(t);
|
|
3025
|
+
const el = document.createElement(t);
|
|
3026
|
+
this.getAttributeNames().forEach(a=>el.setAttribute(a,this.getAttribute(a)));
|
|
3027
|
+
el.append(...[...this.childNodes].filter( e => e.localName!=='style') );
|
|
3028
|
+
this.append(el);
|
|
3029
|
+
}
|
|
3030
|
+
}
|
|
3031
|
+
get templateNode(){ return this.firstElementChild?.tagName === 'TEMPLATE'? this.firstElementChild.content : this }
|
|
3032
|
+
get dce(){ return this }
|
|
3033
|
+
|
|
3034
|
+
get xslt(){ return xml2dom( this.xsltString ) }
|
|
3035
|
+
}
|
|
3036
|
+
|
|
3037
|
+
window.customElements.define( 'custom-element', CustomElement );
|
|
3038
|
+
export default CustomElement;
|
|
3039
|
+
</pre></td></tr></table></pre>
|
|
3040
|
+
|
|
3041
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
3042
|
+
</div><!-- /wrapper -->
|
|
3043
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
3044
|
+
Code coverage generated by
|
|
3045
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
3046
|
+
at 2026-05-03T04:38:41.276Z
|
|
3047
|
+
</div>
|
|
3048
|
+
<script src="../../prettify.js"></script>
|
|
3049
|
+
<script>
|
|
3050
|
+
window.onload = function () {
|
|
3051
|
+
prettyPrint();
|
|
3052
|
+
};
|
|
3053
|
+
</script>
|
|
3054
|
+
<script src="../../sorter.js"></script>
|
|
3055
|
+
<script src="../../block-navigation.js"></script>
|
|
3056
|
+
</body>
|
|
3057
|
+
</html>
|
|
3058
|
+
|