@mux/mux-player 0.1.0-beta.21
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/CHANGELOG.md +281 -0
- package/LICENSE +9 -0
- package/README.md +231 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +161 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/dialog.ts.html +247 -0
- package/coverage/lcov-report/src/errors.ts.html +574 -0
- package/coverage/lcov-report/src/helpers.ts.html +478 -0
- package/coverage/lcov-report/src/html.ts.html +580 -0
- package/coverage/lcov-report/src/index.html +251 -0
- package/coverage/lcov-report/src/index.ts.html +2941 -0
- package/coverage/lcov-report/src/logger.ts.html +163 -0
- package/coverage/lcov-report/src/media-chrome/dialog.ts.html +661 -0
- package/coverage/lcov-report/src/media-chrome/index.html +131 -0
- package/coverage/lcov-report/src/media-chrome/time-display.ts.html +295 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/airplay.svg.html +109 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/captions-off.svg.html +100 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/captions-on.svg.html +100 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/fullscreen-enter.svg.html +100 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/fullscreen-exit.svg.html +100 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/index.html +326 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/pause.svg.html +100 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/pip-enter.svg.html +100 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/pip-exit.svg.html +100 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/play.svg.html +100 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/seek-backward.svg.html +124 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/seek-forward.svg.html +124 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/volume-high.svg.html +103 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/volume-low.svg.html +103 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/volume-medium.svg.html +103 -0
- package/coverage/lcov-report/src/media-theme-mux/icons/volume-off.svg.html +103 -0
- package/coverage/lcov-report/src/media-theme-mux/icons.ts.html +184 -0
- package/coverage/lcov-report/src/media-theme-mux/index.html +146 -0
- package/coverage/lcov-report/src/media-theme-mux/media-theme-mux.ts.html +1279 -0
- package/coverage/lcov-report/src/media-theme-mux/styles.css.html +586 -0
- package/coverage/lcov-report/src/styles.css.html +211 -0
- package/coverage/lcov-report/src/template.ts.html +463 -0
- package/coverage/lcov-report/src/utils.ts.html +385 -0
- package/coverage/lcov-report/src/video-api.ts.html +979 -0
- package/coverage/lcov.info +4058 -0
- package/dist/index.cjs.js +1432 -0
- package/dist/index.mjs +709 -0
- package/dist/mux-player.js +1478 -0
- package/dist/mux-player.mjs +1478 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/dialog.d.ts +6 -0
- package/dist/types/errors.d.ts +6 -0
- package/dist/types/helpers.d.ts +26 -0
- package/dist/types/html.d.ts +18 -0
- package/dist/types/index.d.ts +199 -0
- package/dist/types/logger.d.ts +5 -0
- package/dist/types/media-chrome/dialog.d.ts +12 -0
- package/dist/types/media-chrome/time-display.d.ts +9 -0
- package/dist/types/media-theme-mux/icons.d.ts +15 -0
- package/dist/types/media-theme-mux/media-theme-mux.d.ts +29 -0
- package/dist/types/template.d.ts +5 -0
- package/dist/types/utils.d.ts +10 -0
- package/dist/types/video-api.d.ts +64 -0
- package/dist/types-ts3.4/dialog.d.ts +6 -0
- package/dist/types-ts3.4/errors.d.ts +6 -0
- package/dist/types-ts3.4/helpers.d.ts +26 -0
- package/dist/types-ts3.4/html.d.ts +18 -0
- package/dist/types-ts3.4/index.d.ts +180 -0
- package/dist/types-ts3.4/logger.d.ts +5 -0
- package/dist/types-ts3.4/media-chrome/dialog.d.ts +12 -0
- package/dist/types-ts3.4/media-chrome/time-display.d.ts +9 -0
- package/dist/types-ts3.4/media-theme-mux/icons.d.ts +15 -0
- package/dist/types-ts3.4/media-theme-mux/media-theme-mux.d.ts +29 -0
- package/dist/types-ts3.4/template.d.ts +5 -0
- package/dist/types-ts3.4/utils.d.ts +10 -0
- package/dist/types-ts3.4/video-api.d.ts +53 -0
- package/lang/en.json +32 -0
- package/lang/nl.json +31 -0
- package/package.json +107 -0
- package/src/dialog.ts +54 -0
- package/src/errors.ts +163 -0
- package/src/helpers.ts +131 -0
- package/src/html.ts +165 -0
- package/src/index.ts +952 -0
- package/src/logger.ts +26 -0
- package/src/media-chrome/dialog.ts +192 -0
- package/src/media-chrome/time-display.ts +70 -0
- package/src/media-theme-mux/icons/airplay.svg +8 -0
- package/src/media-theme-mux/icons/captions-off.svg +5 -0
- package/src/media-theme-mux/icons/captions-on.svg +5 -0
- package/src/media-theme-mux/icons/fullscreen-enter.svg +5 -0
- package/src/media-theme-mux/icons/fullscreen-exit.svg +5 -0
- package/src/media-theme-mux/icons/pause.svg +5 -0
- package/src/media-theme-mux/icons/pip-enter.svg +5 -0
- package/src/media-theme-mux/icons/pip-exit.svg +5 -0
- package/src/media-theme-mux/icons/play.svg +5 -0
- package/src/media-theme-mux/icons/seek-backward.svg +13 -0
- package/src/media-theme-mux/icons/seek-forward.svg +13 -0
- package/src/media-theme-mux/icons/volume-high.svg +6 -0
- package/src/media-theme-mux/icons/volume-low.svg +6 -0
- package/src/media-theme-mux/icons/volume-medium.svg +6 -0
- package/src/media-theme-mux/icons/volume-off.svg +6 -0
- package/src/media-theme-mux/icons.ts +33 -0
- package/src/media-theme-mux/media-theme-mux.ts +398 -0
- package/src/media-theme-mux/styles.css +167 -0
- package/src/styles.css +42 -0
- package/src/template.ts +126 -0
- package/src/types.d.ts +52 -0
- package/src/utils.ts +100 -0
- package/src/video-api.ts +298 -0
- package/test/errors.test.js +169 -0
- package/test/helpers.test.js +78 -0
- package/test/player.test.js +696 -0
- package/test/template.test.js +70 -0
- package/test/utils.test.js +21 -0
- package/test/web-test-runner.config.mjs +29 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,2941 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/index.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> index.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">73.84% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>703/952</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">79.62% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>86/108</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">66.66% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>54/81</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">73.84% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>703/952</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line medium'></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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
1019
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1020
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1021
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1022
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1023
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1024
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1025
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1026
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1027
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1028
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1029
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1030
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1031
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1032
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1033
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1034
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1035
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1036
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1037
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1038
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1039
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1040
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1041
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1042
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1043
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1044
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1045
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1046
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1047
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1048
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1049
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1050
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1051
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1052
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1053
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1054
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1055
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1056
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1057
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1058
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1059
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1060
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1061
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1062
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1063
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1064
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1065
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1066
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1067
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1068
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1069
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1070
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1071
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1072
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1073
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1074
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1075
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1076
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1077
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1078
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1079
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1080
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1081
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1082
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1083
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1084
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1085
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1086
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1087
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1088
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1089
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1090
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1091
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1092
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1093
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1094
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1095
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1096
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1097
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1098
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1099
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1100
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1101
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1102
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1103
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1104
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1105
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1106
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1107
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1108
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1109
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1110
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1111
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1112
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1113
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1114
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1115
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1116
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1117
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1118
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1119
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1120
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1121
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1122
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1123
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1124
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1125
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1126
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1127
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1128
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1129
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1130
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1131
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1132
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1133
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1134
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1135
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1136
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1137
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1138
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1139
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1140
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1141
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1142
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1143
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1144
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1145
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1146
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1147
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1148
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1149
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1150
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1151
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1152
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1153
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1154
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1155
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1156
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1157
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1158
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1159
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1160
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1161
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1162
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1163
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1164
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1165
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1166
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1167
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1168
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1169
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1170
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1171
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1172
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1173
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1174
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1175
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1176
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1177
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1178
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1179
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1180
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1181
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1182
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1183
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1184
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1185
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1186
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1187
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1188
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1189
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1190
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1191
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1192
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1193
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1194
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1195
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1196
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1197
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1198
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1199
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1200
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1201
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1202
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1203
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1204
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1205
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1206
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1207
|
+
<span class="cline-any cline-no"> </span>
|
|
1208
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1209
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1210
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1211
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1212
|
+
<span class="cline-any cline-no"> </span>
|
|
1213
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1214
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1215
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1216
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1217
|
+
<span class="cline-any cline-no"> </span>
|
|
1218
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1219
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1220
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1221
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1222
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1223
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1224
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1225
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1226
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1227
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1228
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1229
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1230
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1231
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1232
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1233
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1234
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1235
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1236
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1237
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1238
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1239
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1240
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1241
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1242
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1243
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1244
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1245
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1246
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1247
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1248
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1249
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1250
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1251
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1252
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1253
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1254
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1255
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1256
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1257
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1258
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1259
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1260
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1261
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1262
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1263
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1264
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1265
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1266
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1267
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1268
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1269
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1270
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1271
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1272
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1273
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1274
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1275
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1276
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1277
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1278
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1279
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1280
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1281
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1282
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1283
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1284
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1285
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1286
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1287
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1288
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1289
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1290
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1291
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1292
|
+
<span class="cline-any cline-yes">2x</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-yes">2x</span>
|
|
1296
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1297
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1298
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1299
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1300
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1301
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1302
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1303
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1304
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1305
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1306
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1307
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1308
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1309
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1310
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1311
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1312
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1313
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1314
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1315
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1316
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1317
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1318
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1319
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1320
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1321
|
+
<span class="cline-any cline-no"> </span>
|
|
1322
|
+
<span class="cline-any cline-no"> </span>
|
|
1323
|
+
<span class="cline-any cline-no"> </span>
|
|
1324
|
+
<span class="cline-any cline-no"> </span>
|
|
1325
|
+
<span class="cline-any cline-no"> </span>
|
|
1326
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1327
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1328
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1329
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1330
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1331
|
+
<span class="cline-any cline-no"> </span>
|
|
1332
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1333
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1334
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1335
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1336
|
+
<span class="cline-any cline-no"> </span>
|
|
1337
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1338
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1339
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1340
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1341
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1342
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1343
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1344
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1345
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1346
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1347
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1348
|
+
<span class="cline-any cline-no"> </span>
|
|
1349
|
+
<span class="cline-any cline-no"> </span>
|
|
1350
|
+
<span class="cline-any cline-no"> </span>
|
|
1351
|
+
<span class="cline-any cline-no"> </span>
|
|
1352
|
+
<span class="cline-any cline-no"> </span>
|
|
1353
|
+
<span class="cline-any cline-no"> </span>
|
|
1354
|
+
<span class="cline-any cline-no"> </span>
|
|
1355
|
+
<span class="cline-any cline-no"> </span>
|
|
1356
|
+
<span class="cline-any cline-no"> </span>
|
|
1357
|
+
<span class="cline-any cline-no"> </span>
|
|
1358
|
+
<span class="cline-any cline-no"> </span>
|
|
1359
|
+
<span class="cline-any cline-no"> </span>
|
|
1360
|
+
<span class="cline-any cline-no"> </span>
|
|
1361
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1362
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1363
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1364
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1365
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1366
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1367
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1368
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1369
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1370
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1371
|
+
<span class="cline-any cline-no"> </span>
|
|
1372
|
+
<span class="cline-any cline-no"> </span>
|
|
1373
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1374
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1375
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1376
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1377
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1378
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1379
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1380
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1381
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1382
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1383
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1384
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1385
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1386
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1387
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1388
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1389
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1390
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1391
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1392
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1393
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1394
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1395
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1396
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1397
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1398
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1399
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1400
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1401
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1402
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1403
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1404
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1405
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1406
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1407
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1408
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1409
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1410
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1411
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1412
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1413
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1414
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1415
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1416
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1417
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1418
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1419
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1420
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1421
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1422
|
+
<span class="cline-any cline-no"> </span>
|
|
1423
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1424
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1425
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1426
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1427
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1428
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1429
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1430
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1431
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1432
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1433
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1434
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1435
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1436
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1437
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1438
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1439
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1440
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1441
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1442
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1443
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1444
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1445
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1446
|
+
<span class="cline-any cline-no"> </span>
|
|
1447
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1448
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1449
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1450
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1451
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1452
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1453
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1454
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1455
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1456
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1457
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1458
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1459
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1460
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1461
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1462
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1463
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1464
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1465
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1466
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1467
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1468
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1469
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1470
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1471
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1472
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1473
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1474
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1475
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1476
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1477
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1478
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1479
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1480
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1481
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1482
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1483
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1484
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1485
|
+
<span class="cline-any cline-yes">1x</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">2x</span>
|
|
1489
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1490
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1491
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1492
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1493
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1494
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1495
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1496
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1497
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1498
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1499
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1500
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1501
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1502
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1503
|
+
<span class="cline-any cline-no"> </span>
|
|
1504
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1505
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1506
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1507
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1508
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1509
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1510
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1511
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1512
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1513
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1514
|
+
<span class="cline-any cline-no"> </span>
|
|
1515
|
+
<span class="cline-any cline-no"> </span>
|
|
1516
|
+
<span class="cline-any cline-no"> </span>
|
|
1517
|
+
<span class="cline-any cline-no"> </span>
|
|
1518
|
+
<span class="cline-any cline-no"> </span>
|
|
1519
|
+
<span class="cline-any cline-no"> </span>
|
|
1520
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1521
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1522
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1523
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1524
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1525
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1526
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1527
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1528
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1529
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1530
|
+
<span class="cline-any cline-no"> </span>
|
|
1531
|
+
<span class="cline-any cline-no"> </span>
|
|
1532
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1533
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1534
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1535
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1536
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1537
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1538
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1539
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1540
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1541
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1542
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1543
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1544
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1545
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1546
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1547
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1548
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1549
|
+
<span class="cline-any cline-no"> </span>
|
|
1550
|
+
<span class="cline-any cline-no"> </span>
|
|
1551
|
+
<span class="cline-any cline-no"> </span>
|
|
1552
|
+
<span class="cline-any cline-no"> </span>
|
|
1553
|
+
<span class="cline-any cline-no"> </span>
|
|
1554
|
+
<span class="cline-any cline-no"> </span>
|
|
1555
|
+
<span class="cline-any cline-no"> </span>
|
|
1556
|
+
<span class="cline-any cline-no"> </span>
|
|
1557
|
+
<span class="cline-any cline-no"> </span>
|
|
1558
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1559
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1560
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1561
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1562
|
+
<span class="cline-any cline-no"> </span>
|
|
1563
|
+
<span class="cline-any cline-no"> </span>
|
|
1564
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1565
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1566
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1567
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1568
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1569
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1570
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1571
|
+
<span class="cline-any cline-no"> </span>
|
|
1572
|
+
<span class="cline-any cline-no"> </span>
|
|
1573
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1574
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1575
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1576
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1577
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1578
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1579
|
+
<span class="cline-any cline-no"> </span>
|
|
1580
|
+
<span class="cline-any cline-no"> </span>
|
|
1581
|
+
<span class="cline-any cline-no"> </span>
|
|
1582
|
+
<span class="cline-any cline-no"> </span>
|
|
1583
|
+
<span class="cline-any cline-no"> </span>
|
|
1584
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1585
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1586
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1587
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1588
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1589
|
+
<span class="cline-any cline-no"> </span>
|
|
1590
|
+
<span class="cline-any cline-no"> </span>
|
|
1591
|
+
<span class="cline-any cline-no"> </span>
|
|
1592
|
+
<span class="cline-any cline-no"> </span>
|
|
1593
|
+
<span class="cline-any cline-no"> </span>
|
|
1594
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1595
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1596
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1597
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1598
|
+
<span class="cline-any cline-no"> </span>
|
|
1599
|
+
<span class="cline-any cline-no"> </span>
|
|
1600
|
+
<span class="cline-any cline-no"> </span>
|
|
1601
|
+
<span class="cline-any cline-no"> </span>
|
|
1602
|
+
<span class="cline-any cline-no"> </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-yes">2x</span>
|
|
1606
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1607
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1608
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1609
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1610
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1611
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1612
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1613
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1614
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1615
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1616
|
+
<span class="cline-any cline-no"> </span>
|
|
1617
|
+
<span class="cline-any cline-no"> </span>
|
|
1618
|
+
<span class="cline-any cline-no"> </span>
|
|
1619
|
+
<span class="cline-any cline-no"> </span>
|
|
1620
|
+
<span class="cline-any cline-no"> </span>
|
|
1621
|
+
<span class="cline-any cline-no"> </span>
|
|
1622
|
+
<span class="cline-any cline-no"> </span>
|
|
1623
|
+
<span class="cline-any cline-no"> </span>
|
|
1624
|
+
<span class="cline-any cline-no"> </span>
|
|
1625
|
+
<span class="cline-any cline-no"> </span>
|
|
1626
|
+
<span class="cline-any cline-no"> </span>
|
|
1627
|
+
<span class="cline-any cline-no"> </span>
|
|
1628
|
+
<span class="cline-any cline-no"> </span>
|
|
1629
|
+
<span class="cline-any cline-no"> </span>
|
|
1630
|
+
<span class="cline-any cline-no"> </span>
|
|
1631
|
+
<span class="cline-any cline-no"> </span>
|
|
1632
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1633
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1634
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1635
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1636
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1637
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1638
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1639
|
+
<span class="cline-any cline-no"> </span>
|
|
1640
|
+
<span class="cline-any cline-no"> </span>
|
|
1641
|
+
<span class="cline-any cline-no"> </span>
|
|
1642
|
+
<span class="cline-any cline-no"> </span>
|
|
1643
|
+
<span class="cline-any cline-no"> </span>
|
|
1644
|
+
<span class="cline-any cline-no"> </span>
|
|
1645
|
+
<span class="cline-any cline-no"> </span>
|
|
1646
|
+
<span class="cline-any cline-no"> </span>
|
|
1647
|
+
<span class="cline-any cline-no"> </span>
|
|
1648
|
+
<span class="cline-any cline-no"> </span>
|
|
1649
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1650
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1651
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1652
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1653
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1654
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1655
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1656
|
+
<span class="cline-any cline-no"> </span>
|
|
1657
|
+
<span class="cline-any cline-no"> </span>
|
|
1658
|
+
<span class="cline-any cline-no"> </span>
|
|
1659
|
+
<span class="cline-any cline-no"> </span>
|
|
1660
|
+
<span class="cline-any cline-no"> </span>
|
|
1661
|
+
<span class="cline-any cline-no"> </span>
|
|
1662
|
+
<span class="cline-any cline-no"> </span>
|
|
1663
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1664
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1665
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1666
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1667
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1668
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1669
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1670
|
+
<span class="cline-any cline-no"> </span>
|
|
1671
|
+
<span class="cline-any cline-no"> </span>
|
|
1672
|
+
<span class="cline-any cline-no"> </span>
|
|
1673
|
+
<span class="cline-any cline-no"> </span>
|
|
1674
|
+
<span class="cline-any cline-no"> </span>
|
|
1675
|
+
<span class="cline-any cline-no"> </span>
|
|
1676
|
+
<span class="cline-any cline-no"> </span>
|
|
1677
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1678
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1679
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1680
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1681
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1682
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1683
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1684
|
+
<span class="cline-any cline-no"> </span>
|
|
1685
|
+
<span class="cline-any cline-no"> </span>
|
|
1686
|
+
<span class="cline-any cline-no"> </span>
|
|
1687
|
+
<span class="cline-any cline-no"> </span>
|
|
1688
|
+
<span class="cline-any cline-no"> </span>
|
|
1689
|
+
<span class="cline-any cline-no"> </span>
|
|
1690
|
+
<span class="cline-any cline-no"> </span>
|
|
1691
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1692
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1693
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1694
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1695
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1696
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1697
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1698
|
+
<span class="cline-any cline-no"> </span>
|
|
1699
|
+
<span class="cline-any cline-no"> </span>
|
|
1700
|
+
<span class="cline-any cline-no"> </span>
|
|
1701
|
+
<span class="cline-any cline-no"> </span>
|
|
1702
|
+
<span class="cline-any cline-no"> </span>
|
|
1703
|
+
<span class="cline-any cline-no"> </span>
|
|
1704
|
+
<span class="cline-any cline-no"> </span>
|
|
1705
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1706
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1707
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1708
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1709
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1710
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1711
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1712
|
+
<span class="cline-any cline-no"> </span>
|
|
1713
|
+
<span class="cline-any cline-no"> </span>
|
|
1714
|
+
<span class="cline-any cline-no"> </span>
|
|
1715
|
+
<span class="cline-any cline-no"> </span>
|
|
1716
|
+
<span class="cline-any cline-no"> </span>
|
|
1717
|
+
<span class="cline-any cline-no"> </span>
|
|
1718
|
+
<span class="cline-any cline-no"> </span>
|
|
1719
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1720
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1721
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1722
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1723
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1724
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1725
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1726
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1727
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1728
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1729
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1730
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1731
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1732
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1733
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1734
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1735
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1736
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1737
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1738
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1739
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1740
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1741
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1742
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1743
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1744
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1745
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1746
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1747
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1748
|
+
<span class="cline-any cline-no"> </span>
|
|
1749
|
+
<span class="cline-any cline-no"> </span>
|
|
1750
|
+
<span class="cline-any cline-no"> </span>
|
|
1751
|
+
<span class="cline-any cline-no"> </span>
|
|
1752
|
+
<span class="cline-any cline-no"> </span>
|
|
1753
|
+
<span class="cline-any cline-no"> </span>
|
|
1754
|
+
<span class="cline-any cline-no"> </span>
|
|
1755
|
+
<span class="cline-any cline-no"> </span>
|
|
1756
|
+
<span class="cline-any cline-no"> </span>
|
|
1757
|
+
<span class="cline-any cline-no"> </span>
|
|
1758
|
+
<span class="cline-any cline-no"> </span>
|
|
1759
|
+
<span class="cline-any cline-no"> </span>
|
|
1760
|
+
<span class="cline-any cline-no"> </span>
|
|
1761
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1762
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1763
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1764
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1765
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1766
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1767
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1768
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1769
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1770
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1771
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1772
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1773
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1774
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1775
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1776
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1777
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1778
|
+
<span class="cline-any cline-no"> </span>
|
|
1779
|
+
<span class="cline-any cline-no"> </span>
|
|
1780
|
+
<span class="cline-any cline-no"> </span>
|
|
1781
|
+
<span class="cline-any cline-no"> </span>
|
|
1782
|
+
<span class="cline-any cline-no"> </span>
|
|
1783
|
+
<span class="cline-any cline-no"> </span>
|
|
1784
|
+
<span class="cline-any cline-no"> </span>
|
|
1785
|
+
<span class="cline-any cline-no"> </span>
|
|
1786
|
+
<span class="cline-any cline-no"> </span>
|
|
1787
|
+
<span class="cline-any cline-no"> </span>
|
|
1788
|
+
<span class="cline-any cline-no"> </span>
|
|
1789
|
+
<span class="cline-any cline-no"> </span>
|
|
1790
|
+
<span class="cline-any cline-no"> </span>
|
|
1791
|
+
<span class="cline-any cline-no"> </span>
|
|
1792
|
+
<span class="cline-any cline-no"> </span>
|
|
1793
|
+
<span class="cline-any cline-no"> </span>
|
|
1794
|
+
<span class="cline-any cline-no"> </span>
|
|
1795
|
+
<span class="cline-any cline-no"> </span>
|
|
1796
|
+
<span class="cline-any cline-no"> </span>
|
|
1797
|
+
<span class="cline-any cline-no"> </span>
|
|
1798
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1799
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1800
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1801
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1802
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1803
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1804
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1805
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1806
|
+
<span class="cline-any cline-no"> </span>
|
|
1807
|
+
<span class="cline-any cline-no"> </span>
|
|
1808
|
+
<span class="cline-any cline-no"> </span>
|
|
1809
|
+
<span class="cline-any cline-no"> </span>
|
|
1810
|
+
<span class="cline-any cline-no"> </span>
|
|
1811
|
+
<span class="cline-any cline-no"> </span>
|
|
1812
|
+
<span class="cline-any cline-no"> </span>
|
|
1813
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1814
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1815
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1816
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1817
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1818
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1819
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1820
|
+
<span class="cline-any cline-no"> </span>
|
|
1821
|
+
<span class="cline-any cline-no"> </span>
|
|
1822
|
+
<span class="cline-any cline-no"> </span>
|
|
1823
|
+
<span class="cline-any cline-no"> </span>
|
|
1824
|
+
<span class="cline-any cline-no"> </span>
|
|
1825
|
+
<span class="cline-any cline-no"> </span>
|
|
1826
|
+
<span class="cline-any cline-no"> </span>
|
|
1827
|
+
<span class="cline-any cline-no"> </span>
|
|
1828
|
+
<span class="cline-any cline-no"> </span>
|
|
1829
|
+
<span class="cline-any cline-no"> </span>
|
|
1830
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1831
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1832
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1833
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1834
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1835
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1836
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1837
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1838
|
+
<span class="cline-any cline-no"> </span>
|
|
1839
|
+
<span class="cline-any cline-no"> </span>
|
|
1840
|
+
<span class="cline-any cline-no"> </span>
|
|
1841
|
+
<span class="cline-any cline-no"> </span>
|
|
1842
|
+
<span class="cline-any cline-no"> </span>
|
|
1843
|
+
<span class="cline-any cline-no"> </span>
|
|
1844
|
+
<span class="cline-any cline-no"> </span>
|
|
1845
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1846
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1847
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1848
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1849
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1850
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1851
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1852
|
+
<span class="cline-any cline-no"> </span>
|
|
1853
|
+
<span class="cline-any cline-no"> </span>
|
|
1854
|
+
<span class="cline-any cline-no"> </span>
|
|
1855
|
+
<span class="cline-any cline-no"> </span>
|
|
1856
|
+
<span class="cline-any cline-no"> </span>
|
|
1857
|
+
<span class="cline-any cline-no"> </span>
|
|
1858
|
+
<span class="cline-any cline-no"> </span>
|
|
1859
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1860
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1861
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1862
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1863
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1864
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1865
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1866
|
+
<span class="cline-any cline-no"> </span>
|
|
1867
|
+
<span class="cline-any cline-no"> </span>
|
|
1868
|
+
<span class="cline-any cline-no"> </span>
|
|
1869
|
+
<span class="cline-any cline-no"> </span>
|
|
1870
|
+
<span class="cline-any cline-no"> </span>
|
|
1871
|
+
<span class="cline-any cline-no"> </span>
|
|
1872
|
+
<span class="cline-any cline-no"> </span>
|
|
1873
|
+
<span class="cline-any cline-no"> </span>
|
|
1874
|
+
<span class="cline-any cline-no"> </span>
|
|
1875
|
+
<span class="cline-any cline-no"> </span>
|
|
1876
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1877
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1878
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1879
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1880
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1881
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1882
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1883
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1884
|
+
<span class="cline-any cline-no"> </span>
|
|
1885
|
+
<span class="cline-any cline-no"> </span>
|
|
1886
|
+
<span class="cline-any cline-no"> </span>
|
|
1887
|
+
<span class="cline-any cline-no"> </span>
|
|
1888
|
+
<span class="cline-any cline-no"> </span>
|
|
1889
|
+
<span class="cline-any cline-no"> </span>
|
|
1890
|
+
<span class="cline-any cline-no"> </span>
|
|
1891
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1892
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1893
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1894
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1895
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1896
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1897
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1898
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1899
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1900
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1901
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1902
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1903
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1904
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1905
|
+
<span class="cline-any cline-no"> </span>
|
|
1906
|
+
<span class="cline-any cline-no"> </span>
|
|
1907
|
+
<span class="cline-any cline-no"> </span>
|
|
1908
|
+
<span class="cline-any cline-no"> </span>
|
|
1909
|
+
<span class="cline-any cline-no"> </span>
|
|
1910
|
+
<span class="cline-any cline-no"> </span>
|
|
1911
|
+
<span class="cline-any cline-no"> </span>
|
|
1912
|
+
<span class="cline-any cline-no"> </span>
|
|
1913
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1914
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1915
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1916
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1917
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1918
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1919
|
+
<span class="cline-any cline-yes">2x</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-no"> </span>
|
|
1925
|
+
<span class="cline-any cline-no"> </span>
|
|
1926
|
+
<span class="cline-any cline-no"> </span>
|
|
1927
|
+
<span class="cline-any cline-no"> </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-no"> </span>
|
|
1932
|
+
<span class="cline-any cline-no"> </span>
|
|
1933
|
+
<span class="cline-any cline-no"> </span>
|
|
1934
|
+
<span class="cline-any cline-no"> </span>
|
|
1935
|
+
<span class="cline-any cline-no"> </span>
|
|
1936
|
+
<span class="cline-any cline-no"> </span>
|
|
1937
|
+
<span class="cline-any cline-no"> </span>
|
|
1938
|
+
<span class="cline-any cline-no"> </span>
|
|
1939
|
+
<span class="cline-any cline-no"> </span>
|
|
1940
|
+
<span class="cline-any cline-no"> </span>
|
|
1941
|
+
<span class="cline-any cline-no"> </span>
|
|
1942
|
+
<span class="cline-any cline-no"> </span>
|
|
1943
|
+
<span class="cline-any cline-no"> </span>
|
|
1944
|
+
<span class="cline-any cline-no"> </span>
|
|
1945
|
+
<span class="cline-any cline-no"> </span>
|
|
1946
|
+
<span class="cline-any cline-no"> </span>
|
|
1947
|
+
<span class="cline-any cline-no"> </span>
|
|
1948
|
+
<span class="cline-any cline-no"> </span>
|
|
1949
|
+
<span class="cline-any cline-no"> </span>
|
|
1950
|
+
<span class="cline-any cline-no"> </span>
|
|
1951
|
+
<span class="cline-any cline-no"> </span>
|
|
1952
|
+
<span class="cline-any cline-no"> </span>
|
|
1953
|
+
<span class="cline-any cline-no"> </span>
|
|
1954
|
+
<span class="cline-any cline-no"> </span>
|
|
1955
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1956
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1957
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1958
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1959
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1960
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1961
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1962
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1963
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1964
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1965
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1966
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1967
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1968
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1969
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1970
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">// import playback-core here to make sure that the polyfill is loaded
|
|
1971
|
+
import '@mux/playback-core';
|
|
1972
|
+
// @ts-ignore
|
|
1973
|
+
import { MediaController } from 'media-chrome';
|
|
1974
|
+
import MediaThemeMux from './media-theme-mux/media-theme-mux';
|
|
1975
|
+
import MuxVideoElement, { MediaError } from '@mux/mux-video';
|
|
1976
|
+
import { Metadata, StreamTypes } from '@mux/playback-core';
|
|
1977
|
+
import VideoApiElement, { initVideoApi } from './video-api';
|
|
1978
|
+
import {
|
|
1979
|
+
getCcSubTracks,
|
|
1980
|
+
getPlayerVersion,
|
|
1981
|
+
hasVolumeSupportAsync,
|
|
1982
|
+
isInLiveWindow,
|
|
1983
|
+
seekToLive,
|
|
1984
|
+
toPropName,
|
|
1985
|
+
} from './helpers';
|
|
1986
|
+
import { template } from './template';
|
|
1987
|
+
import { render } from './html';
|
|
1988
|
+
import { getErrorLogs } from './errors';
|
|
1989
|
+
import { toNumberOrUndefined, i18n, parseJwt, containsComposedNode } from './utils';
|
|
1990
|
+
import * as logger from './logger';
|
|
1991
|
+
import type { MuxTemplateProps, ErrorEvent } from './types';
|
|
1992
|
+
|
|
1993
|
+
export { MediaError };
|
|
1994
|
+
export type Tokens = {
|
|
1995
|
+
playback?: string;
|
|
1996
|
+
thumbnail?: string;
|
|
1997
|
+
storyboard?: string;
|
|
1998
|
+
};
|
|
1999
|
+
|
|
2000
|
+
type MediaController = Element & { media: HTMLVideoElement };
|
|
2001
|
+
|
|
2002
|
+
const streamTypeValues = Object.values(StreamTypes);
|
|
2003
|
+
|
|
2004
|
+
const SMALL_BREAKPOINT = 700;
|
|
2005
|
+
const XSMALL_BREAKPOINT = 300;
|
|
2006
|
+
const MediaChromeSizes = {
|
|
2007
|
+
LG: 'large',
|
|
2008
|
+
SM: 'small',
|
|
2009
|
+
XS: 'extra-small',
|
|
2010
|
+
};
|
|
2011
|
+
|
|
2012
|
+
function getPlayerSize(el: Element) {
|
|
2013
|
+
const muxPlayerRect = el.getBoundingClientRect();
|
|
2014
|
+
return muxPlayerRect.width < XSMALL_BREAKPOINT
|
|
2015
|
+
? MediaChromeSizes.XS
|
|
2016
|
+
: muxPlayerRect.width < SMALL_BREAKPOINT
|
|
2017
|
+
? MediaChromeSizes.SM
|
|
2018
|
+
: MediaChromeSizes.LG;
|
|
2019
|
+
}
|
|
2020
|
+
|
|
2021
|
+
const VideoAttributes = {
|
|
2022
|
+
SRC: 'src',
|
|
2023
|
+
};
|
|
2024
|
+
|
|
2025
|
+
const MuxVideoAttributes = {
|
|
2026
|
+
ENV_KEY: 'env-key',
|
|
2027
|
+
DEBUG: 'debug',
|
|
2028
|
+
PLAYBACK_ID: 'playback-id',
|
|
2029
|
+
METADATA_URL: 'metadata-url',
|
|
2030
|
+
PREFER_MSE: 'prefer-mse',
|
|
2031
|
+
PLAYER_SOFTWARE_VERSION: 'player-software-version',
|
|
2032
|
+
PLAYER_SOFTWARE_NAME: 'player-software-name',
|
|
2033
|
+
METADATA_VIDEO_ID: 'metadata-video-id',
|
|
2034
|
+
METADATA_VIDEO_TITLE: 'metadata-video-title',
|
|
2035
|
+
METADATA_VIEWER_USER_ID: 'metadata-viewer-user-id',
|
|
2036
|
+
BEACON_COLLECTION_DOMAIN: 'beacon-collection-domain',
|
|
2037
|
+
CUSTOM_DOMAIN: 'custom-domain',
|
|
2038
|
+
TYPE: 'type',
|
|
2039
|
+
STREAM_TYPE: 'stream-type',
|
|
2040
|
+
START_TIME: 'start-time',
|
|
2041
|
+
};
|
|
2042
|
+
|
|
2043
|
+
const PlayerAttributes = {
|
|
2044
|
+
DEFAULT_HIDDEN_CAPTIONS: 'default-hidden-captions',
|
|
2045
|
+
PRIMARY_COLOR: 'primary-color',
|
|
2046
|
+
SECONDARY_COLOR: 'secondary-color',
|
|
2047
|
+
FORWARD_SEEK_OFFSET: 'forward-seek-offset',
|
|
2048
|
+
BACKWARD_SEEK_OFFSET: 'backward-seek-offset',
|
|
2049
|
+
PLAYBACK_TOKEN: 'playback-token',
|
|
2050
|
+
THUMBNAIL_TOKEN: 'thumbnail-token',
|
|
2051
|
+
STORYBOARD_TOKEN: 'storyboard-token',
|
|
2052
|
+
THUMBNAIL_TIME: 'thumbnail-time',
|
|
2053
|
+
AUDIO: 'audio',
|
|
2054
|
+
};
|
|
2055
|
+
|
|
2056
|
+
function getProps(el: MuxPlayerElement, state?: any): MuxTemplateProps {
|
|
2057
|
+
return {
|
|
2058
|
+
// Give priority to playbackId derrived asset URL's if playbackId is set.
|
|
2059
|
+
src: !el.playbackId && el.src,
|
|
2060
|
+
// NOTE: Always use the externally set poster attribute here to guarantee
|
|
2061
|
+
// it's used if/when it's been explicitly set "from the outside"
|
|
2062
|
+
// (See template.ts for additional context) (CJP)
|
|
2063
|
+
poster: el.getAttribute('poster'),
|
|
2064
|
+
thumbnailTime: !el.tokens.thumbnail && el.thumbnailTime,
|
|
2065
|
+
autoplay: el.autoplay,
|
|
2066
|
+
crossOrigin: el.crossOrigin,
|
|
2067
|
+
loop: el.loop,
|
|
2068
|
+
muted: el.muted,
|
|
2069
|
+
paused: el.paused,
|
|
2070
|
+
playsInline: el.playsInline,
|
|
2071
|
+
preload: el.preload,
|
|
2072
|
+
playbackId: el.playbackId,
|
|
2073
|
+
envKey: el.envKey,
|
|
2074
|
+
debug: el.debug,
|
|
2075
|
+
tokens: el.tokens,
|
|
2076
|
+
beaconCollectionDomain: el.beaconCollectionDomain,
|
|
2077
|
+
metadata: el.metadata,
|
|
2078
|
+
playerSoftwareName: el.playerSoftwareName,
|
|
2079
|
+
playerSoftwareVersion: el.playerSoftwareVersion,
|
|
2080
|
+
startTime: el.startTime,
|
|
2081
|
+
preferMse: el.preferMse,
|
|
2082
|
+
audio: el.audio,
|
|
2083
|
+
streamType: el.streamType,
|
|
2084
|
+
primaryColor: el.primaryColor,
|
|
2085
|
+
secondaryColor: el.secondaryColor,
|
|
2086
|
+
forwardSeekOffset: el.forwardSeekOffset,
|
|
2087
|
+
backwardSeekOffset: el.backwardSeekOffset,
|
|
2088
|
+
defaultHiddenCaptions: el.defaultHiddenCaptions,
|
|
2089
|
+
customDomain: el.getAttribute(MuxVideoAttributes.CUSTOM_DOMAIN) ?? undefined,
|
|
2090
|
+
playerSize: getPlayerSize(el.mediaController ?? el),
|
|
2091
|
+
hasCaptions: !!getCcSubTracks(el).length,
|
|
2092
|
+
// NOTE: In order to guarantee all expected metadata props are set "from the outside" when used
|
|
2093
|
+
// and to guarantee they'll all be set *before* the playback id is set, using attr values here (CJP)
|
|
2094
|
+
metadataVideoId: el.getAttribute(MuxVideoAttributes.METADATA_VIDEO_ID),
|
|
2095
|
+
metadataVideoTitle: el.getAttribute(MuxVideoAttributes.METADATA_VIDEO_TITLE),
|
|
2096
|
+
metadataViewerUserId: el.getAttribute(MuxVideoAttributes.METADATA_VIEWER_USER_ID),
|
|
2097
|
+
...state,
|
|
2098
|
+
};
|
|
2099
|
+
}
|
|
2100
|
+
|
|
2101
|
+
const MuxVideoAttributeNames = Object.values(MuxVideoAttributes);
|
|
2102
|
+
const PlayerAttributeNames = Object.values(PlayerAttributes);
|
|
2103
|
+
const playerSoftwareVersion = getPlayerVersion();
|
|
2104
|
+
const playerSoftwareName = 'mux-player';
|
|
2105
|
+
|
|
2106
|
+
const initialState = {
|
|
2107
|
+
dialog: undefined,
|
|
2108
|
+
isDialogOpen: false,
|
|
2109
|
+
inLiveWindow: false,
|
|
2110
|
+
};
|
|
2111
|
+
|
|
2112
|
+
class MuxPlayerElement extends VideoApiElement {
|
|
2113
|
+
#isInit = false;
|
|
2114
|
+
#tokens = {};
|
|
2115
|
+
#userInactive = true;
|
|
2116
|
+
#resizeObserver?: ResizeObserver;
|
|
2117
|
+
#state: Partial<MuxTemplateProps> = {
|
|
2118
|
+
...initialState,
|
|
2119
|
+
supportsAirPlay: false,
|
|
2120
|
+
supportsVolume: false,
|
|
2121
|
+
onCloseErrorDialog: <span class="fstat-no" title="function not covered" >() => this.#setState({ dialog: undefined, isDialogOpen: false }),</span>
|
|
2122
|
+
onInitFocusDialog: (e) => {
|
|
2123
|
+
const isFocusedElementInPlayer = containsComposedNode(this, document.activeElement);
|
|
2124
|
+
if (!isFocusedElementInPlayer) e.preventDefault();
|
|
2125
|
+
},
|
|
2126
|
+
onSeekToLive: () => seekToLive(this),
|
|
2127
|
+
};
|
|
2128
|
+
|
|
2129
|
+
static get observedAttributes() {
|
|
2130
|
+
return [...(VideoApiElement.<span class="branch-0 cbranch-no" title="branch not covered" >observedAttributes ?? []), .</span>..MuxVideoAttributeNames, ...PlayerAttributeNames];
|
|
2131
|
+
}
|
|
2132
|
+
|
|
2133
|
+
constructor() {
|
|
2134
|
+
super();
|
|
2135
|
+
|
|
2136
|
+
this.attachShadow({ mode: 'open' });
|
|
2137
|
+
|
|
2138
|
+
// If the custom element is defined before the <mux-player> HTML is parsed
|
|
2139
|
+
// no attributes will be available in the constructor (construction process).
|
|
2140
|
+
// Wait until initializing attributes in the attributeChangedCallback.
|
|
2141
|
+
// If this element is connected to the DOM, the attributes will be available.
|
|
2142
|
+
if (this.isConnected) {
|
|
2143
|
+
this.#init();
|
|
2144
|
+
}
|
|
2145
|
+
}
|
|
2146
|
+
|
|
2147
|
+
#init() {
|
|
2148
|
+
if (this.#isInit) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
|
|
2149
|
+
this.#isInit = true;
|
|
2150
|
+
|
|
2151
|
+
// The next line triggers the first render of the template.
|
|
2152
|
+
this.#setState({ playerSize: getPlayerSize(this) });
|
|
2153
|
+
|
|
2154
|
+
// Fixes a bug in React where mux-player's CE children were not upgraded yet.
|
|
2155
|
+
// These lines ensure the rendered mux-video and media-controller are upgraded,
|
|
2156
|
+
// even before they are connected to the main document.
|
|
2157
|
+
customElements.upgrade(this.theme as Node);
|
|
2158
|
+
if (!(this.theme instanceof MediaThemeMux)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2159
|
+
<span class="cstat-no" title="statement not covered" > logger.error('<media-theme-mux> failed to upgrade!');</span>
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2162
|
+
customElements.upgrade(this.media as Node);
|
|
2163
|
+
if (!(this.media instanceof MuxVideoElement)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2164
|
+
<span class="cstat-no" title="statement not covered" > logger.error('<mux-video> failed to upgrade!');</span>
|
|
2165
|
+
}
|
|
2166
|
+
|
|
2167
|
+
customElements.upgrade(this.mediaController as Node);
|
|
2168
|
+
if (!(this.mediaController instanceof MediaController)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2169
|
+
<span class="cstat-no" title="statement not covered" > logger.error('<media-controller> failed to upgrade!');</span>
|
|
2170
|
+
}
|
|
2171
|
+
|
|
2172
|
+
initVideoApi(this);
|
|
2173
|
+
|
|
2174
|
+
/**
|
|
2175
|
+
* @todo determine sensible defaults for preloading buffer
|
|
2176
|
+
* @see https://github.com/muxinc/elements/issues/51
|
|
2177
|
+
*/
|
|
2178
|
+
// if (this.media?._hls) {
|
|
2179
|
+
// // Temporarily here to load less segments on page load, remove later!!!!
|
|
2180
|
+
// this.media._hls.config.maxMaxBufferLength = 2;
|
|
2181
|
+
// }
|
|
2182
|
+
|
|
2183
|
+
this.#setUpErrors();
|
|
2184
|
+
this.#setUpCaptionsButton();
|
|
2185
|
+
this.#setUpAirplayButton();
|
|
2186
|
+
this.#setUpVolumeRange();
|
|
2187
|
+
this.#monitorLiveWindow();
|
|
2188
|
+
this.#userInactive = this.mediaController?.hasAttribute(<span class="branch-0 cbranch-no" title="branch not covered" >'user-inactive') ?? true;</span>
|
|
2189
|
+
this.#setUpCaptionsMovement();
|
|
2190
|
+
}
|
|
2191
|
+
|
|
2192
|
+
get theme(): Element | null | undefined {
|
|
2193
|
+
return Array.from(this.shadowRoot?.<span class="branch-0 cbranch-no" title="branch not covered" >children ?? []).f</span>ind(({ localName }) => localName.startsWith('media-theme-'));
|
|
2194
|
+
}
|
|
2195
|
+
|
|
2196
|
+
get mediaController(): MediaController | null | undefined {
|
|
2197
|
+
return this.theme?.shadowRoot?.querySelector('media-controller');
|
|
2198
|
+
}
|
|
2199
|
+
|
|
2200
|
+
connectedCallback() {
|
|
2201
|
+
this.#renderChrome();
|
|
2202
|
+
this.#initResizing();
|
|
2203
|
+
}
|
|
2204
|
+
|
|
2205
|
+
disconnectedCallback() {
|
|
2206
|
+
this.#deinitResizing();
|
|
2207
|
+
}
|
|
2208
|
+
|
|
2209
|
+
#setState(newState: Record<string, any>) {
|
|
2210
|
+
Object.assign(this.#state, newState);
|
|
2211
|
+
this.#render();
|
|
2212
|
+
}
|
|
2213
|
+
|
|
2214
|
+
#render(props: Record<string, any> = {}) {
|
|
2215
|
+
render(template(getProps(this, { ...this.#state, ...props })), this.shadowRoot as Node);
|
|
2216
|
+
}
|
|
2217
|
+
|
|
2218
|
+
#renderChrome() {
|
|
2219
|
+
if (this.#state.playerSize != getPlayerSize(this.<span class="branch-0 cbranch-no" title="branch not covered" >mediaController ?? this)) {</span>
|
|
2220
|
+
this.#setState({ playerSize: getPlayerSize(this.<span class="branch-0 cbranch-no" title="branch not covered" >mediaController ?? this) });</span>
|
|
2221
|
+
}
|
|
2222
|
+
}
|
|
2223
|
+
|
|
2224
|
+
#initResizing() {
|
|
2225
|
+
this.#resizeObserver = new ResizeObserver(() => this.#renderChrome());
|
|
2226
|
+
this.#resizeObserver.observe(this.<span class="branch-0 cbranch-no" title="branch not covered" >mediaController ?? this);</span>
|
|
2227
|
+
}
|
|
2228
|
+
|
|
2229
|
+
#deinitResizing() {
|
|
2230
|
+
this.#resizeObserver?.disconnect();
|
|
2231
|
+
}
|
|
2232
|
+
|
|
2233
|
+
#monitorLiveWindow() {
|
|
2234
|
+
this.mediaController?.addEventListener('mediaplayrequest', (event) => {
|
|
2235
|
+
if (
|
|
2236
|
+
(event.target as Element)?.localName === 'media-play-button' &&
|
|
2237
|
+
this.streamType &&
|
|
2238
|
+
[StreamTypes.LIVE, StreamTypes.LL_LIVE, StreamTypes.DVR, StreamTypes.LL_DVR].includes(this.streamType as any)
|
|
2239
|
+
) {
|
|
2240
|
+
// playback core should handle the seek to live on first play
|
|
2241
|
+
if (this.hasPlayed) {
|
|
2242
|
+
seekToLive(this);
|
|
2243
|
+
}
|
|
2244
|
+
}
|
|
2245
|
+
});
|
|
2246
|
+
|
|
2247
|
+
const updateLiveWindow = () => {
|
|
2248
|
+
const nextInLiveWindow = isInLiveWindow(this);
|
|
2249
|
+
const prevInLiveWindow = this.#state.inLiveWindow;
|
|
2250
|
+
if (nextInLiveWindow !== prevInLiveWindow) {
|
|
2251
|
+
this.#setState({ inLiveWindow: nextInLiveWindow });
|
|
2252
|
+
this.dispatchEvent(
|
|
2253
|
+
new CustomEvent('inlivewindowchange', { composed: true, bubbles: true, detail: this.inLiveWindow })
|
|
2254
|
+
);
|
|
2255
|
+
}
|
|
2256
|
+
};
|
|
2257
|
+
this.media?.addEventListener('progress', updateLiveWindow);
|
|
2258
|
+
this.media?.addEventListener('waiting', updateLiveWindow);
|
|
2259
|
+
this.media?.addEventListener('timeupdate', updateLiveWindow);
|
|
2260
|
+
this.media?.addEventListener('emptied', updateLiveWindow);
|
|
2261
|
+
}
|
|
2262
|
+
|
|
2263
|
+
#setUpErrors() {
|
|
2264
|
+
const onError = (event: Event) => {
|
|
2265
|
+
let { detail: error }: { detail: any } = event as CustomEvent;
|
|
2266
|
+
|
|
2267
|
+
if (!(error instanceof MediaError)) {
|
|
2268
|
+
error = new MediaError(error.message, error.code, error.fatal);
|
|
2269
|
+
}
|
|
2270
|
+
|
|
2271
|
+
// Don't show an error dialog if it's not fatal.
|
|
2272
|
+
if (!error?.fatal) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2273
|
+
<span class="cstat-no" title="statement not covered" > logger.warn(error);</span>
|
|
2274
|
+
<span class="cstat-no" title="statement not covered" > if (error.data) {</span>
|
|
2275
|
+
<span class="cstat-no" title="statement not covered" > logger.warn(`${error.name} data:`, error.data);</span>
|
|
2276
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2277
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2278
|
+
}
|
|
2279
|
+
|
|
2280
|
+
const { dialog, devlog } = getErrorLogs(error, !window.navigator.onLine, this.playbackId, this.playbackToken);
|
|
2281
|
+
|
|
2282
|
+
if (devlog.message) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2283
|
+
<span class="cstat-no" title="statement not covered" > logger.devlog(devlog);</span>
|
|
2284
|
+
}
|
|
2285
|
+
|
|
2286
|
+
logger.error(error);
|
|
2287
|
+
if (error.data) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2288
|
+
<span class="cstat-no" title="statement not covered" > logger.error(`${error.name} data:`, error.data);</span>
|
|
2289
|
+
}
|
|
2290
|
+
|
|
2291
|
+
this.#setState({ isDialogOpen: true, dialog });
|
|
2292
|
+
};
|
|
2293
|
+
|
|
2294
|
+
// Keep this event listener on mux-player instead of calling onError directly
|
|
2295
|
+
// from video.onerror. This allows us to simulate errors from the outside.
|
|
2296
|
+
this.addEventListener('error', onError);
|
|
2297
|
+
|
|
2298
|
+
if (this.media) {
|
|
2299
|
+
this.media.errorTranslator = <span class="fstat-no" title="function not covered" >(errorEvent: ErrorEvent = {}) => {</span>
|
|
2300
|
+
<span class="cstat-no" title="statement not covered" > if (!this.media?.error) return errorEvent;</span>
|
|
2301
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2302
|
+
<span class="cstat-no" title="statement not covered" > const { devlog } = getErrorLogs(</span>
|
|
2303
|
+
<span class="cstat-no" title="statement not covered" > this.media?.error,</span>
|
|
2304
|
+
<span class="cstat-no" title="statement not covered" > !window.navigator.onLine,</span>
|
|
2305
|
+
<span class="cstat-no" title="statement not covered" > this.playbackId,</span>
|
|
2306
|
+
<span class="cstat-no" title="statement not covered" > this.playbackToken,</span>
|
|
2307
|
+
<span class="cstat-no" title="statement not covered" > false</span>
|
|
2308
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
2309
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2310
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
2311
|
+
<span class="cstat-no" title="statement not covered" > player_error_code: this.media?.error.code,</span>
|
|
2312
|
+
<span class="cstat-no" title="statement not covered" > player_error_message: devlog.message ? String(devlog.message) : errorEvent.player_error_message,</span>
|
|
2313
|
+
};
|
|
2314
|
+
};
|
|
2315
|
+
}
|
|
2316
|
+
|
|
2317
|
+
this.media?.addEventListener('error', (event: Event) => {
|
|
2318
|
+
let { detail: error }: { detail: any } = event as CustomEvent;
|
|
2319
|
+
|
|
2320
|
+
// If it is a hls.js error event there will be an error object in the event.
|
|
2321
|
+
// If it is a native video error event there will be no error object.
|
|
2322
|
+
if (!error) {
|
|
2323
|
+
<span class="cstat-no" title="statement not covered" > const { message, code } = this.media?.error ?? {};</span>
|
|
2324
|
+
<span class="cstat-no" title="statement not covered" > error = new MediaError(message, code);</span>
|
|
2325
|
+
}
|
|
2326
|
+
|
|
2327
|
+
// Don't fire a mux-player error event for non-fatal errors.
|
|
2328
|
+
if (!error?.fatal) return;
|
|
2329
|
+
|
|
2330
|
+
this.dispatchEvent(
|
|
2331
|
+
new CustomEvent('error', {
|
|
2332
|
+
detail: error,
|
|
2333
|
+
})
|
|
2334
|
+
);
|
|
2335
|
+
});
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2338
|
+
#setUpCaptionsButton() {
|
|
2339
|
+
const onTrackCountChange = () => this.#render();
|
|
2340
|
+
this.media?.textTracks?.addEventListener('addtrack', onTrackCountChange);
|
|
2341
|
+
this.media?.textTracks?.addEventListener('removetrack', onTrackCountChange);
|
|
2342
|
+
}
|
|
2343
|
+
|
|
2344
|
+
#setUpCaptionsMovement() {
|
|
2345
|
+
type Maybe<T> = T | null | undefined;
|
|
2346
|
+
|
|
2347
|
+
const mc: Maybe<MediaController> = this.mediaController;
|
|
2348
|
+
|
|
2349
|
+
// Any Safari
|
|
2350
|
+
const isSafari = /.*Version\/.*Safari\/.*/.test(navigator.userAgent);
|
|
2351
|
+
const isIphone = /.*iPhone.*/.test(navigator.userAgent);
|
|
2352
|
+
|
|
2353
|
+
// ignore iphones
|
|
2354
|
+
if (isIphone) <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
|
|
2355
|
+
|
|
2356
|
+
let selectedTrack: TextTrack;
|
|
2357
|
+
const cuesmap = new WeakMap();
|
|
2358
|
+
|
|
2359
|
+
const shouldSkipLineToggle = () => {
|
|
2360
|
+
// skip line toggle when:
|
|
2361
|
+
// - streamType is live, unless secondary color is set or player size is too small
|
|
2362
|
+
// - native fullscreen on iPhones
|
|
2363
|
+
return (
|
|
2364
|
+
this.streamType &&
|
|
2365
|
+
[StreamTypes.LIVE, StreamTypes.LL_LIVE].includes(this.streamType as any) &&
|
|
2366
|
+
!this.secondaryColor &&
|
|
2367
|
+
this.offsetWidth >= 800
|
|
2368
|
+
);
|
|
2369
|
+
};
|
|
2370
|
+
|
|
2371
|
+
// toggles activeCues for a particular track depending on whether the user is active or not
|
|
2372
|
+
const toggleLines = (track: TextTrack, userInactive: boolean) => {
|
|
2373
|
+
if (shouldSkipLineToggle()) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2374
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2375
|
+
}
|
|
2376
|
+
|
|
2377
|
+
const cues = Array.from((track && track.activeCues) || []) as VTTCue[];
|
|
2378
|
+
|
|
2379
|
+
cues.forEach((cue) => {
|
|
2380
|
+
// ignore cues that are
|
|
2381
|
+
// - positioned vertically via percentage.
|
|
2382
|
+
// - cues that are not at the bottom
|
|
2383
|
+
// - line is less than -5
|
|
2384
|
+
// - line is between 0 and 10
|
|
2385
|
+
if (!cue.snapToLines || cue.line < -5 || (cue.line >= 0 && cue.line < 10)) {
|
|
2386
|
+
return;
|
|
2387
|
+
}
|
|
2388
|
+
|
|
2389
|
+
// if the user is active or if the player is paused, the captions should be moved up
|
|
2390
|
+
if (!userInactive || this.paused) {
|
|
2391
|
+
// for cues that have more than one line, we want to push the cue further up
|
|
2392
|
+
const lines = cue.text.split('\n').length;
|
|
2393
|
+
// start at -3 to account for thumbnails as well.
|
|
2394
|
+
// default safari styles are taller than other browsers
|
|
2395
|
+
let offset = isSafari ? -2 : -3;
|
|
2396
|
+
|
|
2397
|
+
if (this.streamType && [StreamTypes.LIVE, StreamTypes.LL_LIVE].includes(this.streamType as any)) {
|
|
2398
|
+
<span class="cstat-no" title="statement not covered" > offset = isSafari ? -1 : -2;</span>
|
|
2399
|
+
}
|
|
2400
|
+
|
|
2401
|
+
const setTo = offset - lines;
|
|
2402
|
+
|
|
2403
|
+
// if the line is already set to -4, we don't want to update it again
|
|
2404
|
+
// this can happen in the same tick on chrome and safari which fire a cuechange
|
|
2405
|
+
// event when the line property is changed to a different value.
|
|
2406
|
+
if (cue.line === setTo) {
|
|
2407
|
+
return;
|
|
2408
|
+
}
|
|
2409
|
+
|
|
2410
|
+
if (!cuesmap.has(cue)) {
|
|
2411
|
+
cuesmap.set(cue, cue.line);
|
|
2412
|
+
}
|
|
2413
|
+
|
|
2414
|
+
// we have to set line to 0 first due to a chrome bug https://crbug.com/1308892
|
|
2415
|
+
cue.line = 0;
|
|
2416
|
+
cue.line = setTo;
|
|
2417
|
+
} else {
|
|
2418
|
+
setTimeout(() => {
|
|
2419
|
+
cue.line = cuesmap.get(cue) || 'auto';
|
|
2420
|
+
}, 500);
|
|
2421
|
+
}
|
|
2422
|
+
});
|
|
2423
|
+
};
|
|
2424
|
+
|
|
2425
|
+
// this is necessary so that if a cue becomes active while the user is active, we still position it above the control bar
|
|
2426
|
+
const cuechangeHandler = () => {
|
|
2427
|
+
toggleLines(selectedTrack, mc?.hasAttribute('user-inactive') ?? false);
|
|
2428
|
+
};
|
|
2429
|
+
|
|
2430
|
+
const selectTrack = () => {
|
|
2431
|
+
const tracks = Array.from(mc?.media?.<span class="branch-0 cbranch-no" title="branch not covered" >textTracks || []) as TextTrack[];</span>
|
|
2432
|
+
const newSelectedTrack = tracks.filter(
|
|
2433
|
+
(t) => ['subtitles', 'captions'].includes(t.kind) && t.mode === 'showing'
|
|
2434
|
+
)[0] as TextTrack;
|
|
2435
|
+
|
|
2436
|
+
if (newSelectedTrack !== selectedTrack) {
|
|
2437
|
+
selectedTrack?.removeEventListener('cuechange', cuechangeHandler);
|
|
2438
|
+
}
|
|
2439
|
+
|
|
2440
|
+
selectedTrack = newSelectedTrack;
|
|
2441
|
+
selectedTrack?.addEventListener('cuechange', cuechangeHandler);
|
|
2442
|
+
// it's possible there are currently active cues on the new track
|
|
2443
|
+
toggleLines(selectedTrack, this.#userInactive);
|
|
2444
|
+
};
|
|
2445
|
+
|
|
2446
|
+
selectTrack();
|
|
2447
|
+
// update the selected track as necessary
|
|
2448
|
+
mc?.media?.textTracks.addEventListener('change', selectTrack);
|
|
2449
|
+
mc?.media?.textTracks.addEventListener('addtrack', selectTrack);
|
|
2450
|
+
|
|
2451
|
+
mc?.addEventListener('userinactivechange', () => {
|
|
2452
|
+
const newUserInactive = mc?.hasAttribute('user-inactive');
|
|
2453
|
+
|
|
2454
|
+
if (this.#userInactive === newUserInactive) {
|
|
2455
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2456
|
+
}
|
|
2457
|
+
|
|
2458
|
+
this.#userInactive = newUserInactive;
|
|
2459
|
+
|
|
2460
|
+
toggleLines(selectedTrack, this.#userInactive);
|
|
2461
|
+
});
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2464
|
+
#setUpAirplayButton() {
|
|
2465
|
+
if (!!(globalThis as any).WebKitPlaybackTargetAvailabilityEvent) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2466
|
+
<span class="cstat-no" title="statement not covered" > const onPlaybackTargetAvailability = <span class="fstat-no" title="function not covered" >(evt: any) => {</span></span>
|
|
2467
|
+
<span class="cstat-no" title="statement not covered" > const supportsAirPlay = evt.availability === 'available';</span>
|
|
2468
|
+
<span class="cstat-no" title="statement not covered" > this.#setState({ supportsAirPlay });</span>
|
|
2469
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
2470
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2471
|
+
<span class="cstat-no" title="statement not covered" > this.media?.addEventListener('webkitplaybacktargetavailabilitychanged', onPlaybackTargetAvailability);</span>
|
|
2472
|
+
}
|
|
2473
|
+
}
|
|
2474
|
+
|
|
2475
|
+
async #setUpVolumeRange() {
|
|
2476
|
+
const supportsVolume = await hasVolumeSupportAsync();
|
|
2477
|
+
this.#setState({ supportsVolume });
|
|
2478
|
+
}
|
|
2479
|
+
|
|
2480
|
+
attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string) {
|
|
2481
|
+
if (!this.#isInit) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2482
|
+
<span class="cstat-no" title="statement not covered" > // Initialize right after construction when the attributes become available.</span>
|
|
2483
|
+
<span class="cstat-no" title="statement not covered" > this.#init();</span>
|
|
2484
|
+
}
|
|
2485
|
+
|
|
2486
|
+
super.attributeChangedCallback(attrName, oldValue, newValue);
|
|
2487
|
+
|
|
2488
|
+
const shouldClearState = [
|
|
2489
|
+
MuxVideoAttributes.PLAYBACK_ID,
|
|
2490
|
+
VideoAttributes.SRC,
|
|
2491
|
+
PlayerAttributes.PLAYBACK_TOKEN,
|
|
2492
|
+
].includes(attrName);
|
|
2493
|
+
|
|
2494
|
+
if (shouldClearState && oldValue !== newValue) {
|
|
2495
|
+
this.#state = { ...this.#state, ...initialState };
|
|
2496
|
+
}
|
|
2497
|
+
|
|
2498
|
+
this.#render({ [toPropName(attrName)]: newValue });
|
|
2499
|
+
|
|
2500
|
+
switch (<span class="branch-0 cbranch-no" title="branch not covered" >attrName) {</span>
|
|
2501
|
+
<span class="cstat-no" title="statement not covered" > case PlayerAttributes.THUMBNAIL_TIME: {</span>
|
|
2502
|
+
<span class="cstat-no" title="statement not covered" > if (newValue != null && this.tokens.thumbnail) {</span>
|
|
2503
|
+
<span class="cstat-no" title="statement not covered" > logger.warn(</span>
|
|
2504
|
+
<span class="cstat-no" title="statement not covered" > i18n(`Use of thumbnail-time with thumbnail-token is currently unsupported. Ignore thumbnail-time.`).format(</span>
|
|
2505
|
+
<span class="cstat-no" title="statement not covered" > {}</span>
|
|
2506
|
+
<span class="cstat-no" title="statement not covered" > )</span>
|
|
2507
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
2508
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2509
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2510
|
+
}
|
|
2511
|
+
case PlayerAttributes.THUMBNAIL_TOKEN: {
|
|
2512
|
+
const { aud } = parseJwt(newValue);
|
|
2513
|
+
if (newValue && aud !== 't') {
|
|
2514
|
+
<span class="cstat-no" title="statement not covered" > logger.warn(</span>
|
|
2515
|
+
<span class="cstat-no" title="statement not covered" > i18n(`The provided thumbnail-token should have audience value 't' instead of '{aud}'.`).format({ aud })</span>
|
|
2516
|
+
);
|
|
2517
|
+
}
|
|
2518
|
+
break;
|
|
2519
|
+
}
|
|
2520
|
+
case PlayerAttributes.STORYBOARD_TOKEN: {
|
|
2521
|
+
const { aud } = parseJwt(newValue);
|
|
2522
|
+
if (newValue && aud !== 's') {
|
|
2523
|
+
<span class="cstat-no" title="statement not covered" > logger.warn(</span>
|
|
2524
|
+
<span class="cstat-no" title="statement not covered" > i18n(`The provided storyboard-token should have audience value 's' instead of '{aud}'.`).format({ aud })</span>
|
|
2525
|
+
);
|
|
2526
|
+
}
|
|
2527
|
+
break;
|
|
2528
|
+
}
|
|
2529
|
+
case MuxVideoAttributes.PLAYBACK_ID: {
|
|
2530
|
+
if (newValue.includes('?token')) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2531
|
+
<span class="cstat-no" title="statement not covered" > logger.error(</span>
|
|
2532
|
+
<span class="cstat-no" title="statement not covered" > i18n(</span>
|
|
2533
|
+
<span class="cstat-no" title="statement not covered" > 'The specificed playback ID {playbackId} contains a token which must be provided via the playback-token attribute.'</span>
|
|
2534
|
+
<span class="cstat-no" title="statement not covered" > ).format({</span>
|
|
2535
|
+
<span class="cstat-no" title="statement not covered" > playbackId: newValue,</span>
|
|
2536
|
+
})
|
|
2537
|
+
);
|
|
2538
|
+
}
|
|
2539
|
+
|
|
2540
|
+
if (!this.streamType) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2541
|
+
<span class="cstat-no" title="statement not covered" > logger.devlog({</span>
|
|
2542
|
+
<span class="cstat-no" title="statement not covered" > file: 'invalid-stream-type.md',</span>
|
|
2543
|
+
<span class="cstat-no" title="statement not covered" > message: String(</span>
|
|
2544
|
+
<span class="cstat-no" title="statement not covered" > i18n(</span>
|
|
2545
|
+
<span class="cstat-no" title="statement not covered" > `No stream-type value supplied. Defaulting to \`on-demand\`. Please provide stream-type as either: \`on-demand\`, \`live\` or \`ll-live\``</span>
|
|
2546
|
+
)
|
|
2547
|
+
),
|
|
2548
|
+
});
|
|
2549
|
+
} else if (this.streamType != null && !streamTypeValues.includes(this.streamType as any)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
2550
|
+
<span class="cstat-no" title="statement not covered" > logger.devlog({</span>
|
|
2551
|
+
<span class="cstat-no" title="statement not covered" > file: 'invalid-stream-type.md',</span>
|
|
2552
|
+
<span class="cstat-no" title="statement not covered" > message: i18n(</span>
|
|
2553
|
+
<span class="cstat-no" title="statement not covered" > `Invalid stream-type value supplied: \`{streamType}\`. Please provide stream-type as either: \`on-demand\`, \`live\` or \`ll-live\``</span>
|
|
2554
|
+
<span class="cstat-no" title="statement not covered" > ).format({ streamType: this.streamType }),</span>
|
|
2555
|
+
});
|
|
2556
|
+
}
|
|
2557
|
+
break;
|
|
2558
|
+
}
|
|
2559
|
+
}
|
|
2560
|
+
}
|
|
2561
|
+
|
|
2562
|
+
get hasPlayed() {
|
|
2563
|
+
return this.mediaController?.hasAttribute('media-has-played') ?? false;
|
|
2564
|
+
}
|
|
2565
|
+
|
|
2566
|
+
get inLiveWindow() {
|
|
2567
|
+
return this.#state.<span class="fstat-no" title="function not covered" >inLiveWindow;</span>
|
|
2568
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2569
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2570
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2571
|
+
<span class="cstat-no" title="statement not covered" > * @deprecated please use ._hls instead</span>
|
|
2572
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2573
|
+
<span class="cstat-no" title="statement not covered" > get hls() {</span>
|
|
2574
|
+
<span class="cstat-no" title="statement not covered" > logger.warn('<mux-player>.hls is deprecated, please use ._hls instead');</span>
|
|
2575
|
+
<span class="cstat-no" title="statement not covered" > return this.<span class="fstat-no" title="function not covered" >_hls;</span></span>
|
|
2576
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2577
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2578
|
+
<span class="cstat-no" title="statement not covered" > get _hls() {</span>
|
|
2579
|
+
<span class="cstat-no" title="statement not covered" > return this.media?.<span class="fstat-no" title="function not covered" >_hls;</span></span>
|
|
2580
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2581
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2582
|
+
<span class="cstat-no" title="statement not covered" > get mux() {</span>
|
|
2583
|
+
<span class="cstat-no" title="statement not covered" > return this.media?.mux;</span>
|
|
2584
|
+
}
|
|
2585
|
+
|
|
2586
|
+
/**
|
|
2587
|
+
* Get the thumbnailTime offset used for the poster image.
|
|
2588
|
+
*/
|
|
2589
|
+
get audio() {
|
|
2590
|
+
return this.hasAttribute(PlayerAttributes.<span class="fstat-no" title="function not covered" >AUDIO);</span>
|
|
2591
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2592
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2593
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2594
|
+
<span class="cstat-no" title="statement not covered" > * Set the thumbnailTime offset used for the poster image.</span>
|
|
2595
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2596
|
+
<span class="cstat-no" title="statement not covered" > set audio(val: boolean) {</span>
|
|
2597
|
+
<span class="cstat-no" title="statement not covered" > if (!val) {</span>
|
|
2598
|
+
<span class="cstat-no" title="statement not covered" > this.removeAttribute(PlayerAttributes.AUDIO);</span>
|
|
2599
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2600
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.AUDIO, '');</span>
|
|
2601
|
+
}
|
|
2602
|
+
|
|
2603
|
+
/**
|
|
2604
|
+
* Get the thumbnailTime offset used for the poster image.
|
|
2605
|
+
*/
|
|
2606
|
+
get thumbnailTime() {
|
|
2607
|
+
return toNumberOrUndefined(this.getAttribute(PlayerAttributes.<span class="fstat-no" title="function not covered" >THUMBNAIL_TIME));</span>
|
|
2608
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2609
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2610
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2611
|
+
<span class="cstat-no" title="statement not covered" > * Set the thumbnailTime offset used for the poster image.</span>
|
|
2612
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2613
|
+
<span class="cstat-no" title="statement not covered" > set thumbnailTime(val: number | undefined) {</span>
|
|
2614
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.THUMBNAIL_TIME, `${val}`);</span>
|
|
2615
|
+
}
|
|
2616
|
+
|
|
2617
|
+
/**
|
|
2618
|
+
* Get the primary color used by the player.
|
|
2619
|
+
*/
|
|
2620
|
+
get primaryColor() {
|
|
2621
|
+
return this.getAttribute(PlayerAttributes.PRIMARY_COLOR) ?? <span class="fstat-no" title="function not covered" >undefined;</span>
|
|
2622
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2623
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2624
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2625
|
+
<span class="cstat-no" title="statement not covered" > * Set the primary color used by the player.</span>
|
|
2626
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2627
|
+
<span class="cstat-no" title="statement not covered" > set primaryColor(val: string | undefined) {</span>
|
|
2628
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.PRIMARY_COLOR, `${val}`);</span>
|
|
2629
|
+
}
|
|
2630
|
+
|
|
2631
|
+
/**
|
|
2632
|
+
* Get the secondary color used by the player.
|
|
2633
|
+
*/
|
|
2634
|
+
get secondaryColor() {
|
|
2635
|
+
return this.getAttribute(PlayerAttributes.SECONDARY_COLOR) ?? <span class="fstat-no" title="function not covered" >undefined;</span>
|
|
2636
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2637
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2638
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2639
|
+
<span class="cstat-no" title="statement not covered" > * Set the secondary color used by the player.</span>
|
|
2640
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2641
|
+
<span class="cstat-no" title="statement not covered" > set secondaryColor(val: string | undefined) {</span>
|
|
2642
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.SECONDARY_COLOR, `${val}`);</span>
|
|
2643
|
+
}
|
|
2644
|
+
|
|
2645
|
+
/**
|
|
2646
|
+
* Get the offset applied to the forward seek button.
|
|
2647
|
+
*/
|
|
2648
|
+
get forwardSeekOffset() {
|
|
2649
|
+
return toNumberOrUndefined(this.getAttribute(PlayerAttributes.FORWARD_SEEK_OFFSET)) ?? <span class="fstat-no" title="function not covered" >10;</span>
|
|
2650
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2651
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2652
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2653
|
+
<span class="cstat-no" title="statement not covered" > * Set the offset applied to the forward seek button.</span>
|
|
2654
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2655
|
+
<span class="cstat-no" title="statement not covered" > set forwardSeekOffset(val: number | undefined) {</span>
|
|
2656
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.FORWARD_SEEK_OFFSET, `${val}`);</span>
|
|
2657
|
+
}
|
|
2658
|
+
|
|
2659
|
+
/**
|
|
2660
|
+
* Get the offset applied to the backward seek button.
|
|
2661
|
+
*/
|
|
2662
|
+
get backwardSeekOffset() {
|
|
2663
|
+
return toNumberOrUndefined(this.getAttribute(PlayerAttributes.BACKWARD_SEEK_OFFSET)) ?? <span class="fstat-no" title="function not covered" >10;</span>
|
|
2664
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2665
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2666
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2667
|
+
<span class="cstat-no" title="statement not covered" > * Set the offset applied to the forward seek button.</span>
|
|
2668
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2669
|
+
<span class="cstat-no" title="statement not covered" > set backwardSeekOffset(val: number | undefined) {</span>
|
|
2670
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.BACKWARD_SEEK_OFFSET, `${val}`);</span>
|
|
2671
|
+
}
|
|
2672
|
+
|
|
2673
|
+
/**
|
|
2674
|
+
* Get the boolean value of default hidden captions.
|
|
2675
|
+
* By default returns false so captions are enabled on initial load.
|
|
2676
|
+
*/
|
|
2677
|
+
get defaultHiddenCaptions() {
|
|
2678
|
+
return this.hasAttribute(PlayerAttributes.DEFAULT_HIDDEN_CAPTIONS);
|
|
2679
|
+
}
|
|
2680
|
+
|
|
2681
|
+
/**
|
|
2682
|
+
* Get the player software name. Used by Mux Data.
|
|
2683
|
+
*/
|
|
2684
|
+
get playerSoftwareName() {
|
|
2685
|
+
return this.getAttribute(MuxVideoAttributes.PLAYER_SOFTWARE_NAME) ?? playerSoftwareName;
|
|
2686
|
+
}
|
|
2687
|
+
|
|
2688
|
+
/**
|
|
2689
|
+
* Get the player software version. Used by Mux Data.
|
|
2690
|
+
*/
|
|
2691
|
+
get playerSoftwareVersion() {
|
|
2692
|
+
return this.getAttribute(MuxVideoAttributes.PLAYER_SOFTWARE_VERSION) ?? playerSoftwareVersion;
|
|
2693
|
+
}
|
|
2694
|
+
|
|
2695
|
+
/**
|
|
2696
|
+
* Get the beacon collection domain. Used by Mux Data.
|
|
2697
|
+
*/
|
|
2698
|
+
get beaconCollectionDomain() {
|
|
2699
|
+
return this.getAttribute(MuxVideoAttributes.BEACON_COLLECTION_DOMAIN) ?? <span class="fstat-no" title="function not covered" >undefined;</span>
|
|
2700
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2701
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2702
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2703
|
+
<span class="cstat-no" title="statement not covered" > * Set the beacon collection domain. Used by Mux Data.</span>
|
|
2704
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2705
|
+
<span class="cstat-no" title="statement not covered" > set beaconCollectionDomain(val: string | undefined) {</span>
|
|
2706
|
+
<span class="cstat-no" title="statement not covered" > // don't cause an infinite loop</span>
|
|
2707
|
+
<span class="cstat-no" title="statement not covered" > if (val === this.beaconCollectionDomain) return;</span>
|
|
2708
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2709
|
+
<span class="cstat-no" title="statement not covered" > if (val) {</span>
|
|
2710
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(MuxVideoAttributes.BEACON_COLLECTION_DOMAIN, val);</span>
|
|
2711
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
2712
|
+
<span class="cstat-no" title="statement not covered" > this.removeAttribute(MuxVideoAttributes.BEACON_COLLECTION_DOMAIN);</span>
|
|
2713
|
+
}
|
|
2714
|
+
}
|
|
2715
|
+
|
|
2716
|
+
/**
|
|
2717
|
+
* Get Mux asset playback id.
|
|
2718
|
+
*/
|
|
2719
|
+
get playbackId() {
|
|
2720
|
+
// Don't get the mux-video attribute here because it could have the
|
|
2721
|
+
// playback token appended to it.
|
|
2722
|
+
return this.getAttribute(MuxVideoAttributes.PLAYBACK_ID) ?? undefined;
|
|
2723
|
+
}
|
|
2724
|
+
|
|
2725
|
+
/**
|
|
2726
|
+
* Set Mux asset playback id.
|
|
2727
|
+
*/
|
|
2728
|
+
set playbackId(val: string | undefined) {
|
|
2729
|
+
this.setAttribute(MuxVideoAttributes.PLAYBACK_ID, `${<span class="fstat-no" title="function not covered" >val}`);</span>
|
|
2730
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2731
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2732
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2733
|
+
<span class="cstat-no" title="statement not covered" > * Get Mux asset custom domain.</span>
|
|
2734
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2735
|
+
<span class="cstat-no" title="statement not covered" > get customDomain() {</span>
|
|
2736
|
+
<span class="cstat-no" title="statement not covered" > return this.getAttribute(MuxVideoAttributes.CUSTOM_DOMAIN) ?? <span class="fstat-no" title="function not covered" >undefined;</span></span>
|
|
2737
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2738
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2739
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2740
|
+
<span class="cstat-no" title="statement not covered" > * Set Mux asset custom domain.</span>
|
|
2741
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2742
|
+
<span class="cstat-no" title="statement not covered" > set customDomain(val: string | undefined) {</span>
|
|
2743
|
+
<span class="cstat-no" title="statement not covered" > // dont' cause an infinite loop</span>
|
|
2744
|
+
<span class="cstat-no" title="statement not covered" > if (val === this.customDomain) return;</span>
|
|
2745
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2746
|
+
<span class="cstat-no" title="statement not covered" > if (val) {</span>
|
|
2747
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(MuxVideoAttributes.CUSTOM_DOMAIN, val);</span>
|
|
2748
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
2749
|
+
<span class="cstat-no" title="statement not covered" > this.removeAttribute(MuxVideoAttributes.CUSTOM_DOMAIN);</span>
|
|
2750
|
+
}
|
|
2751
|
+
}
|
|
2752
|
+
|
|
2753
|
+
/**
|
|
2754
|
+
* Get Mux Data env key.
|
|
2755
|
+
*/
|
|
2756
|
+
get envKey() {
|
|
2757
|
+
return getVideoAttribute(this, MuxVideoAttributes.ENV_KEY) ?? <span class="fstat-no" title="function not covered" >undefined;</span>
|
|
2758
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2759
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2760
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2761
|
+
<span class="cstat-no" title="statement not covered" > * Set Mux Data env key.</span>
|
|
2762
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2763
|
+
<span class="cstat-no" title="statement not covered" > set envKey(val: string | undefined) {</span>
|
|
2764
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(MuxVideoAttributes.ENV_KEY, `${val}`);</span>
|
|
2765
|
+
}
|
|
2766
|
+
|
|
2767
|
+
/**
|
|
2768
|
+
* Get video engine debug flag.
|
|
2769
|
+
*/
|
|
2770
|
+
get debug() {
|
|
2771
|
+
return getVideoAttribute(this, MuxVideoAttributes.DEBUG) != <span class="fstat-no" title="function not covered" >null;</span>
|
|
2772
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2773
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2774
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2775
|
+
<span class="cstat-no" title="statement not covered" > * Set video engine debug flag.</span>
|
|
2776
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2777
|
+
<span class="cstat-no" title="statement not covered" > set debug(val) {</span>
|
|
2778
|
+
<span class="cstat-no" title="statement not covered" > if (val) {</span>
|
|
2779
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(MuxVideoAttributes.DEBUG, '');</span>
|
|
2780
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
2781
|
+
<span class="cstat-no" title="statement not covered" > this.removeAttribute(MuxVideoAttributes.DEBUG);</span>
|
|
2782
|
+
}
|
|
2783
|
+
}
|
|
2784
|
+
|
|
2785
|
+
/**
|
|
2786
|
+
* Get stream type.
|
|
2787
|
+
*/
|
|
2788
|
+
get streamType() {
|
|
2789
|
+
return getVideoAttribute(this, MuxVideoAttributes.<span class="fstat-no" title="function not covered" >STREAM_TYPE);</span>
|
|
2790
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2791
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2792
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2793
|
+
<span class="cstat-no" title="statement not covered" > * Set stream type.</span>
|
|
2794
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2795
|
+
<span class="cstat-no" title="statement not covered" > set streamType(val) {</span>
|
|
2796
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(MuxVideoAttributes.STREAM_TYPE, `${val}`);</span>
|
|
2797
|
+
}
|
|
2798
|
+
|
|
2799
|
+
/**
|
|
2800
|
+
* Get the start time.
|
|
2801
|
+
*/
|
|
2802
|
+
get startTime() {
|
|
2803
|
+
return toNumberOrUndefined(getVideoAttribute(this, MuxVideoAttributes.<span class="fstat-no" title="function not covered" >START_TIME));</span>
|
|
2804
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2805
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2806
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2807
|
+
<span class="cstat-no" title="statement not covered" > * Set the start time.</span>
|
|
2808
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2809
|
+
<span class="cstat-no" title="statement not covered" > set startTime(val) {</span>
|
|
2810
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(MuxVideoAttributes.START_TIME, `${val}`);</span>
|
|
2811
|
+
}
|
|
2812
|
+
|
|
2813
|
+
/**
|
|
2814
|
+
* Get the preference flag for using media source.
|
|
2815
|
+
*/
|
|
2816
|
+
get preferMse() {
|
|
2817
|
+
return getVideoAttribute(this, MuxVideoAttributes.PREFER_MSE) != <span class="fstat-no" title="function not covered" >null;</span>
|
|
2818
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2819
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2820
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2821
|
+
<span class="cstat-no" title="statement not covered" > * Set the preference flag for using media source.</span>
|
|
2822
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2823
|
+
<span class="cstat-no" title="statement not covered" > set preferMse(val) {</span>
|
|
2824
|
+
<span class="cstat-no" title="statement not covered" > if (val) {</span>
|
|
2825
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(MuxVideoAttributes.PREFER_MSE, '');</span>
|
|
2826
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
2827
|
+
<span class="cstat-no" title="statement not covered" > this.removeAttribute(MuxVideoAttributes.PREFER_MSE);</span>
|
|
2828
|
+
}
|
|
2829
|
+
}
|
|
2830
|
+
|
|
2831
|
+
/**
|
|
2832
|
+
* Get the metadata object for Mux Data.
|
|
2833
|
+
*/
|
|
2834
|
+
get metadata(): Readonly<Metadata> | undefined {
|
|
2835
|
+
return this.media?.<span class="fstat-no" title="function not covered" >metadata;</span>
|
|
2836
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2837
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2838
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2839
|
+
<span class="cstat-no" title="statement not covered" > * Set the metadata object for Mux Data.</span>
|
|
2840
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2841
|
+
<span class="cstat-no" title="statement not covered" > set metadata(val: Readonly<Metadata> | undefined) {</span>
|
|
2842
|
+
<span class="cstat-no" title="statement not covered" > if (this.media) this.media.metadata = val;</span>
|
|
2843
|
+
}
|
|
2844
|
+
|
|
2845
|
+
/**
|
|
2846
|
+
* Get the signing tokens for the Mux asset URL's.
|
|
2847
|
+
*/
|
|
2848
|
+
get tokens(): Tokens {
|
|
2849
|
+
const playback = this.getAttribute(PlayerAttributes.PLAYBACK_TOKEN);
|
|
2850
|
+
const thumbnail = this.getAttribute(PlayerAttributes.THUMBNAIL_TOKEN);
|
|
2851
|
+
const storyboard = this.getAttribute(PlayerAttributes.STORYBOARD_TOKEN);
|
|
2852
|
+
return {
|
|
2853
|
+
...this.#tokens,
|
|
2854
|
+
...(playback != null ? { playback } : {}),
|
|
2855
|
+
...(thumbnail != null ? { thumbnail } : {}),
|
|
2856
|
+
...(storyboard != null ? { storyboard } : <span class="fstat-no" title="function not covered" >{}),</span>
|
|
2857
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
2858
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2859
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2860
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2861
|
+
<span class="cstat-no" title="statement not covered" > * Set the signing tokens for the Mux asset URL's.</span>
|
|
2862
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2863
|
+
<span class="cstat-no" title="statement not covered" > set tokens(val: Tokens | undefined) {</span>
|
|
2864
|
+
<span class="cstat-no" title="statement not covered" > this.#tokens = val ?? {};</span>
|
|
2865
|
+
}
|
|
2866
|
+
|
|
2867
|
+
/**
|
|
2868
|
+
* Get the playback token for signing the src URL.
|
|
2869
|
+
*/
|
|
2870
|
+
get playbackToken() {
|
|
2871
|
+
return this.getAttribute(PlayerAttributes.PLAYBACK_TOKEN) ?? <span class="fstat-no" title="function not covered" >undefined;</span>
|
|
2872
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2873
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2874
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2875
|
+
<span class="cstat-no" title="statement not covered" > * Set the playback token for signing the src URL.</span>
|
|
2876
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2877
|
+
<span class="cstat-no" title="statement not covered" > set playbackToken(val) {</span>
|
|
2878
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.PLAYBACK_TOKEN, `${<span class="fstat-no" title="function not covered" >val}`);</span></span>
|
|
2879
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2880
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2881
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2882
|
+
<span class="cstat-no" title="statement not covered" > * Get the thumbnail token for signing the poster URL.</span>
|
|
2883
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2884
|
+
<span class="cstat-no" title="statement not covered" > get thumbnailToken() {</span>
|
|
2885
|
+
<span class="cstat-no" title="statement not covered" > return this.getAttribute(PlayerAttributes.THUMBNAIL_TOKEN) ?? <span class="fstat-no" title="function not covered" >undefined;</span></span>
|
|
2886
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2887
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2888
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2889
|
+
<span class="cstat-no" title="statement not covered" > * Set the thumbnail token for signing the poster URL.</span>
|
|
2890
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2891
|
+
<span class="cstat-no" title="statement not covered" > set thumbnailToken(val) {</span>
|
|
2892
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.THUMBNAIL_TOKEN, `${<span class="fstat-no" title="function not covered" >val}`);</span></span>
|
|
2893
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2894
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2895
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2896
|
+
<span class="cstat-no" title="statement not covered" > * Get the storyboard token for signing the storyboard URL.</span>
|
|
2897
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2898
|
+
<span class="cstat-no" title="statement not covered" > get storyboardToken() {</span>
|
|
2899
|
+
<span class="cstat-no" title="statement not covered" > return this.getAttribute(PlayerAttributes.STORYBOARD_TOKEN) ?? <span class="fstat-no" title="function not covered" >undefined;</span></span>
|
|
2900
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2901
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
2902
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2903
|
+
<span class="cstat-no" title="statement not covered" > * Set the storyboard token for signing the storyboard URL.</span>
|
|
2904
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2905
|
+
<span class="cstat-no" title="statement not covered" > set storyboardToken(val) {</span>
|
|
2906
|
+
<span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.STORYBOARD_TOKEN, `${val}`);</span>
|
|
2907
|
+
}
|
|
2908
|
+
}
|
|
2909
|
+
|
|
2910
|
+
export function getVideoAttribute(el: MuxPlayerElement, name: string) {
|
|
2911
|
+
return el.media ? el.media.getAttribute(name) : el.getAttribute(name);
|
|
2912
|
+
}
|
|
2913
|
+
|
|
2914
|
+
/** @TODO Refactor once using `globalThis` polyfills */
|
|
2915
|
+
if (!globalThis.customElements.get('mux-player')) {
|
|
2916
|
+
globalThis.customElements.define('mux-player', MuxPlayerElement);
|
|
2917
|
+
/** @TODO consider externalizing this (breaks standard modularity) */
|
|
2918
|
+
(globalThis as any).MuxPlayerElement = MuxPlayerElement;
|
|
2919
|
+
}
|
|
2920
|
+
|
|
2921
|
+
export default MuxPlayerElement;
|
|
2922
|
+
</pre></td></tr></table></pre>
|
|
2923
|
+
|
|
2924
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
2925
|
+
</div><!-- /wrapper -->
|
|
2926
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
2927
|
+
Code coverage generated by
|
|
2928
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2929
|
+
at Tue Jul 05 2022 17:07:41 GMT+0000 (Coordinated Universal Time)
|
|
2930
|
+
</div>
|
|
2931
|
+
<script src="../prettify.js"></script>
|
|
2932
|
+
<script>
|
|
2933
|
+
window.onload = function () {
|
|
2934
|
+
prettyPrint();
|
|
2935
|
+
};
|
|
2936
|
+
</script>
|
|
2937
|
+
<script src="../sorter.js"></script>
|
|
2938
|
+
<script src="../block-navigation.js"></script>
|
|
2939
|
+
</body>
|
|
2940
|
+
</html>
|
|
2941
|
+
|