react-grid-layout 1.2.4 → 1.3.2
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/.babelrc.js +3 -2
- package/.eslintignore +3 -0
- package/.flowconfig +1 -3
- package/.prettierignore +1 -0
- package/CHANGELOG.md +371 -236
- package/README.md +122 -62
- package/build/GridItem.js +12 -12
- package/build/ReactGridLayout.js +306 -325
- package/build/ReactGridLayoutPropTypes.js +11 -5
- package/build/ResponsiveReactGridLayout.js +16 -10
- package/build/calculateUtils.js +8 -8
- package/build/components/WidthProvider.js +11 -9
- package/build/fastRGLPropsEqual.js +1 -1
- package/build/responsiveUtils.js +1 -1
- package/build/utils.js +48 -53
- package/coverage/clover.xml +761 -0
- package/coverage/coverage-final.json +15 -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/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/react-grid-layout/index-dev.js.html +104 -0
- package/coverage/lcov-report/react-grid-layout/lib/GridItem.jsx.html +2099 -0
- package/coverage/lcov-report/react-grid-layout/lib/ReactGridLayout.jsx.html +2453 -0
- package/coverage/lcov-report/react-grid-layout/lib/ReactGridLayoutPropTypes.js.html +833 -0
- package/coverage/lcov-report/react-grid-layout/lib/ResponsiveReactGridLayout.jsx.html +1133 -0
- package/coverage/lcov-report/react-grid-layout/lib/calculateUtils.js.html +557 -0
- package/coverage/lcov-report/react-grid-layout/lib/components/WidthProvider.jsx.html +410 -0
- package/coverage/lcov-report/react-grid-layout/lib/fastRGLPropsEqual.js.html +224 -0
- package/coverage/lcov-report/react-grid-layout/lib/responsiveUtils.js.html +440 -0
- package/coverage/lcov-report/react-grid-layout/lib/utils.js.html +2456 -0
- package/coverage/lcov-report/react-grid-layout/test/examples/0-showcase.jsx.html +521 -0
- package/coverage/lcov-report/react-grid-layout/test/examples/1-basic.jsx.html +284 -0
- package/coverage/lcov-report/react-grid-layout/test/examples/15-drag-from-outside.jsx.html +506 -0
- package/coverage/lcov-report/react-grid-layout/test/util/deepFreeze.js.html +248 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov.info +1584 -0
- package/dist/react-grid-layout.min.js +1 -2
- package/dist/react-grid-layout.min.js.map +1 -1
- package/index.js +4 -2
- package/lib/GridItem.jsx +15 -10
- package/lib/ReactGridLayout.jsx +101 -62
- package/lib/ReactGridLayoutPropTypes.js +38 -17
- package/lib/ResponsiveReactGridLayout.jsx +7 -1
- package/lib/components/WidthProvider.jsx +2 -2
- package/lib/utils.js +45 -40
- package/package.json +48 -34
- package/.husky/pre-commit +0 -6
- package/.travis.yml +0 -9
- package/dist/react-grid-layout.min.js.LICENSE.txt +0 -5
|
@@ -0,0 +1,2099 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for react-grid-layout/lib/GridItem.jsx</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">react-grid-layout/lib</a> GridItem.jsx</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">80% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>116/145</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">81.94% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>59/72</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">75% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>15/20</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">81.81% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>108/132</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 high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
+
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
+
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
+
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
+
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
+
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
+
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
+
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
+
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
+
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
+
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
+
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
+
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
+
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
+
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
+
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
+
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
+
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
+
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
+
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
+
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
+
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
+
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
+
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
+
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
+
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
+
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
+
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
+
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
+
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
+
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
+
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
+
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
+
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
+
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
+
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
+
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
+
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
+
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
+
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
+
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
+
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
+
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
+
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
+
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
+
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
+
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
+
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
+
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
+
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
+
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
+
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
+
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
+
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
+
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
+
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
+
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
+
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
+
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
+
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
+
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
+
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
+
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
+
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
+
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
+
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
+
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
+
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
+
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
+
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
+
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
+
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
+
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
+
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
+
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
+
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
+
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
+
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
+
<a name='L361'></a><a href='#L361'>361</a>
|
|
427
|
+
<a name='L362'></a><a href='#L362'>362</a>
|
|
428
|
+
<a name='L363'></a><a href='#L363'>363</a>
|
|
429
|
+
<a name='L364'></a><a href='#L364'>364</a>
|
|
430
|
+
<a name='L365'></a><a href='#L365'>365</a>
|
|
431
|
+
<a name='L366'></a><a href='#L366'>366</a>
|
|
432
|
+
<a name='L367'></a><a href='#L367'>367</a>
|
|
433
|
+
<a name='L368'></a><a href='#L368'>368</a>
|
|
434
|
+
<a name='L369'></a><a href='#L369'>369</a>
|
|
435
|
+
<a name='L370'></a><a href='#L370'>370</a>
|
|
436
|
+
<a name='L371'></a><a href='#L371'>371</a>
|
|
437
|
+
<a name='L372'></a><a href='#L372'>372</a>
|
|
438
|
+
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
|
+
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
|
+
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
+
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
+
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
+
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
+
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
+
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
+
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
+
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
+
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
+
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
+
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
+
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
+
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
+
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
+
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
+
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
+
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
+
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
+
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
+
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
+
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
+
<a name='L445'></a><a href='#L445'>445</a>
|
|
511
|
+
<a name='L446'></a><a href='#L446'>446</a>
|
|
512
|
+
<a name='L447'></a><a href='#L447'>447</a>
|
|
513
|
+
<a name='L448'></a><a href='#L448'>448</a>
|
|
514
|
+
<a name='L449'></a><a href='#L449'>449</a>
|
|
515
|
+
<a name='L450'></a><a href='#L450'>450</a>
|
|
516
|
+
<a name='L451'></a><a href='#L451'>451</a>
|
|
517
|
+
<a name='L452'></a><a href='#L452'>452</a>
|
|
518
|
+
<a name='L453'></a><a href='#L453'>453</a>
|
|
519
|
+
<a name='L454'></a><a href='#L454'>454</a>
|
|
520
|
+
<a name='L455'></a><a href='#L455'>455</a>
|
|
521
|
+
<a name='L456'></a><a href='#L456'>456</a>
|
|
522
|
+
<a name='L457'></a><a href='#L457'>457</a>
|
|
523
|
+
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
|
+
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
|
+
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
+
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
+
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
+
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
+
<a name='L464'></a><a href='#L464'>464</a>
|
|
530
|
+
<a name='L465'></a><a href='#L465'>465</a>
|
|
531
|
+
<a name='L466'></a><a href='#L466'>466</a>
|
|
532
|
+
<a name='L467'></a><a href='#L467'>467</a>
|
|
533
|
+
<a name='L468'></a><a href='#L468'>468</a>
|
|
534
|
+
<a name='L469'></a><a href='#L469'>469</a>
|
|
535
|
+
<a name='L470'></a><a href='#L470'>470</a>
|
|
536
|
+
<a name='L471'></a><a href='#L471'>471</a>
|
|
537
|
+
<a name='L472'></a><a href='#L472'>472</a>
|
|
538
|
+
<a name='L473'></a><a href='#L473'>473</a>
|
|
539
|
+
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
|
+
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
|
+
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
+
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
+
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
+
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
+
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
+
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
+
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
+
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
+
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
+
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
+
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
+
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
+
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
+
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
+
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
+
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
+
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
+
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
+
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
+
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
+
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
+
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
+
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
+
<a name='L499'></a><a href='#L499'>499</a>
|
|
565
|
+
<a name='L500'></a><a href='#L500'>500</a>
|
|
566
|
+
<a name='L501'></a><a href='#L501'>501</a>
|
|
567
|
+
<a name='L502'></a><a href='#L502'>502</a>
|
|
568
|
+
<a name='L503'></a><a href='#L503'>503</a>
|
|
569
|
+
<a name='L504'></a><a href='#L504'>504</a>
|
|
570
|
+
<a name='L505'></a><a href='#L505'>505</a>
|
|
571
|
+
<a name='L506'></a><a href='#L506'>506</a>
|
|
572
|
+
<a name='L507'></a><a href='#L507'>507</a>
|
|
573
|
+
<a name='L508'></a><a href='#L508'>508</a>
|
|
574
|
+
<a name='L509'></a><a href='#L509'>509</a>
|
|
575
|
+
<a name='L510'></a><a href='#L510'>510</a>
|
|
576
|
+
<a name='L511'></a><a href='#L511'>511</a>
|
|
577
|
+
<a name='L512'></a><a href='#L512'>512</a>
|
|
578
|
+
<a name='L513'></a><a href='#L513'>513</a>
|
|
579
|
+
<a name='L514'></a><a href='#L514'>514</a>
|
|
580
|
+
<a name='L515'></a><a href='#L515'>515</a>
|
|
581
|
+
<a name='L516'></a><a href='#L516'>516</a>
|
|
582
|
+
<a name='L517'></a><a href='#L517'>517</a>
|
|
583
|
+
<a name='L518'></a><a href='#L518'>518</a>
|
|
584
|
+
<a name='L519'></a><a href='#L519'>519</a>
|
|
585
|
+
<a name='L520'></a><a href='#L520'>520</a>
|
|
586
|
+
<a name='L521'></a><a href='#L521'>521</a>
|
|
587
|
+
<a name='L522'></a><a href='#L522'>522</a>
|
|
588
|
+
<a name='L523'></a><a href='#L523'>523</a>
|
|
589
|
+
<a name='L524'></a><a href='#L524'>524</a>
|
|
590
|
+
<a name='L525'></a><a href='#L525'>525</a>
|
|
591
|
+
<a name='L526'></a><a href='#L526'>526</a>
|
|
592
|
+
<a name='L527'></a><a href='#L527'>527</a>
|
|
593
|
+
<a name='L528'></a><a href='#L528'>528</a>
|
|
594
|
+
<a name='L529'></a><a href='#L529'>529</a>
|
|
595
|
+
<a name='L530'></a><a href='#L530'>530</a>
|
|
596
|
+
<a name='L531'></a><a href='#L531'>531</a>
|
|
597
|
+
<a name='L532'></a><a href='#L532'>532</a>
|
|
598
|
+
<a name='L533'></a><a href='#L533'>533</a>
|
|
599
|
+
<a name='L534'></a><a href='#L534'>534</a>
|
|
600
|
+
<a name='L535'></a><a href='#L535'>535</a>
|
|
601
|
+
<a name='L536'></a><a href='#L536'>536</a>
|
|
602
|
+
<a name='L537'></a><a href='#L537'>537</a>
|
|
603
|
+
<a name='L538'></a><a href='#L538'>538</a>
|
|
604
|
+
<a name='L539'></a><a href='#L539'>539</a>
|
|
605
|
+
<a name='L540'></a><a href='#L540'>540</a>
|
|
606
|
+
<a name='L541'></a><a href='#L541'>541</a>
|
|
607
|
+
<a name='L542'></a><a href='#L542'>542</a>
|
|
608
|
+
<a name='L543'></a><a href='#L543'>543</a>
|
|
609
|
+
<a name='L544'></a><a href='#L544'>544</a>
|
|
610
|
+
<a name='L545'></a><a href='#L545'>545</a>
|
|
611
|
+
<a name='L546'></a><a href='#L546'>546</a>
|
|
612
|
+
<a name='L547'></a><a href='#L547'>547</a>
|
|
613
|
+
<a name='L548'></a><a href='#L548'>548</a>
|
|
614
|
+
<a name='L549'></a><a href='#L549'>549</a>
|
|
615
|
+
<a name='L550'></a><a href='#L550'>550</a>
|
|
616
|
+
<a name='L551'></a><a href='#L551'>551</a>
|
|
617
|
+
<a name='L552'></a><a href='#L552'>552</a>
|
|
618
|
+
<a name='L553'></a><a href='#L553'>553</a>
|
|
619
|
+
<a name='L554'></a><a href='#L554'>554</a>
|
|
620
|
+
<a name='L555'></a><a href='#L555'>555</a>
|
|
621
|
+
<a name='L556'></a><a href='#L556'>556</a>
|
|
622
|
+
<a name='L557'></a><a href='#L557'>557</a>
|
|
623
|
+
<a name='L558'></a><a href='#L558'>558</a>
|
|
624
|
+
<a name='L559'></a><a href='#L559'>559</a>
|
|
625
|
+
<a name='L560'></a><a href='#L560'>560</a>
|
|
626
|
+
<a name='L561'></a><a href='#L561'>561</a>
|
|
627
|
+
<a name='L562'></a><a href='#L562'>562</a>
|
|
628
|
+
<a name='L563'></a><a href='#L563'>563</a>
|
|
629
|
+
<a name='L564'></a><a href='#L564'>564</a>
|
|
630
|
+
<a name='L565'></a><a href='#L565'>565</a>
|
|
631
|
+
<a name='L566'></a><a href='#L566'>566</a>
|
|
632
|
+
<a name='L567'></a><a href='#L567'>567</a>
|
|
633
|
+
<a name='L568'></a><a href='#L568'>568</a>
|
|
634
|
+
<a name='L569'></a><a href='#L569'>569</a>
|
|
635
|
+
<a name='L570'></a><a href='#L570'>570</a>
|
|
636
|
+
<a name='L571'></a><a href='#L571'>571</a>
|
|
637
|
+
<a name='L572'></a><a href='#L572'>572</a>
|
|
638
|
+
<a name='L573'></a><a href='#L573'>573</a>
|
|
639
|
+
<a name='L574'></a><a href='#L574'>574</a>
|
|
640
|
+
<a name='L575'></a><a href='#L575'>575</a>
|
|
641
|
+
<a name='L576'></a><a href='#L576'>576</a>
|
|
642
|
+
<a name='L577'></a><a href='#L577'>577</a>
|
|
643
|
+
<a name='L578'></a><a href='#L578'>578</a>
|
|
644
|
+
<a name='L579'></a><a href='#L579'>579</a>
|
|
645
|
+
<a name='L580'></a><a href='#L580'>580</a>
|
|
646
|
+
<a name='L581'></a><a href='#L581'>581</a>
|
|
647
|
+
<a name='L582'></a><a href='#L582'>582</a>
|
|
648
|
+
<a name='L583'></a><a href='#L583'>583</a>
|
|
649
|
+
<a name='L584'></a><a href='#L584'>584</a>
|
|
650
|
+
<a name='L585'></a><a href='#L585'>585</a>
|
|
651
|
+
<a name='L586'></a><a href='#L586'>586</a>
|
|
652
|
+
<a name='L587'></a><a href='#L587'>587</a>
|
|
653
|
+
<a name='L588'></a><a href='#L588'>588</a>
|
|
654
|
+
<a name='L589'></a><a href='#L589'>589</a>
|
|
655
|
+
<a name='L590'></a><a href='#L590'>590</a>
|
|
656
|
+
<a name='L591'></a><a href='#L591'>591</a>
|
|
657
|
+
<a name='L592'></a><a href='#L592'>592</a>
|
|
658
|
+
<a name='L593'></a><a href='#L593'>593</a>
|
|
659
|
+
<a name='L594'></a><a href='#L594'>594</a>
|
|
660
|
+
<a name='L595'></a><a href='#L595'>595</a>
|
|
661
|
+
<a name='L596'></a><a href='#L596'>596</a>
|
|
662
|
+
<a name='L597'></a><a href='#L597'>597</a>
|
|
663
|
+
<a name='L598'></a><a href='#L598'>598</a>
|
|
664
|
+
<a name='L599'></a><a href='#L599'>599</a>
|
|
665
|
+
<a name='L600'></a><a href='#L600'>600</a>
|
|
666
|
+
<a name='L601'></a><a href='#L601'>601</a>
|
|
667
|
+
<a name='L602'></a><a href='#L602'>602</a>
|
|
668
|
+
<a name='L603'></a><a href='#L603'>603</a>
|
|
669
|
+
<a name='L604'></a><a href='#L604'>604</a>
|
|
670
|
+
<a name='L605'></a><a href='#L605'>605</a>
|
|
671
|
+
<a name='L606'></a><a href='#L606'>606</a>
|
|
672
|
+
<a name='L607'></a><a href='#L607'>607</a>
|
|
673
|
+
<a name='L608'></a><a href='#L608'>608</a>
|
|
674
|
+
<a name='L609'></a><a href='#L609'>609</a>
|
|
675
|
+
<a name='L610'></a><a href='#L610'>610</a>
|
|
676
|
+
<a name='L611'></a><a href='#L611'>611</a>
|
|
677
|
+
<a name='L612'></a><a href='#L612'>612</a>
|
|
678
|
+
<a name='L613'></a><a href='#L613'>613</a>
|
|
679
|
+
<a name='L614'></a><a href='#L614'>614</a>
|
|
680
|
+
<a name='L615'></a><a href='#L615'>615</a>
|
|
681
|
+
<a name='L616'></a><a href='#L616'>616</a>
|
|
682
|
+
<a name='L617'></a><a href='#L617'>617</a>
|
|
683
|
+
<a name='L618'></a><a href='#L618'>618</a>
|
|
684
|
+
<a name='L619'></a><a href='#L619'>619</a>
|
|
685
|
+
<a name='L620'></a><a href='#L620'>620</a>
|
|
686
|
+
<a name='L621'></a><a href='#L621'>621</a>
|
|
687
|
+
<a name='L622'></a><a href='#L622'>622</a>
|
|
688
|
+
<a name='L623'></a><a href='#L623'>623</a>
|
|
689
|
+
<a name='L624'></a><a href='#L624'>624</a>
|
|
690
|
+
<a name='L625'></a><a href='#L625'>625</a>
|
|
691
|
+
<a name='L626'></a><a href='#L626'>626</a>
|
|
692
|
+
<a name='L627'></a><a href='#L627'>627</a>
|
|
693
|
+
<a name='L628'></a><a href='#L628'>628</a>
|
|
694
|
+
<a name='L629'></a><a href='#L629'>629</a>
|
|
695
|
+
<a name='L630'></a><a href='#L630'>630</a>
|
|
696
|
+
<a name='L631'></a><a href='#L631'>631</a>
|
|
697
|
+
<a name='L632'></a><a href='#L632'>632</a>
|
|
698
|
+
<a name='L633'></a><a href='#L633'>633</a>
|
|
699
|
+
<a name='L634'></a><a href='#L634'>634</a>
|
|
700
|
+
<a name='L635'></a><a href='#L635'>635</a>
|
|
701
|
+
<a name='L636'></a><a href='#L636'>636</a>
|
|
702
|
+
<a name='L637'></a><a href='#L637'>637</a>
|
|
703
|
+
<a name='L638'></a><a href='#L638'>638</a>
|
|
704
|
+
<a name='L639'></a><a href='#L639'>639</a>
|
|
705
|
+
<a name='L640'></a><a href='#L640'>640</a>
|
|
706
|
+
<a name='L641'></a><a href='#L641'>641</a>
|
|
707
|
+
<a name='L642'></a><a href='#L642'>642</a>
|
|
708
|
+
<a name='L643'></a><a href='#L643'>643</a>
|
|
709
|
+
<a name='L644'></a><a href='#L644'>644</a>
|
|
710
|
+
<a name='L645'></a><a href='#L645'>645</a>
|
|
711
|
+
<a name='L646'></a><a href='#L646'>646</a>
|
|
712
|
+
<a name='L647'></a><a href='#L647'>647</a>
|
|
713
|
+
<a name='L648'></a><a href='#L648'>648</a>
|
|
714
|
+
<a name='L649'></a><a href='#L649'>649</a>
|
|
715
|
+
<a name='L650'></a><a href='#L650'>650</a>
|
|
716
|
+
<a name='L651'></a><a href='#L651'>651</a>
|
|
717
|
+
<a name='L652'></a><a href='#L652'>652</a>
|
|
718
|
+
<a name='L653'></a><a href='#L653'>653</a>
|
|
719
|
+
<a name='L654'></a><a href='#L654'>654</a>
|
|
720
|
+
<a name='L655'></a><a href='#L655'>655</a>
|
|
721
|
+
<a name='L656'></a><a href='#L656'>656</a>
|
|
722
|
+
<a name='L657'></a><a href='#L657'>657</a>
|
|
723
|
+
<a name='L658'></a><a href='#L658'>658</a>
|
|
724
|
+
<a name='L659'></a><a href='#L659'>659</a>
|
|
725
|
+
<a name='L660'></a><a href='#L660'>660</a>
|
|
726
|
+
<a name='L661'></a><a href='#L661'>661</a>
|
|
727
|
+
<a name='L662'></a><a href='#L662'>662</a>
|
|
728
|
+
<a name='L663'></a><a href='#L663'>663</a>
|
|
729
|
+
<a name='L664'></a><a href='#L664'>664</a>
|
|
730
|
+
<a name='L665'></a><a href='#L665'>665</a>
|
|
731
|
+
<a name='L666'></a><a href='#L666'>666</a>
|
|
732
|
+
<a name='L667'></a><a href='#L667'>667</a>
|
|
733
|
+
<a name='L668'></a><a href='#L668'>668</a>
|
|
734
|
+
<a name='L669'></a><a href='#L669'>669</a>
|
|
735
|
+
<a name='L670'></a><a href='#L670'>670</a>
|
|
736
|
+
<a name='L671'></a><a href='#L671'>671</a>
|
|
737
|
+
<a name='L672'></a><a href='#L672'>672</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
738
|
+
<span class="cline-any cline-neutral"> </span>
|
|
739
|
+
<span class="cline-any cline-neutral"> </span>
|
|
740
|
+
<span class="cline-any cline-neutral"> </span>
|
|
741
|
+
<span class="cline-any cline-neutral"> </span>
|
|
742
|
+
<span class="cline-any cline-neutral"> </span>
|
|
743
|
+
<span class="cline-any cline-neutral"> </span>
|
|
744
|
+
<span class="cline-any cline-neutral"> </span>
|
|
745
|
+
<span class="cline-any cline-neutral"> </span>
|
|
746
|
+
<span class="cline-any cline-neutral"> </span>
|
|
747
|
+
<span class="cline-any cline-neutral"> </span>
|
|
748
|
+
<span class="cline-any cline-neutral"> </span>
|
|
749
|
+
<span class="cline-any cline-neutral"> </span>
|
|
750
|
+
<span class="cline-any cline-neutral"> </span>
|
|
751
|
+
<span class="cline-any cline-neutral"> </span>
|
|
752
|
+
<span class="cline-any cline-neutral"> </span>
|
|
753
|
+
<span class="cline-any cline-neutral"> </span>
|
|
754
|
+
<span class="cline-any cline-neutral"> </span>
|
|
755
|
+
<span class="cline-any cline-neutral"> </span>
|
|
756
|
+
<span class="cline-any cline-neutral"> </span>
|
|
757
|
+
<span class="cline-any cline-neutral"> </span>
|
|
758
|
+
<span class="cline-any cline-neutral"> </span>
|
|
759
|
+
<span class="cline-any cline-neutral"> </span>
|
|
760
|
+
<span class="cline-any cline-neutral"> </span>
|
|
761
|
+
<span class="cline-any cline-neutral"> </span>
|
|
762
|
+
<span class="cline-any cline-neutral"> </span>
|
|
763
|
+
<span class="cline-any cline-neutral"> </span>
|
|
764
|
+
<span class="cline-any cline-neutral"> </span>
|
|
765
|
+
<span class="cline-any cline-neutral"> </span>
|
|
766
|
+
<span class="cline-any cline-neutral"> </span>
|
|
767
|
+
<span class="cline-any cline-neutral"> </span>
|
|
768
|
+
<span class="cline-any cline-neutral"> </span>
|
|
769
|
+
<span class="cline-any cline-neutral"> </span>
|
|
770
|
+
<span class="cline-any cline-neutral"> </span>
|
|
771
|
+
<span class="cline-any cline-neutral"> </span>
|
|
772
|
+
<span class="cline-any cline-neutral"> </span>
|
|
773
|
+
<span class="cline-any cline-neutral"> </span>
|
|
774
|
+
<span class="cline-any cline-neutral"> </span>
|
|
775
|
+
<span class="cline-any cline-neutral"> </span>
|
|
776
|
+
<span class="cline-any cline-neutral"> </span>
|
|
777
|
+
<span class="cline-any cline-neutral"> </span>
|
|
778
|
+
<span class="cline-any cline-neutral"> </span>
|
|
779
|
+
<span class="cline-any cline-neutral"> </span>
|
|
780
|
+
<span class="cline-any cline-neutral"> </span>
|
|
781
|
+
<span class="cline-any cline-neutral"> </span>
|
|
782
|
+
<span class="cline-any cline-neutral"> </span>
|
|
783
|
+
<span class="cline-any cline-neutral"> </span>
|
|
784
|
+
<span class="cline-any cline-neutral"> </span>
|
|
785
|
+
<span class="cline-any cline-neutral"> </span>
|
|
786
|
+
<span class="cline-any cline-neutral"> </span>
|
|
787
|
+
<span class="cline-any cline-neutral"> </span>
|
|
788
|
+
<span class="cline-any cline-neutral"> </span>
|
|
789
|
+
<span class="cline-any cline-neutral"> </span>
|
|
790
|
+
<span class="cline-any cline-neutral"> </span>
|
|
791
|
+
<span class="cline-any cline-neutral"> </span>
|
|
792
|
+
<span class="cline-any cline-neutral"> </span>
|
|
793
|
+
<span class="cline-any cline-neutral"> </span>
|
|
794
|
+
<span class="cline-any cline-neutral"> </span>
|
|
795
|
+
<span class="cline-any cline-neutral"> </span>
|
|
796
|
+
<span class="cline-any cline-neutral"> </span>
|
|
797
|
+
<span class="cline-any cline-neutral"> </span>
|
|
798
|
+
<span class="cline-any cline-neutral"> </span>
|
|
799
|
+
<span class="cline-any cline-neutral"> </span>
|
|
800
|
+
<span class="cline-any cline-neutral"> </span>
|
|
801
|
+
<span class="cline-any cline-neutral"> </span>
|
|
802
|
+
<span class="cline-any cline-neutral"> </span>
|
|
803
|
+
<span class="cline-any cline-neutral"> </span>
|
|
804
|
+
<span class="cline-any cline-neutral"> </span>
|
|
805
|
+
<span class="cline-any cline-neutral"> </span>
|
|
806
|
+
<span class="cline-any cline-neutral"> </span>
|
|
807
|
+
<span class="cline-any cline-neutral"> </span>
|
|
808
|
+
<span class="cline-any cline-neutral"> </span>
|
|
809
|
+
<span class="cline-any cline-neutral"> </span>
|
|
810
|
+
<span class="cline-any cline-neutral"> </span>
|
|
811
|
+
<span class="cline-any cline-neutral"> </span>
|
|
812
|
+
<span class="cline-any cline-neutral"> </span>
|
|
813
|
+
<span class="cline-any cline-neutral"> </span>
|
|
814
|
+
<span class="cline-any cline-neutral"> </span>
|
|
815
|
+
<span class="cline-any cline-neutral"> </span>
|
|
816
|
+
<span class="cline-any cline-neutral"> </span>
|
|
817
|
+
<span class="cline-any cline-neutral"> </span>
|
|
818
|
+
<span class="cline-any cline-neutral"> </span>
|
|
819
|
+
<span class="cline-any cline-neutral"> </span>
|
|
820
|
+
<span class="cline-any cline-neutral"> </span>
|
|
821
|
+
<span class="cline-any cline-neutral"> </span>
|
|
822
|
+
<span class="cline-any cline-neutral"> </span>
|
|
823
|
+
<span class="cline-any cline-neutral"> </span>
|
|
824
|
+
<span class="cline-any cline-neutral"> </span>
|
|
825
|
+
<span class="cline-any cline-neutral"> </span>
|
|
826
|
+
<span class="cline-any cline-neutral"> </span>
|
|
827
|
+
<span class="cline-any cline-neutral"> </span>
|
|
828
|
+
<span class="cline-any cline-neutral"> </span>
|
|
829
|
+
<span class="cline-any cline-neutral"> </span>
|
|
830
|
+
<span class="cline-any cline-neutral"> </span>
|
|
831
|
+
<span class="cline-any cline-neutral"> </span>
|
|
832
|
+
<span class="cline-any cline-neutral"> </span>
|
|
833
|
+
<span class="cline-any cline-neutral"> </span>
|
|
834
|
+
<span class="cline-any cline-neutral"> </span>
|
|
835
|
+
<span class="cline-any cline-neutral"> </span>
|
|
836
|
+
<span class="cline-any cline-neutral"> </span>
|
|
837
|
+
<span class="cline-any cline-neutral"> </span>
|
|
838
|
+
<span class="cline-any cline-neutral"> </span>
|
|
839
|
+
<span class="cline-any cline-neutral"> </span>
|
|
840
|
+
<span class="cline-any cline-neutral"> </span>
|
|
841
|
+
<span class="cline-any cline-neutral"> </span>
|
|
842
|
+
<span class="cline-any cline-neutral"> </span>
|
|
843
|
+
<span class="cline-any cline-neutral"> </span>
|
|
844
|
+
<span class="cline-any cline-neutral"> </span>
|
|
845
|
+
<span class="cline-any cline-neutral"> </span>
|
|
846
|
+
<span class="cline-any cline-neutral"> </span>
|
|
847
|
+
<span class="cline-any cline-yes">1x</span>
|
|
848
|
+
<span class="cline-any cline-neutral"> </span>
|
|
849
|
+
<span class="cline-any cline-neutral"> </span>
|
|
850
|
+
<span class="cline-any cline-neutral"> </span>
|
|
851
|
+
<span class="cline-any cline-neutral"> </span>
|
|
852
|
+
<span class="cline-any cline-neutral"> </span>
|
|
853
|
+
<span class="cline-any cline-neutral"> </span>
|
|
854
|
+
<span class="cline-any cline-neutral"> </span>
|
|
855
|
+
<span class="cline-any cline-neutral"> </span>
|
|
856
|
+
<span class="cline-any cline-neutral"> </span>
|
|
857
|
+
<span class="cline-any cline-neutral"> </span>
|
|
858
|
+
<span class="cline-any cline-neutral"> </span>
|
|
859
|
+
<span class="cline-any cline-neutral"> </span>
|
|
860
|
+
<span class="cline-any cline-neutral"> </span>
|
|
861
|
+
<span class="cline-any cline-neutral"> </span>
|
|
862
|
+
<span class="cline-any cline-neutral"> </span>
|
|
863
|
+
<span class="cline-any cline-neutral"> </span>
|
|
864
|
+
<span class="cline-any cline-neutral"> </span>
|
|
865
|
+
<span class="cline-any cline-neutral"> </span>
|
|
866
|
+
<span class="cline-any cline-neutral"> </span>
|
|
867
|
+
<span class="cline-any cline-yes">535x</span>
|
|
868
|
+
<span class="cline-any cline-yes">535x</span>
|
|
869
|
+
<span class="cline-any cline-yes">533x</span>
|
|
870
|
+
<span class="cline-any cline-yes">2x</span>
|
|
871
|
+
<span class="cline-any cline-neutral"> </span>
|
|
872
|
+
<span class="cline-any cline-neutral"> </span>
|
|
873
|
+
<span class="cline-any cline-neutral"> </span>
|
|
874
|
+
<span class="cline-any cline-yes">535x</span>
|
|
875
|
+
<span class="cline-any cline-yes">535x</span>
|
|
876
|
+
<span class="cline-any cline-yes">533x</span>
|
|
877
|
+
<span class="cline-any cline-yes">2x</span>
|
|
878
|
+
<span class="cline-any cline-neutral"> </span>
|
|
879
|
+
<span class="cline-any cline-neutral"> </span>
|
|
880
|
+
<span class="cline-any cline-neutral"> </span>
|
|
881
|
+
<span class="cline-any cline-yes">535x</span>
|
|
882
|
+
<span class="cline-any cline-yes">535x</span>
|
|
883
|
+
<span class="cline-any cline-yes">533x</span>
|
|
884
|
+
<span class="cline-any cline-yes">2x</span>
|
|
885
|
+
<span class="cline-any cline-neutral"> </span>
|
|
886
|
+
<span class="cline-any cline-neutral"> </span>
|
|
887
|
+
<span class="cline-any cline-neutral"> </span>
|
|
888
|
+
<span class="cline-any cline-yes">535x</span>
|
|
889
|
+
<span class="cline-any cline-yes">535x</span>
|
|
890
|
+
<span class="cline-any cline-yes">533x</span>
|
|
891
|
+
<span class="cline-any cline-yes">2x</span>
|
|
892
|
+
<span class="cline-any cline-neutral"> </span>
|
|
893
|
+
<span class="cline-any cline-neutral"> </span>
|
|
894
|
+
<span class="cline-any cline-neutral"> </span>
|
|
895
|
+
<span class="cline-any cline-neutral"> </span>
|
|
896
|
+
<span class="cline-any cline-neutral"> </span>
|
|
897
|
+
<span class="cline-any cline-neutral"> </span>
|
|
898
|
+
<span class="cline-any cline-neutral"> </span>
|
|
899
|
+
<span class="cline-any cline-neutral"> </span>
|
|
900
|
+
<span class="cline-any cline-neutral"> </span>
|
|
901
|
+
<span class="cline-any cline-neutral"> </span>
|
|
902
|
+
<span class="cline-any cline-neutral"> </span>
|
|
903
|
+
<span class="cline-any cline-neutral"> </span>
|
|
904
|
+
<span class="cline-any cline-neutral"> </span>
|
|
905
|
+
<span class="cline-any cline-neutral"> </span>
|
|
906
|
+
<span class="cline-any cline-neutral"> </span>
|
|
907
|
+
<span class="cline-any cline-neutral"> </span>
|
|
908
|
+
<span class="cline-any cline-neutral"> </span>
|
|
909
|
+
<span class="cline-any cline-neutral"> </span>
|
|
910
|
+
<span class="cline-any cline-neutral"> </span>
|
|
911
|
+
<span class="cline-any cline-neutral"> </span>
|
|
912
|
+
<span class="cline-any cline-neutral"> </span>
|
|
913
|
+
<span class="cline-any cline-neutral"> </span>
|
|
914
|
+
<span class="cline-any cline-neutral"> </span>
|
|
915
|
+
<span class="cline-any cline-neutral"> </span>
|
|
916
|
+
<span class="cline-any cline-neutral"> </span>
|
|
917
|
+
<span class="cline-any cline-neutral"> </span>
|
|
918
|
+
<span class="cline-any cline-neutral"> </span>
|
|
919
|
+
<span class="cline-any cline-neutral"> </span>
|
|
920
|
+
<span class="cline-any cline-neutral"> </span>
|
|
921
|
+
<span class="cline-any cline-neutral"> </span>
|
|
922
|
+
<span class="cline-any cline-neutral"> </span>
|
|
923
|
+
<span class="cline-any cline-neutral"> </span>
|
|
924
|
+
<span class="cline-any cline-neutral"> </span>
|
|
925
|
+
<span class="cline-any cline-neutral"> </span>
|
|
926
|
+
<span class="cline-any cline-neutral"> </span>
|
|
927
|
+
<span class="cline-any cline-neutral"> </span>
|
|
928
|
+
<span class="cline-any cline-neutral"> </span>
|
|
929
|
+
<span class="cline-any cline-neutral"> </span>
|
|
930
|
+
<span class="cline-any cline-neutral"> </span>
|
|
931
|
+
<span class="cline-any cline-neutral"> </span>
|
|
932
|
+
<span class="cline-any cline-neutral"> </span>
|
|
933
|
+
<span class="cline-any cline-yes">1x</span>
|
|
934
|
+
<span class="cline-any cline-neutral"> </span>
|
|
935
|
+
<span class="cline-any cline-neutral"> </span>
|
|
936
|
+
<span class="cline-any cline-neutral"> </span>
|
|
937
|
+
<span class="cline-any cline-neutral"> </span>
|
|
938
|
+
<span class="cline-any cline-neutral"> </span>
|
|
939
|
+
<span class="cline-any cline-neutral"> </span>
|
|
940
|
+
<span class="cline-any cline-neutral"> </span>
|
|
941
|
+
<span class="cline-any cline-neutral"> </span>
|
|
942
|
+
<span class="cline-any cline-neutral"> </span>
|
|
943
|
+
<span class="cline-any cline-neutral"> </span>
|
|
944
|
+
<span class="cline-any cline-yes">204x</span>
|
|
945
|
+
<span class="cline-any cline-neutral"> </span>
|
|
946
|
+
<span class="cline-any cline-neutral"> </span>
|
|
947
|
+
<span class="cline-any cline-neutral"> </span>
|
|
948
|
+
<span class="cline-any cline-neutral"> </span>
|
|
949
|
+
<span class="cline-any cline-neutral"> </span>
|
|
950
|
+
<span class="cline-any cline-yes">204x</span>
|
|
951
|
+
<span class="cline-any cline-neutral"> </span>
|
|
952
|
+
<span class="cline-any cline-neutral"> </span>
|
|
953
|
+
<span class="cline-any cline-neutral"> </span>
|
|
954
|
+
<span class="cline-any cline-neutral"> </span>
|
|
955
|
+
<span class="cline-any cline-yes">322x</span>
|
|
956
|
+
<span class="cline-any cline-yes">222x</span>
|
|
957
|
+
<span class="cline-any cline-neutral"> </span>
|
|
958
|
+
<span class="cline-any cline-yes">220x</span>
|
|
959
|
+
<span class="cline-any cline-neutral"> </span>
|
|
960
|
+
<span class="cline-any cline-neutral"> </span>
|
|
961
|
+
<span class="cline-any cline-neutral"> </span>
|
|
962
|
+
<span class="cline-any cline-neutral"> </span>
|
|
963
|
+
<span class="cline-any cline-neutral"> </span>
|
|
964
|
+
<span class="cline-any cline-neutral"> </span>
|
|
965
|
+
<span class="cline-any cline-neutral"> </span>
|
|
966
|
+
<span class="cline-any cline-yes">220x</span>
|
|
967
|
+
<span class="cline-any cline-neutral"> </span>
|
|
968
|
+
<span class="cline-any cline-neutral"> </span>
|
|
969
|
+
<span class="cline-any cline-neutral"> </span>
|
|
970
|
+
<span class="cline-any cline-neutral"> </span>
|
|
971
|
+
<span class="cline-any cline-neutral"> </span>
|
|
972
|
+
<span class="cline-any cline-neutral"> </span>
|
|
973
|
+
<span class="cline-any cline-neutral"> </span>
|
|
974
|
+
<span class="cline-any cline-yes">220x</span>
|
|
975
|
+
<span class="cline-any cline-neutral"> </span>
|
|
976
|
+
<span class="cline-any cline-neutral"> </span>
|
|
977
|
+
<span class="cline-any cline-neutral"> </span>
|
|
978
|
+
<span class="cline-any cline-neutral"> </span>
|
|
979
|
+
<span class="cline-any cline-neutral"> </span>
|
|
980
|
+
<span class="cline-any cline-neutral"> </span>
|
|
981
|
+
<span class="cline-any cline-yes">204x</span>
|
|
982
|
+
<span class="cline-any cline-neutral"> </span>
|
|
983
|
+
<span class="cline-any cline-neutral"> </span>
|
|
984
|
+
<span class="cline-any cline-neutral"> </span>
|
|
985
|
+
<span class="cline-any cline-yes">220x</span>
|
|
986
|
+
<span class="cline-any cline-neutral"> </span>
|
|
987
|
+
<span class="cline-any cline-neutral"> </span>
|
|
988
|
+
<span class="cline-any cline-neutral"> </span>
|
|
989
|
+
<span class="cline-any cline-neutral"> </span>
|
|
990
|
+
<span class="cline-any cline-neutral"> </span>
|
|
991
|
+
<span class="cline-any cline-yes">424x</span>
|
|
992
|
+
<span class="cline-any cline-yes">424x</span>
|
|
993
|
+
<span class="cline-any cline-yes">10x</span>
|
|
994
|
+
<span class="cline-any cline-neutral"> </span>
|
|
995
|
+
<span class="cline-any cline-yes">10x</span>
|
|
996
|
+
<span class="cline-any cline-neutral"> </span>
|
|
997
|
+
<span class="cline-any cline-yes">10x</span>
|
|
998
|
+
<span class="cline-any cline-neutral"> </span>
|
|
999
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1000
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1001
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1002
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1003
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1004
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1005
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1006
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1007
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1008
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1009
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1010
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1011
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1012
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1013
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1014
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1015
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1016
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1017
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1018
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1019
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1020
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1021
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1022
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1023
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1024
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1025
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1026
|
+
<span class="cline-any cline-yes">1294x</span>
|
|
1027
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1028
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1029
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1030
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1031
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1032
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1033
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1034
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1035
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1036
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1037
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1038
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1039
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1040
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1041
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1042
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1043
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1044
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1045
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1046
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1047
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1048
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1049
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1050
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1051
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1052
|
+
<span class="cline-any cline-yes">221x</span>
|
|
1053
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1054
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1055
|
+
<span class="cline-any cline-yes">203x</span>
|
|
1056
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1057
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1058
|
+
<span class="cline-any cline-yes">203x</span>
|
|
1059
|
+
<span class="cline-any cline-yes">188x</span>
|
|
1060
|
+
<span class="cline-any cline-yes">188x</span>
|
|
1061
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1062
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1063
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1064
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1065
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1066
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1067
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1068
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1069
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1070
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1071
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1072
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1073
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1074
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1075
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1076
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1077
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1078
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1079
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1080
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1081
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1082
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1083
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1084
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1085
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1086
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1087
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1088
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1089
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1090
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1091
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1092
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1093
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1094
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1095
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1096
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1097
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1098
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1099
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1100
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1101
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1102
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1103
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1104
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1105
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1106
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1108
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1109
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1111
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1112
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1113
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1114
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1115
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1116
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1117
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1118
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1119
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1120
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1121
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1122
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1127
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1128
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1129
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1130
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1131
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1132
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1136
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1139
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1145
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1146
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1147
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1148
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1149
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1150
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1151
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1152
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1153
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1155
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1156
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1157
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1164
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1165
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1166
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1168
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1169
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1170
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1171
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1172
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1173
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1174
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1175
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1176
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1177
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1178
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1179
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1180
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1181
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1183
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1184
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1185
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1186
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1188
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1189
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1190
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1191
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1192
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1193
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1194
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1195
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1196
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1197
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1198
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1199
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1202
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1203
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1204
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1205
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1206
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1207
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1208
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1209
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1211
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1212
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1213
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1217
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1218
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1220
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1221
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1222
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1224
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1225
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1227
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1228
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1230
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1232
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1233
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1234
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1237
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1238
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1240
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1247
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1253
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1254
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1255
|
+
<span class="cline-any cline-no"> </span>
|
|
1256
|
+
<span class="cline-any cline-no"> </span>
|
|
1257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1258
|
+
<span class="cline-any cline-no"> </span>
|
|
1259
|
+
<span class="cline-any cline-no"> </span>
|
|
1260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1261
|
+
<span class="cline-any cline-no"> </span>
|
|
1262
|
+
<span class="cline-any cline-no"> </span>
|
|
1263
|
+
<span class="cline-any cline-no"> </span>
|
|
1264
|
+
<span class="cline-any cline-no"> </span>
|
|
1265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1266
|
+
<span class="cline-any cline-no"> </span>
|
|
1267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1268
|
+
<span class="cline-any cline-no"> </span>
|
|
1269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1271
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1273
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1279
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1280
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1281
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1284
|
+
<span class="cline-any cline-no"> </span>
|
|
1285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1288
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1292
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1296
|
+
<span class="cline-any cline-no"> </span>
|
|
1297
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1298
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1299
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1300
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1301
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1304
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1308
|
+
<span class="cline-any cline-no"> </span>
|
|
1309
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1310
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1312
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1324
|
+
<span class="cline-any cline-no"> </span>
|
|
1325
|
+
<span class="cline-any cline-no"> </span>
|
|
1326
|
+
<span class="cline-any cline-no"> </span>
|
|
1327
|
+
<span class="cline-any cline-no"> </span>
|
|
1328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1330
|
+
<span class="cline-any cline-no"> </span>
|
|
1331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1334
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1339
|
+
<span class="cline-any cline-no"> </span>
|
|
1340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1342
|
+
<span class="cline-any cline-no"> </span>
|
|
1343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1345
|
+
<span class="cline-any cline-no"> </span>
|
|
1346
|
+
<span class="cline-any cline-no"> </span>
|
|
1347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1348
|
+
<span class="cline-any cline-no"> </span>
|
|
1349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1350
|
+
<span class="cline-any cline-no"> </span>
|
|
1351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1358
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1363
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1365
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1366
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1370
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1373
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1376
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1379
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1382
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1383
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1387
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1389
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1397
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1399
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1400
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1401
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1402
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1403
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1405
|
+
<span class="cline-any cline-yes">424x</span>
|
|
1406
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1407
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1408
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">// @flow
|
|
1409
|
+
import React from "react";
|
|
1410
|
+
import PropTypes from "prop-types";
|
|
1411
|
+
import { DraggableCore } from "react-draggable";
|
|
1412
|
+
import { Resizable } from "react-resizable";
|
|
1413
|
+
import { fastPositionEqual, perc, setTopLeft, setTransform } from "./utils";
|
|
1414
|
+
import {
|
|
1415
|
+
calcGridItemPosition,
|
|
1416
|
+
calcGridItemWHPx,
|
|
1417
|
+
calcGridColWidth,
|
|
1418
|
+
calcXY,
|
|
1419
|
+
calcWH,
|
|
1420
|
+
clamp
|
|
1421
|
+
} from "./calculateUtils";
|
|
1422
|
+
import {
|
|
1423
|
+
resizeHandleAxesType,
|
|
1424
|
+
resizeHandleType
|
|
1425
|
+
} from "./ReactGridLayoutPropTypes";
|
|
1426
|
+
import clsx from "clsx";
|
|
1427
|
+
import type { Element as ReactElement, Node as ReactNode } from "react";
|
|
1428
|
+
|
|
1429
|
+
import type {
|
|
1430
|
+
ReactDraggableCallbackData,
|
|
1431
|
+
GridDragEvent,
|
|
1432
|
+
GridResizeEvent,
|
|
1433
|
+
DroppingPosition,
|
|
1434
|
+
Position
|
|
1435
|
+
} from "./utils";
|
|
1436
|
+
|
|
1437
|
+
import type { PositionParams } from "./calculateUtils";
|
|
1438
|
+
import type {
|
|
1439
|
+
ResizeHandleAxis,
|
|
1440
|
+
ResizeHandle,
|
|
1441
|
+
ReactRef
|
|
1442
|
+
} from "./ReactGridLayoutPropTypes";
|
|
1443
|
+
|
|
1444
|
+
type PartialPosition = { top: number, left: number };
|
|
1445
|
+
type GridItemCallback<Data: GridDragEvent | GridResizeEvent> = (
|
|
1446
|
+
i: string,
|
|
1447
|
+
w: number,
|
|
1448
|
+
h: number,
|
|
1449
|
+
Data
|
|
1450
|
+
) => void;
|
|
1451
|
+
|
|
1452
|
+
type State = {
|
|
1453
|
+
resizing: ?{ width: number, height: number },
|
|
1454
|
+
dragging: ?{ top: number, left: number },
|
|
1455
|
+
className: string
|
|
1456
|
+
};
|
|
1457
|
+
|
|
1458
|
+
type Props = {
|
|
1459
|
+
children: ReactElement<any>,
|
|
1460
|
+
cols: number,
|
|
1461
|
+
containerWidth: number,
|
|
1462
|
+
margin: [number, number],
|
|
1463
|
+
containerPadding: [number, number],
|
|
1464
|
+
rowHeight: number,
|
|
1465
|
+
maxRows: number,
|
|
1466
|
+
isDraggable: boolean,
|
|
1467
|
+
isResizable: boolean,
|
|
1468
|
+
isBounded: boolean,
|
|
1469
|
+
static?: boolean,
|
|
1470
|
+
useCSSTransforms?: boolean,
|
|
1471
|
+
usePercentages?: boolean,
|
|
1472
|
+
transformScale: number,
|
|
1473
|
+
droppingPosition?: DroppingPosition,
|
|
1474
|
+
|
|
1475
|
+
className: string,
|
|
1476
|
+
style?: Object,
|
|
1477
|
+
// Draggability
|
|
1478
|
+
cancel: string,
|
|
1479
|
+
handle: string,
|
|
1480
|
+
|
|
1481
|
+
x: number,
|
|
1482
|
+
y: number,
|
|
1483
|
+
w: number,
|
|
1484
|
+
h: number,
|
|
1485
|
+
|
|
1486
|
+
minW: number,
|
|
1487
|
+
maxW: number,
|
|
1488
|
+
minH: number,
|
|
1489
|
+
maxH: number,
|
|
1490
|
+
i: string,
|
|
1491
|
+
|
|
1492
|
+
resizeHandles?: ResizeHandleAxis[],
|
|
1493
|
+
resizeHandle?: ResizeHandle,
|
|
1494
|
+
|
|
1495
|
+
onDrag?: GridItemCallback<GridDragEvent>,
|
|
1496
|
+
onDragStart?: GridItemCallback<GridDragEvent>,
|
|
1497
|
+
onDragStop?: GridItemCallback<GridDragEvent>,
|
|
1498
|
+
onResize?: GridItemCallback<GridResizeEvent>,
|
|
1499
|
+
onResizeStart?: GridItemCallback<GridResizeEvent>,
|
|
1500
|
+
onResizeStop?: GridItemCallback<GridResizeEvent>
|
|
1501
|
+
};
|
|
1502
|
+
|
|
1503
|
+
type DefaultProps = {
|
|
1504
|
+
className: string,
|
|
1505
|
+
cancel: string,
|
|
1506
|
+
handle: string,
|
|
1507
|
+
minH: number,
|
|
1508
|
+
minW: number,
|
|
1509
|
+
maxH: number,
|
|
1510
|
+
maxW: number,
|
|
1511
|
+
transformScale: number
|
|
1512
|
+
};
|
|
1513
|
+
|
|
1514
|
+
/**
|
|
1515
|
+
* An individual item within a ReactGridLayout.
|
|
1516
|
+
*/
|
|
1517
|
+
export default class GridItem extends React.Component<Props, State> {
|
|
1518
|
+
static propTypes = {
|
|
1519
|
+
// Children must be only a single element
|
|
1520
|
+
children: PropTypes.element,
|
|
1521
|
+
|
|
1522
|
+
// General grid attributes
|
|
1523
|
+
cols: PropTypes.number.isRequired,
|
|
1524
|
+
containerWidth: PropTypes.number.isRequired,
|
|
1525
|
+
rowHeight: PropTypes.number.isRequired,
|
|
1526
|
+
margin: PropTypes.array.isRequired,
|
|
1527
|
+
maxRows: PropTypes.number.isRequired,
|
|
1528
|
+
containerPadding: PropTypes.array.isRequired,
|
|
1529
|
+
|
|
1530
|
+
// These are all in grid units
|
|
1531
|
+
x: PropTypes.number.isRequired,
|
|
1532
|
+
y: PropTypes.number.isRequired,
|
|
1533
|
+
w: PropTypes.number.isRequired,
|
|
1534
|
+
h: PropTypes.number.isRequired,
|
|
1535
|
+
|
|
1536
|
+
// All optional
|
|
1537
|
+
minW: function (props: Props, propName: string) {
|
|
1538
|
+
const value = props[propName];
|
|
1539
|
+
if (typeof value !== "number") return new Error("minWidth not Number");
|
|
1540
|
+
if (value > props.w || value > props.maxW)
|
|
1541
|
+
return new Error("minWidth larger than item width/maxWidth");
|
|
1542
|
+
},
|
|
1543
|
+
|
|
1544
|
+
maxW: function (props: Props, propName: string) {
|
|
1545
|
+
const value = props[propName];
|
|
1546
|
+
if (typeof value !== "number") return new Error("maxWidth not Number");
|
|
1547
|
+
if (value < props.w || value < props.minW)
|
|
1548
|
+
return new Error("maxWidth smaller than item width/minWidth");
|
|
1549
|
+
},
|
|
1550
|
+
|
|
1551
|
+
minH: function (props: Props, propName: string) {
|
|
1552
|
+
const value = props[propName];
|
|
1553
|
+
if (typeof value !== "number") return new Error("minHeight not Number");
|
|
1554
|
+
if (value > props.h || value > props.maxH)
|
|
1555
|
+
return new Error("minHeight larger than item height/maxHeight");
|
|
1556
|
+
},
|
|
1557
|
+
|
|
1558
|
+
maxH: function (props: Props, propName: string) {
|
|
1559
|
+
const value = props[propName];
|
|
1560
|
+
if (typeof value !== "number") return new Error("maxHeight not Number");
|
|
1561
|
+
if (value < props.h || value < props.minH)
|
|
1562
|
+
return new Error("maxHeight smaller than item height/minHeight");
|
|
1563
|
+
},
|
|
1564
|
+
|
|
1565
|
+
// ID is nice to have for callbacks
|
|
1566
|
+
i: PropTypes.string.isRequired,
|
|
1567
|
+
|
|
1568
|
+
// Resize handle options
|
|
1569
|
+
resizeHandles: resizeHandleAxesType,
|
|
1570
|
+
resizeHandle: resizeHandleType,
|
|
1571
|
+
|
|
1572
|
+
// Functions
|
|
1573
|
+
onDragStop: PropTypes.func,
|
|
1574
|
+
onDragStart: PropTypes.func,
|
|
1575
|
+
onDrag: PropTypes.func,
|
|
1576
|
+
onResizeStop: PropTypes.func,
|
|
1577
|
+
onResizeStart: PropTypes.func,
|
|
1578
|
+
onResize: PropTypes.func,
|
|
1579
|
+
|
|
1580
|
+
// Flags
|
|
1581
|
+
isDraggable: PropTypes.bool.isRequired,
|
|
1582
|
+
isResizable: PropTypes.bool.isRequired,
|
|
1583
|
+
isBounded: PropTypes.bool.isRequired,
|
|
1584
|
+
static: PropTypes.bool,
|
|
1585
|
+
|
|
1586
|
+
// Use CSS transforms instead of top/left
|
|
1587
|
+
useCSSTransforms: PropTypes.bool.isRequired,
|
|
1588
|
+
transformScale: PropTypes.number,
|
|
1589
|
+
|
|
1590
|
+
// Others
|
|
1591
|
+
className: PropTypes.string,
|
|
1592
|
+
// Selector for draggable handle
|
|
1593
|
+
handle: PropTypes.string,
|
|
1594
|
+
// Selector for draggable cancel (see react-draggable)
|
|
1595
|
+
cancel: PropTypes.string,
|
|
1596
|
+
// Current position of a dropping element
|
|
1597
|
+
droppingPosition: PropTypes.shape({
|
|
1598
|
+
e: PropTypes.object.isRequired,
|
|
1599
|
+
left: PropTypes.number.isRequired,
|
|
1600
|
+
top: PropTypes.number.isRequired
|
|
1601
|
+
})
|
|
1602
|
+
};
|
|
1603
|
+
|
|
1604
|
+
static defaultProps: DefaultProps = {
|
|
1605
|
+
className: "",
|
|
1606
|
+
cancel: "",
|
|
1607
|
+
handle: "",
|
|
1608
|
+
minH: 1,
|
|
1609
|
+
minW: 1,
|
|
1610
|
+
maxH: Infinity,
|
|
1611
|
+
maxW: Infinity,
|
|
1612
|
+
transformScale: 1
|
|
1613
|
+
};
|
|
1614
|
+
|
|
1615
|
+
state: State = {
|
|
1616
|
+
resizing: null,
|
|
1617
|
+
dragging: null,
|
|
1618
|
+
className: ""
|
|
1619
|
+
};
|
|
1620
|
+
|
|
1621
|
+
elementRef: ReactRef<HTMLDivElement> = React.createRef();
|
|
1622
|
+
|
|
1623
|
+
shouldComponentUpdate(nextProps: Props, nextState: State): boolean {
|
|
1624
|
+
// We can't deeply compare children. If the developer memoizes them, we can
|
|
1625
|
+
// use this optimization.
|
|
1626
|
+
if (this.props.children !== nextProps.children) return true;
|
|
1627
|
+
if (this.props.droppingPosition !== nextProps.droppingPosition) return true;
|
|
1628
|
+
// TODO memoize these calculations so they don't take so long?
|
|
1629
|
+
const oldPosition = calcGridItemPosition(
|
|
1630
|
+
this.getPositionParams(this.props),
|
|
1631
|
+
this.props.x,
|
|
1632
|
+
this.props.y,
|
|
1633
|
+
this.props.w,
|
|
1634
|
+
this.props.h,
|
|
1635
|
+
this.state
|
|
1636
|
+
);
|
|
1637
|
+
const newPosition = calcGridItemPosition(
|
|
1638
|
+
this.getPositionParams(nextProps),
|
|
1639
|
+
nextProps.x,
|
|
1640
|
+
nextProps.y,
|
|
1641
|
+
nextProps.w,
|
|
1642
|
+
nextProps.h,
|
|
1643
|
+
nextState
|
|
1644
|
+
);
|
|
1645
|
+
return (
|
|
1646
|
+
!fastPositionEqual(oldPosition, newPosition) ||
|
|
1647
|
+
this.props.useCSSTransforms !== nextProps.useCSSTransforms
|
|
1648
|
+
);
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
componentDidMount() {
|
|
1652
|
+
this.moveDroppingItem({});
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
componentDidUpdate(prevProps: Props) {
|
|
1656
|
+
this.moveDroppingItem(prevProps);
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
// When a droppingPosition is present, this means we should fire a move event, as if we had moved
|
|
1660
|
+
// this element by `x, y` pixels.
|
|
1661
|
+
moveDroppingItem(prevProps: Props) {
|
|
1662
|
+
const { droppingPosition } = this.props;
|
|
1663
|
+
if (!droppingPosition) return;
|
|
1664
|
+
const node = this.elementRef.current;
|
|
1665
|
+
// Can't find DOM node (are we unmounted?)
|
|
1666
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!node) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
1667
|
+
|
|
1668
|
+
const prevDroppingPosition = prevProps.droppingPosition || {
|
|
1669
|
+
left: 0,
|
|
1670
|
+
top: 0
|
|
1671
|
+
};
|
|
1672
|
+
const { dragging } = this.state;
|
|
1673
|
+
|
|
1674
|
+
const shouldDrag =
|
|
1675
|
+
(dragging && droppingPosition.left !== prevDroppingPosition.left) ||
|
|
1676
|
+
droppingPosition.top !== prevDroppingPosition.top;
|
|
1677
|
+
|
|
1678
|
+
if (!dragging) {
|
|
1679
|
+
this.onDragStart(droppingPosition.e, {
|
|
1680
|
+
node,
|
|
1681
|
+
deltaX: droppingPosition.left,
|
|
1682
|
+
deltaY: droppingPosition.top
|
|
1683
|
+
});
|
|
1684
|
+
} else if (shouldDrag) {
|
|
1685
|
+
const deltaX = droppingPosition.left - dragging.left;
|
|
1686
|
+
const deltaY = droppingPosition.top - dragging.top;
|
|
1687
|
+
|
|
1688
|
+
this.onDrag(droppingPosition.e, {
|
|
1689
|
+
node,
|
|
1690
|
+
deltaX,
|
|
1691
|
+
deltaY
|
|
1692
|
+
});
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1696
|
+
getPositionParams(props: Props = this.props): PositionParams {
|
|
1697
|
+
return {
|
|
1698
|
+
cols: props.cols,
|
|
1699
|
+
containerPadding: props.containerPadding,
|
|
1700
|
+
containerWidth: props.containerWidth,
|
|
1701
|
+
margin: props.margin,
|
|
1702
|
+
maxRows: props.maxRows,
|
|
1703
|
+
rowHeight: props.rowHeight
|
|
1704
|
+
};
|
|
1705
|
+
}
|
|
1706
|
+
|
|
1707
|
+
/**
|
|
1708
|
+
* This is where we set the grid item's absolute placement. It gets a little tricky because we want to do it
|
|
1709
|
+
* well when server rendering, and the only way to do that properly is to use percentage width/left because
|
|
1710
|
+
* we don't know exactly what the browser viewport is.
|
|
1711
|
+
* Unfortunately, CSS Transforms, which are great for performance, break in this instance because a percentage
|
|
1712
|
+
* left is relative to the item itself, not its container! So we cannot use them on the server rendering pass.
|
|
1713
|
+
*
|
|
1714
|
+
* @param {Object} pos Position object with width, height, left, top.
|
|
1715
|
+
* @return {Object} Style object.
|
|
1716
|
+
*/
|
|
1717
|
+
createStyle(pos: Position): { [key: string]: ?string } {
|
|
1718
|
+
const { usePercentages, containerWidth, useCSSTransforms } = this.props;
|
|
1719
|
+
|
|
1720
|
+
let style;
|
|
1721
|
+
// CSS Transforms support (default)
|
|
1722
|
+
if (useCSSTransforms) {
|
|
1723
|
+
style = setTransform(pos);
|
|
1724
|
+
} else {
|
|
1725
|
+
// top,left (slow)
|
|
1726
|
+
style = setTopLeft(pos);
|
|
1727
|
+
|
|
1728
|
+
// This is used for server rendering.
|
|
1729
|
+
if (usePercentages) {
|
|
1730
|
+
style.left = perc(pos.left / containerWidth);
|
|
1731
|
+
style.width = perc(pos.width / containerWidth);
|
|
1732
|
+
}
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
return style;
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
/**
|
|
1739
|
+
* Mix a Draggable instance into a child.
|
|
1740
|
+
* @param {Element} child Child element.
|
|
1741
|
+
* @return {Element} Child wrapped in Draggable.
|
|
1742
|
+
*/
|
|
1743
|
+
mixinDraggable(
|
|
1744
|
+
child: ReactElement<any>,
|
|
1745
|
+
isDraggable: boolean
|
|
1746
|
+
): ReactElement<any> {
|
|
1747
|
+
return (
|
|
1748
|
+
<DraggableCore
|
|
1749
|
+
disabled={!isDraggable}
|
|
1750
|
+
onStart={this.onDragStart}
|
|
1751
|
+
onDrag={this.onDrag}
|
|
1752
|
+
onStop={this.onDragStop}
|
|
1753
|
+
handle={this.props.handle}
|
|
1754
|
+
cancel={
|
|
1755
|
+
".react-resizable-handle" +
|
|
1756
|
+
(this.props.cancel ? <span class="branch-0 cbranch-no" title="branch not covered" >"," + this.props.cancel </span>: "")
|
|
1757
|
+
}
|
|
1758
|
+
scale={this.props.transformScale}
|
|
1759
|
+
nodeRef={this.elementRef}
|
|
1760
|
+
>
|
|
1761
|
+
{child}
|
|
1762
|
+
</DraggableCore>
|
|
1763
|
+
);
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
/**
|
|
1767
|
+
* Mix a Resizable instance into a child.
|
|
1768
|
+
* @param {Element} child Child element.
|
|
1769
|
+
* @param {Object} position Position object (pixel values)
|
|
1770
|
+
* @return {Element} Child wrapped in Resizable.
|
|
1771
|
+
*/
|
|
1772
|
+
mixinResizable(
|
|
1773
|
+
child: ReactElement<any>,
|
|
1774
|
+
position: Position,
|
|
1775
|
+
isResizable: boolean
|
|
1776
|
+
): ReactElement<any> {
|
|
1777
|
+
const {
|
|
1778
|
+
cols,
|
|
1779
|
+
x,
|
|
1780
|
+
minW,
|
|
1781
|
+
minH,
|
|
1782
|
+
maxW,
|
|
1783
|
+
maxH,
|
|
1784
|
+
transformScale,
|
|
1785
|
+
resizeHandles,
|
|
1786
|
+
resizeHandle
|
|
1787
|
+
} = this.props;
|
|
1788
|
+
const positionParams = this.getPositionParams();
|
|
1789
|
+
|
|
1790
|
+
// This is the max possible width - doesn't go to infinity because of the width of the window
|
|
1791
|
+
const maxWidth = calcGridItemPosition(
|
|
1792
|
+
positionParams,
|
|
1793
|
+
0,
|
|
1794
|
+
0,
|
|
1795
|
+
cols - x,
|
|
1796
|
+
0
|
|
1797
|
+
).width;
|
|
1798
|
+
|
|
1799
|
+
// Calculate min/max constraints using our min & maxes
|
|
1800
|
+
const mins = calcGridItemPosition(positionParams, 0, 0, minW, minH);
|
|
1801
|
+
const maxes = calcGridItemPosition(positionParams, 0, 0, maxW, maxH);
|
|
1802
|
+
const minConstraints = [mins.width, mins.height];
|
|
1803
|
+
const maxConstraints = [
|
|
1804
|
+
Math.min(maxes.width, maxWidth),
|
|
1805
|
+
Math.min(maxes.height, Infinity)
|
|
1806
|
+
];
|
|
1807
|
+
return (
|
|
1808
|
+
<Resizable
|
|
1809
|
+
// These are opts for the resize handle itself
|
|
1810
|
+
draggableOpts={{
|
|
1811
|
+
disabled: !isResizable
|
|
1812
|
+
}}
|
|
1813
|
+
className={isResizable ? undefined : "react-resizable-hide"}
|
|
1814
|
+
width={position.width}
|
|
1815
|
+
height={position.height}
|
|
1816
|
+
minConstraints={minConstraints}
|
|
1817
|
+
maxConstraints={maxConstraints}
|
|
1818
|
+
onResizeStop={this.onResizeStop}
|
|
1819
|
+
onResizeStart={this.onResizeStart}
|
|
1820
|
+
onResize={this.onResize}
|
|
1821
|
+
transformScale={transformScale}
|
|
1822
|
+
resizeHandles={resizeHandles}
|
|
1823
|
+
handle={resizeHandle}
|
|
1824
|
+
>
|
|
1825
|
+
{child}
|
|
1826
|
+
</Resizable>
|
|
1827
|
+
);
|
|
1828
|
+
}
|
|
1829
|
+
|
|
1830
|
+
/**
|
|
1831
|
+
* onDragStart event handler
|
|
1832
|
+
* @param {Event} e event data
|
|
1833
|
+
* @param {Object} callbackData an object with node, delta and position information
|
|
1834
|
+
*/
|
|
1835
|
+
onDragStart: (Event, ReactDraggableCallbackData) => void = (e, { node }) => {
|
|
1836
|
+
const { onDragStart, transformScale } = this.props;
|
|
1837
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!onDragStart) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
1838
|
+
|
|
1839
|
+
const newPosition: PartialPosition = { top: 0, left: 0 };
|
|
1840
|
+
|
|
1841
|
+
// TODO: this wont work on nested parents
|
|
1842
|
+
const { offsetParent } = node;
|
|
1843
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!offsetParent) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
1844
|
+
const parentRect = offsetParent.getBoundingClientRect();
|
|
1845
|
+
const clientRect = node.getBoundingClientRect();
|
|
1846
|
+
const cLeft = clientRect.left / transformScale;
|
|
1847
|
+
const pLeft = parentRect.left / transformScale;
|
|
1848
|
+
const cTop = clientRect.top / transformScale;
|
|
1849
|
+
const pTop = parentRect.top / transformScale;
|
|
1850
|
+
newPosition.left = cLeft - pLeft + offsetParent.scrollLeft;
|
|
1851
|
+
newPosition.top = cTop - pTop + offsetParent.scrollTop;
|
|
1852
|
+
this.setState({ dragging: newPosition });
|
|
1853
|
+
|
|
1854
|
+
// Call callback with this data
|
|
1855
|
+
const { x, y } = calcXY(
|
|
1856
|
+
this.getPositionParams(),
|
|
1857
|
+
newPosition.top,
|
|
1858
|
+
newPosition.left,
|
|
1859
|
+
this.props.w,
|
|
1860
|
+
this.props.h
|
|
1861
|
+
);
|
|
1862
|
+
|
|
1863
|
+
return onDragStart.call(this, this.props.i, x, y, {
|
|
1864
|
+
e,
|
|
1865
|
+
node,
|
|
1866
|
+
newPosition
|
|
1867
|
+
});
|
|
1868
|
+
};
|
|
1869
|
+
|
|
1870
|
+
/**
|
|
1871
|
+
* onDrag event handler
|
|
1872
|
+
* @param {Event} e event data
|
|
1873
|
+
* @param {Object} callbackData an object with node, delta and position information
|
|
1874
|
+
*/
|
|
1875
|
+
onDrag: (Event, ReactDraggableCallbackData) => void = (
|
|
1876
|
+
e,
|
|
1877
|
+
{ node, deltaX, deltaY }
|
|
1878
|
+
) => {
|
|
1879
|
+
const { onDrag } = this.props;
|
|
1880
|
+
if (!onDrag) return;
|
|
1881
|
+
|
|
1882
|
+
if (!this.state.dragging) {
|
|
1883
|
+
throw new Error("onDrag called before onDragStart.");
|
|
1884
|
+
}
|
|
1885
|
+
let top = this.state.dragging.top + deltaY;
|
|
1886
|
+
let left = this.state.dragging.left + deltaX;
|
|
1887
|
+
|
|
1888
|
+
const { isBounded, i, w, h, containerWidth } = this.props;
|
|
1889
|
+
const positionParams = this.getPositionParams();
|
|
1890
|
+
|
|
1891
|
+
// Boundary calculations; keeps items within the grid
|
|
1892
|
+
if (isBounded) {
|
|
1893
|
+
const { offsetParent } = node;
|
|
1894
|
+
|
|
1895
|
+
if (offsetParent) {
|
|
1896
|
+
const { margin, rowHeight } = this.props;
|
|
1897
|
+
const bottomBoundary =
|
|
1898
|
+
offsetParent.clientHeight - calcGridItemWHPx(h, rowHeight, margin[1]);
|
|
1899
|
+
top = clamp(top, 0, bottomBoundary);
|
|
1900
|
+
|
|
1901
|
+
const colWidth = calcGridColWidth(positionParams);
|
|
1902
|
+
const rightBoundary =
|
|
1903
|
+
containerWidth - calcGridItemWHPx(w, colWidth, margin[0]);
|
|
1904
|
+
left = clamp(left, 0, rightBoundary);
|
|
1905
|
+
}
|
|
1906
|
+
}
|
|
1907
|
+
|
|
1908
|
+
const newPosition: PartialPosition = { top, left };
|
|
1909
|
+
this.setState({ dragging: newPosition });
|
|
1910
|
+
|
|
1911
|
+
// Call callback with this data
|
|
1912
|
+
const { x, y } = calcXY(positionParams, top, left, w, h);
|
|
1913
|
+
return onDrag.call(this, i, x, y, {
|
|
1914
|
+
e,
|
|
1915
|
+
node,
|
|
1916
|
+
newPosition
|
|
1917
|
+
});
|
|
1918
|
+
};
|
|
1919
|
+
|
|
1920
|
+
/**
|
|
1921
|
+
* onDragStop event handler
|
|
1922
|
+
* @param {Event} e event data
|
|
1923
|
+
* @param {Object} callbackData an object with node, delta and position information
|
|
1924
|
+
*/
|
|
1925
|
+
onDragStop: (Event, ReactDraggableCallbackData) => void = <span class="fstat-no" title="function not covered" >(e</span>, { node }) => {
|
|
1926
|
+
const { onDragStop } = <span class="cstat-no" title="statement not covered" >this.props;</span>
|
|
1927
|
+
<span class="cstat-no" title="statement not covered" > if (!onDragStop) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
1928
|
+
|
|
1929
|
+
<span class="cstat-no" title="statement not covered" > if (!this.state.dragging) {</span>
|
|
1930
|
+
<span class="cstat-no" title="statement not covered" > throw new Error("onDragEnd called before onDragStart.");</span>
|
|
1931
|
+
}
|
|
1932
|
+
const { w, h, i } = <span class="cstat-no" title="statement not covered" >this.props;</span>
|
|
1933
|
+
const { left, top } = <span class="cstat-no" title="statement not covered" >this.state.dragging;</span>
|
|
1934
|
+
const newPosition: PartialPosition = <span class="cstat-no" title="statement not covered" >{ top, left };</span>
|
|
1935
|
+
<span class="cstat-no" title="statement not covered" > this.setState({ dragging: null });</span>
|
|
1936
|
+
|
|
1937
|
+
const { x, y } = <span class="cstat-no" title="statement not covered" >calcXY(this.getPositionParams(), top, left, w, h);</span>
|
|
1938
|
+
|
|
1939
|
+
<span class="cstat-no" title="statement not covered" > return onDragStop.call(this, i, x, y, {</span>
|
|
1940
|
+
e,
|
|
1941
|
+
node,
|
|
1942
|
+
newPosition
|
|
1943
|
+
});
|
|
1944
|
+
};
|
|
1945
|
+
|
|
1946
|
+
/**
|
|
1947
|
+
* onResizeStop event handler
|
|
1948
|
+
* @param {Event} e event data
|
|
1949
|
+
* @param {Object} callbackData an object with node and size information
|
|
1950
|
+
*/
|
|
1951
|
+
onResizeStop: (Event, { node: HTMLElement, size: Position }) => void = <span class="fstat-no" title="function not covered" >(</span>
|
|
1952
|
+
e,
|
|
1953
|
+
callbackData
|
|
1954
|
+
) => {
|
|
1955
|
+
<span class="cstat-no" title="statement not covered" > this.onResizeHandler(e, callbackData, "onResizeStop");</span>
|
|
1956
|
+
};
|
|
1957
|
+
|
|
1958
|
+
/**
|
|
1959
|
+
* onResizeStart event handler
|
|
1960
|
+
* @param {Event} e event data
|
|
1961
|
+
* @param {Object} callbackData an object with node and size information
|
|
1962
|
+
*/
|
|
1963
|
+
onResizeStart: (Event, { node: HTMLElement, size: Position }) => void = <span class="fstat-no" title="function not covered" >(</span>
|
|
1964
|
+
e,
|
|
1965
|
+
callbackData
|
|
1966
|
+
) => {
|
|
1967
|
+
<span class="cstat-no" title="statement not covered" > this.onResizeHandler(e, callbackData, "onResizeStart");</span>
|
|
1968
|
+
};
|
|
1969
|
+
|
|
1970
|
+
/**
|
|
1971
|
+
* onResize event handler
|
|
1972
|
+
* @param {Event} e event data
|
|
1973
|
+
* @param {Object} callbackData an object with node and size information
|
|
1974
|
+
*/
|
|
1975
|
+
onResize: (Event, { node: HTMLElement, size: Position }) => void = <span class="fstat-no" title="function not covered" >(</span>
|
|
1976
|
+
e,
|
|
1977
|
+
callbackData
|
|
1978
|
+
) => {
|
|
1979
|
+
<span class="cstat-no" title="statement not covered" > this.onResizeHandler(e, callbackData, "onResize");</span>
|
|
1980
|
+
};
|
|
1981
|
+
|
|
1982
|
+
/**
|
|
1983
|
+
* Wrapper around drag events to provide more useful data.
|
|
1984
|
+
* All drag events call the function with the given handler name,
|
|
1985
|
+
* with the signature (index, x, y).
|
|
1986
|
+
*
|
|
1987
|
+
* @param {String} handlerName Handler name to wrap.
|
|
1988
|
+
* @return {Function} Handler function.
|
|
1989
|
+
*/
|
|
1990
|
+
<span class="fstat-no" title="function not covered" > on</span>ResizeHandler(
|
|
1991
|
+
e: Event,
|
|
1992
|
+
{ node, size }: { node: HTMLElement, size: Position },
|
|
1993
|
+
handlerName: string
|
|
1994
|
+
): void {
|
|
1995
|
+
const handler = <span class="cstat-no" title="statement not covered" >this.props[handlerName];</span>
|
|
1996
|
+
<span class="cstat-no" title="statement not covered" > if (!handler) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
1997
|
+
const { cols, x, y, i, maxH, minH } = <span class="cstat-no" title="statement not covered" >this.props;</span>
|
|
1998
|
+
let { minW, maxW } = <span class="cstat-no" title="statement not covered" >this.props;</span>
|
|
1999
|
+
|
|
2000
|
+
// Get new XY
|
|
2001
|
+
let { w, h } = <span class="cstat-no" title="statement not covered" >calcWH(</span>
|
|
2002
|
+
this.getPositionParams(),
|
|
2003
|
+
size.width,
|
|
2004
|
+
size.height,
|
|
2005
|
+
x,
|
|
2006
|
+
y
|
|
2007
|
+
);
|
|
2008
|
+
|
|
2009
|
+
// minW should be at least 1 (TODO propTypes validation?)
|
|
2010
|
+
<span class="cstat-no" title="statement not covered" > minW = Math.max(minW, 1);</span>
|
|
2011
|
+
|
|
2012
|
+
// maxW should be at most (cols - x)
|
|
2013
|
+
<span class="cstat-no" title="statement not covered" > maxW = Math.min(maxW, cols - x);</span>
|
|
2014
|
+
|
|
2015
|
+
// Min/max capping
|
|
2016
|
+
<span class="cstat-no" title="statement not covered" > w = clamp(w, minW, maxW);</span>
|
|
2017
|
+
<span class="cstat-no" title="statement not covered" > h = clamp(h, minH, maxH);</span>
|
|
2018
|
+
|
|
2019
|
+
<span class="cstat-no" title="statement not covered" > this.setState({ resizing: handlerName === "onResizeStop" ? null : size });</span>
|
|
2020
|
+
|
|
2021
|
+
<span class="cstat-no" title="statement not covered" > handler.call(this, i, w, h, { e, node, size });</span>
|
|
2022
|
+
}
|
|
2023
|
+
|
|
2024
|
+
render(): ReactNode {
|
|
2025
|
+
const {
|
|
2026
|
+
x,
|
|
2027
|
+
y,
|
|
2028
|
+
w,
|
|
2029
|
+
h,
|
|
2030
|
+
isDraggable,
|
|
2031
|
+
isResizable,
|
|
2032
|
+
droppingPosition,
|
|
2033
|
+
useCSSTransforms
|
|
2034
|
+
} = this.props;
|
|
2035
|
+
|
|
2036
|
+
const pos = calcGridItemPosition(
|
|
2037
|
+
this.getPositionParams(),
|
|
2038
|
+
x,
|
|
2039
|
+
y,
|
|
2040
|
+
w,
|
|
2041
|
+
h,
|
|
2042
|
+
this.state
|
|
2043
|
+
);
|
|
2044
|
+
const child = React.Children.only(this.props.children);
|
|
2045
|
+
|
|
2046
|
+
// Create the child element. We clone the existing element but modify its className and style.
|
|
2047
|
+
let newChild = React.cloneElement(child, {
|
|
2048
|
+
ref: this.elementRef,
|
|
2049
|
+
className: clsx(
|
|
2050
|
+
"react-grid-item",
|
|
2051
|
+
child.props.className,
|
|
2052
|
+
this.props.className,
|
|
2053
|
+
{
|
|
2054
|
+
static: this.props.static,
|
|
2055
|
+
resizing: Boolean(this.state.resizing),
|
|
2056
|
+
"react-draggable": isDraggable,
|
|
2057
|
+
"react-draggable-dragging": Boolean(this.state.dragging),
|
|
2058
|
+
dropping: Boolean(droppingPosition),
|
|
2059
|
+
cssTransforms: useCSSTransforms
|
|
2060
|
+
}
|
|
2061
|
+
),
|
|
2062
|
+
// We can set the width and height on the child, but unfortunately we can't set the position.
|
|
2063
|
+
style: {
|
|
2064
|
+
...this.props.style,
|
|
2065
|
+
...child.props.style,
|
|
2066
|
+
...this.createStyle(pos)
|
|
2067
|
+
}
|
|
2068
|
+
});
|
|
2069
|
+
|
|
2070
|
+
// Resizable support. This is usually on but the user can toggle it off.
|
|
2071
|
+
newChild = this.mixinResizable(newChild, pos, isResizable);
|
|
2072
|
+
|
|
2073
|
+
// Draggable support. This is always on, except for with placeholders.
|
|
2074
|
+
newChild = this.mixinDraggable(newChild, isDraggable);
|
|
2075
|
+
|
|
2076
|
+
return newChild;
|
|
2077
|
+
}
|
|
2078
|
+
}
|
|
2079
|
+
</pre></td></tr></table></pre>
|
|
2080
|
+
|
|
2081
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
2082
|
+
</div><!-- /wrapper -->
|
|
2083
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
2084
|
+
Code coverage generated by
|
|
2085
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener">istanbul</a>
|
|
2086
|
+
at Mon Jan 24 2022 09:12:15 GMT-0500 (Eastern Standard Time)
|
|
2087
|
+
</div>
|
|
2088
|
+
</div>
|
|
2089
|
+
<script src="../../prettify.js"></script>
|
|
2090
|
+
<script>
|
|
2091
|
+
window.onload = function () {
|
|
2092
|
+
prettyPrint();
|
|
2093
|
+
};
|
|
2094
|
+
</script>
|
|
2095
|
+
<script src="../../sorter.js"></script>
|
|
2096
|
+
<script src="../../block-navigation.js"></script>
|
|
2097
|
+
</body>
|
|
2098
|
+
</html>
|
|
2099
|
+
|