@c15t/backend 1.2.0-canary.9 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +53 -52
- package/CHANGELOG.md +7 -0
- package/dist/__tests__/server.test.d.ts +2 -0
- package/dist/__tests__/server.test.d.ts.map +1 -0
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts.cjs +708 -0
- package/dist/contracts.js +661 -0
- package/dist/core.cjs +94 -47
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +94 -47
- package/dist/middleware/openapi/config.d.ts +1 -1
- package/dist/middleware/openapi/config.d.ts.map +1 -1
- package/dist/pkgs/data-model/index.cjs +57 -39
- package/dist/pkgs/data-model/index.js +57 -39
- package/dist/pkgs/data-model/schema/index.cjs +57 -39
- package/dist/pkgs/data-model/schema/index.js +57 -39
- package/dist/router.cjs +3 -1
- package/dist/router.js +3 -1
- package/dist/schema/consent-policy/registry.d.ts.map +1 -1
- package/dist/schema/create-registry.d.ts.map +1 -1
- package/dist/schema/index.cjs +57 -39
- package/dist/schema/index.js +57 -39
- package/package.json +7 -2
- package/rslib.config.ts +1 -0
- package/src/__tests__/server.test.ts +96 -0
- package/src/contracts/index.ts +2 -0
- package/src/core.ts +29 -1
- package/src/middleware/cors/cors.test.ts +0 -1
- package/src/middleware/openapi/config.ts +10 -7
- package/src/schema/consent-policy/registry.ts +74 -51
- package/.turbo/turbo-fmt.log +0 -7
- package/.turbo/turbo-test.log +0 -426
- package/coverage/coverage-final.json +0 -88
- package/coverage/coverage-summary.json +0 -89
- package/coverage/html/backend/index.html +0 -116
- package/coverage/html/backend/rslib.config.ts.html +0 -415
- package/coverage/html/backend/src/contracts/consent/index.html +0 -161
- package/coverage/html/backend/src/contracts/consent/index.ts.html +0 -112
- package/coverage/html/backend/src/contracts/consent/post.contract.ts.html +0 -550
- package/coverage/html/backend/src/contracts/consent/show-banner.contract.ts.html +0 -220
- package/coverage/html/backend/src/contracts/consent/verify.contract.ts.html +0 -463
- package/coverage/html/backend/src/contracts/index.html +0 -116
- package/coverage/html/backend/src/contracts/index.ts.html +0 -139
- package/coverage/html/backend/src/contracts/meta/index.html +0 -131
- package/coverage/html/backend/src/contracts/meta/index.ts.html +0 -100
- package/coverage/html/backend/src/contracts/meta/status.contract.ts.html +0 -196
- package/coverage/html/backend/src/contracts/shared/index.html +0 -116
- package/coverage/html/backend/src/contracts/shared/jurisdiction.schema.ts.html +0 -175
- package/coverage/html/backend/src/core.ts.html +0 -1342
- package/coverage/html/backend/src/handlers/consent/index.html +0 -161
- package/coverage/html/backend/src/handlers/consent/index.ts.html +0 -112
- package/coverage/html/backend/src/handlers/consent/post.handler.ts.html +0 -904
- package/coverage/html/backend/src/handlers/consent/show-banner.handler.ts.html +0 -532
- package/coverage/html/backend/src/handlers/consent/verify.handler.ts.html +0 -1000
- package/coverage/html/backend/src/handlers/meta/index.html +0 -131
- package/coverage/html/backend/src/handlers/meta/index.ts.html +0 -100
- package/coverage/html/backend/src/handlers/meta/status.handler.ts.html +0 -226
- package/coverage/html/backend/src/index.html +0 -161
- package/coverage/html/backend/src/init.ts.html +0 -1018
- package/coverage/html/backend/src/middleware/cors/cors.ts.html +0 -661
- package/coverage/html/backend/src/middleware/cors/index.html +0 -146
- package/coverage/html/backend/src/middleware/cors/is-origin-trusted.ts.html +0 -463
- package/coverage/html/backend/src/middleware/cors/process-cors.ts.html +0 -358
- package/coverage/html/backend/src/middleware/openapi/config.ts.html +0 -160
- package/coverage/html/backend/src/middleware/openapi/handlers.ts.html +0 -481
- package/coverage/html/backend/src/middleware/openapi/index.html +0 -131
- package/coverage/html/backend/src/pkgs/api-router/hooks/index.html +0 -116
- package/coverage/html/backend/src/pkgs/api-router/hooks/processor.ts.html +0 -544
- package/coverage/html/backend/src/pkgs/api-router/index.html +0 -116
- package/coverage/html/backend/src/pkgs/api-router/telemetry.ts.html +0 -334
- package/coverage/html/backend/src/pkgs/api-router/utils/index.html +0 -116
- package/coverage/html/backend/src/pkgs/api-router/utils/ip.ts.html +0 -361
- package/coverage/html/backend/src/pkgs/data-model/fields/field-factory.ts.html +0 -709
- package/coverage/html/backend/src/pkgs/data-model/fields/id-generator.ts.html +0 -256
- package/coverage/html/backend/src/pkgs/data-model/fields/index.html +0 -161
- package/coverage/html/backend/src/pkgs/data-model/fields/superjson-utils.ts.html +0 -136
- package/coverage/html/backend/src/pkgs/data-model/fields/zod-fields.ts.html +0 -496
- package/coverage/html/backend/src/pkgs/data-model/hooks/create-hooks.ts.html +0 -349
- package/coverage/html/backend/src/pkgs/data-model/hooks/index.html +0 -176
- package/coverage/html/backend/src/pkgs/data-model/hooks/update-hooks.ts.html +0 -358
- package/coverage/html/backend/src/pkgs/data-model/hooks/update-many-hooks.ts.html +0 -613
- package/coverage/html/backend/src/pkgs/data-model/hooks/utils.ts.html +0 -538
- package/coverage/html/backend/src/pkgs/data-model/hooks/with-hooks-factory.ts.html +0 -289
- package/coverage/html/backend/src/pkgs/db-adapters/adapter-factory.ts.html +0 -289
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.ts.html +0 -2203
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/drizzle-adapter/index.html +0 -116
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/index.html +0 -116
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/dialect.ts.html +0 -670
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/index.html +0 -131
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.ts.html +0 -3634
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/index.html +0 -116
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.ts.html +0 -1417
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/memory-adapter/index.html +0 -116
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.ts.html +0 -2071
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/prisma-adapter/index.html +0 -116
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.ts.html +0 -1834
- package/coverage/html/backend/src/pkgs/db-adapters/adapters/test.ts.html +0 -316
- package/coverage/html/backend/src/pkgs/db-adapters/index.html +0 -131
- package/coverage/html/backend/src/pkgs/db-adapters/utils.ts.html +0 -238
- package/coverage/html/backend/src/pkgs/migrations/get-migration.ts.html +0 -343
- package/coverage/html/backend/src/pkgs/migrations/get-schema/get-schema.ts.html +0 -217
- package/coverage/html/backend/src/pkgs/migrations/get-schema/index.html +0 -146
- package/coverage/html/backend/src/pkgs/migrations/get-schema/process-fields.ts.html +0 -280
- package/coverage/html/backend/src/pkgs/migrations/get-schema/process-tables.ts.html +0 -289
- package/coverage/html/backend/src/pkgs/migrations/index.html +0 -176
- package/coverage/html/backend/src/pkgs/migrations/migration-builders.ts.html +0 -595
- package/coverage/html/backend/src/pkgs/migrations/migration-execution.ts.html +0 -301
- package/coverage/html/backend/src/pkgs/migrations/schema-comparison.ts.html +0 -694
- package/coverage/html/backend/src/pkgs/migrations/type-mapping.ts.html +0 -817
- package/coverage/html/backend/src/pkgs/results/core/error-class.ts.html +0 -976
- package/coverage/html/backend/src/pkgs/results/core/error-codes.ts.html +0 -703
- package/coverage/html/backend/src/pkgs/results/core/index.html +0 -146
- package/coverage/html/backend/src/pkgs/results/core/tracing.ts.html +0 -280
- package/coverage/html/backend/src/pkgs/results/create-telemetry-options.ts.html +0 -271
- package/coverage/html/backend/src/pkgs/results/index.html +0 -131
- package/coverage/html/backend/src/pkgs/results/orpc-error-handler.ts.html +0 -496
- package/coverage/html/backend/src/pkgs/results/results/index.html +0 -131
- package/coverage/html/backend/src/pkgs/results/results/recovery-utils.ts.html +0 -628
- package/coverage/html/backend/src/pkgs/results/results/result-helpers.ts.html +0 -1234
- package/coverage/html/backend/src/pkgs/utils/env.ts.html +0 -337
- package/coverage/html/backend/src/pkgs/utils/index.html +0 -146
- package/coverage/html/backend/src/pkgs/utils/logger.ts.html +0 -199
- package/coverage/html/backend/src/pkgs/utils/url.ts.html +0 -400
- package/coverage/html/backend/src/router.ts.html +0 -109
- package/coverage/html/backend/src/schema/audit-log/index.html +0 -146
- package/coverage/html/backend/src/schema/audit-log/registry.ts.html +0 -436
- package/coverage/html/backend/src/schema/audit-log/schema.ts.html +0 -223
- package/coverage/html/backend/src/schema/audit-log/table.ts.html +0 -640
- package/coverage/html/backend/src/schema/consent/index.html +0 -146
- package/coverage/html/backend/src/schema/consent/registry.ts.html +0 -616
- package/coverage/html/backend/src/schema/consent/schema.ts.html +0 -238
- package/coverage/html/backend/src/schema/consent/table.ts.html +0 -748
- package/coverage/html/backend/src/schema/consent-policy/index.html +0 -146
- package/coverage/html/backend/src/schema/consent-policy/registry.ts.html +0 -1063
- package/coverage/html/backend/src/schema/consent-policy/schema.ts.html +0 -265
- package/coverage/html/backend/src/schema/consent-policy/table.ts.html +0 -535
- package/coverage/html/backend/src/schema/consent-purpose/index.html +0 -146
- package/coverage/html/backend/src/schema/consent-purpose/registry.ts.html +0 -589
- package/coverage/html/backend/src/schema/consent-purpose/schema.ts.html +0 -259
- package/coverage/html/backend/src/schema/consent-purpose/table.ts.html +0 -547
- package/coverage/html/backend/src/schema/consent-record/index.html +0 -131
- package/coverage/html/backend/src/schema/consent-record/schema.ts.html +0 -211
- package/coverage/html/backend/src/schema/consent-record/table.ts.html +0 -457
- package/coverage/html/backend/src/schema/create-registry.ts.html +0 -148
- package/coverage/html/backend/src/schema/definition.ts.html +0 -685
- package/coverage/html/backend/src/schema/domain/index.html +0 -146
- package/coverage/html/backend/src/schema/domain/registry.ts.html +0 -973
- package/coverage/html/backend/src/schema/domain/schema.ts.html +0 -214
- package/coverage/html/backend/src/schema/domain/table.ts.html +0 -496
- package/coverage/html/backend/src/schema/index.html +0 -146
- package/coverage/html/backend/src/schema/schemas.ts.html +0 -166
- package/coverage/html/backend/src/schema/subject/index.html +0 -146
- package/coverage/html/backend/src/schema/subject/registry.ts.html +0 -973
- package/coverage/html/backend/src/schema/subject/schema.ts.html +0 -208
- package/coverage/html/backend/src/schema/subject/table.ts.html +0 -499
- package/coverage/html/backend/src/server.ts.html +0 -463
- package/coverage/html/backend/src/testing/contract-testing.ts.html +0 -1396
- package/coverage/html/backend/src/testing/index.html +0 -116
- package/coverage/html/base.css +0 -224
- package/coverage/html/block-navigation.js +0 -87
- package/coverage/html/favicon.png +0 -0
- package/coverage/html/index.html +0 -656
- package/coverage/html/prettify.css +0 -1
- package/coverage/html/prettify.js +0 -2
- package/coverage/html/sort-arrow-sprite.png +0 -0
- package/coverage/html/sorter.js +0 -196
package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.ts.html
DELETED
|
@@ -1,3634 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for backend/src/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../../../../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../../../../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../../../../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../../../../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../../../../../index.html">All files</a> / <a href="index.html">backend/src/pkgs/db-adapters/adapters/kysely-adapter</a> kysely-adapter.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">46.02% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>139/302</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">40.43% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>93/230</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">41.37% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>24/58</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">46.02% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>139/302</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line low'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
-
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
-
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
-
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
-
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
-
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
-
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
-
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
-
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
-
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
-
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
-
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
-
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
-
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
-
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
-
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
-
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
-
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
-
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
-
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
-
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
-
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
-
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
-
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
-
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
-
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
-
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
-
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
-
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
-
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
-
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
-
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
-
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
-
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
-
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
-
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
-
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
-
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
-
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
-
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
-
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
-
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
-
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
-
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
-
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
-
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
-
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
-
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
-
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
-
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
-
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
-
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
-
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
-
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
-
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
-
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
-
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
-
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
-
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
-
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
-
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
-
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
-
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
-
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
-
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
-
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
-
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
-
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
-
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
-
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
-
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
-
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
-
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
-
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
-
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
-
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
-
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
-
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
-
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
-
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
-
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
-
<a name='L361'></a><a href='#L361'>361</a>
|
|
427
|
-
<a name='L362'></a><a href='#L362'>362</a>
|
|
428
|
-
<a name='L363'></a><a href='#L363'>363</a>
|
|
429
|
-
<a name='L364'></a><a href='#L364'>364</a>
|
|
430
|
-
<a name='L365'></a><a href='#L365'>365</a>
|
|
431
|
-
<a name='L366'></a><a href='#L366'>366</a>
|
|
432
|
-
<a name='L367'></a><a href='#L367'>367</a>
|
|
433
|
-
<a name='L368'></a><a href='#L368'>368</a>
|
|
434
|
-
<a name='L369'></a><a href='#L369'>369</a>
|
|
435
|
-
<a name='L370'></a><a href='#L370'>370</a>
|
|
436
|
-
<a name='L371'></a><a href='#L371'>371</a>
|
|
437
|
-
<a name='L372'></a><a href='#L372'>372</a>
|
|
438
|
-
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
|
-
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
|
-
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
-
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
-
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
-
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
-
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
-
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
-
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
-
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
-
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
-
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
-
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
-
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
-
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
-
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
-
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
-
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
-
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
-
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
-
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
-
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
-
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
-
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
-
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
-
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
-
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
-
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
-
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
-
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
-
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
-
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
-
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
-
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
-
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
-
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
-
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
-
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
-
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
-
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
-
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
-
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
-
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
-
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
-
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
-
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
-
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
-
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
-
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
-
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
-
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
-
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
-
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
-
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
-
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
-
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
-
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
-
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
-
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
-
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
-
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
-
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
-
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
-
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
-
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
-
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
-
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
-
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
-
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
-
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
-
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
-
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
-
<a name='L445'></a><a href='#L445'>445</a>
|
|
511
|
-
<a name='L446'></a><a href='#L446'>446</a>
|
|
512
|
-
<a name='L447'></a><a href='#L447'>447</a>
|
|
513
|
-
<a name='L448'></a><a href='#L448'>448</a>
|
|
514
|
-
<a name='L449'></a><a href='#L449'>449</a>
|
|
515
|
-
<a name='L450'></a><a href='#L450'>450</a>
|
|
516
|
-
<a name='L451'></a><a href='#L451'>451</a>
|
|
517
|
-
<a name='L452'></a><a href='#L452'>452</a>
|
|
518
|
-
<a name='L453'></a><a href='#L453'>453</a>
|
|
519
|
-
<a name='L454'></a><a href='#L454'>454</a>
|
|
520
|
-
<a name='L455'></a><a href='#L455'>455</a>
|
|
521
|
-
<a name='L456'></a><a href='#L456'>456</a>
|
|
522
|
-
<a name='L457'></a><a href='#L457'>457</a>
|
|
523
|
-
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
|
-
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
|
-
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
-
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
-
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
-
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
-
<a name='L464'></a><a href='#L464'>464</a>
|
|
530
|
-
<a name='L465'></a><a href='#L465'>465</a>
|
|
531
|
-
<a name='L466'></a><a href='#L466'>466</a>
|
|
532
|
-
<a name='L467'></a><a href='#L467'>467</a>
|
|
533
|
-
<a name='L468'></a><a href='#L468'>468</a>
|
|
534
|
-
<a name='L469'></a><a href='#L469'>469</a>
|
|
535
|
-
<a name='L470'></a><a href='#L470'>470</a>
|
|
536
|
-
<a name='L471'></a><a href='#L471'>471</a>
|
|
537
|
-
<a name='L472'></a><a href='#L472'>472</a>
|
|
538
|
-
<a name='L473'></a><a href='#L473'>473</a>
|
|
539
|
-
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
|
-
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
|
-
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
-
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
-
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
-
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
-
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
-
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
-
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
-
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
-
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
-
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
-
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
-
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
-
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
-
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
-
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
-
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
-
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
-
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
-
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
-
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
-
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
-
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
-
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
-
<a name='L499'></a><a href='#L499'>499</a>
|
|
565
|
-
<a name='L500'></a><a href='#L500'>500</a>
|
|
566
|
-
<a name='L501'></a><a href='#L501'>501</a>
|
|
567
|
-
<a name='L502'></a><a href='#L502'>502</a>
|
|
568
|
-
<a name='L503'></a><a href='#L503'>503</a>
|
|
569
|
-
<a name='L504'></a><a href='#L504'>504</a>
|
|
570
|
-
<a name='L505'></a><a href='#L505'>505</a>
|
|
571
|
-
<a name='L506'></a><a href='#L506'>506</a>
|
|
572
|
-
<a name='L507'></a><a href='#L507'>507</a>
|
|
573
|
-
<a name='L508'></a><a href='#L508'>508</a>
|
|
574
|
-
<a name='L509'></a><a href='#L509'>509</a>
|
|
575
|
-
<a name='L510'></a><a href='#L510'>510</a>
|
|
576
|
-
<a name='L511'></a><a href='#L511'>511</a>
|
|
577
|
-
<a name='L512'></a><a href='#L512'>512</a>
|
|
578
|
-
<a name='L513'></a><a href='#L513'>513</a>
|
|
579
|
-
<a name='L514'></a><a href='#L514'>514</a>
|
|
580
|
-
<a name='L515'></a><a href='#L515'>515</a>
|
|
581
|
-
<a name='L516'></a><a href='#L516'>516</a>
|
|
582
|
-
<a name='L517'></a><a href='#L517'>517</a>
|
|
583
|
-
<a name='L518'></a><a href='#L518'>518</a>
|
|
584
|
-
<a name='L519'></a><a href='#L519'>519</a>
|
|
585
|
-
<a name='L520'></a><a href='#L520'>520</a>
|
|
586
|
-
<a name='L521'></a><a href='#L521'>521</a>
|
|
587
|
-
<a name='L522'></a><a href='#L522'>522</a>
|
|
588
|
-
<a name='L523'></a><a href='#L523'>523</a>
|
|
589
|
-
<a name='L524'></a><a href='#L524'>524</a>
|
|
590
|
-
<a name='L525'></a><a href='#L525'>525</a>
|
|
591
|
-
<a name='L526'></a><a href='#L526'>526</a>
|
|
592
|
-
<a name='L527'></a><a href='#L527'>527</a>
|
|
593
|
-
<a name='L528'></a><a href='#L528'>528</a>
|
|
594
|
-
<a name='L529'></a><a href='#L529'>529</a>
|
|
595
|
-
<a name='L530'></a><a href='#L530'>530</a>
|
|
596
|
-
<a name='L531'></a><a href='#L531'>531</a>
|
|
597
|
-
<a name='L532'></a><a href='#L532'>532</a>
|
|
598
|
-
<a name='L533'></a><a href='#L533'>533</a>
|
|
599
|
-
<a name='L534'></a><a href='#L534'>534</a>
|
|
600
|
-
<a name='L535'></a><a href='#L535'>535</a>
|
|
601
|
-
<a name='L536'></a><a href='#L536'>536</a>
|
|
602
|
-
<a name='L537'></a><a href='#L537'>537</a>
|
|
603
|
-
<a name='L538'></a><a href='#L538'>538</a>
|
|
604
|
-
<a name='L539'></a><a href='#L539'>539</a>
|
|
605
|
-
<a name='L540'></a><a href='#L540'>540</a>
|
|
606
|
-
<a name='L541'></a><a href='#L541'>541</a>
|
|
607
|
-
<a name='L542'></a><a href='#L542'>542</a>
|
|
608
|
-
<a name='L543'></a><a href='#L543'>543</a>
|
|
609
|
-
<a name='L544'></a><a href='#L544'>544</a>
|
|
610
|
-
<a name='L545'></a><a href='#L545'>545</a>
|
|
611
|
-
<a name='L546'></a><a href='#L546'>546</a>
|
|
612
|
-
<a name='L547'></a><a href='#L547'>547</a>
|
|
613
|
-
<a name='L548'></a><a href='#L548'>548</a>
|
|
614
|
-
<a name='L549'></a><a href='#L549'>549</a>
|
|
615
|
-
<a name='L550'></a><a href='#L550'>550</a>
|
|
616
|
-
<a name='L551'></a><a href='#L551'>551</a>
|
|
617
|
-
<a name='L552'></a><a href='#L552'>552</a>
|
|
618
|
-
<a name='L553'></a><a href='#L553'>553</a>
|
|
619
|
-
<a name='L554'></a><a href='#L554'>554</a>
|
|
620
|
-
<a name='L555'></a><a href='#L555'>555</a>
|
|
621
|
-
<a name='L556'></a><a href='#L556'>556</a>
|
|
622
|
-
<a name='L557'></a><a href='#L557'>557</a>
|
|
623
|
-
<a name='L558'></a><a href='#L558'>558</a>
|
|
624
|
-
<a name='L559'></a><a href='#L559'>559</a>
|
|
625
|
-
<a name='L560'></a><a href='#L560'>560</a>
|
|
626
|
-
<a name='L561'></a><a href='#L561'>561</a>
|
|
627
|
-
<a name='L562'></a><a href='#L562'>562</a>
|
|
628
|
-
<a name='L563'></a><a href='#L563'>563</a>
|
|
629
|
-
<a name='L564'></a><a href='#L564'>564</a>
|
|
630
|
-
<a name='L565'></a><a href='#L565'>565</a>
|
|
631
|
-
<a name='L566'></a><a href='#L566'>566</a>
|
|
632
|
-
<a name='L567'></a><a href='#L567'>567</a>
|
|
633
|
-
<a name='L568'></a><a href='#L568'>568</a>
|
|
634
|
-
<a name='L569'></a><a href='#L569'>569</a>
|
|
635
|
-
<a name='L570'></a><a href='#L570'>570</a>
|
|
636
|
-
<a name='L571'></a><a href='#L571'>571</a>
|
|
637
|
-
<a name='L572'></a><a href='#L572'>572</a>
|
|
638
|
-
<a name='L573'></a><a href='#L573'>573</a>
|
|
639
|
-
<a name='L574'></a><a href='#L574'>574</a>
|
|
640
|
-
<a name='L575'></a><a href='#L575'>575</a>
|
|
641
|
-
<a name='L576'></a><a href='#L576'>576</a>
|
|
642
|
-
<a name='L577'></a><a href='#L577'>577</a>
|
|
643
|
-
<a name='L578'></a><a href='#L578'>578</a>
|
|
644
|
-
<a name='L579'></a><a href='#L579'>579</a>
|
|
645
|
-
<a name='L580'></a><a href='#L580'>580</a>
|
|
646
|
-
<a name='L581'></a><a href='#L581'>581</a>
|
|
647
|
-
<a name='L582'></a><a href='#L582'>582</a>
|
|
648
|
-
<a name='L583'></a><a href='#L583'>583</a>
|
|
649
|
-
<a name='L584'></a><a href='#L584'>584</a>
|
|
650
|
-
<a name='L585'></a><a href='#L585'>585</a>
|
|
651
|
-
<a name='L586'></a><a href='#L586'>586</a>
|
|
652
|
-
<a name='L587'></a><a href='#L587'>587</a>
|
|
653
|
-
<a name='L588'></a><a href='#L588'>588</a>
|
|
654
|
-
<a name='L589'></a><a href='#L589'>589</a>
|
|
655
|
-
<a name='L590'></a><a href='#L590'>590</a>
|
|
656
|
-
<a name='L591'></a><a href='#L591'>591</a>
|
|
657
|
-
<a name='L592'></a><a href='#L592'>592</a>
|
|
658
|
-
<a name='L593'></a><a href='#L593'>593</a>
|
|
659
|
-
<a name='L594'></a><a href='#L594'>594</a>
|
|
660
|
-
<a name='L595'></a><a href='#L595'>595</a>
|
|
661
|
-
<a name='L596'></a><a href='#L596'>596</a>
|
|
662
|
-
<a name='L597'></a><a href='#L597'>597</a>
|
|
663
|
-
<a name='L598'></a><a href='#L598'>598</a>
|
|
664
|
-
<a name='L599'></a><a href='#L599'>599</a>
|
|
665
|
-
<a name='L600'></a><a href='#L600'>600</a>
|
|
666
|
-
<a name='L601'></a><a href='#L601'>601</a>
|
|
667
|
-
<a name='L602'></a><a href='#L602'>602</a>
|
|
668
|
-
<a name='L603'></a><a href='#L603'>603</a>
|
|
669
|
-
<a name='L604'></a><a href='#L604'>604</a>
|
|
670
|
-
<a name='L605'></a><a href='#L605'>605</a>
|
|
671
|
-
<a name='L606'></a><a href='#L606'>606</a>
|
|
672
|
-
<a name='L607'></a><a href='#L607'>607</a>
|
|
673
|
-
<a name='L608'></a><a href='#L608'>608</a>
|
|
674
|
-
<a name='L609'></a><a href='#L609'>609</a>
|
|
675
|
-
<a name='L610'></a><a href='#L610'>610</a>
|
|
676
|
-
<a name='L611'></a><a href='#L611'>611</a>
|
|
677
|
-
<a name='L612'></a><a href='#L612'>612</a>
|
|
678
|
-
<a name='L613'></a><a href='#L613'>613</a>
|
|
679
|
-
<a name='L614'></a><a href='#L614'>614</a>
|
|
680
|
-
<a name='L615'></a><a href='#L615'>615</a>
|
|
681
|
-
<a name='L616'></a><a href='#L616'>616</a>
|
|
682
|
-
<a name='L617'></a><a href='#L617'>617</a>
|
|
683
|
-
<a name='L618'></a><a href='#L618'>618</a>
|
|
684
|
-
<a name='L619'></a><a href='#L619'>619</a>
|
|
685
|
-
<a name='L620'></a><a href='#L620'>620</a>
|
|
686
|
-
<a name='L621'></a><a href='#L621'>621</a>
|
|
687
|
-
<a name='L622'></a><a href='#L622'>622</a>
|
|
688
|
-
<a name='L623'></a><a href='#L623'>623</a>
|
|
689
|
-
<a name='L624'></a><a href='#L624'>624</a>
|
|
690
|
-
<a name='L625'></a><a href='#L625'>625</a>
|
|
691
|
-
<a name='L626'></a><a href='#L626'>626</a>
|
|
692
|
-
<a name='L627'></a><a href='#L627'>627</a>
|
|
693
|
-
<a name='L628'></a><a href='#L628'>628</a>
|
|
694
|
-
<a name='L629'></a><a href='#L629'>629</a>
|
|
695
|
-
<a name='L630'></a><a href='#L630'>630</a>
|
|
696
|
-
<a name='L631'></a><a href='#L631'>631</a>
|
|
697
|
-
<a name='L632'></a><a href='#L632'>632</a>
|
|
698
|
-
<a name='L633'></a><a href='#L633'>633</a>
|
|
699
|
-
<a name='L634'></a><a href='#L634'>634</a>
|
|
700
|
-
<a name='L635'></a><a href='#L635'>635</a>
|
|
701
|
-
<a name='L636'></a><a href='#L636'>636</a>
|
|
702
|
-
<a name='L637'></a><a href='#L637'>637</a>
|
|
703
|
-
<a name='L638'></a><a href='#L638'>638</a>
|
|
704
|
-
<a name='L639'></a><a href='#L639'>639</a>
|
|
705
|
-
<a name='L640'></a><a href='#L640'>640</a>
|
|
706
|
-
<a name='L641'></a><a href='#L641'>641</a>
|
|
707
|
-
<a name='L642'></a><a href='#L642'>642</a>
|
|
708
|
-
<a name='L643'></a><a href='#L643'>643</a>
|
|
709
|
-
<a name='L644'></a><a href='#L644'>644</a>
|
|
710
|
-
<a name='L645'></a><a href='#L645'>645</a>
|
|
711
|
-
<a name='L646'></a><a href='#L646'>646</a>
|
|
712
|
-
<a name='L647'></a><a href='#L647'>647</a>
|
|
713
|
-
<a name='L648'></a><a href='#L648'>648</a>
|
|
714
|
-
<a name='L649'></a><a href='#L649'>649</a>
|
|
715
|
-
<a name='L650'></a><a href='#L650'>650</a>
|
|
716
|
-
<a name='L651'></a><a href='#L651'>651</a>
|
|
717
|
-
<a name='L652'></a><a href='#L652'>652</a>
|
|
718
|
-
<a name='L653'></a><a href='#L653'>653</a>
|
|
719
|
-
<a name='L654'></a><a href='#L654'>654</a>
|
|
720
|
-
<a name='L655'></a><a href='#L655'>655</a>
|
|
721
|
-
<a name='L656'></a><a href='#L656'>656</a>
|
|
722
|
-
<a name='L657'></a><a href='#L657'>657</a>
|
|
723
|
-
<a name='L658'></a><a href='#L658'>658</a>
|
|
724
|
-
<a name='L659'></a><a href='#L659'>659</a>
|
|
725
|
-
<a name='L660'></a><a href='#L660'>660</a>
|
|
726
|
-
<a name='L661'></a><a href='#L661'>661</a>
|
|
727
|
-
<a name='L662'></a><a href='#L662'>662</a>
|
|
728
|
-
<a name='L663'></a><a href='#L663'>663</a>
|
|
729
|
-
<a name='L664'></a><a href='#L664'>664</a>
|
|
730
|
-
<a name='L665'></a><a href='#L665'>665</a>
|
|
731
|
-
<a name='L666'></a><a href='#L666'>666</a>
|
|
732
|
-
<a name='L667'></a><a href='#L667'>667</a>
|
|
733
|
-
<a name='L668'></a><a href='#L668'>668</a>
|
|
734
|
-
<a name='L669'></a><a href='#L669'>669</a>
|
|
735
|
-
<a name='L670'></a><a href='#L670'>670</a>
|
|
736
|
-
<a name='L671'></a><a href='#L671'>671</a>
|
|
737
|
-
<a name='L672'></a><a href='#L672'>672</a>
|
|
738
|
-
<a name='L673'></a><a href='#L673'>673</a>
|
|
739
|
-
<a name='L674'></a><a href='#L674'>674</a>
|
|
740
|
-
<a name='L675'></a><a href='#L675'>675</a>
|
|
741
|
-
<a name='L676'></a><a href='#L676'>676</a>
|
|
742
|
-
<a name='L677'></a><a href='#L677'>677</a>
|
|
743
|
-
<a name='L678'></a><a href='#L678'>678</a>
|
|
744
|
-
<a name='L679'></a><a href='#L679'>679</a>
|
|
745
|
-
<a name='L680'></a><a href='#L680'>680</a>
|
|
746
|
-
<a name='L681'></a><a href='#L681'>681</a>
|
|
747
|
-
<a name='L682'></a><a href='#L682'>682</a>
|
|
748
|
-
<a name='L683'></a><a href='#L683'>683</a>
|
|
749
|
-
<a name='L684'></a><a href='#L684'>684</a>
|
|
750
|
-
<a name='L685'></a><a href='#L685'>685</a>
|
|
751
|
-
<a name='L686'></a><a href='#L686'>686</a>
|
|
752
|
-
<a name='L687'></a><a href='#L687'>687</a>
|
|
753
|
-
<a name='L688'></a><a href='#L688'>688</a>
|
|
754
|
-
<a name='L689'></a><a href='#L689'>689</a>
|
|
755
|
-
<a name='L690'></a><a href='#L690'>690</a>
|
|
756
|
-
<a name='L691'></a><a href='#L691'>691</a>
|
|
757
|
-
<a name='L692'></a><a href='#L692'>692</a>
|
|
758
|
-
<a name='L693'></a><a href='#L693'>693</a>
|
|
759
|
-
<a name='L694'></a><a href='#L694'>694</a>
|
|
760
|
-
<a name='L695'></a><a href='#L695'>695</a>
|
|
761
|
-
<a name='L696'></a><a href='#L696'>696</a>
|
|
762
|
-
<a name='L697'></a><a href='#L697'>697</a>
|
|
763
|
-
<a name='L698'></a><a href='#L698'>698</a>
|
|
764
|
-
<a name='L699'></a><a href='#L699'>699</a>
|
|
765
|
-
<a name='L700'></a><a href='#L700'>700</a>
|
|
766
|
-
<a name='L701'></a><a href='#L701'>701</a>
|
|
767
|
-
<a name='L702'></a><a href='#L702'>702</a>
|
|
768
|
-
<a name='L703'></a><a href='#L703'>703</a>
|
|
769
|
-
<a name='L704'></a><a href='#L704'>704</a>
|
|
770
|
-
<a name='L705'></a><a href='#L705'>705</a>
|
|
771
|
-
<a name='L706'></a><a href='#L706'>706</a>
|
|
772
|
-
<a name='L707'></a><a href='#L707'>707</a>
|
|
773
|
-
<a name='L708'></a><a href='#L708'>708</a>
|
|
774
|
-
<a name='L709'></a><a href='#L709'>709</a>
|
|
775
|
-
<a name='L710'></a><a href='#L710'>710</a>
|
|
776
|
-
<a name='L711'></a><a href='#L711'>711</a>
|
|
777
|
-
<a name='L712'></a><a href='#L712'>712</a>
|
|
778
|
-
<a name='L713'></a><a href='#L713'>713</a>
|
|
779
|
-
<a name='L714'></a><a href='#L714'>714</a>
|
|
780
|
-
<a name='L715'></a><a href='#L715'>715</a>
|
|
781
|
-
<a name='L716'></a><a href='#L716'>716</a>
|
|
782
|
-
<a name='L717'></a><a href='#L717'>717</a>
|
|
783
|
-
<a name='L718'></a><a href='#L718'>718</a>
|
|
784
|
-
<a name='L719'></a><a href='#L719'>719</a>
|
|
785
|
-
<a name='L720'></a><a href='#L720'>720</a>
|
|
786
|
-
<a name='L721'></a><a href='#L721'>721</a>
|
|
787
|
-
<a name='L722'></a><a href='#L722'>722</a>
|
|
788
|
-
<a name='L723'></a><a href='#L723'>723</a>
|
|
789
|
-
<a name='L724'></a><a href='#L724'>724</a>
|
|
790
|
-
<a name='L725'></a><a href='#L725'>725</a>
|
|
791
|
-
<a name='L726'></a><a href='#L726'>726</a>
|
|
792
|
-
<a name='L727'></a><a href='#L727'>727</a>
|
|
793
|
-
<a name='L728'></a><a href='#L728'>728</a>
|
|
794
|
-
<a name='L729'></a><a href='#L729'>729</a>
|
|
795
|
-
<a name='L730'></a><a href='#L730'>730</a>
|
|
796
|
-
<a name='L731'></a><a href='#L731'>731</a>
|
|
797
|
-
<a name='L732'></a><a href='#L732'>732</a>
|
|
798
|
-
<a name='L733'></a><a href='#L733'>733</a>
|
|
799
|
-
<a name='L734'></a><a href='#L734'>734</a>
|
|
800
|
-
<a name='L735'></a><a href='#L735'>735</a>
|
|
801
|
-
<a name='L736'></a><a href='#L736'>736</a>
|
|
802
|
-
<a name='L737'></a><a href='#L737'>737</a>
|
|
803
|
-
<a name='L738'></a><a href='#L738'>738</a>
|
|
804
|
-
<a name='L739'></a><a href='#L739'>739</a>
|
|
805
|
-
<a name='L740'></a><a href='#L740'>740</a>
|
|
806
|
-
<a name='L741'></a><a href='#L741'>741</a>
|
|
807
|
-
<a name='L742'></a><a href='#L742'>742</a>
|
|
808
|
-
<a name='L743'></a><a href='#L743'>743</a>
|
|
809
|
-
<a name='L744'></a><a href='#L744'>744</a>
|
|
810
|
-
<a name='L745'></a><a href='#L745'>745</a>
|
|
811
|
-
<a name='L746'></a><a href='#L746'>746</a>
|
|
812
|
-
<a name='L747'></a><a href='#L747'>747</a>
|
|
813
|
-
<a name='L748'></a><a href='#L748'>748</a>
|
|
814
|
-
<a name='L749'></a><a href='#L749'>749</a>
|
|
815
|
-
<a name='L750'></a><a href='#L750'>750</a>
|
|
816
|
-
<a name='L751'></a><a href='#L751'>751</a>
|
|
817
|
-
<a name='L752'></a><a href='#L752'>752</a>
|
|
818
|
-
<a name='L753'></a><a href='#L753'>753</a>
|
|
819
|
-
<a name='L754'></a><a href='#L754'>754</a>
|
|
820
|
-
<a name='L755'></a><a href='#L755'>755</a>
|
|
821
|
-
<a name='L756'></a><a href='#L756'>756</a>
|
|
822
|
-
<a name='L757'></a><a href='#L757'>757</a>
|
|
823
|
-
<a name='L758'></a><a href='#L758'>758</a>
|
|
824
|
-
<a name='L759'></a><a href='#L759'>759</a>
|
|
825
|
-
<a name='L760'></a><a href='#L760'>760</a>
|
|
826
|
-
<a name='L761'></a><a href='#L761'>761</a>
|
|
827
|
-
<a name='L762'></a><a href='#L762'>762</a>
|
|
828
|
-
<a name='L763'></a><a href='#L763'>763</a>
|
|
829
|
-
<a name='L764'></a><a href='#L764'>764</a>
|
|
830
|
-
<a name='L765'></a><a href='#L765'>765</a>
|
|
831
|
-
<a name='L766'></a><a href='#L766'>766</a>
|
|
832
|
-
<a name='L767'></a><a href='#L767'>767</a>
|
|
833
|
-
<a name='L768'></a><a href='#L768'>768</a>
|
|
834
|
-
<a name='L769'></a><a href='#L769'>769</a>
|
|
835
|
-
<a name='L770'></a><a href='#L770'>770</a>
|
|
836
|
-
<a name='L771'></a><a href='#L771'>771</a>
|
|
837
|
-
<a name='L772'></a><a href='#L772'>772</a>
|
|
838
|
-
<a name='L773'></a><a href='#L773'>773</a>
|
|
839
|
-
<a name='L774'></a><a href='#L774'>774</a>
|
|
840
|
-
<a name='L775'></a><a href='#L775'>775</a>
|
|
841
|
-
<a name='L776'></a><a href='#L776'>776</a>
|
|
842
|
-
<a name='L777'></a><a href='#L777'>777</a>
|
|
843
|
-
<a name='L778'></a><a href='#L778'>778</a>
|
|
844
|
-
<a name='L779'></a><a href='#L779'>779</a>
|
|
845
|
-
<a name='L780'></a><a href='#L780'>780</a>
|
|
846
|
-
<a name='L781'></a><a href='#L781'>781</a>
|
|
847
|
-
<a name='L782'></a><a href='#L782'>782</a>
|
|
848
|
-
<a name='L783'></a><a href='#L783'>783</a>
|
|
849
|
-
<a name='L784'></a><a href='#L784'>784</a>
|
|
850
|
-
<a name='L785'></a><a href='#L785'>785</a>
|
|
851
|
-
<a name='L786'></a><a href='#L786'>786</a>
|
|
852
|
-
<a name='L787'></a><a href='#L787'>787</a>
|
|
853
|
-
<a name='L788'></a><a href='#L788'>788</a>
|
|
854
|
-
<a name='L789'></a><a href='#L789'>789</a>
|
|
855
|
-
<a name='L790'></a><a href='#L790'>790</a>
|
|
856
|
-
<a name='L791'></a><a href='#L791'>791</a>
|
|
857
|
-
<a name='L792'></a><a href='#L792'>792</a>
|
|
858
|
-
<a name='L793'></a><a href='#L793'>793</a>
|
|
859
|
-
<a name='L794'></a><a href='#L794'>794</a>
|
|
860
|
-
<a name='L795'></a><a href='#L795'>795</a>
|
|
861
|
-
<a name='L796'></a><a href='#L796'>796</a>
|
|
862
|
-
<a name='L797'></a><a href='#L797'>797</a>
|
|
863
|
-
<a name='L798'></a><a href='#L798'>798</a>
|
|
864
|
-
<a name='L799'></a><a href='#L799'>799</a>
|
|
865
|
-
<a name='L800'></a><a href='#L800'>800</a>
|
|
866
|
-
<a name='L801'></a><a href='#L801'>801</a>
|
|
867
|
-
<a name='L802'></a><a href='#L802'>802</a>
|
|
868
|
-
<a name='L803'></a><a href='#L803'>803</a>
|
|
869
|
-
<a name='L804'></a><a href='#L804'>804</a>
|
|
870
|
-
<a name='L805'></a><a href='#L805'>805</a>
|
|
871
|
-
<a name='L806'></a><a href='#L806'>806</a>
|
|
872
|
-
<a name='L807'></a><a href='#L807'>807</a>
|
|
873
|
-
<a name='L808'></a><a href='#L808'>808</a>
|
|
874
|
-
<a name='L809'></a><a href='#L809'>809</a>
|
|
875
|
-
<a name='L810'></a><a href='#L810'>810</a>
|
|
876
|
-
<a name='L811'></a><a href='#L811'>811</a>
|
|
877
|
-
<a name='L812'></a><a href='#L812'>812</a>
|
|
878
|
-
<a name='L813'></a><a href='#L813'>813</a>
|
|
879
|
-
<a name='L814'></a><a href='#L814'>814</a>
|
|
880
|
-
<a name='L815'></a><a href='#L815'>815</a>
|
|
881
|
-
<a name='L816'></a><a href='#L816'>816</a>
|
|
882
|
-
<a name='L817'></a><a href='#L817'>817</a>
|
|
883
|
-
<a name='L818'></a><a href='#L818'>818</a>
|
|
884
|
-
<a name='L819'></a><a href='#L819'>819</a>
|
|
885
|
-
<a name='L820'></a><a href='#L820'>820</a>
|
|
886
|
-
<a name='L821'></a><a href='#L821'>821</a>
|
|
887
|
-
<a name='L822'></a><a href='#L822'>822</a>
|
|
888
|
-
<a name='L823'></a><a href='#L823'>823</a>
|
|
889
|
-
<a name='L824'></a><a href='#L824'>824</a>
|
|
890
|
-
<a name='L825'></a><a href='#L825'>825</a>
|
|
891
|
-
<a name='L826'></a><a href='#L826'>826</a>
|
|
892
|
-
<a name='L827'></a><a href='#L827'>827</a>
|
|
893
|
-
<a name='L828'></a><a href='#L828'>828</a>
|
|
894
|
-
<a name='L829'></a><a href='#L829'>829</a>
|
|
895
|
-
<a name='L830'></a><a href='#L830'>830</a>
|
|
896
|
-
<a name='L831'></a><a href='#L831'>831</a>
|
|
897
|
-
<a name='L832'></a><a href='#L832'>832</a>
|
|
898
|
-
<a name='L833'></a><a href='#L833'>833</a>
|
|
899
|
-
<a name='L834'></a><a href='#L834'>834</a>
|
|
900
|
-
<a name='L835'></a><a href='#L835'>835</a>
|
|
901
|
-
<a name='L836'></a><a href='#L836'>836</a>
|
|
902
|
-
<a name='L837'></a><a href='#L837'>837</a>
|
|
903
|
-
<a name='L838'></a><a href='#L838'>838</a>
|
|
904
|
-
<a name='L839'></a><a href='#L839'>839</a>
|
|
905
|
-
<a name='L840'></a><a href='#L840'>840</a>
|
|
906
|
-
<a name='L841'></a><a href='#L841'>841</a>
|
|
907
|
-
<a name='L842'></a><a href='#L842'>842</a>
|
|
908
|
-
<a name='L843'></a><a href='#L843'>843</a>
|
|
909
|
-
<a name='L844'></a><a href='#L844'>844</a>
|
|
910
|
-
<a name='L845'></a><a href='#L845'>845</a>
|
|
911
|
-
<a name='L846'></a><a href='#L846'>846</a>
|
|
912
|
-
<a name='L847'></a><a href='#L847'>847</a>
|
|
913
|
-
<a name='L848'></a><a href='#L848'>848</a>
|
|
914
|
-
<a name='L849'></a><a href='#L849'>849</a>
|
|
915
|
-
<a name='L850'></a><a href='#L850'>850</a>
|
|
916
|
-
<a name='L851'></a><a href='#L851'>851</a>
|
|
917
|
-
<a name='L852'></a><a href='#L852'>852</a>
|
|
918
|
-
<a name='L853'></a><a href='#L853'>853</a>
|
|
919
|
-
<a name='L854'></a><a href='#L854'>854</a>
|
|
920
|
-
<a name='L855'></a><a href='#L855'>855</a>
|
|
921
|
-
<a name='L856'></a><a href='#L856'>856</a>
|
|
922
|
-
<a name='L857'></a><a href='#L857'>857</a>
|
|
923
|
-
<a name='L858'></a><a href='#L858'>858</a>
|
|
924
|
-
<a name='L859'></a><a href='#L859'>859</a>
|
|
925
|
-
<a name='L860'></a><a href='#L860'>860</a>
|
|
926
|
-
<a name='L861'></a><a href='#L861'>861</a>
|
|
927
|
-
<a name='L862'></a><a href='#L862'>862</a>
|
|
928
|
-
<a name='L863'></a><a href='#L863'>863</a>
|
|
929
|
-
<a name='L864'></a><a href='#L864'>864</a>
|
|
930
|
-
<a name='L865'></a><a href='#L865'>865</a>
|
|
931
|
-
<a name='L866'></a><a href='#L866'>866</a>
|
|
932
|
-
<a name='L867'></a><a href='#L867'>867</a>
|
|
933
|
-
<a name='L868'></a><a href='#L868'>868</a>
|
|
934
|
-
<a name='L869'></a><a href='#L869'>869</a>
|
|
935
|
-
<a name='L870'></a><a href='#L870'>870</a>
|
|
936
|
-
<a name='L871'></a><a href='#L871'>871</a>
|
|
937
|
-
<a name='L872'></a><a href='#L872'>872</a>
|
|
938
|
-
<a name='L873'></a><a href='#L873'>873</a>
|
|
939
|
-
<a name='L874'></a><a href='#L874'>874</a>
|
|
940
|
-
<a name='L875'></a><a href='#L875'>875</a>
|
|
941
|
-
<a name='L876'></a><a href='#L876'>876</a>
|
|
942
|
-
<a name='L877'></a><a href='#L877'>877</a>
|
|
943
|
-
<a name='L878'></a><a href='#L878'>878</a>
|
|
944
|
-
<a name='L879'></a><a href='#L879'>879</a>
|
|
945
|
-
<a name='L880'></a><a href='#L880'>880</a>
|
|
946
|
-
<a name='L881'></a><a href='#L881'>881</a>
|
|
947
|
-
<a name='L882'></a><a href='#L882'>882</a>
|
|
948
|
-
<a name='L883'></a><a href='#L883'>883</a>
|
|
949
|
-
<a name='L884'></a><a href='#L884'>884</a>
|
|
950
|
-
<a name='L885'></a><a href='#L885'>885</a>
|
|
951
|
-
<a name='L886'></a><a href='#L886'>886</a>
|
|
952
|
-
<a name='L887'></a><a href='#L887'>887</a>
|
|
953
|
-
<a name='L888'></a><a href='#L888'>888</a>
|
|
954
|
-
<a name='L889'></a><a href='#L889'>889</a>
|
|
955
|
-
<a name='L890'></a><a href='#L890'>890</a>
|
|
956
|
-
<a name='L891'></a><a href='#L891'>891</a>
|
|
957
|
-
<a name='L892'></a><a href='#L892'>892</a>
|
|
958
|
-
<a name='L893'></a><a href='#L893'>893</a>
|
|
959
|
-
<a name='L894'></a><a href='#L894'>894</a>
|
|
960
|
-
<a name='L895'></a><a href='#L895'>895</a>
|
|
961
|
-
<a name='L896'></a><a href='#L896'>896</a>
|
|
962
|
-
<a name='L897'></a><a href='#L897'>897</a>
|
|
963
|
-
<a name='L898'></a><a href='#L898'>898</a>
|
|
964
|
-
<a name='L899'></a><a href='#L899'>899</a>
|
|
965
|
-
<a name='L900'></a><a href='#L900'>900</a>
|
|
966
|
-
<a name='L901'></a><a href='#L901'>901</a>
|
|
967
|
-
<a name='L902'></a><a href='#L902'>902</a>
|
|
968
|
-
<a name='L903'></a><a href='#L903'>903</a>
|
|
969
|
-
<a name='L904'></a><a href='#L904'>904</a>
|
|
970
|
-
<a name='L905'></a><a href='#L905'>905</a>
|
|
971
|
-
<a name='L906'></a><a href='#L906'>906</a>
|
|
972
|
-
<a name='L907'></a><a href='#L907'>907</a>
|
|
973
|
-
<a name='L908'></a><a href='#L908'>908</a>
|
|
974
|
-
<a name='L909'></a><a href='#L909'>909</a>
|
|
975
|
-
<a name='L910'></a><a href='#L910'>910</a>
|
|
976
|
-
<a name='L911'></a><a href='#L911'>911</a>
|
|
977
|
-
<a name='L912'></a><a href='#L912'>912</a>
|
|
978
|
-
<a name='L913'></a><a href='#L913'>913</a>
|
|
979
|
-
<a name='L914'></a><a href='#L914'>914</a>
|
|
980
|
-
<a name='L915'></a><a href='#L915'>915</a>
|
|
981
|
-
<a name='L916'></a><a href='#L916'>916</a>
|
|
982
|
-
<a name='L917'></a><a href='#L917'>917</a>
|
|
983
|
-
<a name='L918'></a><a href='#L918'>918</a>
|
|
984
|
-
<a name='L919'></a><a href='#L919'>919</a>
|
|
985
|
-
<a name='L920'></a><a href='#L920'>920</a>
|
|
986
|
-
<a name='L921'></a><a href='#L921'>921</a>
|
|
987
|
-
<a name='L922'></a><a href='#L922'>922</a>
|
|
988
|
-
<a name='L923'></a><a href='#L923'>923</a>
|
|
989
|
-
<a name='L924'></a><a href='#L924'>924</a>
|
|
990
|
-
<a name='L925'></a><a href='#L925'>925</a>
|
|
991
|
-
<a name='L926'></a><a href='#L926'>926</a>
|
|
992
|
-
<a name='L927'></a><a href='#L927'>927</a>
|
|
993
|
-
<a name='L928'></a><a href='#L928'>928</a>
|
|
994
|
-
<a name='L929'></a><a href='#L929'>929</a>
|
|
995
|
-
<a name='L930'></a><a href='#L930'>930</a>
|
|
996
|
-
<a name='L931'></a><a href='#L931'>931</a>
|
|
997
|
-
<a name='L932'></a><a href='#L932'>932</a>
|
|
998
|
-
<a name='L933'></a><a href='#L933'>933</a>
|
|
999
|
-
<a name='L934'></a><a href='#L934'>934</a>
|
|
1000
|
-
<a name='L935'></a><a href='#L935'>935</a>
|
|
1001
|
-
<a name='L936'></a><a href='#L936'>936</a>
|
|
1002
|
-
<a name='L937'></a><a href='#L937'>937</a>
|
|
1003
|
-
<a name='L938'></a><a href='#L938'>938</a>
|
|
1004
|
-
<a name='L939'></a><a href='#L939'>939</a>
|
|
1005
|
-
<a name='L940'></a><a href='#L940'>940</a>
|
|
1006
|
-
<a name='L941'></a><a href='#L941'>941</a>
|
|
1007
|
-
<a name='L942'></a><a href='#L942'>942</a>
|
|
1008
|
-
<a name='L943'></a><a href='#L943'>943</a>
|
|
1009
|
-
<a name='L944'></a><a href='#L944'>944</a>
|
|
1010
|
-
<a name='L945'></a><a href='#L945'>945</a>
|
|
1011
|
-
<a name='L946'></a><a href='#L946'>946</a>
|
|
1012
|
-
<a name='L947'></a><a href='#L947'>947</a>
|
|
1013
|
-
<a name='L948'></a><a href='#L948'>948</a>
|
|
1014
|
-
<a name='L949'></a><a href='#L949'>949</a>
|
|
1015
|
-
<a name='L950'></a><a href='#L950'>950</a>
|
|
1016
|
-
<a name='L951'></a><a href='#L951'>951</a>
|
|
1017
|
-
<a name='L952'></a><a href='#L952'>952</a>
|
|
1018
|
-
<a name='L953'></a><a href='#L953'>953</a>
|
|
1019
|
-
<a name='L954'></a><a href='#L954'>954</a>
|
|
1020
|
-
<a name='L955'></a><a href='#L955'>955</a>
|
|
1021
|
-
<a name='L956'></a><a href='#L956'>956</a>
|
|
1022
|
-
<a name='L957'></a><a href='#L957'>957</a>
|
|
1023
|
-
<a name='L958'></a><a href='#L958'>958</a>
|
|
1024
|
-
<a name='L959'></a><a href='#L959'>959</a>
|
|
1025
|
-
<a name='L960'></a><a href='#L960'>960</a>
|
|
1026
|
-
<a name='L961'></a><a href='#L961'>961</a>
|
|
1027
|
-
<a name='L962'></a><a href='#L962'>962</a>
|
|
1028
|
-
<a name='L963'></a><a href='#L963'>963</a>
|
|
1029
|
-
<a name='L964'></a><a href='#L964'>964</a>
|
|
1030
|
-
<a name='L965'></a><a href='#L965'>965</a>
|
|
1031
|
-
<a name='L966'></a><a href='#L966'>966</a>
|
|
1032
|
-
<a name='L967'></a><a href='#L967'>967</a>
|
|
1033
|
-
<a name='L968'></a><a href='#L968'>968</a>
|
|
1034
|
-
<a name='L969'></a><a href='#L969'>969</a>
|
|
1035
|
-
<a name='L970'></a><a href='#L970'>970</a>
|
|
1036
|
-
<a name='L971'></a><a href='#L971'>971</a>
|
|
1037
|
-
<a name='L972'></a><a href='#L972'>972</a>
|
|
1038
|
-
<a name='L973'></a><a href='#L973'>973</a>
|
|
1039
|
-
<a name='L974'></a><a href='#L974'>974</a>
|
|
1040
|
-
<a name='L975'></a><a href='#L975'>975</a>
|
|
1041
|
-
<a name='L976'></a><a href='#L976'>976</a>
|
|
1042
|
-
<a name='L977'></a><a href='#L977'>977</a>
|
|
1043
|
-
<a name='L978'></a><a href='#L978'>978</a>
|
|
1044
|
-
<a name='L979'></a><a href='#L979'>979</a>
|
|
1045
|
-
<a name='L980'></a><a href='#L980'>980</a>
|
|
1046
|
-
<a name='L981'></a><a href='#L981'>981</a>
|
|
1047
|
-
<a name='L982'></a><a href='#L982'>982</a>
|
|
1048
|
-
<a name='L983'></a><a href='#L983'>983</a>
|
|
1049
|
-
<a name='L984'></a><a href='#L984'>984</a>
|
|
1050
|
-
<a name='L985'></a><a href='#L985'>985</a>
|
|
1051
|
-
<a name='L986'></a><a href='#L986'>986</a>
|
|
1052
|
-
<a name='L987'></a><a href='#L987'>987</a>
|
|
1053
|
-
<a name='L988'></a><a href='#L988'>988</a>
|
|
1054
|
-
<a name='L989'></a><a href='#L989'>989</a>
|
|
1055
|
-
<a name='L990'></a><a href='#L990'>990</a>
|
|
1056
|
-
<a name='L991'></a><a href='#L991'>991</a>
|
|
1057
|
-
<a name='L992'></a><a href='#L992'>992</a>
|
|
1058
|
-
<a name='L993'></a><a href='#L993'>993</a>
|
|
1059
|
-
<a name='L994'></a><a href='#L994'>994</a>
|
|
1060
|
-
<a name='L995'></a><a href='#L995'>995</a>
|
|
1061
|
-
<a name='L996'></a><a href='#L996'>996</a>
|
|
1062
|
-
<a name='L997'></a><a href='#L997'>997</a>
|
|
1063
|
-
<a name='L998'></a><a href='#L998'>998</a>
|
|
1064
|
-
<a name='L999'></a><a href='#L999'>999</a>
|
|
1065
|
-
<a name='L1000'></a><a href='#L1000'>1000</a>
|
|
1066
|
-
<a name='L1001'></a><a href='#L1001'>1001</a>
|
|
1067
|
-
<a name='L1002'></a><a href='#L1002'>1002</a>
|
|
1068
|
-
<a name='L1003'></a><a href='#L1003'>1003</a>
|
|
1069
|
-
<a name='L1004'></a><a href='#L1004'>1004</a>
|
|
1070
|
-
<a name='L1005'></a><a href='#L1005'>1005</a>
|
|
1071
|
-
<a name='L1006'></a><a href='#L1006'>1006</a>
|
|
1072
|
-
<a name='L1007'></a><a href='#L1007'>1007</a>
|
|
1073
|
-
<a name='L1008'></a><a href='#L1008'>1008</a>
|
|
1074
|
-
<a name='L1009'></a><a href='#L1009'>1009</a>
|
|
1075
|
-
<a name='L1010'></a><a href='#L1010'>1010</a>
|
|
1076
|
-
<a name='L1011'></a><a href='#L1011'>1011</a>
|
|
1077
|
-
<a name='L1012'></a><a href='#L1012'>1012</a>
|
|
1078
|
-
<a name='L1013'></a><a href='#L1013'>1013</a>
|
|
1079
|
-
<a name='L1014'></a><a href='#L1014'>1014</a>
|
|
1080
|
-
<a name='L1015'></a><a href='#L1015'>1015</a>
|
|
1081
|
-
<a name='L1016'></a><a href='#L1016'>1016</a>
|
|
1082
|
-
<a name='L1017'></a><a href='#L1017'>1017</a>
|
|
1083
|
-
<a name='L1018'></a><a href='#L1018'>1018</a>
|
|
1084
|
-
<a name='L1019'></a><a href='#L1019'>1019</a>
|
|
1085
|
-
<a name='L1020'></a><a href='#L1020'>1020</a>
|
|
1086
|
-
<a name='L1021'></a><a href='#L1021'>1021</a>
|
|
1087
|
-
<a name='L1022'></a><a href='#L1022'>1022</a>
|
|
1088
|
-
<a name='L1023'></a><a href='#L1023'>1023</a>
|
|
1089
|
-
<a name='L1024'></a><a href='#L1024'>1024</a>
|
|
1090
|
-
<a name='L1025'></a><a href='#L1025'>1025</a>
|
|
1091
|
-
<a name='L1026'></a><a href='#L1026'>1026</a>
|
|
1092
|
-
<a name='L1027'></a><a href='#L1027'>1027</a>
|
|
1093
|
-
<a name='L1028'></a><a href='#L1028'>1028</a>
|
|
1094
|
-
<a name='L1029'></a><a href='#L1029'>1029</a>
|
|
1095
|
-
<a name='L1030'></a><a href='#L1030'>1030</a>
|
|
1096
|
-
<a name='L1031'></a><a href='#L1031'>1031</a>
|
|
1097
|
-
<a name='L1032'></a><a href='#L1032'>1032</a>
|
|
1098
|
-
<a name='L1033'></a><a href='#L1033'>1033</a>
|
|
1099
|
-
<a name='L1034'></a><a href='#L1034'>1034</a>
|
|
1100
|
-
<a name='L1035'></a><a href='#L1035'>1035</a>
|
|
1101
|
-
<a name='L1036'></a><a href='#L1036'>1036</a>
|
|
1102
|
-
<a name='L1037'></a><a href='#L1037'>1037</a>
|
|
1103
|
-
<a name='L1038'></a><a href='#L1038'>1038</a>
|
|
1104
|
-
<a name='L1039'></a><a href='#L1039'>1039</a>
|
|
1105
|
-
<a name='L1040'></a><a href='#L1040'>1040</a>
|
|
1106
|
-
<a name='L1041'></a><a href='#L1041'>1041</a>
|
|
1107
|
-
<a name='L1042'></a><a href='#L1042'>1042</a>
|
|
1108
|
-
<a name='L1043'></a><a href='#L1043'>1043</a>
|
|
1109
|
-
<a name='L1044'></a><a href='#L1044'>1044</a>
|
|
1110
|
-
<a name='L1045'></a><a href='#L1045'>1045</a>
|
|
1111
|
-
<a name='L1046'></a><a href='#L1046'>1046</a>
|
|
1112
|
-
<a name='L1047'></a><a href='#L1047'>1047</a>
|
|
1113
|
-
<a name='L1048'></a><a href='#L1048'>1048</a>
|
|
1114
|
-
<a name='L1049'></a><a href='#L1049'>1049</a>
|
|
1115
|
-
<a name='L1050'></a><a href='#L1050'>1050</a>
|
|
1116
|
-
<a name='L1051'></a><a href='#L1051'>1051</a>
|
|
1117
|
-
<a name='L1052'></a><a href='#L1052'>1052</a>
|
|
1118
|
-
<a name='L1053'></a><a href='#L1053'>1053</a>
|
|
1119
|
-
<a name='L1054'></a><a href='#L1054'>1054</a>
|
|
1120
|
-
<a name='L1055'></a><a href='#L1055'>1055</a>
|
|
1121
|
-
<a name='L1056'></a><a href='#L1056'>1056</a>
|
|
1122
|
-
<a name='L1057'></a><a href='#L1057'>1057</a>
|
|
1123
|
-
<a name='L1058'></a><a href='#L1058'>1058</a>
|
|
1124
|
-
<a name='L1059'></a><a href='#L1059'>1059</a>
|
|
1125
|
-
<a name='L1060'></a><a href='#L1060'>1060</a>
|
|
1126
|
-
<a name='L1061'></a><a href='#L1061'>1061</a>
|
|
1127
|
-
<a name='L1062'></a><a href='#L1062'>1062</a>
|
|
1128
|
-
<a name='L1063'></a><a href='#L1063'>1063</a>
|
|
1129
|
-
<a name='L1064'></a><a href='#L1064'>1064</a>
|
|
1130
|
-
<a name='L1065'></a><a href='#L1065'>1065</a>
|
|
1131
|
-
<a name='L1066'></a><a href='#L1066'>1066</a>
|
|
1132
|
-
<a name='L1067'></a><a href='#L1067'>1067</a>
|
|
1133
|
-
<a name='L1068'></a><a href='#L1068'>1068</a>
|
|
1134
|
-
<a name='L1069'></a><a href='#L1069'>1069</a>
|
|
1135
|
-
<a name='L1070'></a><a href='#L1070'>1070</a>
|
|
1136
|
-
<a name='L1071'></a><a href='#L1071'>1071</a>
|
|
1137
|
-
<a name='L1072'></a><a href='#L1072'>1072</a>
|
|
1138
|
-
<a name='L1073'></a><a href='#L1073'>1073</a>
|
|
1139
|
-
<a name='L1074'></a><a href='#L1074'>1074</a>
|
|
1140
|
-
<a name='L1075'></a><a href='#L1075'>1075</a>
|
|
1141
|
-
<a name='L1076'></a><a href='#L1076'>1076</a>
|
|
1142
|
-
<a name='L1077'></a><a href='#L1077'>1077</a>
|
|
1143
|
-
<a name='L1078'></a><a href='#L1078'>1078</a>
|
|
1144
|
-
<a name='L1079'></a><a href='#L1079'>1079</a>
|
|
1145
|
-
<a name='L1080'></a><a href='#L1080'>1080</a>
|
|
1146
|
-
<a name='L1081'></a><a href='#L1081'>1081</a>
|
|
1147
|
-
<a name='L1082'></a><a href='#L1082'>1082</a>
|
|
1148
|
-
<a name='L1083'></a><a href='#L1083'>1083</a>
|
|
1149
|
-
<a name='L1084'></a><a href='#L1084'>1084</a>
|
|
1150
|
-
<a name='L1085'></a><a href='#L1085'>1085</a>
|
|
1151
|
-
<a name='L1086'></a><a href='#L1086'>1086</a>
|
|
1152
|
-
<a name='L1087'></a><a href='#L1087'>1087</a>
|
|
1153
|
-
<a name='L1088'></a><a href='#L1088'>1088</a>
|
|
1154
|
-
<a name='L1089'></a><a href='#L1089'>1089</a>
|
|
1155
|
-
<a name='L1090'></a><a href='#L1090'>1090</a>
|
|
1156
|
-
<a name='L1091'></a><a href='#L1091'>1091</a>
|
|
1157
|
-
<a name='L1092'></a><a href='#L1092'>1092</a>
|
|
1158
|
-
<a name='L1093'></a><a href='#L1093'>1093</a>
|
|
1159
|
-
<a name='L1094'></a><a href='#L1094'>1094</a>
|
|
1160
|
-
<a name='L1095'></a><a href='#L1095'>1095</a>
|
|
1161
|
-
<a name='L1096'></a><a href='#L1096'>1096</a>
|
|
1162
|
-
<a name='L1097'></a><a href='#L1097'>1097</a>
|
|
1163
|
-
<a name='L1098'></a><a href='#L1098'>1098</a>
|
|
1164
|
-
<a name='L1099'></a><a href='#L1099'>1099</a>
|
|
1165
|
-
<a name='L1100'></a><a href='#L1100'>1100</a>
|
|
1166
|
-
<a name='L1101'></a><a href='#L1101'>1101</a>
|
|
1167
|
-
<a name='L1102'></a><a href='#L1102'>1102</a>
|
|
1168
|
-
<a name='L1103'></a><a href='#L1103'>1103</a>
|
|
1169
|
-
<a name='L1104'></a><a href='#L1104'>1104</a>
|
|
1170
|
-
<a name='L1105'></a><a href='#L1105'>1105</a>
|
|
1171
|
-
<a name='L1106'></a><a href='#L1106'>1106</a>
|
|
1172
|
-
<a name='L1107'></a><a href='#L1107'>1107</a>
|
|
1173
|
-
<a name='L1108'></a><a href='#L1108'>1108</a>
|
|
1174
|
-
<a name='L1109'></a><a href='#L1109'>1109</a>
|
|
1175
|
-
<a name='L1110'></a><a href='#L1110'>1110</a>
|
|
1176
|
-
<a name='L1111'></a><a href='#L1111'>1111</a>
|
|
1177
|
-
<a name='L1112'></a><a href='#L1112'>1112</a>
|
|
1178
|
-
<a name='L1113'></a><a href='#L1113'>1113</a>
|
|
1179
|
-
<a name='L1114'></a><a href='#L1114'>1114</a>
|
|
1180
|
-
<a name='L1115'></a><a href='#L1115'>1115</a>
|
|
1181
|
-
<a name='L1116'></a><a href='#L1116'>1116</a>
|
|
1182
|
-
<a name='L1117'></a><a href='#L1117'>1117</a>
|
|
1183
|
-
<a name='L1118'></a><a href='#L1118'>1118</a>
|
|
1184
|
-
<a name='L1119'></a><a href='#L1119'>1119</a>
|
|
1185
|
-
<a name='L1120'></a><a href='#L1120'>1120</a>
|
|
1186
|
-
<a name='L1121'></a><a href='#L1121'>1121</a>
|
|
1187
|
-
<a name='L1122'></a><a href='#L1122'>1122</a>
|
|
1188
|
-
<a name='L1123'></a><a href='#L1123'>1123</a>
|
|
1189
|
-
<a name='L1124'></a><a href='#L1124'>1124</a>
|
|
1190
|
-
<a name='L1125'></a><a href='#L1125'>1125</a>
|
|
1191
|
-
<a name='L1126'></a><a href='#L1126'>1126</a>
|
|
1192
|
-
<a name='L1127'></a><a href='#L1127'>1127</a>
|
|
1193
|
-
<a name='L1128'></a><a href='#L1128'>1128</a>
|
|
1194
|
-
<a name='L1129'></a><a href='#L1129'>1129</a>
|
|
1195
|
-
<a name='L1130'></a><a href='#L1130'>1130</a>
|
|
1196
|
-
<a name='L1131'></a><a href='#L1131'>1131</a>
|
|
1197
|
-
<a name='L1132'></a><a href='#L1132'>1132</a>
|
|
1198
|
-
<a name='L1133'></a><a href='#L1133'>1133</a>
|
|
1199
|
-
<a name='L1134'></a><a href='#L1134'>1134</a>
|
|
1200
|
-
<a name='L1135'></a><a href='#L1135'>1135</a>
|
|
1201
|
-
<a name='L1136'></a><a href='#L1136'>1136</a>
|
|
1202
|
-
<a name='L1137'></a><a href='#L1137'>1137</a>
|
|
1203
|
-
<a name='L1138'></a><a href='#L1138'>1138</a>
|
|
1204
|
-
<a name='L1139'></a><a href='#L1139'>1139</a>
|
|
1205
|
-
<a name='L1140'></a><a href='#L1140'>1140</a>
|
|
1206
|
-
<a name='L1141'></a><a href='#L1141'>1141</a>
|
|
1207
|
-
<a name='L1142'></a><a href='#L1142'>1142</a>
|
|
1208
|
-
<a name='L1143'></a><a href='#L1143'>1143</a>
|
|
1209
|
-
<a name='L1144'></a><a href='#L1144'>1144</a>
|
|
1210
|
-
<a name='L1145'></a><a href='#L1145'>1145</a>
|
|
1211
|
-
<a name='L1146'></a><a href='#L1146'>1146</a>
|
|
1212
|
-
<a name='L1147'></a><a href='#L1147'>1147</a>
|
|
1213
|
-
<a name='L1148'></a><a href='#L1148'>1148</a>
|
|
1214
|
-
<a name='L1149'></a><a href='#L1149'>1149</a>
|
|
1215
|
-
<a name='L1150'></a><a href='#L1150'>1150</a>
|
|
1216
|
-
<a name='L1151'></a><a href='#L1151'>1151</a>
|
|
1217
|
-
<a name='L1152'></a><a href='#L1152'>1152</a>
|
|
1218
|
-
<a name='L1153'></a><a href='#L1153'>1153</a>
|
|
1219
|
-
<a name='L1154'></a><a href='#L1154'>1154</a>
|
|
1220
|
-
<a name='L1155'></a><a href='#L1155'>1155</a>
|
|
1221
|
-
<a name='L1156'></a><a href='#L1156'>1156</a>
|
|
1222
|
-
<a name='L1157'></a><a href='#L1157'>1157</a>
|
|
1223
|
-
<a name='L1158'></a><a href='#L1158'>1158</a>
|
|
1224
|
-
<a name='L1159'></a><a href='#L1159'>1159</a>
|
|
1225
|
-
<a name='L1160'></a><a href='#L1160'>1160</a>
|
|
1226
|
-
<a name='L1161'></a><a href='#L1161'>1161</a>
|
|
1227
|
-
<a name='L1162'></a><a href='#L1162'>1162</a>
|
|
1228
|
-
<a name='L1163'></a><a href='#L1163'>1163</a>
|
|
1229
|
-
<a name='L1164'></a><a href='#L1164'>1164</a>
|
|
1230
|
-
<a name='L1165'></a><a href='#L1165'>1165</a>
|
|
1231
|
-
<a name='L1166'></a><a href='#L1166'>1166</a>
|
|
1232
|
-
<a name='L1167'></a><a href='#L1167'>1167</a>
|
|
1233
|
-
<a name='L1168'></a><a href='#L1168'>1168</a>
|
|
1234
|
-
<a name='L1169'></a><a href='#L1169'>1169</a>
|
|
1235
|
-
<a name='L1170'></a><a href='#L1170'>1170</a>
|
|
1236
|
-
<a name='L1171'></a><a href='#L1171'>1171</a>
|
|
1237
|
-
<a name='L1172'></a><a href='#L1172'>1172</a>
|
|
1238
|
-
<a name='L1173'></a><a href='#L1173'>1173</a>
|
|
1239
|
-
<a name='L1174'></a><a href='#L1174'>1174</a>
|
|
1240
|
-
<a name='L1175'></a><a href='#L1175'>1175</a>
|
|
1241
|
-
<a name='L1176'></a><a href='#L1176'>1176</a>
|
|
1242
|
-
<a name='L1177'></a><a href='#L1177'>1177</a>
|
|
1243
|
-
<a name='L1178'></a><a href='#L1178'>1178</a>
|
|
1244
|
-
<a name='L1179'></a><a href='#L1179'>1179</a>
|
|
1245
|
-
<a name='L1180'></a><a href='#L1180'>1180</a>
|
|
1246
|
-
<a name='L1181'></a><a href='#L1181'>1181</a>
|
|
1247
|
-
<a name='L1182'></a><a href='#L1182'>1182</a>
|
|
1248
|
-
<a name='L1183'></a><a href='#L1183'>1183</a>
|
|
1249
|
-
<a name='L1184'></a><a href='#L1184'>1184</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
1250
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1251
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1252
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1253
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1255
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1256
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1257
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1262
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1263
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1265
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1266
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1267
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1268
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1269
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1270
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1271
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1272
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1273
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1274
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1275
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1276
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1278
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1283
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1287
|
-
<span class="cline-any cline-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-neutral"> </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-neutral"> </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-neutral"> </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-neutral"> </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-neutral"> </span>
|
|
1325
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1326
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1327
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1328
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1329
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1330
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1331
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1332
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1333
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1334
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1335
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1336
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1337
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1338
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1339
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1342
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1344
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1345
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1346
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1347
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1348
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1349
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1352
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1354
|
-
<span class="cline-any cline-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-neutral"> </span>
|
|
1364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1365
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1375
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1376
|
-
<span class="cline-any cline-neutral"> </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-yes">3x</span>
|
|
1400
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1401
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1404
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1405
|
-
<span class="cline-any cline-neutral"> </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>
|
|
1409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1410
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1419
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1420
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1422
|
-
<span class="cline-any cline-no"> </span>
|
|
1423
|
-
<span class="cline-any cline-no"> </span>
|
|
1424
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1426
|
-
<span class="cline-any cline-no"> </span>
|
|
1427
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1429
|
-
<span class="cline-any cline-no"> </span>
|
|
1430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1431
|
-
<span class="cline-any cline-no"> </span>
|
|
1432
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1433
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1434
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1435
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1438
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1439
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1444
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1447
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1449
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1451
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1452
|
-
<span class="cline-any cline-yes">66x</span>
|
|
1453
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1454
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1455
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1456
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1457
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1458
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1459
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1460
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1465
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1466
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1467
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1468
|
-
<span class="cline-any cline-yes">53x</span>
|
|
1469
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1472
|
-
<span class="cline-any cline-yes">39x</span>
|
|
1473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
-
<span class="cline-any cline-no"> </span>
|
|
1475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1476
|
-
<span class="cline-any cline-no"> </span>
|
|
1477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1478
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1479
|
-
<span class="cline-any cline-no"> </span>
|
|
1480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1481
|
-
<span class="cline-any cline-yes">39x</span>
|
|
1482
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1484
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1490
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1491
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1492
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1493
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1494
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1495
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1496
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1497
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1499
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1502
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1503
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1504
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1505
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1509
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1510
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1513
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1514
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1515
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1516
|
-
<span class="cline-any cline-yes">22x</span>
|
|
1517
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1518
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1519
|
-
<span class="cline-any cline-yes">51x</span>
|
|
1520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1521
|
-
<span class="cline-any cline-no"> </span>
|
|
1522
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1523
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1524
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1525
|
-
<span class="cline-any cline-no"> </span>
|
|
1526
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1527
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1528
|
-
<span class="cline-any cline-no"> </span>
|
|
1529
|
-
<span class="cline-any cline-no"> </span>
|
|
1530
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1531
|
-
<span class="cline-any cline-no"> </span>
|
|
1532
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1533
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1534
|
-
<span class="cline-any cline-no"> </span>
|
|
1535
|
-
<span class="cline-any cline-no"> </span>
|
|
1536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1537
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1538
|
-
<span class="cline-any cline-no"> </span>
|
|
1539
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1540
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1541
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1542
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1543
|
-
<span class="cline-any cline-yes">51x</span>
|
|
1544
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1545
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1546
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1547
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1548
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1549
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1550
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1551
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1552
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1553
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1554
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1555
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1556
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1557
|
-
<span class="cline-any cline-yes">16x</span>
|
|
1558
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1559
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1560
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1561
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1562
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1563
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1564
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1565
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1566
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1567
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1568
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1569
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1570
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1571
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1572
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1573
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1574
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1575
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1576
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1577
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1578
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1579
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1580
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1581
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1582
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1583
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1584
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1585
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1586
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1587
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1588
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1589
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1590
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1593
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1594
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1595
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1596
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1597
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1598
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1599
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1600
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1601
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1602
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1603
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1605
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1606
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1607
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1608
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1610
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1611
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1612
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1613
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1614
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1615
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1616
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1617
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1618
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1620
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1621
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1622
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1623
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1625
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1627
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1628
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1629
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1630
|
-
<span class="cline-any cline-no"> </span>
|
|
1631
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1632
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1633
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1634
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1635
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1636
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1637
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1638
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1639
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1640
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1641
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1642
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1643
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1644
|
-
<span class="cline-any cline-no"> </span>
|
|
1645
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1646
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1647
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1648
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1649
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1650
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1651
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1652
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1653
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1654
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1655
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1656
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1657
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1658
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1659
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1660
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1661
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1662
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1663
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1664
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1665
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1666
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1667
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1668
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1669
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1670
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1671
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1672
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1673
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1674
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1675
|
-
<span class="cline-any cline-no"> </span>
|
|
1676
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1677
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1678
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1679
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1680
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1681
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1682
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1683
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1684
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1685
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1686
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1687
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1688
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1689
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1690
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1691
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1692
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1693
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1694
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1695
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1696
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1697
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1698
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1699
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1700
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1701
|
-
<span class="cline-any cline-no"> </span>
|
|
1702
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1703
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1704
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1705
|
-
<span class="cline-any cline-no"> </span>
|
|
1706
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1707
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1708
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1709
|
-
<span class="cline-any cline-no"> </span>
|
|
1710
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1711
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1712
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1713
|
-
<span class="cline-any cline-no"> </span>
|
|
1714
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1715
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1716
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1717
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1718
|
-
<span class="cline-any cline-no"> </span>
|
|
1719
|
-
<span class="cline-any cline-no"> </span>
|
|
1720
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1721
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1722
|
-
<span class="cline-any cline-no"> </span>
|
|
1723
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1724
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1725
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1726
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1727
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1728
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1729
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1730
|
-
<span class="cline-any cline-no"> </span>
|
|
1731
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1732
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1733
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1734
|
-
<span class="cline-any cline-no"> </span>
|
|
1735
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1736
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1737
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1738
|
-
<span class="cline-any cline-no"> </span>
|
|
1739
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1740
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1741
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1742
|
-
<span class="cline-any cline-no"> </span>
|
|
1743
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1744
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1745
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1746
|
-
<span class="cline-any cline-no"> </span>
|
|
1747
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1748
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1749
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1750
|
-
<span class="cline-any cline-no"> </span>
|
|
1751
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1752
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1753
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1754
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1755
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1756
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1757
|
-
<span class="cline-any cline-no"> </span>
|
|
1758
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1759
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1760
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1761
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1762
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1763
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1764
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1765
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1766
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1767
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1768
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1769
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1770
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1771
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1772
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1773
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1774
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1775
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1776
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1777
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1778
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1779
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1780
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1781
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1782
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1783
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1784
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1785
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1786
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1787
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1788
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1789
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1790
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1791
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1792
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1793
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1794
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1795
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1796
|
-
<span class="cline-any cline-no"> </span>
|
|
1797
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1798
|
-
<span class="cline-any cline-no"> </span>
|
|
1799
|
-
<span class="cline-any cline-no"> </span>
|
|
1800
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1801
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1802
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1803
|
-
<span class="cline-any cline-no"> </span>
|
|
1804
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1805
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1806
|
-
<span class="cline-any cline-no"> </span>
|
|
1807
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1808
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1809
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1810
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1811
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1812
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1813
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1814
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1815
|
-
<span class="cline-any cline-no"> </span>
|
|
1816
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1817
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1818
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1819
|
-
<span class="cline-any cline-no"> </span>
|
|
1820
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1821
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1822
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1823
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1824
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1825
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1826
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1827
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1828
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1829
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1830
|
-
<span class="cline-any cline-no"> </span>
|
|
1831
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1832
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1833
|
-
<span class="cline-any cline-no"> </span>
|
|
1834
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1835
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1836
|
-
<span class="cline-any cline-no"> </span>
|
|
1837
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1838
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1839
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1840
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1841
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1842
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1843
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1844
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1845
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1846
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1847
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1848
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1849
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1850
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1851
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1852
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1853
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1854
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1855
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1856
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1857
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1858
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1859
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1860
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1861
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1862
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1863
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1864
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1865
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1866
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1867
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1868
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1869
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1870
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1871
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1872
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1873
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1874
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1875
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1876
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1877
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1878
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1879
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1880
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1881
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1882
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1883
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1884
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1885
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1886
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1887
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1888
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1889
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1890
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1891
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1892
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1893
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1894
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1895
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1896
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1897
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1898
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1899
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1900
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1901
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1902
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1903
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1904
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1905
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1906
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1907
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1908
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1909
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1910
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1911
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1912
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1913
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1914
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1915
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1916
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1917
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1918
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1919
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1920
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1921
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1922
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1923
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1924
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1925
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1926
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1927
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1928
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1929
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1930
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1931
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1932
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1933
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1934
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1935
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1936
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1937
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1938
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1939
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1940
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1941
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1942
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1943
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1944
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1945
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1946
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1947
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1948
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1949
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1950
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1951
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1952
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1953
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1954
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1955
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1956
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1957
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1958
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1959
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1960
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1961
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1962
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1963
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1964
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1965
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1966
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1967
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1968
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1969
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1970
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1971
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1972
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1973
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1974
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1975
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1976
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1977
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1978
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1979
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1980
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1981
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1982
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1983
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1984
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1985
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1986
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1987
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1988
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1989
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1990
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1991
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1992
|
-
<span class="cline-any cline-no"> </span>
|
|
1993
|
-
<span class="cline-any cline-no"> </span>
|
|
1994
|
-
<span class="cline-any cline-no"> </span>
|
|
1995
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1996
|
-
<span class="cline-any cline-no"> </span>
|
|
1997
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1998
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1999
|
-
<span class="cline-any cline-yes">6x</span>
|
|
2000
|
-
<span class="cline-any cline-yes">6x</span>
|
|
2001
|
-
<span class="cline-any cline-yes">3x</span>
|
|
2002
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2003
|
-
<span class="cline-any cline-yes">3x</span>
|
|
2004
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2005
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2006
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2007
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2008
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2009
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2010
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2011
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2012
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2013
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2014
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2015
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2016
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2017
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2018
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2019
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2020
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2021
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2022
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2023
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2024
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2025
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2026
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2027
|
-
<span class="cline-any cline-no"> </span>
|
|
2028
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2029
|
-
<span class="cline-any cline-no"> </span>
|
|
2030
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2031
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2032
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2033
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2034
|
-
<span class="cline-any cline-no"> </span>
|
|
2035
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2036
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2037
|
-
<span class="cline-any cline-no"> </span>
|
|
2038
|
-
<span class="cline-any cline-no"> </span>
|
|
2039
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2040
|
-
<span class="cline-any cline-no"> </span>
|
|
2041
|
-
<span class="cline-any cline-no"> </span>
|
|
2042
|
-
<span class="cline-any cline-no"> </span>
|
|
2043
|
-
<span class="cline-any cline-no"> </span>
|
|
2044
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2045
|
-
<span class="cline-any cline-no"> </span>
|
|
2046
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2047
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2048
|
-
<span class="cline-any cline-no"> </span>
|
|
2049
|
-
<span class="cline-any cline-no"> </span>
|
|
2050
|
-
<span class="cline-any cline-no"> </span>
|
|
2051
|
-
<span class="cline-any cline-no"> </span>
|
|
2052
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2053
|
-
<span class="cline-any cline-no"> </span>
|
|
2054
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2055
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2056
|
-
<span class="cline-any cline-no"> </span>
|
|
2057
|
-
<span class="cline-any cline-no"> </span>
|
|
2058
|
-
<span class="cline-any cline-no"> </span>
|
|
2059
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2060
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2061
|
-
<span class="cline-any cline-no"> </span>
|
|
2062
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2063
|
-
<span class="cline-any cline-no"> </span>
|
|
2064
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2065
|
-
<span class="cline-any cline-no"> </span>
|
|
2066
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2067
|
-
<span class="cline-any cline-no"> </span>
|
|
2068
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2069
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2070
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2071
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2072
|
-
<span class="cline-any cline-no"> </span>
|
|
2073
|
-
<span class="cline-any cline-no"> </span>
|
|
2074
|
-
<span class="cline-any cline-no"> </span>
|
|
2075
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2076
|
-
<span class="cline-any cline-no"> </span>
|
|
2077
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2078
|
-
<span class="cline-any cline-no"> </span>
|
|
2079
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2080
|
-
<span class="cline-any cline-no"> </span>
|
|
2081
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2082
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2083
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2084
|
-
<span class="cline-any cline-no"> </span>
|
|
2085
|
-
<span class="cline-any cline-no"> </span>
|
|
2086
|
-
<span class="cline-any cline-no"> </span>
|
|
2087
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2088
|
-
<span class="cline-any cline-no"> </span>
|
|
2089
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2090
|
-
<span class="cline-any cline-no"> </span>
|
|
2091
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2092
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2093
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2094
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2095
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2096
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2097
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2098
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2099
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2100
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2101
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2102
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2103
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2104
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2105
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2106
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2107
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2108
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2109
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2110
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2111
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2112
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2113
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2114
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2115
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2116
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2117
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2118
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2119
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2120
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2121
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2122
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2123
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2124
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2125
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2126
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2127
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2128
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2129
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2130
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2131
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2132
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2133
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2134
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2135
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2136
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2137
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2138
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2139
|
-
<span class="cline-any cline-no"> </span>
|
|
2140
|
-
<span class="cline-any cline-no"> </span>
|
|
2141
|
-
<span class="cline-any cline-no"> </span>
|
|
2142
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2143
|
-
<span class="cline-any cline-no"> </span>
|
|
2144
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2145
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2146
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2147
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2148
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2149
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2150
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2151
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2152
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2153
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2154
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2155
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2156
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2157
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2158
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2159
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2160
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2161
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2162
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2163
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2164
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2165
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2166
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2167
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2168
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2169
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2170
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2171
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2172
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2173
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2174
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2175
|
-
<span class="cline-any cline-no"> </span>
|
|
2176
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2177
|
-
<span class="cline-any cline-no"> </span>
|
|
2178
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2179
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2180
|
-
<span class="cline-any cline-no"> </span>
|
|
2181
|
-
<span class="cline-any cline-no"> </span>
|
|
2182
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2183
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2184
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2185
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2186
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2187
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2188
|
-
<span class="cline-any cline-no"> </span>
|
|
2189
|
-
<span class="cline-any cline-no"> </span>
|
|
2190
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2191
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2192
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2193
|
-
<span class="cline-any cline-no"> </span>
|
|
2194
|
-
<span class="cline-any cline-no"> </span>
|
|
2195
|
-
<span class="cline-any cline-no"> </span>
|
|
2196
|
-
<span class="cline-any cline-no"> </span>
|
|
2197
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2198
|
-
<span class="cline-any cline-no"> </span>
|
|
2199
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2200
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2201
|
-
<span class="cline-any cline-no"> </span>
|
|
2202
|
-
<span class="cline-any cline-no"> </span>
|
|
2203
|
-
<span class="cline-any cline-no"> </span>
|
|
2204
|
-
<span class="cline-any cline-no"> </span>
|
|
2205
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2206
|
-
<span class="cline-any cline-no"> </span>
|
|
2207
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2208
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2209
|
-
<span class="cline-any cline-no"> </span>
|
|
2210
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2211
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2212
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2213
|
-
<span class="cline-any cline-no"> </span>
|
|
2214
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2215
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2216
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2217
|
-
<span class="cline-any cline-no"> </span>
|
|
2218
|
-
<span class="cline-any cline-no"> </span>
|
|
2219
|
-
<span class="cline-any cline-no"> </span>
|
|
2220
|
-
<span class="cline-any cline-no"> </span>
|
|
2221
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2222
|
-
<span class="cline-any cline-no"> </span>
|
|
2223
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2224
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2225
|
-
<span class="cline-any cline-no"> </span>
|
|
2226
|
-
<span class="cline-any cline-no"> </span>
|
|
2227
|
-
<span class="cline-any cline-no"> </span>
|
|
2228
|
-
<span class="cline-any cline-no"> </span>
|
|
2229
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2230
|
-
<span class="cline-any cline-no"> </span>
|
|
2231
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2232
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2233
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2234
|
-
<span class="cline-any cline-no"> </span>
|
|
2235
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2236
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2237
|
-
<span class="cline-any cline-no"> </span>
|
|
2238
|
-
<span class="cline-any cline-no"> </span>
|
|
2239
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2240
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2241
|
-
<span class="cline-any cline-no"> </span>
|
|
2242
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2243
|
-
<span class="cline-any cline-no"> </span>
|
|
2244
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2245
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2246
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2247
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2248
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2249
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2250
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2251
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2252
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2253
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2255
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2256
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2257
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2260
|
-
<span class="cline-any cline-no"> </span>
|
|
2261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2262
|
-
<span class="cline-any cline-no"> </span>
|
|
2263
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2265
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2266
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2267
|
-
<span class="cline-any cline-no"> </span>
|
|
2268
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2269
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2270
|
-
<span class="cline-any cline-no"> </span>
|
|
2271
|
-
<span class="cline-any cline-no"> </span>
|
|
2272
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2273
|
-
<span class="cline-any cline-no"> </span>
|
|
2274
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2275
|
-
<span class="cline-any cline-no"> </span>
|
|
2276
|
-
<span class="cline-any cline-no"> </span>
|
|
2277
|
-
<span class="cline-any cline-no"> </span>
|
|
2278
|
-
<span class="cline-any cline-no"> </span>
|
|
2279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2280
|
-
<span class="cline-any cline-no"> </span>
|
|
2281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2283
|
-
<span class="cline-any cline-no"> </span>
|
|
2284
|
-
<span class="cline-any cline-no"> </span>
|
|
2285
|
-
<span class="cline-any cline-no"> </span>
|
|
2286
|
-
<span class="cline-any cline-no"> </span>
|
|
2287
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2288
|
-
<span class="cline-any cline-no"> </span>
|
|
2289
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2290
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2291
|
-
<span class="cline-any cline-no"> </span>
|
|
2292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2293
|
-
<span class="cline-any cline-no"> </span>
|
|
2294
|
-
<span class="cline-any cline-no"> </span>
|
|
2295
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2296
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2297
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2298
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2299
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2300
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2301
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2302
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2303
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2304
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2305
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2306
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2307
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2308
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2309
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2310
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2311
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2312
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2313
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2314
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2315
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2316
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2317
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2318
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2319
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2320
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2321
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2322
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2323
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2324
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2325
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2326
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2327
|
-
<span class="cline-any cline-no"> </span>
|
|
2328
|
-
<span class="cline-any cline-no"> </span>
|
|
2329
|
-
<span class="cline-any cline-no"> </span>
|
|
2330
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2331
|
-
<span class="cline-any cline-no"> </span>
|
|
2332
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2333
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2334
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2335
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2336
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2337
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2338
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2339
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2342
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2344
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2345
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2346
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2347
|
-
<span class="cline-any cline-no"> </span>
|
|
2348
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2349
|
-
<span class="cline-any cline-no"> </span>
|
|
2350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2352
|
-
<span class="cline-any cline-no"> </span>
|
|
2353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2354
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2355
|
-
<span class="cline-any cline-no"> </span>
|
|
2356
|
-
<span class="cline-any cline-no"> </span>
|
|
2357
|
-
<span class="cline-any cline-no"> </span>
|
|
2358
|
-
<span class="cline-any cline-no"> </span>
|
|
2359
|
-
<span class="cline-any cline-no"> </span>
|
|
2360
|
-
<span class="cline-any cline-no"> </span>
|
|
2361
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2362
|
-
<span class="cline-any cline-no"> </span>
|
|
2363
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2365
|
-
<span class="cline-any cline-no"> </span>
|
|
2366
|
-
<span class="cline-any cline-no"> </span>
|
|
2367
|
-
<span class="cline-any cline-no"> </span>
|
|
2368
|
-
<span class="cline-any cline-no"> </span>
|
|
2369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2370
|
-
<span class="cline-any cline-no"> </span>
|
|
2371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2373
|
-
<span class="cline-any cline-no"> </span>
|
|
2374
|
-
<span class="cline-any cline-no"> </span>
|
|
2375
|
-
<span class="cline-any cline-no"> </span>
|
|
2376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2377
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2379
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2381
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2382
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2383
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2384
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2385
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2386
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2387
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2391
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2392
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2393
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2395
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2396
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2397
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2399
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2400
|
-
<span class="cline-any cline-no"> </span>
|
|
2401
|
-
<span class="cline-any cline-no"> </span>
|
|
2402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2404
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2405
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2406
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2407
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2410
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2411
|
-
<span class="cline-any cline-yes">1x</span>
|
|
2412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2418
|
-
<span class="cline-any cline-no"> </span>
|
|
2419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2420
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2423
|
-
<span class="cline-any cline-no"> </span>
|
|
2424
|
-
<span class="cline-any cline-no"> </span>
|
|
2425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2426
|
-
<span class="cline-any cline-yes">1x</span>
|
|
2427
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2431
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2432
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type {
|
|
2433
|
-
Expression,
|
|
2434
|
-
ExpressionBuilder,
|
|
2435
|
-
ExpressionOrFactory,
|
|
2436
|
-
InsertQueryBuilder,
|
|
2437
|
-
Kysely,
|
|
2438
|
-
OperandExpression,
|
|
2439
|
-
ReferenceExpression,
|
|
2440
|
-
SqlBool,
|
|
2441
|
-
UpdateQueryBuilder,
|
|
2442
|
-
} from 'kysely';
|
|
2443
|
-
import type {
|
|
2444
|
-
BinaryOperatorExpression,
|
|
2445
|
-
OperandValueExpressionOrList,
|
|
2446
|
-
} from 'node_modules/kysely/dist/esm/parser/binary-operation-parser';
|
|
2447
|
-
import type { InsertExpression } from 'node_modules/kysely/dist/esm/parser/insert-values-parser';
|
|
2448
|
-
import type { TableReference } from 'node_modules/kysely/dist/esm/parser/table-parser';
|
|
2449
|
-
import superjson from 'superjson';
|
|
2450
|
-
import {
|
|
2451
|
-
type EntityInput,
|
|
2452
|
-
type EntityName,
|
|
2453
|
-
type EntityOutput,
|
|
2454
|
-
type EntityTypeMap,
|
|
2455
|
-
type Field,
|
|
2456
|
-
type Primitive,
|
|
2457
|
-
generateId,
|
|
2458
|
-
} from '~/pkgs/data-model';
|
|
2459
|
-
|
|
2460
|
-
import { getConsentTables } from '~/schema/definition';
|
|
2461
|
-
import type { C15TOptions } from '~/types';
|
|
2462
|
-
import {
|
|
2463
|
-
type Adapter,
|
|
2464
|
-
type TableFields,
|
|
2465
|
-
type Where,
|
|
2466
|
-
applyDefaultValue,
|
|
2467
|
-
} from '../..';
|
|
2468
|
-
import type { Database, KyselyDatabaseType } from './types';
|
|
2469
|
-
|
|
2470
|
-
/**
|
|
2471
|
-
* Type alias for Kysely field references
|
|
2472
|
-
*
|
|
2473
|
-
* This type helps bridge the gap between c15t's field paths and Kysely's
|
|
2474
|
-
* strongly typed reference expressions.
|
|
2475
|
-
*
|
|
2476
|
-
* @internal
|
|
2477
|
-
*/
|
|
2478
|
-
type KyselyFieldRef = ReferenceExpression<Database, keyof Database>;
|
|
2479
|
-
|
|
2480
|
-
/**
|
|
2481
|
-
* Type for expression builder functions used in queries
|
|
2482
|
-
*
|
|
2483
|
-
* @internal
|
|
2484
|
-
*/
|
|
2485
|
-
type ExpressionFn = (
|
|
2486
|
-
eb: ExpressionBuilder<Database, keyof Database>
|
|
2487
|
-
) => unknown;
|
|
2488
|
-
|
|
2489
|
-
/**
|
|
2490
|
-
* Interface for where conditions in Kysely queries
|
|
2491
|
-
*
|
|
2492
|
-
* This interface defines the structure of query conditions used
|
|
2493
|
-
* in database operations. It supports various operators and connectors
|
|
2494
|
-
* for building complex query conditions.
|
|
2495
|
-
*
|
|
2496
|
-
* @typeParam EntityType - The entity type being queried
|
|
2497
|
-
*/
|
|
2498
|
-
export interface WhereCondition<EntityType extends EntityName> {
|
|
2499
|
-
/**
|
|
2500
|
-
* The field to apply the condition to
|
|
2501
|
-
*/
|
|
2502
|
-
field: keyof EntityTypeMap[EntityType] | 'id';
|
|
2503
|
-
|
|
2504
|
-
/**
|
|
2505
|
-
* The value to compare against
|
|
2506
|
-
*/
|
|
2507
|
-
value: unknown;
|
|
2508
|
-
|
|
2509
|
-
/**
|
|
2510
|
-
* The operator to use for comparison
|
|
2511
|
-
*
|
|
2512
|
-
* @default "="
|
|
2513
|
-
*/
|
|
2514
|
-
operator?:
|
|
2515
|
-
| 'in'
|
|
2516
|
-
| 'eq'
|
|
2517
|
-
| 'ne'
|
|
2518
|
-
| 'lt'
|
|
2519
|
-
| 'lte'
|
|
2520
|
-
| 'gt'
|
|
2521
|
-
| 'gte'
|
|
2522
|
-
| 'contains'
|
|
2523
|
-
| 'starts_with'
|
|
2524
|
-
| 'ends_with'
|
|
2525
|
-
| 'ilike'
|
|
2526
|
-
| '=';
|
|
2527
|
-
|
|
2528
|
-
/**
|
|
2529
|
-
* The logical connector to use with previous conditions
|
|
2530
|
-
*
|
|
2531
|
-
* @default "AND"
|
|
2532
|
-
*/
|
|
2533
|
-
connector?: 'AND' | 'OR';
|
|
2534
|
-
}
|
|
2535
|
-
|
|
2536
|
-
/**
|
|
2537
|
-
* Configuration options for the Kysely adapter
|
|
2538
|
-
*
|
|
2539
|
-
* @example
|
|
2540
|
-
* ```typescript
|
|
2541
|
-
* const config: KyselyAdapterConfig = {
|
|
2542
|
-
* type: 'postgres' // Explicitly set the database type
|
|
2543
|
-
* };
|
|
2544
|
-
* ```
|
|
2545
|
-
*/
|
|
2546
|
-
export interface KyselyAdapterConfig {
|
|
2547
|
-
/**
|
|
2548
|
-
* Database type to use with the adapter
|
|
2549
|
-
*
|
|
2550
|
-
* Setting this explicitly can override the auto-detected type
|
|
2551
|
-
* and can be necessary in some environments where detection fails.
|
|
2552
|
-
*/
|
|
2553
|
-
type?: KyselyDatabaseType;
|
|
2554
|
-
}
|
|
2555
|
-
|
|
2556
|
-
/**
|
|
2557
|
-
* Type alias for expression results in Kysely queries
|
|
2558
|
-
*
|
|
2559
|
-
* @internal
|
|
2560
|
-
*/
|
|
2561
|
-
type ExpressionResult<DB> = Expression<DB>;
|
|
2562
|
-
|
|
2563
|
-
// Note: Throughout this adapter, we use "as any" type assertions in several places
|
|
2564
|
-
// to bridge the gap between our runtime-generated field references and Kysely's
|
|
2565
|
-
// strongly typed query builder. This is necessary due to the dynamic nature of our
|
|
2566
|
-
// schema, where field names and references are determined at runtime.
|
|
2567
|
-
// An alternative approach would be to generate fully typed interfaces at build time.
|
|
2568
|
-
|
|
2569
|
-
/**
|
|
2570
|
-
* Creates entity transformation utilities for the Kysely adapter
|
|
2571
|
-
*
|
|
2572
|
-
* This function creates helper methods for converting between c15t's
|
|
2573
|
-
* data format and Kysely's query format, handling field mapping,
|
|
2574
|
-
* value transformation, and query building.
|
|
2575
|
-
*
|
|
2576
|
-
* @internal This function is used internally by the kyselyAdapter
|
|
2577
|
-
* @param db - The Kysely database instance
|
|
2578
|
-
* @param options - The c15t options
|
|
2579
|
-
* @param config - Optional Kysely adapter configuration
|
|
2580
|
-
* @returns An object containing entity transformation utilities
|
|
2581
|
-
*/
|
|
2582
|
-
const createEntityTransformer = (
|
|
2583
|
-
db: Kysely<Database>,
|
|
2584
|
-
options: C15TOptions,
|
|
2585
|
-
config?: KyselyAdapterConfig
|
|
2586
|
-
) => {
|
|
2587
|
-
const schema = getConsentTables(options);
|
|
2588
|
-
|
|
2589
|
-
/**
|
|
2590
|
-
* Gets the database field name for a model field
|
|
2591
|
-
*
|
|
2592
|
-
* @internal
|
|
2593
|
-
* @typeParam EntityType - The entity type
|
|
2594
|
-
* @param model - The model name
|
|
2595
|
-
* @param field - The field name in the c15t model
|
|
2596
|
-
* @returns The corresponding field name in the database schema
|
|
2597
|
-
*/
|
|
2598
|
-
function getField<EntityType extends EntityName>(
|
|
2599
|
-
model: EntityType,
|
|
2600
|
-
field: keyof EntityTypeMap[EntityType] | string
|
|
2601
|
-
) {
|
|
2602
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (field === 'id') {
|
|
2603
|
-
return field;
|
|
2604
|
-
}
|
|
2605
|
-
const modelFields = <span class="cstat-no" title="statement not covered" >schema[model]?.fields;</span>
|
|
2606
|
-
const f = <span class="cstat-no" title="statement not covered" >modelFields</span>
|
|
2607
|
-
? (modelFields as Record<string, Field>)[field as string]
|
|
2608
|
-
: undefined;
|
|
2609
|
-
<span class="cstat-no" title="statement not covered" > if (!f) {</span>
|
|
2610
|
-
// biome-ignore lint/suspicious/noConsoleLog: no Logger implementation
|
|
2611
|
-
// biome-ignore lint/suspicious/noConsole: no Logger implementation
|
|
2612
|
-
<span class="cstat-no" title="statement not covered" > console.log('Field not found', model, field);</span>
|
|
2613
|
-
}
|
|
2614
|
-
<span class="cstat-no" title="statement not covered" > return f?.fieldName || (field as string);</span>
|
|
2615
|
-
}
|
|
2616
|
-
|
|
2617
|
-
/**
|
|
2618
|
-
* Transforms a value from c15t format to database format
|
|
2619
|
-
*
|
|
2620
|
-
* Handles type conversions like booleans to integers for SQLite,
|
|
2621
|
-
* dates to ISO strings, etc.
|
|
2622
|
-
*
|
|
2623
|
-
* @internal
|
|
2624
|
-
* @typeParam EntityType - The entity type
|
|
2625
|
-
* @param value - The value to transform
|
|
2626
|
-
* @param model - The model name
|
|
2627
|
-
* @param field - The field name
|
|
2628
|
-
* @returns The transformed value for database storage
|
|
2629
|
-
*/
|
|
2630
|
-
function transformValueToDB<EntityType extends EntityName>(
|
|
2631
|
-
value: unknown,
|
|
2632
|
-
model: EntityType,
|
|
2633
|
-
field: keyof EntityTypeMap[EntityType] | string
|
|
2634
|
-
): unknown {
|
|
2635
|
-
if (field === 'id') {
|
|
2636
|
-
return value;
|
|
2637
|
-
}
|
|
2638
|
-
const { type = <span class="branch-0 cbranch-no" title="branch not covered" >'sqlite' }</span> = config || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
2639
|
-
const modelFields = schema[model]?.fields;
|
|
2640
|
-
const f = modelFields
|
|
2641
|
-
? (modelFields as Record<string, Field>)[field as string]
|
|
2642
|
-
: <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
|
|
2643
|
-
if (
|
|
2644
|
-
f?.type === 'boolean' &&
|
|
2645
|
-
(type === 'sqlite' || type === 'mssql') &&
|
|
2646
|
-
value !== null &&
|
|
2647
|
-
value !== undefined
|
|
2648
|
-
) {
|
|
2649
|
-
return value ? 1 : 0;
|
|
2650
|
-
}
|
|
2651
|
-
if (f?.type === 'date' && value && value instanceof Date) {
|
|
2652
|
-
return type === 'sqlite' ? value.toISOString() : value;
|
|
2653
|
-
}
|
|
2654
|
-
// Handle JSON field type
|
|
2655
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (f?.type === 'json' && <span class="branch-1 cbranch-no" title="branch not covered" >value !== null && <span class="branch-2 cbranch-no" title="branch not covered" >v</span>alue !== undefined) {</span>
|
|
2656
|
-
// For PostgreSQL and MySQL, we can use the native JSON types
|
|
2657
|
-
<span class="cstat-no" title="statement not covered" > if (type === 'postgres' || type === 'mysql') {</span>
|
|
2658
|
-
// The database handles the JSON as is
|
|
2659
|
-
<span class="cstat-no" title="statement not covered" > return value;</span>
|
|
2660
|
-
}
|
|
2661
|
-
// For SQLite and other databases, stringify the JSON using SuperJSON
|
|
2662
|
-
<span class="cstat-no" title="statement not covered" > return superjson.stringify(value);</span>
|
|
2663
|
-
}
|
|
2664
|
-
return value;
|
|
2665
|
-
}
|
|
2666
|
-
|
|
2667
|
-
/**
|
|
2668
|
-
* Transforms a value from database format to c15t format
|
|
2669
|
-
*
|
|
2670
|
-
* Handles type conversions like integers to booleans for SQLite,
|
|
2671
|
-
* ISO strings to Date objects, etc.
|
|
2672
|
-
*
|
|
2673
|
-
* @internal
|
|
2674
|
-
* @typeParam EntityType - The entity type
|
|
2675
|
-
* @param value - The value from the database
|
|
2676
|
-
* @param model - The model name
|
|
2677
|
-
* @param field - The field name
|
|
2678
|
-
* @returns The transformed value for c15t usage
|
|
2679
|
-
*/
|
|
2680
|
-
function transformValueFromDB<EntityType extends EntityName>(
|
|
2681
|
-
value: unknown,
|
|
2682
|
-
model: EntityType,
|
|
2683
|
-
field: keyof EntityTypeMap[EntityType] | string
|
|
2684
|
-
): unknown {
|
|
2685
|
-
const { type = <span class="branch-0 cbranch-no" title="branch not covered" >'sqlite' }</span> = config || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
2686
|
-
|
|
2687
|
-
const modelFields = schema[model]?.fields;
|
|
2688
|
-
const f = modelFields
|
|
2689
|
-
? (modelFields as Record<string, Field>)[field as string]
|
|
2690
|
-
: <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
|
|
2691
|
-
if (
|
|
2692
|
-
f?.type === 'boolean' &&
|
|
2693
|
-
(type === 'sqlite' || type === 'mssql') &&
|
|
2694
|
-
value !== null
|
|
2695
|
-
) {
|
|
2696
|
-
return value === 1;
|
|
2697
|
-
}
|
|
2698
|
-
if (f?.type === 'date' && value) {
|
|
2699
|
-
return new Date(value as string);
|
|
2700
|
-
}
|
|
2701
|
-
// Handle JSON field type
|
|
2702
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (f?.type === 'json' && <span class="branch-1 cbranch-no" title="branch not covered" >value !== null && <span class="branch-2 cbranch-no" title="branch not covered" >v</span>alue !== undefined) {</span>
|
|
2703
|
-
// For PostgreSQL and MySQL, the value might already be an object
|
|
2704
|
-
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
2705
|
-
(type === 'postgres' || type === 'mysql') &&
|
|
2706
|
-
typeof value === 'object'
|
|
2707
|
-
) {
|
|
2708
|
-
<span class="cstat-no" title="statement not covered" > return value;</span>
|
|
2709
|
-
}
|
|
2710
|
-
// For SQLite and other databases or string JSON from any database
|
|
2711
|
-
<span class="cstat-no" title="statement not covered" > if (typeof value === 'string') {</span>
|
|
2712
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2713
|
-
// Use SuperJSON to parse the JSON string, preserving complex types
|
|
2714
|
-
<span class="cstat-no" title="statement not covered" > return superjson.parse(value as string);</span>
|
|
2715
|
-
} catch {
|
|
2716
|
-
// If SuperJSON parsing fails, try standard JSON.parse as fallback
|
|
2717
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2718
|
-
<span class="cstat-no" title="statement not covered" > return JSON.parse(value as string);</span>
|
|
2719
|
-
} catch {
|
|
2720
|
-
// If all parsing fails, return the original value
|
|
2721
|
-
<span class="cstat-no" title="statement not covered" > return value;</span>
|
|
2722
|
-
}
|
|
2723
|
-
}
|
|
2724
|
-
}
|
|
2725
|
-
}
|
|
2726
|
-
return value;
|
|
2727
|
-
}
|
|
2728
|
-
|
|
2729
|
-
/**
|
|
2730
|
-
* Gets the database entity name for a model
|
|
2731
|
-
*
|
|
2732
|
-
* @internal
|
|
2733
|
-
* @typeParam EntityType - The entity type
|
|
2734
|
-
* @param model - The model name
|
|
2735
|
-
* @returns The database table name
|
|
2736
|
-
*/
|
|
2737
|
-
function getEntityName<EntityType extends EntityName>(
|
|
2738
|
-
model: EntityType
|
|
2739
|
-
): TableReference<Database> {
|
|
2740
|
-
return schema[model].entityName as TableReference<Database>;
|
|
2741
|
-
}
|
|
2742
|
-
|
|
2743
|
-
return {
|
|
2744
|
-
/**
|
|
2745
|
-
* Transforms input data from c15t format to database format
|
|
2746
|
-
*
|
|
2747
|
-
* @internal
|
|
2748
|
-
* @typeParam EntityType - The entity type
|
|
2749
|
-
* @param data - The data to transform
|
|
2750
|
-
* @param model - The model name
|
|
2751
|
-
* @param action - Whether this is a create or update operation
|
|
2752
|
-
* @returns Transformed data for database insertion/update
|
|
2753
|
-
*/
|
|
2754
|
-
transformInput<EntityType extends EntityName>(
|
|
2755
|
-
data: EntityInput<EntityType>,
|
|
2756
|
-
model: EntityType,
|
|
2757
|
-
action: 'create' | 'update'
|
|
2758
|
-
): InsertExpression<Database, keyof Database> {
|
|
2759
|
-
// Initialize with empty object
|
|
2760
|
-
const transformedData: Record<string, unknown> = {};
|
|
2761
|
-
|
|
2762
|
-
// Handle ID for create operations
|
|
2763
|
-
if (action === 'create') {
|
|
2764
|
-
// If an ID is provided in the input data, use it
|
|
2765
|
-
// Otherwise generate a new one with the appropriate prefix
|
|
2766
|
-
const advancedOptions =
|
|
2767
|
-
(options.advanced as {
|
|
2768
|
-
generateId?: (params: { model: string; size?: number }) => string;
|
|
2769
|
-
disableTransactions?: boolean;
|
|
2770
|
-
}) || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
2771
|
-
transformedData.id =
|
|
2772
|
-
data.id ||
|
|
2773
|
-
(advancedOptions.generateId
|
|
2774
|
-
? <span class="branch-0 cbranch-no" title="branch not covered" >advancedOptions.generateId({ model })</span>
|
|
2775
|
-
: generateId(schema[model].entityPrefix));
|
|
2776
|
-
}
|
|
2777
|
-
|
|
2778
|
-
const fields = schema[model].fields;
|
|
2779
|
-
for (const field in fields) {
|
|
2780
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (Object.hasOwn(fields, field)) {
|
|
2781
|
-
const value = data[field as keyof typeof data];
|
|
2782
|
-
const fieldInfo = (fields as Record<string, Field>)[field];
|
|
2783
|
-
const fieldName = fieldInfo?.fieldName || <span class="branch-1 cbranch-no" title="branch not covered" >field;</span>
|
|
2784
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (fieldInfo) {
|
|
2785
|
-
transformedData[fieldName] = applyDefaultValue(
|
|
2786
|
-
transformValueToDB(value, model, field) as Primitive,
|
|
2787
|
-
fieldInfo,
|
|
2788
|
-
action
|
|
2789
|
-
);
|
|
2790
|
-
}
|
|
2791
|
-
}
|
|
2792
|
-
}
|
|
2793
|
-
|
|
2794
|
-
return transformedData as InsertExpression<Database, keyof Database>;
|
|
2795
|
-
},
|
|
2796
|
-
|
|
2797
|
-
/**
|
|
2798
|
-
* Transforms output data from database format to c15t format
|
|
2799
|
-
*
|
|
2800
|
-
* @internal
|
|
2801
|
-
* @typeParam EntityType - The entity type
|
|
2802
|
-
* @param data - The data from the database
|
|
2803
|
-
* @param model - The model name
|
|
2804
|
-
* @param select - Optional array of fields to select
|
|
2805
|
-
* @returns Transformed data for c15t or null if no data
|
|
2806
|
-
*/
|
|
2807
|
-
transformOutput<EntityType extends EntityName>(
|
|
2808
|
-
data: Record<string, unknown> | null,
|
|
2809
|
-
model: EntityType,
|
|
2810
|
-
select: string[] = []
|
|
2811
|
-
): EntityOutput<EntityType> | null {
|
|
2812
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!data) {
|
|
2813
|
-
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
2814
|
-
}
|
|
2815
|
-
|
|
2816
|
-
// Initialize transformedData based on conditions
|
|
2817
|
-
const transformedData: Record<string, unknown> = {};
|
|
2818
|
-
|
|
2819
|
-
// Add id to transformed data if needed
|
|
2820
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (data.id && (select.length === 0 || <span class="branch-2 cbranch-no" title="branch not covered" >select.includes('id'))) {</span>
|
|
2821
|
-
transformedData.id = data.id;
|
|
2822
|
-
}
|
|
2823
|
-
|
|
2824
|
-
const tableSchema = schema[model]?.fields;
|
|
2825
|
-
for (const key in tableSchema) {
|
|
2826
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (select.length && <span class="branch-1 cbranch-no" title="branch not covered" >!select.includes(key)) {</span>
|
|
2827
|
-
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
2828
|
-
}
|
|
2829
|
-
const field = (tableSchema as Record<string, Field>)[key];
|
|
2830
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (field) {
|
|
2831
|
-
transformedData[key] = transformValueFromDB(
|
|
2832
|
-
data[field.fieldName || <span class="branch-1 cbranch-no" title="branch not covered" >key]</span>,
|
|
2833
|
-
model,
|
|
2834
|
-
key
|
|
2835
|
-
);
|
|
2836
|
-
}
|
|
2837
|
-
}
|
|
2838
|
-
return transformedData as EntityOutput<EntityType>;
|
|
2839
|
-
},
|
|
2840
|
-
|
|
2841
|
-
/**
|
|
2842
|
-
* Converts c15t where clauses to Kysely query conditions
|
|
2843
|
-
*
|
|
2844
|
-
* @internal
|
|
2845
|
-
* @typeParam EntityType - The entity type
|
|
2846
|
-
* @param model - The model name
|
|
2847
|
-
* @param whereConditions - Array of where conditions
|
|
2848
|
-
* @returns Object with AND and OR expressions for Kysely
|
|
2849
|
-
*/
|
|
2850
|
-
convertWhereClause<EntityType extends EntityName>(
|
|
2851
|
-
model: EntityType,
|
|
2852
|
-
whereConditions?: WhereCondition<EntityType>[]
|
|
2853
|
-
): {
|
|
2854
|
-
and: ExpressionFn[] | null;
|
|
2855
|
-
or: ExpressionFn[] | null;
|
|
2856
|
-
} {
|
|
2857
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!whereConditions || whereConditions.length === 0) {
|
|
2858
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
2859
|
-
and: null,
|
|
2860
|
-
or: null,
|
|
2861
|
-
};
|
|
2862
|
-
}
|
|
2863
|
-
|
|
2864
|
-
const conditions = {
|
|
2865
|
-
and: [] as ExpressionFn[],
|
|
2866
|
-
or: [] as ExpressionFn[],
|
|
2867
|
-
};
|
|
2868
|
-
|
|
2869
|
-
for (const condition of whereConditions) {
|
|
2870
|
-
let {
|
|
2871
|
-
field: _field,
|
|
2872
|
-
value,
|
|
2873
|
-
operator = '=',
|
|
2874
|
-
connector = 'AND',
|
|
2875
|
-
} = condition;
|
|
2876
|
-
const fieldString = getField<EntityType>(model, _field);
|
|
2877
|
-
value = transformValueToDB<EntityType>(value, model, _field);
|
|
2878
|
-
|
|
2879
|
-
const expr: ExpressionFn = (eb) => {
|
|
2880
|
-
// For type safety, cast field to a reference expression
|
|
2881
|
-
const dbField = fieldString as unknown as KyselyFieldRef;
|
|
2882
|
-
|
|
2883
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator.toLowerCase() === 'in') {
|
|
2884
|
-
<span class="cstat-no" title="statement not covered" > return eb(dbField, 'in', Array.isArray(value) ? value : [value]);</span>
|
|
2885
|
-
}
|
|
2886
|
-
|
|
2887
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator === 'contains') {
|
|
2888
|
-
<span class="cstat-no" title="statement not covered" > return eb(dbField, 'like', `%${value}%`);</span>
|
|
2889
|
-
}
|
|
2890
|
-
|
|
2891
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator === 'starts_with') {
|
|
2892
|
-
<span class="cstat-no" title="statement not covered" > return eb(dbField, 'like', `${value}%`);</span>
|
|
2893
|
-
}
|
|
2894
|
-
|
|
2895
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator === 'ends_with') {
|
|
2896
|
-
<span class="cstat-no" title="statement not covered" > return eb(dbField, 'like', `%${value}`);</span>
|
|
2897
|
-
}
|
|
2898
|
-
|
|
2899
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator === 'ilike') {
|
|
2900
|
-
// Use SQL LOWER function for case-insensitive comparison
|
|
2901
|
-
const lowerField = <span class="cstat-no" title="statement not covered" >eb.fn<string>('lower', [dbField]);</span>
|
|
2902
|
-
const lowerValue = <span class="cstat-no" title="statement not covered" >eb.fn<string>('lower', [</span>
|
|
2903
|
-
eb.val(value?.toString()),
|
|
2904
|
-
]);
|
|
2905
|
-
<span class="cstat-no" title="statement not covered" > return eb(</span>
|
|
2906
|
-
lowerField,
|
|
2907
|
-
'like',
|
|
2908
|
-
lowerValue
|
|
2909
|
-
) as ExpressionResult<Database>;
|
|
2910
|
-
}
|
|
2911
|
-
|
|
2912
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator === 'eq') {
|
|
2913
|
-
<span class="cstat-no" title="statement not covered" > return eb(dbField, '=', value);</span>
|
|
2914
|
-
}
|
|
2915
|
-
|
|
2916
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator === 'ne') {
|
|
2917
|
-
<span class="cstat-no" title="statement not covered" > return eb(dbField, '<>', value);</span>
|
|
2918
|
-
}
|
|
2919
|
-
|
|
2920
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator === 'gt') {
|
|
2921
|
-
<span class="cstat-no" title="statement not covered" > return eb(dbField, '>', value);</span>
|
|
2922
|
-
}
|
|
2923
|
-
|
|
2924
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator === 'gte') {
|
|
2925
|
-
<span class="cstat-no" title="statement not covered" > return eb(dbField, '>=', value);</span>
|
|
2926
|
-
}
|
|
2927
|
-
|
|
2928
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator === 'lt') {
|
|
2929
|
-
<span class="cstat-no" title="statement not covered" > return eb(dbField, '<', value);</span>
|
|
2930
|
-
}
|
|
2931
|
-
|
|
2932
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (operator === 'lte') {
|
|
2933
|
-
<span class="cstat-no" title="statement not covered" > return eb(dbField, '<=', value);</span>
|
|
2934
|
-
}
|
|
2935
|
-
|
|
2936
|
-
return eb(dbField, operator as BinaryOperatorExpression, value);
|
|
2937
|
-
};
|
|
2938
|
-
|
|
2939
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (connector === 'OR') {
|
|
2940
|
-
<span class="cstat-no" title="statement not covered" > conditions.or.push(expr);</span>
|
|
2941
|
-
} else {
|
|
2942
|
-
conditions.and.push(expr);
|
|
2943
|
-
}
|
|
2944
|
-
}
|
|
2945
|
-
|
|
2946
|
-
return {
|
|
2947
|
-
and: conditions.and.length ? conditions.and : <span class="branch-1 cbranch-no" title="branch not covered" >null,</span>
|
|
2948
|
-
or: conditions.or.length ? <span class="branch-0 cbranch-no" title="branch not covered" >conditions.or : n</span>ull,
|
|
2949
|
-
};
|
|
2950
|
-
},
|
|
2951
|
-
|
|
2952
|
-
/**
|
|
2953
|
-
* Helper for returning data from operations in different database types
|
|
2954
|
-
*
|
|
2955
|
-
* @internal
|
|
2956
|
-
* @typeParam EntityType - The entity type
|
|
2957
|
-
* @param values - The values being inserted/updated
|
|
2958
|
-
* @param builder - The query builder
|
|
2959
|
-
* @param model - The model name
|
|
2960
|
-
* @param where - Where conditions for finding the modified record
|
|
2961
|
-
* @returns The result of the operation
|
|
2962
|
-
*/
|
|
2963
|
-
async withReturning<EntityType extends EntityName>(
|
|
2964
|
-
values: EntityInput<EntityType>,
|
|
2965
|
-
builder:
|
|
2966
|
-
| InsertQueryBuilder<Database, keyof Database, keyof Database>
|
|
2967
|
-
| UpdateQueryBuilder<
|
|
2968
|
-
Database,
|
|
2969
|
-
keyof Database,
|
|
2970
|
-
keyof Database,
|
|
2971
|
-
keyof Database
|
|
2972
|
-
>,
|
|
2973
|
-
model: EntityType,
|
|
2974
|
-
where: WhereCondition<EntityType>[]
|
|
2975
|
-
): Promise<Record<string, unknown> | null> {
|
|
2976
|
-
let res: Record<string, unknown> | null = null;
|
|
2977
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (config?.type === 'mysql') {
|
|
2978
|
-
//this isn't good, but kysely doesn't support returning in mysql and it doesn't return the inserted id. Change this if there is a better way.
|
|
2979
|
-
<span class="cstat-no" title="statement not covered" > await builder.execute();</span>
|
|
2980
|
-
// Get the field and value to find the created/updated record
|
|
2981
|
-
const whereCondition = <span class="cstat-no" title="statement not covered" >where[0];</span>
|
|
2982
|
-
const field = <span class="cstat-no" title="statement not covered" >values.id</span>
|
|
2983
|
-
? 'id'
|
|
2984
|
-
: ((whereCondition?.field ?? 'id') as string);
|
|
2985
|
-
const value =
|
|
2986
|
-
<span class="cstat-no" title="statement not covered" > values[field as keyof typeof values] ?? whereCondition?.value;</span>
|
|
2987
|
-
|
|
2988
|
-
// Safe cast for where field
|
|
2989
|
-
const fieldString = <span class="cstat-no" title="statement not covered" >getField(</span>
|
|
2990
|
-
model,
|
|
2991
|
-
field
|
|
2992
|
-
) as unknown as ExpressionOrFactory<
|
|
2993
|
-
Database,
|
|
2994
|
-
keyof Database,
|
|
2995
|
-
KyselyFieldRef
|
|
2996
|
-
>;
|
|
2997
|
-
|
|
2998
|
-
<span class="cstat-no" title="statement not covered" > res = (await db</span>
|
|
2999
|
-
.selectFrom(getEntityName(model))
|
|
3000
|
-
.selectAll()
|
|
3001
|
-
.where(<span class="fstat-no" title="function not covered" >(e</span>b) =>
|
|
3002
|
-
<span class="cstat-no" title="statement not covered" > eb(</span>
|
|
3003
|
-
fieldString,
|
|
3004
|
-
'=',
|
|
3005
|
-
value as OperandValueExpressionOrList<
|
|
3006
|
-
Database,
|
|
3007
|
-
keyof Database,
|
|
3008
|
-
KyselyFieldRef
|
|
3009
|
-
>
|
|
3010
|
-
)
|
|
3011
|
-
)
|
|
3012
|
-
.executeTakeFirst()) as Record<string, unknown> | null;
|
|
3013
|
-
<span class="cstat-no" title="statement not covered" > return res;</span>
|
|
3014
|
-
}
|
|
3015
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (config?.type === 'mssql') {
|
|
3016
|
-
<span class="cstat-no" title="statement not covered" > res = (await builder</span>
|
|
3017
|
-
.outputAll('inserted')
|
|
3018
|
-
.executeTakeFirst()) as Record<string, unknown> | null;
|
|
3019
|
-
<span class="cstat-no" title="statement not covered" > return res;</span>
|
|
3020
|
-
}
|
|
3021
|
-
res = (await builder.returningAll().executeTakeFirst()) as Record<
|
|
3022
|
-
string,
|
|
3023
|
-
unknown
|
|
3024
|
-
> | null;
|
|
3025
|
-
return res;
|
|
3026
|
-
},
|
|
3027
|
-
getEntityName,
|
|
3028
|
-
getField,
|
|
3029
|
-
};
|
|
3030
|
-
};
|
|
3031
|
-
|
|
3032
|
-
/**
|
|
3033
|
-
* Creates a c15t adapter for Kysely ORM
|
|
3034
|
-
*
|
|
3035
|
-
* This factory function creates an adapter that allows c15t to use Kysely ORM
|
|
3036
|
-
* as its database layer. It supports PostgreSQL, MySQL, SQLite, and MSSQL.
|
|
3037
|
-
*
|
|
3038
|
-
* @param db - The Kysely database instance
|
|
3039
|
-
* @param config - Optional configuration for the Kysely adapter
|
|
3040
|
-
* @returns A c15t adapter factory function
|
|
3041
|
-
*
|
|
3042
|
-
* @example
|
|
3043
|
-
* ```typescript
|
|
3044
|
-
* import { Kysely, PostgresDialect } from 'kysely';
|
|
3045
|
-
* import { Pool } from 'pg';
|
|
3046
|
-
* import { c15tInstance } from '@c15t/backend';
|
|
3047
|
-
* import { kyselyAdapter } from '@c15t/adapters/kysely';
|
|
3048
|
-
*
|
|
3049
|
-
* // Create a Postgres connection pool
|
|
3050
|
-
* const pool = new Pool({
|
|
3051
|
-
* host: 'localhost',
|
|
3052
|
-
* database: 'consent_db',
|
|
3053
|
-
* user: 'postgres',
|
|
3054
|
-
* password: 'password'
|
|
3055
|
-
* });
|
|
3056
|
-
*
|
|
3057
|
-
* // Create Kysely instance
|
|
3058
|
-
* const db = new Kysely({
|
|
3059
|
-
* dialect: new PostgresDialect({ pool })
|
|
3060
|
-
* });
|
|
3061
|
-
*
|
|
3062
|
-
* // Create the c15t instance with Kysely adapter
|
|
3063
|
-
* const c15t = c15tInstance({
|
|
3064
|
-
* storage: kyselyAdapter(db, { type: 'postgres' }),
|
|
3065
|
-
* // Other c15t options...
|
|
3066
|
-
* });
|
|
3067
|
-
*
|
|
3068
|
-
* // Use in your application
|
|
3069
|
-
* export default c15tInstance.handler;
|
|
3070
|
-
* ```
|
|
3071
|
-
*/
|
|
3072
|
-
export const kyselyAdapter =
|
|
3073
|
-
(db: Kysely<Database>, config?: KyselyAdapterConfig) =>
|
|
3074
|
-
(opts: C15TOptions): Adapter => {
|
|
3075
|
-
const {
|
|
3076
|
-
transformInput,
|
|
3077
|
-
withReturning,
|
|
3078
|
-
transformOutput,
|
|
3079
|
-
convertWhereClause,
|
|
3080
|
-
getEntityName,
|
|
3081
|
-
getField,
|
|
3082
|
-
} = createEntityTransformer(db, opts, config);
|
|
3083
|
-
return {
|
|
3084
|
-
id: 'kysely',
|
|
3085
|
-
/**
|
|
3086
|
-
* Creates a new record in the database
|
|
3087
|
-
*
|
|
3088
|
-
* @typeParam Model - The model type
|
|
3089
|
-
* @typeParam Data - The data type
|
|
3090
|
-
* @typeParam Result - The result type
|
|
3091
|
-
* @param data - The data for the create operation
|
|
3092
|
-
* @returns The created record
|
|
3093
|
-
*/
|
|
3094
|
-
async create<
|
|
3095
|
-
Model extends EntityName,
|
|
3096
|
-
Data extends Record<string, unknown>,
|
|
3097
|
-
Result extends TableFields<Model>,
|
|
3098
|
-
>(data: {
|
|
3099
|
-
model: Model;
|
|
3100
|
-
data: Data;
|
|
3101
|
-
select?: (keyof Result)[];
|
|
3102
|
-
}): Promise<Result> {
|
|
3103
|
-
const { model, data: values, select } = data;
|
|
3104
|
-
const transformed = transformInput(
|
|
3105
|
-
values as EntityInput<Model>,
|
|
3106
|
-
model,
|
|
3107
|
-
'create'
|
|
3108
|
-
);
|
|
3109
|
-
|
|
3110
|
-
// Safe cast for table name
|
|
3111
|
-
const tableName = getEntityName(model);
|
|
3112
|
-
|
|
3113
|
-
// Use type assertion for builder to match Kysely's expectations
|
|
3114
|
-
const builder = db
|
|
3115
|
-
.insertInto(tableName as keyof Database)
|
|
3116
|
-
.values(transformed);
|
|
3117
|
-
|
|
3118
|
-
const result = await withReturning(
|
|
3119
|
-
transformed as EntityInput<Model>,
|
|
3120
|
-
builder as unknown as InsertQueryBuilder<
|
|
3121
|
-
Database,
|
|
3122
|
-
keyof Database,
|
|
3123
|
-
keyof Database
|
|
3124
|
-
>,
|
|
3125
|
-
model,
|
|
3126
|
-
[]
|
|
3127
|
-
);
|
|
3128
|
-
|
|
3129
|
-
const output = transformOutput(
|
|
3130
|
-
result,
|
|
3131
|
-
model,
|
|
3132
|
-
select as string[]
|
|
3133
|
-
) as unknown as Result;
|
|
3134
|
-
|
|
3135
|
-
return output;
|
|
3136
|
-
},
|
|
3137
|
-
/**
|
|
3138
|
-
* Finds a single record matching the where conditions
|
|
3139
|
-
*
|
|
3140
|
-
* @typeParam Model - The model type
|
|
3141
|
-
* @typeParam Result - The result type
|
|
3142
|
-
* @param data - The data for the find operation
|
|
3143
|
-
* @returns The found record or null if not found
|
|
3144
|
-
*/
|
|
3145
|
-
async findOne<
|
|
3146
|
-
Model extends EntityName,
|
|
3147
|
-
Result extends TableFields<Model>,
|
|
3148
|
-
>(data: {
|
|
3149
|
-
model: Model;
|
|
3150
|
-
where: Where<Model>;
|
|
3151
|
-
select?: (keyof Result)[];
|
|
3152
|
-
}): Promise<Result | null> {
|
|
3153
|
-
const { model, where, select } = data;
|
|
3154
|
-
// Convert Where from Adapter type to internal WhereCondition type
|
|
3155
|
-
const whereArray = (Array.isArray(where)
|
|
3156
|
-
? where
|
|
3157
|
-
: <span class="branch-1 cbranch-no" title="branch not covered" >[where]) as unknown as WhereCondition<Model>[];</span>
|
|
3158
|
-
const { and, or } = convertWhereClause(model, whereArray);
|
|
3159
|
-
|
|
3160
|
-
// Safe cast for table name
|
|
3161
|
-
const tableName = getEntityName(model);
|
|
3162
|
-
let query = db
|
|
3163
|
-
.selectFrom(tableName as unknown as keyof Database)
|
|
3164
|
-
.selectAll();
|
|
3165
|
-
|
|
3166
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (and) {
|
|
3167
|
-
query = query.where((eb) => {
|
|
3168
|
-
const conditions = and.map((expr) =>
|
|
3169
|
-
expr(eb)
|
|
3170
|
-
) as OperandExpression<SqlBool>[];
|
|
3171
|
-
return eb.and(conditions);
|
|
3172
|
-
});
|
|
3173
|
-
}
|
|
3174
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (or) {
|
|
3175
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3176
|
-
const conditions = <span class="cstat-no" title="statement not covered" >or.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3177
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3178
|
-
) as OperandExpression<SqlBool>[];
|
|
3179
|
-
<span class="cstat-no" title="statement not covered" > return eb.or(conditions);</span>
|
|
3180
|
-
});
|
|
3181
|
-
}
|
|
3182
|
-
const res = await query.executeTakeFirst();
|
|
3183
|
-
if (!res) {
|
|
3184
|
-
return null;
|
|
3185
|
-
}
|
|
3186
|
-
return transformOutput(
|
|
3187
|
-
res as Record<string, unknown>,
|
|
3188
|
-
model,
|
|
3189
|
-
select as string[]
|
|
3190
|
-
) as unknown as Result | null;
|
|
3191
|
-
},
|
|
3192
|
-
/**
|
|
3193
|
-
* Finds multiple records matching the where conditions
|
|
3194
|
-
*
|
|
3195
|
-
* @typeParam Model - The model type
|
|
3196
|
-
* @typeParam Result - The result type
|
|
3197
|
-
* @param data - The data for the find operation
|
|
3198
|
-
* @returns Array of matching records
|
|
3199
|
-
*/
|
|
3200
|
-
<span class="fstat-no" title="function not covered" > async f</span>indMany<
|
|
3201
|
-
Model extends EntityName,
|
|
3202
|
-
Result extends TableFields<Model>,
|
|
3203
|
-
>(data: {
|
|
3204
|
-
model: Model;
|
|
3205
|
-
where?: Where<Model>;
|
|
3206
|
-
limit?: number;
|
|
3207
|
-
sortBy?: { field: 'id' | keyof Result; direction: 'asc' | 'desc' };
|
|
3208
|
-
offset?: number;
|
|
3209
|
-
}): Promise<Result[]> {
|
|
3210
|
-
const { model, where, limit, offset, sortBy } = <span class="cstat-no" title="statement not covered" >data;</span>
|
|
3211
|
-
// Convert Where from Adapter type to internal WhereCondition type
|
|
3212
|
-
const whereArray = <span class="cstat-no" title="statement not covered" >where</span>
|
|
3213
|
-
? ((Array.isArray(where)
|
|
3214
|
-
? where
|
|
3215
|
-
: [where]) as unknown as WhereCondition<Model>[])
|
|
3216
|
-
: undefined;
|
|
3217
|
-
const { and, or } = <span class="cstat-no" title="statement not covered" >convertWhereClause(model, whereArray);</span>
|
|
3218
|
-
|
|
3219
|
-
// Safe cast for table name
|
|
3220
|
-
const tableName = <span class="cstat-no" title="statement not covered" >getEntityName(model);</span>
|
|
3221
|
-
let query = <span class="cstat-no" title="statement not covered" >db.selectFrom(tableName as unknown as keyof Database);</span>
|
|
3222
|
-
|
|
3223
|
-
<span class="cstat-no" title="statement not covered" > if (and) {</span>
|
|
3224
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3225
|
-
const conditions = <span class="cstat-no" title="statement not covered" >and.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3226
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3227
|
-
) as OperandExpression<SqlBool>[];
|
|
3228
|
-
<span class="cstat-no" title="statement not covered" > return eb.and(conditions);</span>
|
|
3229
|
-
});
|
|
3230
|
-
}
|
|
3231
|
-
<span class="cstat-no" title="statement not covered" > if (or) {</span>
|
|
3232
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3233
|
-
const conditions = <span class="cstat-no" title="statement not covered" >or.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3234
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3235
|
-
) as OperandExpression<SqlBool>[];
|
|
3236
|
-
<span class="cstat-no" title="statement not covered" > return eb.or(conditions);</span>
|
|
3237
|
-
});
|
|
3238
|
-
}
|
|
3239
|
-
<span class="cstat-no" title="statement not covered" > if (config?.type === 'mssql') {</span>
|
|
3240
|
-
<span class="cstat-no" title="statement not covered" > if (!offset) {</span>
|
|
3241
|
-
<span class="cstat-no" title="statement not covered" > query = query.top(limit || 100);</span>
|
|
3242
|
-
}
|
|
3243
|
-
} else {
|
|
3244
|
-
<span class="cstat-no" title="statement not covered" > query = query.limit(limit || 100);</span>
|
|
3245
|
-
}
|
|
3246
|
-
<span class="cstat-no" title="statement not covered" > if (sortBy) {</span>
|
|
3247
|
-
// Safe cast for sort field
|
|
3248
|
-
const sortFieldString = <span class="cstat-no" title="statement not covered" >getField(model, sortBy.field as string);</span>
|
|
3249
|
-
|
|
3250
|
-
<span class="cstat-no" title="statement not covered" > query = query.orderBy(</span>
|
|
3251
|
-
sortFieldString as unknown as KyselyFieldRef,
|
|
3252
|
-
sortBy.direction
|
|
3253
|
-
);
|
|
3254
|
-
}
|
|
3255
|
-
<span class="cstat-no" title="statement not covered" > if (offset) {</span>
|
|
3256
|
-
<span class="cstat-no" title="statement not covered" > if (config?.type === 'mssql') {</span>
|
|
3257
|
-
<span class="cstat-no" title="statement not covered" > if (!sortBy) {</span>
|
|
3258
|
-
// Safe cast for id field
|
|
3259
|
-
<span class="cstat-no" title="statement not covered" > query = query.orderBy('id' as unknown as KyselyFieldRef);</span>
|
|
3260
|
-
}
|
|
3261
|
-
<span class="cstat-no" title="statement not covered" > query = query.offset(offset).fetch(limit || 100);</span>
|
|
3262
|
-
} else {
|
|
3263
|
-
<span class="cstat-no" title="statement not covered" > query = query.offset(offset);</span>
|
|
3264
|
-
}
|
|
3265
|
-
}
|
|
3266
|
-
|
|
3267
|
-
const res = <span class="cstat-no" title="statement not covered" >await query.selectAll().execute();</span>
|
|
3268
|
-
<span class="cstat-no" title="statement not covered" > if (!res) {</span>
|
|
3269
|
-
<span class="cstat-no" title="statement not covered" > return [] as unknown as Result[];</span>
|
|
3270
|
-
}
|
|
3271
|
-
<span class="cstat-no" title="statement not covered" > return res.map(</span>
|
|
3272
|
-
<span class="fstat-no" title="function not covered" > (r</span>) =>
|
|
3273
|
-
<span class="cstat-no" title="statement not covered" > transformOutput(</span>
|
|
3274
|
-
r as Record<string, unknown>,
|
|
3275
|
-
model
|
|
3276
|
-
) as unknown as Result
|
|
3277
|
-
);
|
|
3278
|
-
},
|
|
3279
|
-
/**
|
|
3280
|
-
* Updates a single record matching the where conditions
|
|
3281
|
-
*
|
|
3282
|
-
* @typeParam Model - The model type
|
|
3283
|
-
* @typeParam Result - The result type
|
|
3284
|
-
* @param data - The data for the update operation
|
|
3285
|
-
* @returns The updated record or null if not found
|
|
3286
|
-
*/
|
|
3287
|
-
async update<
|
|
3288
|
-
Model extends EntityName,
|
|
3289
|
-
Result extends TableFields<Model>,
|
|
3290
|
-
>(data: {
|
|
3291
|
-
model: Model;
|
|
3292
|
-
where: Where<Model>;
|
|
3293
|
-
update: EntityInput<Model>;
|
|
3294
|
-
}): Promise<Result | null> {
|
|
3295
|
-
const { model, where, update: values } = data;
|
|
3296
|
-
// Convert Where from Adapter type to internal WhereCondition type
|
|
3297
|
-
const whereArray = (Array.isArray(where)
|
|
3298
|
-
? where
|
|
3299
|
-
: <span class="branch-1 cbranch-no" title="branch not covered" >[where]) as unknown as WhereCondition<Model>[];</span>
|
|
3300
|
-
const { and, or } = convertWhereClause(model, whereArray);
|
|
3301
|
-
const transformedData = transformInput(
|
|
3302
|
-
values as EntityInput<Model>,
|
|
3303
|
-
model,
|
|
3304
|
-
'update'
|
|
3305
|
-
);
|
|
3306
|
-
|
|
3307
|
-
// Safe cast for table name
|
|
3308
|
-
const tableName = getEntityName(model);
|
|
3309
|
-
let query = db
|
|
3310
|
-
.updateTable(tableName as unknown as keyof Database)
|
|
3311
|
-
.set(transformedData as Record<string, unknown>);
|
|
3312
|
-
|
|
3313
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (and) {
|
|
3314
|
-
query = query.where((eb) => {
|
|
3315
|
-
const conditions = and.map((expr) =>
|
|
3316
|
-
expr(eb)
|
|
3317
|
-
) as OperandExpression<SqlBool>[];
|
|
3318
|
-
return eb.and(conditions);
|
|
3319
|
-
});
|
|
3320
|
-
}
|
|
3321
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (or) {
|
|
3322
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3323
|
-
const conditions = <span class="cstat-no" title="statement not covered" >or.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3324
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3325
|
-
) as OperandExpression<SqlBool>[];
|
|
3326
|
-
<span class="cstat-no" title="statement not covered" > return eb.or(conditions);</span>
|
|
3327
|
-
});
|
|
3328
|
-
}
|
|
3329
|
-
const result = await withReturning(
|
|
3330
|
-
transformedData as EntityInput<Model>,
|
|
3331
|
-
query as unknown as UpdateQueryBuilder<
|
|
3332
|
-
Database,
|
|
3333
|
-
keyof Database,
|
|
3334
|
-
keyof Database,
|
|
3335
|
-
keyof Database
|
|
3336
|
-
>,
|
|
3337
|
-
model,
|
|
3338
|
-
whereArray
|
|
3339
|
-
);
|
|
3340
|
-
return transformOutput(result, model) as unknown as Result | null;
|
|
3341
|
-
},
|
|
3342
|
-
/**
|
|
3343
|
-
* Updates multiple records matching the where conditions
|
|
3344
|
-
*
|
|
3345
|
-
* @typeParam Model - The model type
|
|
3346
|
-
* @typeParam Result - The result type
|
|
3347
|
-
* @param data - The data for the update operation
|
|
3348
|
-
* @returns Array of updated records
|
|
3349
|
-
*/
|
|
3350
|
-
<span class="fstat-no" title="function not covered" > async u</span>pdateMany<
|
|
3351
|
-
Model extends EntityName,
|
|
3352
|
-
Result extends TableFields<Model>,
|
|
3353
|
-
>(data: {
|
|
3354
|
-
model: Model;
|
|
3355
|
-
where: Where<Model>;
|
|
3356
|
-
update: Partial<EntityInput<Model>>;
|
|
3357
|
-
}): Promise<Result[]> {
|
|
3358
|
-
const { model, where, update: values } = <span class="cstat-no" title="statement not covered" >data;</span>
|
|
3359
|
-
// Convert Where from Adapter type to internal WhereCondition type
|
|
3360
|
-
const whereArray = (<span class="cstat-no" title="statement not covered" >Array.isArray(where)</span>
|
|
3361
|
-
? where
|
|
3362
|
-
: [where]) as unknown as WhereCondition<Model>[];
|
|
3363
|
-
const { and, or } = <span class="cstat-no" title="statement not covered" >convertWhereClause(model, whereArray);</span>
|
|
3364
|
-
const transformedData = <span class="cstat-no" title="statement not covered" >transformInput(</span>
|
|
3365
|
-
values as EntityInput<Model>,
|
|
3366
|
-
model,
|
|
3367
|
-
'update'
|
|
3368
|
-
);
|
|
3369
|
-
|
|
3370
|
-
// Safe cast for table name
|
|
3371
|
-
const tableName = <span class="cstat-no" title="statement not covered" >getEntityName(model);</span>
|
|
3372
|
-
let query = <span class="cstat-no" title="statement not covered" >db</span>
|
|
3373
|
-
.updateTable(tableName as unknown as keyof Database)
|
|
3374
|
-
.set(transformedData as Record<string, unknown>);
|
|
3375
|
-
|
|
3376
|
-
<span class="cstat-no" title="statement not covered" > if (and) {</span>
|
|
3377
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3378
|
-
const conditions = <span class="cstat-no" title="statement not covered" >and.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3379
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3380
|
-
) as OperandExpression<SqlBool>[];
|
|
3381
|
-
<span class="cstat-no" title="statement not covered" > return eb.and(conditions);</span>
|
|
3382
|
-
});
|
|
3383
|
-
}
|
|
3384
|
-
<span class="cstat-no" title="statement not covered" > if (or) {</span>
|
|
3385
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3386
|
-
const conditions = <span class="cstat-no" title="statement not covered" >or.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3387
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3388
|
-
) as OperandExpression<SqlBool>[];
|
|
3389
|
-
<span class="cstat-no" title="statement not covered" > return eb.or(conditions);</span>
|
|
3390
|
-
});
|
|
3391
|
-
}
|
|
3392
|
-
<span class="cstat-no" title="statement not covered" > await query.execute();</span>
|
|
3393
|
-
|
|
3394
|
-
// After update is complete, fetch the updated records using the same where conditions
|
|
3395
|
-
// Safe cast for table name
|
|
3396
|
-
let selectQuery = <span class="cstat-no" title="statement not covered" >db</span>
|
|
3397
|
-
.selectFrom(tableName as unknown as keyof Database)
|
|
3398
|
-
.selectAll();
|
|
3399
|
-
|
|
3400
|
-
<span class="cstat-no" title="statement not covered" > if (and) {</span>
|
|
3401
|
-
<span class="cstat-no" title="statement not covered" > selectQuery = selectQuery.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3402
|
-
const conditions = <span class="cstat-no" title="statement not covered" >and.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3403
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3404
|
-
) as OperandExpression<SqlBool>[];
|
|
3405
|
-
<span class="cstat-no" title="statement not covered" > return eb.and(conditions);</span>
|
|
3406
|
-
});
|
|
3407
|
-
}
|
|
3408
|
-
<span class="cstat-no" title="statement not covered" > if (or) {</span>
|
|
3409
|
-
<span class="cstat-no" title="statement not covered" > selectQuery = selectQuery.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3410
|
-
const conditions = <span class="cstat-no" title="statement not covered" >or.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3411
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3412
|
-
) as OperandExpression<SqlBool>[];
|
|
3413
|
-
<span class="cstat-no" title="statement not covered" > return eb.or(conditions);</span>
|
|
3414
|
-
});
|
|
3415
|
-
}
|
|
3416
|
-
|
|
3417
|
-
const fetchedResults = <span class="cstat-no" title="statement not covered" >await selectQuery.execute();</span>
|
|
3418
|
-
|
|
3419
|
-
// Transform the results using the same pattern as findMany
|
|
3420
|
-
<span class="cstat-no" title="statement not covered" > if (!fetchedResults || fetchedResults.length === 0) {</span>
|
|
3421
|
-
<span class="cstat-no" title="statement not covered" > return [] as unknown as Result[];</span>
|
|
3422
|
-
}
|
|
3423
|
-
|
|
3424
|
-
<span class="cstat-no" title="statement not covered" > return fetchedResults.map(</span>
|
|
3425
|
-
<span class="fstat-no" title="function not covered" > (r</span>ecord) =>
|
|
3426
|
-
<span class="cstat-no" title="statement not covered" > transformOutput(</span>
|
|
3427
|
-
record as Record<string, unknown>,
|
|
3428
|
-
model
|
|
3429
|
-
) as unknown as Result
|
|
3430
|
-
);
|
|
3431
|
-
},
|
|
3432
|
-
/**
|
|
3433
|
-
* Counts records matching the where conditions
|
|
3434
|
-
*
|
|
3435
|
-
* @typeParam Model - The model type
|
|
3436
|
-
* @param data - The data for the count operation
|
|
3437
|
-
* @returns The count of matching records
|
|
3438
|
-
*/
|
|
3439
|
-
<span class="fstat-no" title="function not covered" > async c</span>ount<Model extends EntityName>(data: {
|
|
3440
|
-
model: Model;
|
|
3441
|
-
where?: Where<Model>;
|
|
3442
|
-
}): Promise<number> {
|
|
3443
|
-
const { model, where } = <span class="cstat-no" title="statement not covered" >data;</span>
|
|
3444
|
-
// Convert Where from Adapter type to internal WhereCondition type
|
|
3445
|
-
const whereArray = <span class="cstat-no" title="statement not covered" >where</span>
|
|
3446
|
-
? ((Array.isArray(where)
|
|
3447
|
-
? where
|
|
3448
|
-
: [where]) as unknown as WhereCondition<Model>[])
|
|
3449
|
-
: undefined;
|
|
3450
|
-
const { and, or } = <span class="cstat-no" title="statement not covered" >convertWhereClause(model, whereArray);</span>
|
|
3451
|
-
|
|
3452
|
-
// Safe cast for table name
|
|
3453
|
-
const tableName = <span class="cstat-no" title="statement not covered" >getEntityName(model);</span>
|
|
3454
|
-
let query = <span class="cstat-no" title="statement not covered" >db</span>
|
|
3455
|
-
.selectFrom(tableName as unknown as keyof Database)
|
|
3456
|
-
.select(<span class="fstat-no" title="function not covered" >(e</span>b) => <span class="cstat-no" title="statement not covered" >eb.fn.count<number>('id').as('count'))</span>;
|
|
3457
|
-
|
|
3458
|
-
<span class="cstat-no" title="statement not covered" > if (and) {</span>
|
|
3459
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3460
|
-
const conditions = <span class="cstat-no" title="statement not covered" >and.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3461
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3462
|
-
) as OperandExpression<SqlBool>[];
|
|
3463
|
-
<span class="cstat-no" title="statement not covered" > return eb.and(conditions);</span>
|
|
3464
|
-
});
|
|
3465
|
-
}
|
|
3466
|
-
<span class="cstat-no" title="statement not covered" > if (or) {</span>
|
|
3467
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3468
|
-
const conditions = <span class="cstat-no" title="statement not covered" >or.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3469
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3470
|
-
) as OperandExpression<SqlBool>[];
|
|
3471
|
-
<span class="cstat-no" title="statement not covered" > return eb.or(conditions);</span>
|
|
3472
|
-
});
|
|
3473
|
-
}
|
|
3474
|
-
const res = <span class="cstat-no" title="statement not covered" >await query.execute();</span>
|
|
3475
|
-
// Get count from result
|
|
3476
|
-
const count = (<span class="cstat-no" title="statement not covered" >res[0] as Record<string, unknown>)?.count;</span>
|
|
3477
|
-
<span class="cstat-no" title="statement not covered" > return typeof count === 'number' ? count : 0;</span>
|
|
3478
|
-
},
|
|
3479
|
-
/**
|
|
3480
|
-
* Deletes a single record matching the where conditions
|
|
3481
|
-
*
|
|
3482
|
-
* @typeParam Model - The model type
|
|
3483
|
-
* @param data - The data for the delete operation
|
|
3484
|
-
*/
|
|
3485
|
-
async delete<Model extends EntityName>(data: {
|
|
3486
|
-
model: Model;
|
|
3487
|
-
where: Where<Model>;
|
|
3488
|
-
}): Promise<void> {
|
|
3489
|
-
const { model, where } = data;
|
|
3490
|
-
// Convert Where from Adapter type to internal WhereCondition type
|
|
3491
|
-
const whereArray = (Array.isArray(where)
|
|
3492
|
-
? where
|
|
3493
|
-
: <span class="branch-1 cbranch-no" title="branch not covered" >[where]) as unknown as WhereCondition<Model>[];</span>
|
|
3494
|
-
const { and, or } = convertWhereClause(model, whereArray);
|
|
3495
|
-
|
|
3496
|
-
// Safe cast for table name
|
|
3497
|
-
const tableName = getEntityName(model);
|
|
3498
|
-
let query = db.deleteFrom(tableName as unknown as keyof Database);
|
|
3499
|
-
|
|
3500
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (and) {
|
|
3501
|
-
query = query.where((eb) => {
|
|
3502
|
-
const conditions = and.map((expr) =>
|
|
3503
|
-
expr(eb)
|
|
3504
|
-
) as OperandExpression<SqlBool>[];
|
|
3505
|
-
return eb.and(conditions);
|
|
3506
|
-
});
|
|
3507
|
-
}
|
|
3508
|
-
|
|
3509
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (or) {
|
|
3510
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3511
|
-
const conditions = <span class="cstat-no" title="statement not covered" >or.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3512
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3513
|
-
) as OperandExpression<SqlBool>[];
|
|
3514
|
-
<span class="cstat-no" title="statement not covered" > return eb.or(conditions);</span>
|
|
3515
|
-
});
|
|
3516
|
-
}
|
|
3517
|
-
await query.execute();
|
|
3518
|
-
},
|
|
3519
|
-
/**
|
|
3520
|
-
* Deletes multiple records matching the where conditions
|
|
3521
|
-
*
|
|
3522
|
-
* @typeParam Model - The model type
|
|
3523
|
-
* @param data - The data for the delete operation
|
|
3524
|
-
* @returns The number of records deleted
|
|
3525
|
-
*/
|
|
3526
|
-
<span class="fstat-no" title="function not covered" > async d</span>eleteMany<Model extends EntityName>(data: {
|
|
3527
|
-
model: Model;
|
|
3528
|
-
where: Where<Model>;
|
|
3529
|
-
}): Promise<number> {
|
|
3530
|
-
const { model, where } = <span class="cstat-no" title="statement not covered" >data;</span>
|
|
3531
|
-
// Convert Where from Adapter type to internal WhereCondition type
|
|
3532
|
-
const whereArray = (<span class="cstat-no" title="statement not covered" >Array.isArray(where)</span>
|
|
3533
|
-
? where
|
|
3534
|
-
: [where]) as unknown as WhereCondition<Model>[];
|
|
3535
|
-
const { and, or } = <span class="cstat-no" title="statement not covered" >convertWhereClause(model, whereArray);</span>
|
|
3536
|
-
|
|
3537
|
-
// Safe cast for table name
|
|
3538
|
-
const tableName = <span class="cstat-no" title="statement not covered" >getEntityName(model);</span>
|
|
3539
|
-
let query = <span class="cstat-no" title="statement not covered" >db.deleteFrom(tableName as unknown as keyof Database);</span>
|
|
3540
|
-
<span class="cstat-no" title="statement not covered" > if (and) {</span>
|
|
3541
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3542
|
-
const conditions = <span class="cstat-no" title="statement not covered" >and.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3543
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3544
|
-
) as OperandExpression<SqlBool>[];
|
|
3545
|
-
<span class="cstat-no" title="statement not covered" > return eb.and(conditions);</span>
|
|
3546
|
-
});
|
|
3547
|
-
}
|
|
3548
|
-
<span class="cstat-no" title="statement not covered" > if (or) {</span>
|
|
3549
|
-
<span class="cstat-no" title="statement not covered" > query = query.where(<span class="fstat-no" title="function not covered" >(e</span>b) => {</span>
|
|
3550
|
-
const conditions = <span class="cstat-no" title="statement not covered" >or.map(<span class="fstat-no" title="function not covered" >(e</span>xpr) =></span>
|
|
3551
|
-
<span class="cstat-no" title="statement not covered" > expr(eb)</span>
|
|
3552
|
-
) as OperandExpression<SqlBool>[];
|
|
3553
|
-
<span class="cstat-no" title="statement not covered" > return eb.or(conditions);</span>
|
|
3554
|
-
});
|
|
3555
|
-
}
|
|
3556
|
-
const result = <span class="cstat-no" title="statement not covered" >await query.execute();</span>
|
|
3557
|
-
const count = <span class="cstat-no" title="statement not covered" >result.length;</span>
|
|
3558
|
-
<span class="cstat-no" title="statement not covered" > return count;</span>
|
|
3559
|
-
},
|
|
3560
|
-
/**
|
|
3561
|
-
* Executes a function within a database transaction
|
|
3562
|
-
*
|
|
3563
|
-
* This method wraps Kysely's transaction functionality to provide a consistent interface
|
|
3564
|
-
* for executing multiple database operations atomically. Falls back to direct execution
|
|
3565
|
-
* if transactions are disabled or not supported by the database.
|
|
3566
|
-
*
|
|
3567
|
-
* @typeParam ResultType - The type of data returned by the transaction
|
|
3568
|
-
* @param data - The transaction data containing the callback function
|
|
3569
|
-
* @returns A promise that resolves with the result of the callback function
|
|
3570
|
-
* @throws {Error} If the transaction fails to complete
|
|
3571
|
-
*/
|
|
3572
|
-
async transaction<ResultType>(data: {
|
|
3573
|
-
callback: (transactionAdapter: Adapter) => Promise<ResultType>;
|
|
3574
|
-
}): Promise<ResultType> {
|
|
3575
|
-
const { callback } = data;
|
|
3576
|
-
|
|
3577
|
-
// Check if transactions are explicitly disabled
|
|
3578
|
-
const advancedOptions =
|
|
3579
|
-
(opts.advanced as {
|
|
3580
|
-
disableTransactions?: boolean;
|
|
3581
|
-
}) || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
3582
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (advancedOptions.disableTransactions) {
|
|
3583
|
-
const regularAdapter = <span class="cstat-no" title="statement not covered" >kyselyAdapter(db, config)(opts);</span>
|
|
3584
|
-
<span class="cstat-no" title="statement not covered" > return await callback(regularAdapter);</span>
|
|
3585
|
-
}
|
|
3586
|
-
|
|
3587
|
-
try {
|
|
3588
|
-
return await db.transaction().execute(async (trx) => {
|
|
3589
|
-
const transactionAdapter = kyselyAdapter(trx, config)(opts);
|
|
3590
|
-
return await callback(transactionAdapter);
|
|
3591
|
-
});
|
|
3592
|
-
} catch (error) {
|
|
3593
|
-
// Check if the error indicates transactions are not supported
|
|
3594
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
3595
|
-
error instanceof Error &&
|
|
3596
|
-
(error.message.includes('transactions are not supported') ||
|
|
3597
|
-
error.message.toLowerCase().includes('no transaction support'))
|
|
3598
|
-
) {
|
|
3599
|
-
// Log warning about disableTransactions option
|
|
3600
|
-
// biome-ignore lint/suspicious/noConsole: this is a warning
|
|
3601
|
-
<span class="cstat-no" title="statement not covered" > console.warn(</span>
|
|
3602
|
-
'Warning: Database transaction failed. If your database does not support transactions, ' +
|
|
3603
|
-
'you can disable this warning by setting opts.advanced.disableTransactions to true.'
|
|
3604
|
-
);
|
|
3605
|
-
// Fallback: execute without transaction
|
|
3606
|
-
const regularAdapter = <span class="cstat-no" title="statement not covered" >kyselyAdapter(db, config)(opts);</span>
|
|
3607
|
-
<span class="cstat-no" title="statement not covered" > return await callback(regularAdapter);</span>
|
|
3608
|
-
}
|
|
3609
|
-
throw error;
|
|
3610
|
-
}
|
|
3611
|
-
},
|
|
3612
|
-
options: config,
|
|
3613
|
-
};
|
|
3614
|
-
};
|
|
3615
|
-
</pre></td></tr></table></pre>
|
|
3616
|
-
|
|
3617
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
3618
|
-
</div><!-- /wrapper -->
|
|
3619
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
3620
|
-
Code coverage generated by
|
|
3621
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
3622
|
-
at 2025-05-08T20:18:30.062Z
|
|
3623
|
-
</div>
|
|
3624
|
-
<script src="../../../../../../prettify.js"></script>
|
|
3625
|
-
<script>
|
|
3626
|
-
window.onload = function () {
|
|
3627
|
-
prettyPrint();
|
|
3628
|
-
};
|
|
3629
|
-
</script>
|
|
3630
|
-
<script src="../../../../../../sorter.js"></script>
|
|
3631
|
-
<script src="../../../../../../block-navigation.js"></script>
|
|
3632
|
-
</body>
|
|
3633
|
-
</html>
|
|
3634
|
-
|