keuss 1.6.10 → 1.6.13
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/Pipeline/Queue.js +12 -2
- package/Queue.js +18 -8
- package/TODO +0 -1
- package/backends/bucket-mongo-safe.js +42 -44
- package/backends/bucket-mongo.js +6 -8
- package/examples/snippets/06-random-consumer-producer.js +5 -5
- package/package.json +6 -6
- package/test/backends_bucket-at-least-once.js +43 -35
- package/test/backends_deadletter.js +10 -1
- package/.nyc_output/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json +0 -1
- package/.nyc_output/c8683d6c-e7e6-496b-ab0d-1ff730837d08.json +0 -1
- package/.nyc_output/processinfo/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json +0 -1
- package/.nyc_output/processinfo/c8683d6c-e7e6-496b-ab0d-1ff730837d08.json +0 -1
- package/.nyc_output/processinfo/index.json +0 -1
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -79
- package/coverage/index.html +0 -162
- package/coverage/keuss/Pipeline/BaseLink.js.html +0 -636
- package/coverage/keuss/Pipeline/Builder.js.html +0 -615
- package/coverage/keuss/Pipeline/ChoiceLink.js.html +0 -294
- package/coverage/keuss/Pipeline/DirectLink.js.html +0 -231
- package/coverage/keuss/Pipeline/Pipeline.js.html +0 -258
- package/coverage/keuss/Pipeline/Queue.js.html +0 -939
- package/coverage/keuss/Pipeline/Sink.js.html +0 -147
- package/coverage/keuss/Pipeline/index.html +0 -175
- package/coverage/keuss/QFactory-MongoDB-defaults.js.html +0 -219
- package/coverage/keuss/QFactory.js.html +0 -459
- package/coverage/keuss/Queue.js.html +0 -2274
- package/coverage/keuss/Signal.js.html +0 -312
- package/coverage/keuss/Stats.js.html +0 -174
- package/coverage/keuss/backends/bucket-mongo-safe.js.html +0 -2952
- package/coverage/keuss/backends/bucket-mongo.js.html +0 -1167
- package/coverage/keuss/backends/index.html +0 -175
- package/coverage/keuss/backends/mongo.js.html +0 -897
- package/coverage/keuss/backends/pl-mongo.js.html +0 -723
- package/coverage/keuss/backends/ps-mongo.js.html +0 -1038
- package/coverage/keuss/backends/redis-list.js.html +0 -513
- package/coverage/keuss/backends/redis-oq.js.html +0 -543
- package/coverage/keuss/bench/all-mongo.js.html +0 -393
- package/coverage/keuss/bench/index.html +0 -149
- package/coverage/keuss/bench/multi-q.js.html +0 -324
- package/coverage/keuss/bench/redis-oq-consumer-producer.js.html +0 -225
- package/coverage/keuss/bench/redis-oq-consumer.js.html +0 -189
- package/coverage/keuss/bench/redis-oq-producer.js.html +0 -198
- package/coverage/keuss/docusaurus/.docusaurus/client-modules.js.html +0 -93
- package/coverage/keuss/docusaurus/.docusaurus/docusaurus.config.js.html +0 -402
- package/coverage/keuss/docusaurus/.docusaurus/index.html +0 -136
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/01a85c17.4e57aa0a.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/09d5ad39.3009117f.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/1.12cf3eb8.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/12559443.a244228c.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/17896441.5efb3558.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/1be78505.f9c04817.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/2.4e2dc02c.js.html +0 -72
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/3.d549a05d.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/36.db0e809a.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/37637b3c.28c0900b.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/3d8d21df.2228b429.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/45a5cd1f.951da354.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/52c38f7a.785707bc.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/57ffbe3d.04d3e53e.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/5f7c35e9.2fa77599.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/6299bd84.ec197a3e.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/6875c492.cdf3e939.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/6beec1d2.6873e708.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/7b786ad4.bbce08e6.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/8070e160.400a4e57.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/88c93c54.e868a433.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/8d3e6f9e.aadf6d32.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/9bc74468.516633c5.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/9beb87c2.71e3744d.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/a3732fac.b0f98dbf.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/a6aa9e1f.6ac55e6c.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/baf0d4a2.b50efd2d.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/c4f5d8e4.e9dfd999.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/ccc49370.1831890b.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/d4942345.7d23b349.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/e2244795.4ea3d168.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/e64fe266.308265e8.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/f78725cc.5f3e115d.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/fa8d8063.2312a332.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/index.html +0 -565
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/main.66f1008c.js.html +0 -72
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/runtime~main.7d73b048.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/styles.b5ee3016.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/registry.js.html +0 -165
- package/coverage/keuss/docusaurus/.docusaurus/routes.js.html +0 -447
- package/coverage/keuss/docusaurus/build/01a85c17.4e57aa0a.js.html +0 -69
- package/coverage/keuss/docusaurus/build/09d5ad39.3009117f.js.html +0 -69
- package/coverage/keuss/docusaurus/build/1.12cf3eb8.js.html +0 -69
- package/coverage/keuss/docusaurus/build/12559443.a244228c.js.html +0 -69
- package/coverage/keuss/docusaurus/build/17896441.5efb3558.js.html +0 -69
- package/coverage/keuss/docusaurus/build/1be78505.f9c04817.js.html +0 -69
- package/coverage/keuss/docusaurus/build/2.4e2dc02c.js.html +0 -72
- package/coverage/keuss/docusaurus/build/3.d549a05d.js.html +0 -69
- package/coverage/keuss/docusaurus/build/36.db0e809a.js.html +0 -69
- package/coverage/keuss/docusaurus/build/37637b3c.28c0900b.js.html +0 -69
- package/coverage/keuss/docusaurus/build/3d8d21df.2228b429.js.html +0 -69
- package/coverage/keuss/docusaurus/build/45a5cd1f.951da354.js.html +0 -69
- package/coverage/keuss/docusaurus/build/52c38f7a.785707bc.js.html +0 -69
- package/coverage/keuss/docusaurus/build/57ffbe3d.04d3e53e.js.html +0 -69
- package/coverage/keuss/docusaurus/build/5f7c35e9.2fa77599.js.html +0 -69
- package/coverage/keuss/docusaurus/build/6299bd84.ec197a3e.js.html +0 -69
- package/coverage/keuss/docusaurus/build/6875c492.cdf3e939.js.html +0 -69
- package/coverage/keuss/docusaurus/build/6beec1d2.6873e708.js.html +0 -69
- package/coverage/keuss/docusaurus/build/7b786ad4.bbce08e6.js.html +0 -69
- package/coverage/keuss/docusaurus/build/8070e160.400a4e57.js.html +0 -69
- package/coverage/keuss/docusaurus/build/88c93c54.e868a433.js.html +0 -69
- package/coverage/keuss/docusaurus/build/8d3e6f9e.aadf6d32.js.html +0 -69
- package/coverage/keuss/docusaurus/build/9bc74468.516633c5.js.html +0 -69
- package/coverage/keuss/docusaurus/build/9beb87c2.71e3744d.js.html +0 -69
- package/coverage/keuss/docusaurus/build/a3732fac.b0f98dbf.js.html +0 -69
- package/coverage/keuss/docusaurus/build/a6aa9e1f.6ac55e6c.js.html +0 -69
- package/coverage/keuss/docusaurus/build/baf0d4a2.b50efd2d.js.html +0 -69
- package/coverage/keuss/docusaurus/build/c4f5d8e4.e9dfd999.js.html +0 -69
- package/coverage/keuss/docusaurus/build/ccc49370.1831890b.js.html +0 -69
- package/coverage/keuss/docusaurus/build/d4942345.7d23b349.js.html +0 -69
- package/coverage/keuss/docusaurus/build/e2244795.4ea3d168.js.html +0 -69
- package/coverage/keuss/docusaurus/build/e64fe266.308265e8.js.html +0 -69
- package/coverage/keuss/docusaurus/build/f78725cc.5f3e115d.js.html +0 -69
- package/coverage/keuss/docusaurus/build/fa8d8063.2312a332.js.html +0 -69
- package/coverage/keuss/docusaurus/build/index.html +0 -565
- package/coverage/keuss/docusaurus/build/main.66f1008c.js.html +0 -72
- package/coverage/keuss/docusaurus/build/runtime~main.7d73b048.js.html +0 -69
- package/coverage/keuss/docusaurus/build/styles.b5ee3016.js.html +0 -69
- package/coverage/keuss/docusaurus/docusaurus.config.js.html +0 -360
- package/coverage/keuss/docusaurus/index.html +0 -110
- package/coverage/keuss/docusaurus/sidebars.js.html +0 -96
- package/coverage/keuss/docusaurus/src/pages/index.html +0 -97
- package/coverage/keuss/docusaurus/src/pages/index.js.html +0 -450
- package/coverage/keuss/examples/pipelines/builder/index.html +0 -97
- package/coverage/keuss/examples/pipelines/builder/index.js.html +0 -450
- package/coverage/keuss/examples/pipelines/simplest/index.html +0 -97
- package/coverage/keuss/examples/pipelines/simplest/index.js.html +0 -183
- package/coverage/keuss/examples/pipelines/simulation-fork/index.html +0 -97
- package/coverage/keuss/examples/pipelines/simulation-fork/index.js.html +0 -414
- package/coverage/keuss/examples/snippets/01-simplest-pop-push.js.html +0 -195
- package/coverage/keuss/examples/snippets/02-simplest-reserve-rollback-commit.js.html +0 -201
- package/coverage/keuss/examples/snippets/03-simplest-producer-consumer-loops.js.html +0 -300
- package/coverage/keuss/examples/snippets/04-bucket-mongo-safe-insert-reserve-commit.js.html +0 -303
- package/coverage/keuss/examples/snippets/05-insert-reserve-rollback-deadletter.js.html +0 -384
- package/coverage/keuss/examples/snippets/06-random-consumer-producer.js.html +0 -879
- package/coverage/keuss/examples/snippets/index.html +0 -188
- package/coverage/keuss/examples/snippets/redislabs-consumer-producer.js.html +0 -201
- package/coverage/keuss/examples/snippets/with-redis-stats-and-signaller-consumer-producer.js.html +0 -222
- package/coverage/keuss/examples/webhooks/app.js.html +0 -279
- package/coverage/keuss/examples/webhooks/consumer.js.html +0 -363
- package/coverage/keuss/examples/webhooks/index.html +0 -123
- package/coverage/keuss/examples/webhooks/index.js.html +0 -234
- package/coverage/keuss/index.html +0 -149
- package/coverage/keuss/playground/index.html +0 -136
- package/coverage/keuss/playground/pl-rollback.js.html +0 -234
- package/coverage/keuss/playground/pl1.js.html +0 -291
- package/coverage/keuss/playground/q1.js.html +0 -168
- package/coverage/keuss/playground/simple-pl.js.html +0 -195
- package/coverage/keuss/signal/index.html +0 -123
- package/coverage/keuss/signal/local.js.html +0 -306
- package/coverage/keuss/signal/mongo-capped.js.html +0 -378
- package/coverage/keuss/signal/redis-pubsub.js.html +0 -399
- package/coverage/keuss/stats/index.html +0 -123
- package/coverage/keuss/stats/mem.js.html +0 -519
- package/coverage/keuss/stats/mongo.js.html +0 -930
- package/coverage/keuss/stats/redis.js.html +0 -894
- package/coverage/keuss/utils/RedisConn.js.html +0 -150
- package/coverage/keuss/utils/RedisOrderedQueue.js.html +0 -864
- package/coverage/keuss/utils/index.html +0 -110
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -170
- package/docusaurus/README.md +0 -33
- package/docusaurus/babel.config.js +0 -3
- package/docusaurus/blog/2020-08-04-welcome.md +0 -10
- package/docusaurus/docs/about.md +0 -14
- package/docusaurus/docs/api/factory.md +0 -102
- package/docusaurus/docs/api/queue.md +0 -247
- package/docusaurus/docs/api/signal.md +0 -38
- package/docusaurus/docs/api/stats.md +0 -37
- package/docusaurus/docs/changelog.md +0 -51
- package/docusaurus/docs/concepts.md +0 -116
- package/docusaurus/docs/examples.md +0 -10
- package/docusaurus/docs/quickstart.md +0 -195
- package/docusaurus/docs/style-guide.md +0 -202
- package/docusaurus/docs/usage/buckets.md +0 -43
- package/docusaurus/docs/usage/no-signaller.md +0 -16
- package/docusaurus/docs/usage/pipelines/about.md +0 -128
- package/docusaurus/docs/usage/pipelines/building.md +0 -158
- package/docusaurus/docs/usage/pipelines/examples.md +0 -10
- package/docusaurus/docs/usage/pipelines/processors.md +0 -187
- package/docusaurus/docs/usage/putting-all-together.md +0 -153
- package/docusaurus/docs/usage/redis-conns.md +0 -70
- package/docusaurus/docs/usage/shutdown.md +0 -11
- package/docusaurus/docusaurus.config.js +0 -96
- package/docusaurus/package.json +0 -33
- package/docusaurus/sidebars.js +0 -44
- package/docusaurus/src/css/custom.css +0 -25
- package/docusaurus/src/pages/index.js +0 -127
- package/docusaurus/src/pages/styles.module.css +0 -37
- package/docusaurus/static/.nojekyll +0 -0
- package/docusaurus/static/img/favicon.ico +0 -0
- package/docusaurus/static/img/logo.svg +0 -1
- package/docusaurus/yarn.lock +0 -8384
|
@@ -1,2274 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<title>Code coverage report for keuss/Queue.js</title>
|
|
5
|
-
<meta charset="utf-8" />
|
|
6
|
-
<link rel="stylesheet" href="../prettify.css" />
|
|
7
|
-
<link rel="stylesheet" href="../base.css" />
|
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
9
|
-
<style type='text/css'>
|
|
10
|
-
.coverage-summary .sorter {
|
|
11
|
-
background-image: url(../sort-arrow-sprite.png);
|
|
12
|
-
}
|
|
13
|
-
</style>
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<div class='wrapper'>
|
|
17
|
-
<div class='pad1'>
|
|
18
|
-
<h1>
|
|
19
|
-
<a href="../index.html">All files</a> / <a href="index.html">keuss</a> Queue.js
|
|
20
|
-
</h1>
|
|
21
|
-
<div class='clearfix'>
|
|
22
|
-
<div class='fl pad1y space-right2'>
|
|
23
|
-
<span class="strong">74.06% </span>
|
|
24
|
-
<span class="quiet">Statements</span>
|
|
25
|
-
<span class='fraction'>237/320</span>
|
|
26
|
-
</div>
|
|
27
|
-
<div class='fl pad1y space-right2'>
|
|
28
|
-
<span class="strong">72.99% </span>
|
|
29
|
-
<span class="quiet">Branches</span>
|
|
30
|
-
<span class='fraction'>127/174</span>
|
|
31
|
-
</div>
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">61.11% </span>
|
|
34
|
-
<span class="quiet">Functions</span>
|
|
35
|
-
<span class='fraction'>44/72</span>
|
|
36
|
-
</div>
|
|
37
|
-
<div class='fl pad1y space-right2'>
|
|
38
|
-
<span class="strong">76.08% </span>
|
|
39
|
-
<span class="quiet">Lines</span>
|
|
40
|
-
<span class='fraction'>229/301</span>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
<p class="quiet">
|
|
44
|
-
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.
|
|
45
|
-
</p>
|
|
46
|
-
</div>
|
|
47
|
-
<div class='status-line medium'></div>
|
|
48
|
-
<pre><table class="coverage">
|
|
49
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
50
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
51
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
52
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
53
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
54
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
55
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
56
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
57
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
58
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
59
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
60
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
61
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
62
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
63
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
64
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
65
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
66
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
67
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
68
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
69
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
70
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
71
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
72
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
73
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
74
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
75
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
76
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
77
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
78
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
79
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
80
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
81
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
82
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
83
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
84
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
85
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
86
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
87
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
88
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
89
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
90
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
91
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
92
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
93
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
94
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
95
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
96
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
97
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
98
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
99
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
100
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
101
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
102
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
103
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
104
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
105
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
106
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
107
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
108
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
109
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
110
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
111
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
112
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
113
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
114
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
115
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
116
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
117
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
118
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
119
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
120
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
121
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
122
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
123
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
124
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
125
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
126
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
127
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
128
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
129
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
130
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
131
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
132
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
133
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
134
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
135
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
136
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
137
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
138
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
139
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
140
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
141
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
142
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
143
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
144
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
145
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
146
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
147
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
148
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
149
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
150
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
151
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
152
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
153
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
154
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
155
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
156
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
157
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
158
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
159
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
160
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
161
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
162
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
163
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
164
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
165
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
166
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
167
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
168
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
169
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
170
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
171
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
172
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
173
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
174
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
175
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
176
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
177
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
178
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
179
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
180
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
181
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
182
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
183
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
184
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
185
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
186
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
187
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
188
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
189
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
190
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
191
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
192
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
193
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
194
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
195
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
196
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
197
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
198
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
199
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
200
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
201
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
202
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
203
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
204
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
205
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
206
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
207
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
208
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
209
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
210
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
211
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
212
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
213
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
214
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
215
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
216
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
217
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
218
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
219
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
220
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
221
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
222
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
223
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
224
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
225
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
226
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
227
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
228
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
229
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
230
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
231
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
232
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
233
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
234
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
235
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
236
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
237
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
238
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
239
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
240
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
241
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
242
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
243
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
244
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
245
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
246
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
247
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
248
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
249
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
250
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
251
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
252
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
253
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
254
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
255
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
256
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
257
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
258
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
259
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
260
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
261
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
262
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
263
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
264
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
265
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
266
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
267
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
268
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
269
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
270
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
271
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
272
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
273
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
274
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
275
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
276
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
277
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
278
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
279
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
280
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
281
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
282
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
283
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
284
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
285
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
286
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
287
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
288
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
289
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
290
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
291
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
292
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
293
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
294
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
295
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
296
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
297
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
298
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
299
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
300
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
301
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
302
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
303
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
304
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
305
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
306
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
307
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
308
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
309
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
310
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
311
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
312
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
313
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
314
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
315
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
316
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
317
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
318
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
319
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
320
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
321
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
322
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
323
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
324
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
325
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
326
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
327
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
328
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
329
|
-
<a name='L281'></a><a href='#L281'>281</a>
|
|
330
|
-
<a name='L282'></a><a href='#L282'>282</a>
|
|
331
|
-
<a name='L283'></a><a href='#L283'>283</a>
|
|
332
|
-
<a name='L284'></a><a href='#L284'>284</a>
|
|
333
|
-
<a name='L285'></a><a href='#L285'>285</a>
|
|
334
|
-
<a name='L286'></a><a href='#L286'>286</a>
|
|
335
|
-
<a name='L287'></a><a href='#L287'>287</a>
|
|
336
|
-
<a name='L288'></a><a href='#L288'>288</a>
|
|
337
|
-
<a name='L289'></a><a href='#L289'>289</a>
|
|
338
|
-
<a name='L290'></a><a href='#L290'>290</a>
|
|
339
|
-
<a name='L291'></a><a href='#L291'>291</a>
|
|
340
|
-
<a name='L292'></a><a href='#L292'>292</a>
|
|
341
|
-
<a name='L293'></a><a href='#L293'>293</a>
|
|
342
|
-
<a name='L294'></a><a href='#L294'>294</a>
|
|
343
|
-
<a name='L295'></a><a href='#L295'>295</a>
|
|
344
|
-
<a name='L296'></a><a href='#L296'>296</a>
|
|
345
|
-
<a name='L297'></a><a href='#L297'>297</a>
|
|
346
|
-
<a name='L298'></a><a href='#L298'>298</a>
|
|
347
|
-
<a name='L299'></a><a href='#L299'>299</a>
|
|
348
|
-
<a name='L300'></a><a href='#L300'>300</a>
|
|
349
|
-
<a name='L301'></a><a href='#L301'>301</a>
|
|
350
|
-
<a name='L302'></a><a href='#L302'>302</a>
|
|
351
|
-
<a name='L303'></a><a href='#L303'>303</a>
|
|
352
|
-
<a name='L304'></a><a href='#L304'>304</a>
|
|
353
|
-
<a name='L305'></a><a href='#L305'>305</a>
|
|
354
|
-
<a name='L306'></a><a href='#L306'>306</a>
|
|
355
|
-
<a name='L307'></a><a href='#L307'>307</a>
|
|
356
|
-
<a name='L308'></a><a href='#L308'>308</a>
|
|
357
|
-
<a name='L309'></a><a href='#L309'>309</a>
|
|
358
|
-
<a name='L310'></a><a href='#L310'>310</a>
|
|
359
|
-
<a name='L311'></a><a href='#L311'>311</a>
|
|
360
|
-
<a name='L312'></a><a href='#L312'>312</a>
|
|
361
|
-
<a name='L313'></a><a href='#L313'>313</a>
|
|
362
|
-
<a name='L314'></a><a href='#L314'>314</a>
|
|
363
|
-
<a name='L315'></a><a href='#L315'>315</a>
|
|
364
|
-
<a name='L316'></a><a href='#L316'>316</a>
|
|
365
|
-
<a name='L317'></a><a href='#L317'>317</a>
|
|
366
|
-
<a name='L318'></a><a href='#L318'>318</a>
|
|
367
|
-
<a name='L319'></a><a href='#L319'>319</a>
|
|
368
|
-
<a name='L320'></a><a href='#L320'>320</a>
|
|
369
|
-
<a name='L321'></a><a href='#L321'>321</a>
|
|
370
|
-
<a name='L322'></a><a href='#L322'>322</a>
|
|
371
|
-
<a name='L323'></a><a href='#L323'>323</a>
|
|
372
|
-
<a name='L324'></a><a href='#L324'>324</a>
|
|
373
|
-
<a name='L325'></a><a href='#L325'>325</a>
|
|
374
|
-
<a name='L326'></a><a href='#L326'>326</a>
|
|
375
|
-
<a name='L327'></a><a href='#L327'>327</a>
|
|
376
|
-
<a name='L328'></a><a href='#L328'>328</a>
|
|
377
|
-
<a name='L329'></a><a href='#L329'>329</a>
|
|
378
|
-
<a name='L330'></a><a href='#L330'>330</a>
|
|
379
|
-
<a name='L331'></a><a href='#L331'>331</a>
|
|
380
|
-
<a name='L332'></a><a href='#L332'>332</a>
|
|
381
|
-
<a name='L333'></a><a href='#L333'>333</a>
|
|
382
|
-
<a name='L334'></a><a href='#L334'>334</a>
|
|
383
|
-
<a name='L335'></a><a href='#L335'>335</a>
|
|
384
|
-
<a name='L336'></a><a href='#L336'>336</a>
|
|
385
|
-
<a name='L337'></a><a href='#L337'>337</a>
|
|
386
|
-
<a name='L338'></a><a href='#L338'>338</a>
|
|
387
|
-
<a name='L339'></a><a href='#L339'>339</a>
|
|
388
|
-
<a name='L340'></a><a href='#L340'>340</a>
|
|
389
|
-
<a name='L341'></a><a href='#L341'>341</a>
|
|
390
|
-
<a name='L342'></a><a href='#L342'>342</a>
|
|
391
|
-
<a name='L343'></a><a href='#L343'>343</a>
|
|
392
|
-
<a name='L344'></a><a href='#L344'>344</a>
|
|
393
|
-
<a name='L345'></a><a href='#L345'>345</a>
|
|
394
|
-
<a name='L346'></a><a href='#L346'>346</a>
|
|
395
|
-
<a name='L347'></a><a href='#L347'>347</a>
|
|
396
|
-
<a name='L348'></a><a href='#L348'>348</a>
|
|
397
|
-
<a name='L349'></a><a href='#L349'>349</a>
|
|
398
|
-
<a name='L350'></a><a href='#L350'>350</a>
|
|
399
|
-
<a name='L351'></a><a href='#L351'>351</a>
|
|
400
|
-
<a name='L352'></a><a href='#L352'>352</a>
|
|
401
|
-
<a name='L353'></a><a href='#L353'>353</a>
|
|
402
|
-
<a name='L354'></a><a href='#L354'>354</a>
|
|
403
|
-
<a name='L355'></a><a href='#L355'>355</a>
|
|
404
|
-
<a name='L356'></a><a href='#L356'>356</a>
|
|
405
|
-
<a name='L357'></a><a href='#L357'>357</a>
|
|
406
|
-
<a name='L358'></a><a href='#L358'>358</a>
|
|
407
|
-
<a name='L359'></a><a href='#L359'>359</a>
|
|
408
|
-
<a name='L360'></a><a href='#L360'>360</a>
|
|
409
|
-
<a name='L361'></a><a href='#L361'>361</a>
|
|
410
|
-
<a name='L362'></a><a href='#L362'>362</a>
|
|
411
|
-
<a name='L363'></a><a href='#L363'>363</a>
|
|
412
|
-
<a name='L364'></a><a href='#L364'>364</a>
|
|
413
|
-
<a name='L365'></a><a href='#L365'>365</a>
|
|
414
|
-
<a name='L366'></a><a href='#L366'>366</a>
|
|
415
|
-
<a name='L367'></a><a href='#L367'>367</a>
|
|
416
|
-
<a name='L368'></a><a href='#L368'>368</a>
|
|
417
|
-
<a name='L369'></a><a href='#L369'>369</a>
|
|
418
|
-
<a name='L370'></a><a href='#L370'>370</a>
|
|
419
|
-
<a name='L371'></a><a href='#L371'>371</a>
|
|
420
|
-
<a name='L372'></a><a href='#L372'>372</a>
|
|
421
|
-
<a name='L373'></a><a href='#L373'>373</a>
|
|
422
|
-
<a name='L374'></a><a href='#L374'>374</a>
|
|
423
|
-
<a name='L375'></a><a href='#L375'>375</a>
|
|
424
|
-
<a name='L376'></a><a href='#L376'>376</a>
|
|
425
|
-
<a name='L377'></a><a href='#L377'>377</a>
|
|
426
|
-
<a name='L378'></a><a href='#L378'>378</a>
|
|
427
|
-
<a name='L379'></a><a href='#L379'>379</a>
|
|
428
|
-
<a name='L380'></a><a href='#L380'>380</a>
|
|
429
|
-
<a name='L381'></a><a href='#L381'>381</a>
|
|
430
|
-
<a name='L382'></a><a href='#L382'>382</a>
|
|
431
|
-
<a name='L383'></a><a href='#L383'>383</a>
|
|
432
|
-
<a name='L384'></a><a href='#L384'>384</a>
|
|
433
|
-
<a name='L385'></a><a href='#L385'>385</a>
|
|
434
|
-
<a name='L386'></a><a href='#L386'>386</a>
|
|
435
|
-
<a name='L387'></a><a href='#L387'>387</a>
|
|
436
|
-
<a name='L388'></a><a href='#L388'>388</a>
|
|
437
|
-
<a name='L389'></a><a href='#L389'>389</a>
|
|
438
|
-
<a name='L390'></a><a href='#L390'>390</a>
|
|
439
|
-
<a name='L391'></a><a href='#L391'>391</a>
|
|
440
|
-
<a name='L392'></a><a href='#L392'>392</a>
|
|
441
|
-
<a name='L393'></a><a href='#L393'>393</a>
|
|
442
|
-
<a name='L394'></a><a href='#L394'>394</a>
|
|
443
|
-
<a name='L395'></a><a href='#L395'>395</a>
|
|
444
|
-
<a name='L396'></a><a href='#L396'>396</a>
|
|
445
|
-
<a name='L397'></a><a href='#L397'>397</a>
|
|
446
|
-
<a name='L398'></a><a href='#L398'>398</a>
|
|
447
|
-
<a name='L399'></a><a href='#L399'>399</a>
|
|
448
|
-
<a name='L400'></a><a href='#L400'>400</a>
|
|
449
|
-
<a name='L401'></a><a href='#L401'>401</a>
|
|
450
|
-
<a name='L402'></a><a href='#L402'>402</a>
|
|
451
|
-
<a name='L403'></a><a href='#L403'>403</a>
|
|
452
|
-
<a name='L404'></a><a href='#L404'>404</a>
|
|
453
|
-
<a name='L405'></a><a href='#L405'>405</a>
|
|
454
|
-
<a name='L406'></a><a href='#L406'>406</a>
|
|
455
|
-
<a name='L407'></a><a href='#L407'>407</a>
|
|
456
|
-
<a name='L408'></a><a href='#L408'>408</a>
|
|
457
|
-
<a name='L409'></a><a href='#L409'>409</a>
|
|
458
|
-
<a name='L410'></a><a href='#L410'>410</a>
|
|
459
|
-
<a name='L411'></a><a href='#L411'>411</a>
|
|
460
|
-
<a name='L412'></a><a href='#L412'>412</a>
|
|
461
|
-
<a name='L413'></a><a href='#L413'>413</a>
|
|
462
|
-
<a name='L414'></a><a href='#L414'>414</a>
|
|
463
|
-
<a name='L415'></a><a href='#L415'>415</a>
|
|
464
|
-
<a name='L416'></a><a href='#L416'>416</a>
|
|
465
|
-
<a name='L417'></a><a href='#L417'>417</a>
|
|
466
|
-
<a name='L418'></a><a href='#L418'>418</a>
|
|
467
|
-
<a name='L419'></a><a href='#L419'>419</a>
|
|
468
|
-
<a name='L420'></a><a href='#L420'>420</a>
|
|
469
|
-
<a name='L421'></a><a href='#L421'>421</a>
|
|
470
|
-
<a name='L422'></a><a href='#L422'>422</a>
|
|
471
|
-
<a name='L423'></a><a href='#L423'>423</a>
|
|
472
|
-
<a name='L424'></a><a href='#L424'>424</a>
|
|
473
|
-
<a name='L425'></a><a href='#L425'>425</a>
|
|
474
|
-
<a name='L426'></a><a href='#L426'>426</a>
|
|
475
|
-
<a name='L427'></a><a href='#L427'>427</a>
|
|
476
|
-
<a name='L428'></a><a href='#L428'>428</a>
|
|
477
|
-
<a name='L429'></a><a href='#L429'>429</a>
|
|
478
|
-
<a name='L430'></a><a href='#L430'>430</a>
|
|
479
|
-
<a name='L431'></a><a href='#L431'>431</a>
|
|
480
|
-
<a name='L432'></a><a href='#L432'>432</a>
|
|
481
|
-
<a name='L433'></a><a href='#L433'>433</a>
|
|
482
|
-
<a name='L434'></a><a href='#L434'>434</a>
|
|
483
|
-
<a name='L435'></a><a href='#L435'>435</a>
|
|
484
|
-
<a name='L436'></a><a href='#L436'>436</a>
|
|
485
|
-
<a name='L437'></a><a href='#L437'>437</a>
|
|
486
|
-
<a name='L438'></a><a href='#L438'>438</a>
|
|
487
|
-
<a name='L439'></a><a href='#L439'>439</a>
|
|
488
|
-
<a name='L440'></a><a href='#L440'>440</a>
|
|
489
|
-
<a name='L441'></a><a href='#L441'>441</a>
|
|
490
|
-
<a name='L442'></a><a href='#L442'>442</a>
|
|
491
|
-
<a name='L443'></a><a href='#L443'>443</a>
|
|
492
|
-
<a name='L444'></a><a href='#L444'>444</a>
|
|
493
|
-
<a name='L445'></a><a href='#L445'>445</a>
|
|
494
|
-
<a name='L446'></a><a href='#L446'>446</a>
|
|
495
|
-
<a name='L447'></a><a href='#L447'>447</a>
|
|
496
|
-
<a name='L448'></a><a href='#L448'>448</a>
|
|
497
|
-
<a name='L449'></a><a href='#L449'>449</a>
|
|
498
|
-
<a name='L450'></a><a href='#L450'>450</a>
|
|
499
|
-
<a name='L451'></a><a href='#L451'>451</a>
|
|
500
|
-
<a name='L452'></a><a href='#L452'>452</a>
|
|
501
|
-
<a name='L453'></a><a href='#L453'>453</a>
|
|
502
|
-
<a name='L454'></a><a href='#L454'>454</a>
|
|
503
|
-
<a name='L455'></a><a href='#L455'>455</a>
|
|
504
|
-
<a name='L456'></a><a href='#L456'>456</a>
|
|
505
|
-
<a name='L457'></a><a href='#L457'>457</a>
|
|
506
|
-
<a name='L458'></a><a href='#L458'>458</a>
|
|
507
|
-
<a name='L459'></a><a href='#L459'>459</a>
|
|
508
|
-
<a name='L460'></a><a href='#L460'>460</a>
|
|
509
|
-
<a name='L461'></a><a href='#L461'>461</a>
|
|
510
|
-
<a name='L462'></a><a href='#L462'>462</a>
|
|
511
|
-
<a name='L463'></a><a href='#L463'>463</a>
|
|
512
|
-
<a name='L464'></a><a href='#L464'>464</a>
|
|
513
|
-
<a name='L465'></a><a href='#L465'>465</a>
|
|
514
|
-
<a name='L466'></a><a href='#L466'>466</a>
|
|
515
|
-
<a name='L467'></a><a href='#L467'>467</a>
|
|
516
|
-
<a name='L468'></a><a href='#L468'>468</a>
|
|
517
|
-
<a name='L469'></a><a href='#L469'>469</a>
|
|
518
|
-
<a name='L470'></a><a href='#L470'>470</a>
|
|
519
|
-
<a name='L471'></a><a href='#L471'>471</a>
|
|
520
|
-
<a name='L472'></a><a href='#L472'>472</a>
|
|
521
|
-
<a name='L473'></a><a href='#L473'>473</a>
|
|
522
|
-
<a name='L474'></a><a href='#L474'>474</a>
|
|
523
|
-
<a name='L475'></a><a href='#L475'>475</a>
|
|
524
|
-
<a name='L476'></a><a href='#L476'>476</a>
|
|
525
|
-
<a name='L477'></a><a href='#L477'>477</a>
|
|
526
|
-
<a name='L478'></a><a href='#L478'>478</a>
|
|
527
|
-
<a name='L479'></a><a href='#L479'>479</a>
|
|
528
|
-
<a name='L480'></a><a href='#L480'>480</a>
|
|
529
|
-
<a name='L481'></a><a href='#L481'>481</a>
|
|
530
|
-
<a name='L482'></a><a href='#L482'>482</a>
|
|
531
|
-
<a name='L483'></a><a href='#L483'>483</a>
|
|
532
|
-
<a name='L484'></a><a href='#L484'>484</a>
|
|
533
|
-
<a name='L485'></a><a href='#L485'>485</a>
|
|
534
|
-
<a name='L486'></a><a href='#L486'>486</a>
|
|
535
|
-
<a name='L487'></a><a href='#L487'>487</a>
|
|
536
|
-
<a name='L488'></a><a href='#L488'>488</a>
|
|
537
|
-
<a name='L489'></a><a href='#L489'>489</a>
|
|
538
|
-
<a name='L490'></a><a href='#L490'>490</a>
|
|
539
|
-
<a name='L491'></a><a href='#L491'>491</a>
|
|
540
|
-
<a name='L492'></a><a href='#L492'>492</a>
|
|
541
|
-
<a name='L493'></a><a href='#L493'>493</a>
|
|
542
|
-
<a name='L494'></a><a href='#L494'>494</a>
|
|
543
|
-
<a name='L495'></a><a href='#L495'>495</a>
|
|
544
|
-
<a name='L496'></a><a href='#L496'>496</a>
|
|
545
|
-
<a name='L497'></a><a href='#L497'>497</a>
|
|
546
|
-
<a name='L498'></a><a href='#L498'>498</a>
|
|
547
|
-
<a name='L499'></a><a href='#L499'>499</a>
|
|
548
|
-
<a name='L500'></a><a href='#L500'>500</a>
|
|
549
|
-
<a name='L501'></a><a href='#L501'>501</a>
|
|
550
|
-
<a name='L502'></a><a href='#L502'>502</a>
|
|
551
|
-
<a name='L503'></a><a href='#L503'>503</a>
|
|
552
|
-
<a name='L504'></a><a href='#L504'>504</a>
|
|
553
|
-
<a name='L505'></a><a href='#L505'>505</a>
|
|
554
|
-
<a name='L506'></a><a href='#L506'>506</a>
|
|
555
|
-
<a name='L507'></a><a href='#L507'>507</a>
|
|
556
|
-
<a name='L508'></a><a href='#L508'>508</a>
|
|
557
|
-
<a name='L509'></a><a href='#L509'>509</a>
|
|
558
|
-
<a name='L510'></a><a href='#L510'>510</a>
|
|
559
|
-
<a name='L511'></a><a href='#L511'>511</a>
|
|
560
|
-
<a name='L512'></a><a href='#L512'>512</a>
|
|
561
|
-
<a name='L513'></a><a href='#L513'>513</a>
|
|
562
|
-
<a name='L514'></a><a href='#L514'>514</a>
|
|
563
|
-
<a name='L515'></a><a href='#L515'>515</a>
|
|
564
|
-
<a name='L516'></a><a href='#L516'>516</a>
|
|
565
|
-
<a name='L517'></a><a href='#L517'>517</a>
|
|
566
|
-
<a name='L518'></a><a href='#L518'>518</a>
|
|
567
|
-
<a name='L519'></a><a href='#L519'>519</a>
|
|
568
|
-
<a name='L520'></a><a href='#L520'>520</a>
|
|
569
|
-
<a name='L521'></a><a href='#L521'>521</a>
|
|
570
|
-
<a name='L522'></a><a href='#L522'>522</a>
|
|
571
|
-
<a name='L523'></a><a href='#L523'>523</a>
|
|
572
|
-
<a name='L524'></a><a href='#L524'>524</a>
|
|
573
|
-
<a name='L525'></a><a href='#L525'>525</a>
|
|
574
|
-
<a name='L526'></a><a href='#L526'>526</a>
|
|
575
|
-
<a name='L527'></a><a href='#L527'>527</a>
|
|
576
|
-
<a name='L528'></a><a href='#L528'>528</a>
|
|
577
|
-
<a name='L529'></a><a href='#L529'>529</a>
|
|
578
|
-
<a name='L530'></a><a href='#L530'>530</a>
|
|
579
|
-
<a name='L531'></a><a href='#L531'>531</a>
|
|
580
|
-
<a name='L532'></a><a href='#L532'>532</a>
|
|
581
|
-
<a name='L533'></a><a href='#L533'>533</a>
|
|
582
|
-
<a name='L534'></a><a href='#L534'>534</a>
|
|
583
|
-
<a name='L535'></a><a href='#L535'>535</a>
|
|
584
|
-
<a name='L536'></a><a href='#L536'>536</a>
|
|
585
|
-
<a name='L537'></a><a href='#L537'>537</a>
|
|
586
|
-
<a name='L538'></a><a href='#L538'>538</a>
|
|
587
|
-
<a name='L539'></a><a href='#L539'>539</a>
|
|
588
|
-
<a name='L540'></a><a href='#L540'>540</a>
|
|
589
|
-
<a name='L541'></a><a href='#L541'>541</a>
|
|
590
|
-
<a name='L542'></a><a href='#L542'>542</a>
|
|
591
|
-
<a name='L543'></a><a href='#L543'>543</a>
|
|
592
|
-
<a name='L544'></a><a href='#L544'>544</a>
|
|
593
|
-
<a name='L545'></a><a href='#L545'>545</a>
|
|
594
|
-
<a name='L546'></a><a href='#L546'>546</a>
|
|
595
|
-
<a name='L547'></a><a href='#L547'>547</a>
|
|
596
|
-
<a name='L548'></a><a href='#L548'>548</a>
|
|
597
|
-
<a name='L549'></a><a href='#L549'>549</a>
|
|
598
|
-
<a name='L550'></a><a href='#L550'>550</a>
|
|
599
|
-
<a name='L551'></a><a href='#L551'>551</a>
|
|
600
|
-
<a name='L552'></a><a href='#L552'>552</a>
|
|
601
|
-
<a name='L553'></a><a href='#L553'>553</a>
|
|
602
|
-
<a name='L554'></a><a href='#L554'>554</a>
|
|
603
|
-
<a name='L555'></a><a href='#L555'>555</a>
|
|
604
|
-
<a name='L556'></a><a href='#L556'>556</a>
|
|
605
|
-
<a name='L557'></a><a href='#L557'>557</a>
|
|
606
|
-
<a name='L558'></a><a href='#L558'>558</a>
|
|
607
|
-
<a name='L559'></a><a href='#L559'>559</a>
|
|
608
|
-
<a name='L560'></a><a href='#L560'>560</a>
|
|
609
|
-
<a name='L561'></a><a href='#L561'>561</a>
|
|
610
|
-
<a name='L562'></a><a href='#L562'>562</a>
|
|
611
|
-
<a name='L563'></a><a href='#L563'>563</a>
|
|
612
|
-
<a name='L564'></a><a href='#L564'>564</a>
|
|
613
|
-
<a name='L565'></a><a href='#L565'>565</a>
|
|
614
|
-
<a name='L566'></a><a href='#L566'>566</a>
|
|
615
|
-
<a name='L567'></a><a href='#L567'>567</a>
|
|
616
|
-
<a name='L568'></a><a href='#L568'>568</a>
|
|
617
|
-
<a name='L569'></a><a href='#L569'>569</a>
|
|
618
|
-
<a name='L570'></a><a href='#L570'>570</a>
|
|
619
|
-
<a name='L571'></a><a href='#L571'>571</a>
|
|
620
|
-
<a name='L572'></a><a href='#L572'>572</a>
|
|
621
|
-
<a name='L573'></a><a href='#L573'>573</a>
|
|
622
|
-
<a name='L574'></a><a href='#L574'>574</a>
|
|
623
|
-
<a name='L575'></a><a href='#L575'>575</a>
|
|
624
|
-
<a name='L576'></a><a href='#L576'>576</a>
|
|
625
|
-
<a name='L577'></a><a href='#L577'>577</a>
|
|
626
|
-
<a name='L578'></a><a href='#L578'>578</a>
|
|
627
|
-
<a name='L579'></a><a href='#L579'>579</a>
|
|
628
|
-
<a name='L580'></a><a href='#L580'>580</a>
|
|
629
|
-
<a name='L581'></a><a href='#L581'>581</a>
|
|
630
|
-
<a name='L582'></a><a href='#L582'>582</a>
|
|
631
|
-
<a name='L583'></a><a href='#L583'>583</a>
|
|
632
|
-
<a name='L584'></a><a href='#L584'>584</a>
|
|
633
|
-
<a name='L585'></a><a href='#L585'>585</a>
|
|
634
|
-
<a name='L586'></a><a href='#L586'>586</a>
|
|
635
|
-
<a name='L587'></a><a href='#L587'>587</a>
|
|
636
|
-
<a name='L588'></a><a href='#L588'>588</a>
|
|
637
|
-
<a name='L589'></a><a href='#L589'>589</a>
|
|
638
|
-
<a name='L590'></a><a href='#L590'>590</a>
|
|
639
|
-
<a name='L591'></a><a href='#L591'>591</a>
|
|
640
|
-
<a name='L592'></a><a href='#L592'>592</a>
|
|
641
|
-
<a name='L593'></a><a href='#L593'>593</a>
|
|
642
|
-
<a name='L594'></a><a href='#L594'>594</a>
|
|
643
|
-
<a name='L595'></a><a href='#L595'>595</a>
|
|
644
|
-
<a name='L596'></a><a href='#L596'>596</a>
|
|
645
|
-
<a name='L597'></a><a href='#L597'>597</a>
|
|
646
|
-
<a name='L598'></a><a href='#L598'>598</a>
|
|
647
|
-
<a name='L599'></a><a href='#L599'>599</a>
|
|
648
|
-
<a name='L600'></a><a href='#L600'>600</a>
|
|
649
|
-
<a name='L601'></a><a href='#L601'>601</a>
|
|
650
|
-
<a name='L602'></a><a href='#L602'>602</a>
|
|
651
|
-
<a name='L603'></a><a href='#L603'>603</a>
|
|
652
|
-
<a name='L604'></a><a href='#L604'>604</a>
|
|
653
|
-
<a name='L605'></a><a href='#L605'>605</a>
|
|
654
|
-
<a name='L606'></a><a href='#L606'>606</a>
|
|
655
|
-
<a name='L607'></a><a href='#L607'>607</a>
|
|
656
|
-
<a name='L608'></a><a href='#L608'>608</a>
|
|
657
|
-
<a name='L609'></a><a href='#L609'>609</a>
|
|
658
|
-
<a name='L610'></a><a href='#L610'>610</a>
|
|
659
|
-
<a name='L611'></a><a href='#L611'>611</a>
|
|
660
|
-
<a name='L612'></a><a href='#L612'>612</a>
|
|
661
|
-
<a name='L613'></a><a href='#L613'>613</a>
|
|
662
|
-
<a name='L614'></a><a href='#L614'>614</a>
|
|
663
|
-
<a name='L615'></a><a href='#L615'>615</a>
|
|
664
|
-
<a name='L616'></a><a href='#L616'>616</a>
|
|
665
|
-
<a name='L617'></a><a href='#L617'>617</a>
|
|
666
|
-
<a name='L618'></a><a href='#L618'>618</a>
|
|
667
|
-
<a name='L619'></a><a href='#L619'>619</a>
|
|
668
|
-
<a name='L620'></a><a href='#L620'>620</a>
|
|
669
|
-
<a name='L621'></a><a href='#L621'>621</a>
|
|
670
|
-
<a name='L622'></a><a href='#L622'>622</a>
|
|
671
|
-
<a name='L623'></a><a href='#L623'>623</a>
|
|
672
|
-
<a name='L624'></a><a href='#L624'>624</a>
|
|
673
|
-
<a name='L625'></a><a href='#L625'>625</a>
|
|
674
|
-
<a name='L626'></a><a href='#L626'>626</a>
|
|
675
|
-
<a name='L627'></a><a href='#L627'>627</a>
|
|
676
|
-
<a name='L628'></a><a href='#L628'>628</a>
|
|
677
|
-
<a name='L629'></a><a href='#L629'>629</a>
|
|
678
|
-
<a name='L630'></a><a href='#L630'>630</a>
|
|
679
|
-
<a name='L631'></a><a href='#L631'>631</a>
|
|
680
|
-
<a name='L632'></a><a href='#L632'>632</a>
|
|
681
|
-
<a name='L633'></a><a href='#L633'>633</a>
|
|
682
|
-
<a name='L634'></a><a href='#L634'>634</a>
|
|
683
|
-
<a name='L635'></a><a href='#L635'>635</a>
|
|
684
|
-
<a name='L636'></a><a href='#L636'>636</a>
|
|
685
|
-
<a name='L637'></a><a href='#L637'>637</a>
|
|
686
|
-
<a name='L638'></a><a href='#L638'>638</a>
|
|
687
|
-
<a name='L639'></a><a href='#L639'>639</a>
|
|
688
|
-
<a name='L640'></a><a href='#L640'>640</a>
|
|
689
|
-
<a name='L641'></a><a href='#L641'>641</a>
|
|
690
|
-
<a name='L642'></a><a href='#L642'>642</a>
|
|
691
|
-
<a name='L643'></a><a href='#L643'>643</a>
|
|
692
|
-
<a name='L644'></a><a href='#L644'>644</a>
|
|
693
|
-
<a name='L645'></a><a href='#L645'>645</a>
|
|
694
|
-
<a name='L646'></a><a href='#L646'>646</a>
|
|
695
|
-
<a name='L647'></a><a href='#L647'>647</a>
|
|
696
|
-
<a name='L648'></a><a href='#L648'>648</a>
|
|
697
|
-
<a name='L649'></a><a href='#L649'>649</a>
|
|
698
|
-
<a name='L650'></a><a href='#L650'>650</a>
|
|
699
|
-
<a name='L651'></a><a href='#L651'>651</a>
|
|
700
|
-
<a name='L652'></a><a href='#L652'>652</a>
|
|
701
|
-
<a name='L653'></a><a href='#L653'>653</a>
|
|
702
|
-
<a name='L654'></a><a href='#L654'>654</a>
|
|
703
|
-
<a name='L655'></a><a href='#L655'>655</a>
|
|
704
|
-
<a name='L656'></a><a href='#L656'>656</a>
|
|
705
|
-
<a name='L657'></a><a href='#L657'>657</a>
|
|
706
|
-
<a name='L658'></a><a href='#L658'>658</a>
|
|
707
|
-
<a name='L659'></a><a href='#L659'>659</a>
|
|
708
|
-
<a name='L660'></a><a href='#L660'>660</a>
|
|
709
|
-
<a name='L661'></a><a href='#L661'>661</a>
|
|
710
|
-
<a name='L662'></a><a href='#L662'>662</a>
|
|
711
|
-
<a name='L663'></a><a href='#L663'>663</a>
|
|
712
|
-
<a name='L664'></a><a href='#L664'>664</a>
|
|
713
|
-
<a name='L665'></a><a href='#L665'>665</a>
|
|
714
|
-
<a name='L666'></a><a href='#L666'>666</a>
|
|
715
|
-
<a name='L667'></a><a href='#L667'>667</a>
|
|
716
|
-
<a name='L668'></a><a href='#L668'>668</a>
|
|
717
|
-
<a name='L669'></a><a href='#L669'>669</a>
|
|
718
|
-
<a name='L670'></a><a href='#L670'>670</a>
|
|
719
|
-
<a name='L671'></a><a href='#L671'>671</a>
|
|
720
|
-
<a name='L672'></a><a href='#L672'>672</a>
|
|
721
|
-
<a name='L673'></a><a href='#L673'>673</a>
|
|
722
|
-
<a name='L674'></a><a href='#L674'>674</a>
|
|
723
|
-
<a name='L675'></a><a href='#L675'>675</a>
|
|
724
|
-
<a name='L676'></a><a href='#L676'>676</a>
|
|
725
|
-
<a name='L677'></a><a href='#L677'>677</a>
|
|
726
|
-
<a name='L678'></a><a href='#L678'>678</a>
|
|
727
|
-
<a name='L679'></a><a href='#L679'>679</a>
|
|
728
|
-
<a name='L680'></a><a href='#L680'>680</a>
|
|
729
|
-
<a name='L681'></a><a href='#L681'>681</a>
|
|
730
|
-
<a name='L682'></a><a href='#L682'>682</a>
|
|
731
|
-
<a name='L683'></a><a href='#L683'>683</a>
|
|
732
|
-
<a name='L684'></a><a href='#L684'>684</a>
|
|
733
|
-
<a name='L685'></a><a href='#L685'>685</a>
|
|
734
|
-
<a name='L686'></a><a href='#L686'>686</a>
|
|
735
|
-
<a name='L687'></a><a href='#L687'>687</a>
|
|
736
|
-
<a name='L688'></a><a href='#L688'>688</a>
|
|
737
|
-
<a name='L689'></a><a href='#L689'>689</a>
|
|
738
|
-
<a name='L690'></a><a href='#L690'>690</a>
|
|
739
|
-
<a name='L691'></a><a href='#L691'>691</a>
|
|
740
|
-
<a name='L692'></a><a href='#L692'>692</a>
|
|
741
|
-
<a name='L693'></a><a href='#L693'>693</a>
|
|
742
|
-
<a name='L694'></a><a href='#L694'>694</a>
|
|
743
|
-
<a name='L695'></a><a href='#L695'>695</a>
|
|
744
|
-
<a name='L696'></a><a href='#L696'>696</a>
|
|
745
|
-
<a name='L697'></a><a href='#L697'>697</a>
|
|
746
|
-
<a name='L698'></a><a href='#L698'>698</a>
|
|
747
|
-
<a name='L699'></a><a href='#L699'>699</a>
|
|
748
|
-
<a name='L700'></a><a href='#L700'>700</a>
|
|
749
|
-
<a name='L701'></a><a href='#L701'>701</a>
|
|
750
|
-
<a name='L702'></a><a href='#L702'>702</a>
|
|
751
|
-
<a name='L703'></a><a href='#L703'>703</a>
|
|
752
|
-
<a name='L704'></a><a href='#L704'>704</a>
|
|
753
|
-
<a name='L705'></a><a href='#L705'>705</a>
|
|
754
|
-
<a name='L706'></a><a href='#L706'>706</a>
|
|
755
|
-
<a name='L707'></a><a href='#L707'>707</a>
|
|
756
|
-
<a name='L708'></a><a href='#L708'>708</a>
|
|
757
|
-
<a name='L709'></a><a href='#L709'>709</a>
|
|
758
|
-
<a name='L710'></a><a href='#L710'>710</a>
|
|
759
|
-
<a name='L711'></a><a href='#L711'>711</a>
|
|
760
|
-
<a name='L712'></a><a href='#L712'>712</a>
|
|
761
|
-
<a name='L713'></a><a href='#L713'>713</a>
|
|
762
|
-
<a name='L714'></a><a href='#L714'>714</a>
|
|
763
|
-
<a name='L715'></a><a href='#L715'>715</a>
|
|
764
|
-
<a name='L716'></a><a href='#L716'>716</a>
|
|
765
|
-
<a name='L717'></a><a href='#L717'>717</a>
|
|
766
|
-
<a name='L718'></a><a href='#L718'>718</a>
|
|
767
|
-
<a name='L719'></a><a href='#L719'>719</a>
|
|
768
|
-
<a name='L720'></a><a href='#L720'>720</a>
|
|
769
|
-
<a name='L721'></a><a href='#L721'>721</a>
|
|
770
|
-
<a name='L722'></a><a href='#L722'>722</a>
|
|
771
|
-
<a name='L723'></a><a href='#L723'>723</a>
|
|
772
|
-
<a name='L724'></a><a href='#L724'>724</a>
|
|
773
|
-
<a name='L725'></a><a href='#L725'>725</a>
|
|
774
|
-
<a name='L726'></a><a href='#L726'>726</a>
|
|
775
|
-
<a name='L727'></a><a href='#L727'>727</a>
|
|
776
|
-
<a name='L728'></a><a href='#L728'>728</a>
|
|
777
|
-
<a name='L729'></a><a href='#L729'>729</a>
|
|
778
|
-
<a name='L730'></a><a href='#L730'>730</a>
|
|
779
|
-
<a name='L731'></a><a href='#L731'>731</a>
|
|
780
|
-
<a name='L732'></a><a href='#L732'>732</a>
|
|
781
|
-
<a name='L733'></a><a href='#L733'>733</a>
|
|
782
|
-
<a name='L734'></a><a href='#L734'>734</a>
|
|
783
|
-
<a name='L735'></a><a href='#L735'>735</a>
|
|
784
|
-
<a name='L736'></a><a href='#L736'>736</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
785
|
-
<span class="cline-any cline-yes">1x</span>
|
|
786
|
-
<span class="cline-any cline-yes">1x</span>
|
|
787
|
-
<span class="cline-any cline-neutral"> </span>
|
|
788
|
-
<span class="cline-any cline-yes">1x</span>
|
|
789
|
-
<span class="cline-any cline-neutral"> </span>
|
|
790
|
-
<span class="cline-any cline-neutral"> </span>
|
|
791
|
-
<span class="cline-any cline-neutral"> </span>
|
|
792
|
-
<span class="cline-any cline-neutral"> </span>
|
|
793
|
-
<span class="cline-any cline-neutral"> </span>
|
|
794
|
-
<span class="cline-any cline-neutral"> </span>
|
|
795
|
-
<span class="cline-any cline-neutral"> </span>
|
|
796
|
-
<span class="cline-any cline-yes">510x</span>
|
|
797
|
-
<span class="cline-any cline-no"> </span>
|
|
798
|
-
<span class="cline-any cline-neutral"> </span>
|
|
799
|
-
<span class="cline-any cline-neutral"> </span>
|
|
800
|
-
<span class="cline-any cline-yes">510x</span>
|
|
801
|
-
<span class="cline-any cline-yes">510x</span>
|
|
802
|
-
<span class="cline-any cline-neutral"> </span>
|
|
803
|
-
<span class="cline-any cline-yes">510x</span>
|
|
804
|
-
<span class="cline-any cline-yes">510x</span>
|
|
805
|
-
<span class="cline-any cline-neutral"> </span>
|
|
806
|
-
<span class="cline-any cline-neutral"> </span>
|
|
807
|
-
<span class="cline-any cline-neutral"> </span>
|
|
808
|
-
<span class="cline-any cline-neutral"> </span>
|
|
809
|
-
<span class="cline-any cline-neutral"> </span>
|
|
810
|
-
<span class="cline-any cline-neutral"> </span>
|
|
811
|
-
<span class="cline-any cline-yes">510x</span>
|
|
812
|
-
<span class="cline-any cline-neutral"> </span>
|
|
813
|
-
<span class="cline-any cline-neutral"> </span>
|
|
814
|
-
<span class="cline-any cline-yes">510x</span>
|
|
815
|
-
<span class="cline-any cline-neutral"> </span>
|
|
816
|
-
<span class="cline-any cline-neutral"> </span>
|
|
817
|
-
<span class="cline-any cline-yes">510x</span>
|
|
818
|
-
<span class="cline-any cline-neutral"> </span>
|
|
819
|
-
<span class="cline-any cline-yes">510x</span>
|
|
820
|
-
<span class="cline-any cline-yes">510x</span>
|
|
821
|
-
<span class="cline-any cline-neutral"> </span>
|
|
822
|
-
<span class="cline-any cline-neutral"> </span>
|
|
823
|
-
<span class="cline-any cline-yes">510x</span>
|
|
824
|
-
<span class="cline-any cline-neutral"> </span>
|
|
825
|
-
<span class="cline-any cline-yes">510x</span>
|
|
826
|
-
<span class="cline-any cline-yes">510x</span>
|
|
827
|
-
<span class="cline-any cline-neutral"> </span>
|
|
828
|
-
<span class="cline-any cline-yes">510x</span>
|
|
829
|
-
<span class="cline-any cline-yes">411x</span>
|
|
830
|
-
<span class="cline-any cline-yes">411x</span>
|
|
831
|
-
<span class="cline-any cline-yes">411x</span>
|
|
832
|
-
<span class="cline-any cline-neutral"> </span>
|
|
833
|
-
<span class="cline-any cline-neutral"> </span>
|
|
834
|
-
<span class="cline-any cline-neutral"> </span>
|
|
835
|
-
<span class="cline-any cline-yes">510x</span>
|
|
836
|
-
<span class="cline-any cline-neutral"> </span>
|
|
837
|
-
<span class="cline-any cline-neutral"> </span>
|
|
838
|
-
<span class="cline-any cline-yes">510x</span>
|
|
839
|
-
<span class="cline-any cline-neutral"> </span>
|
|
840
|
-
<span class="cline-any cline-yes">510x</span>
|
|
841
|
-
<span class="cline-any cline-neutral"> </span>
|
|
842
|
-
<span class="cline-any cline-neutral"> </span>
|
|
843
|
-
<span class="cline-any cline-neutral"> </span>
|
|
844
|
-
<span class="cline-any cline-neutral"> </span>
|
|
845
|
-
<span class="cline-any cline-neutral"> </span>
|
|
846
|
-
<span class="cline-any cline-neutral"> </span>
|
|
847
|
-
<span class="cline-any cline-neutral"> </span>
|
|
848
|
-
<span class="cline-any cline-no"> </span>
|
|
849
|
-
<span class="cline-any cline-neutral"> </span>
|
|
850
|
-
<span class="cline-any cline-neutral"> </span>
|
|
851
|
-
<span class="cline-any cline-no"> </span>
|
|
852
|
-
<span class="cline-any cline-neutral"> </span>
|
|
853
|
-
<span class="cline-any cline-neutral"> </span>
|
|
854
|
-
<span class="cline-any cline-no"> </span>
|
|
855
|
-
<span class="cline-any cline-neutral"> </span>
|
|
856
|
-
<span class="cline-any cline-neutral"> </span>
|
|
857
|
-
<span class="cline-any cline-no"> </span>
|
|
858
|
-
<span class="cline-any cline-neutral"> </span>
|
|
859
|
-
<span class="cline-any cline-neutral"> </span>
|
|
860
|
-
<span class="cline-any cline-no"> </span>
|
|
861
|
-
<span class="cline-any cline-neutral"> </span>
|
|
862
|
-
<span class="cline-any cline-neutral"> </span>
|
|
863
|
-
<span class="cline-any cline-no"> </span>
|
|
864
|
-
<span class="cline-any cline-neutral"> </span>
|
|
865
|
-
<span class="cline-any cline-neutral"> </span>
|
|
866
|
-
<span class="cline-any cline-no"> </span>
|
|
867
|
-
<span class="cline-any cline-neutral"> </span>
|
|
868
|
-
<span class="cline-any cline-neutral"> </span>
|
|
869
|
-
<span class="cline-any cline-no"> </span>
|
|
870
|
-
<span class="cline-any cline-neutral"> </span>
|
|
871
|
-
<span class="cline-any cline-neutral"> </span>
|
|
872
|
-
<span class="cline-any cline-no"> </span>
|
|
873
|
-
<span class="cline-any cline-neutral"> </span>
|
|
874
|
-
<span class="cline-any cline-neutral"> </span>
|
|
875
|
-
<span class="cline-any cline-no"> </span>
|
|
876
|
-
<span class="cline-any cline-neutral"> </span>
|
|
877
|
-
<span class="cline-any cline-neutral"> </span>
|
|
878
|
-
<span class="cline-any cline-yes">12x</span>
|
|
879
|
-
<span class="cline-any cline-neutral"> </span>
|
|
880
|
-
<span class="cline-any cline-neutral"> </span>
|
|
881
|
-
<span class="cline-any cline-no"> </span>
|
|
882
|
-
<span class="cline-any cline-neutral"> </span>
|
|
883
|
-
<span class="cline-any cline-neutral"> </span>
|
|
884
|
-
<span class="cline-any cline-neutral"> </span>
|
|
885
|
-
<span class="cline-any cline-neutral"> </span>
|
|
886
|
-
<span class="cline-any cline-yes">378x</span>
|
|
887
|
-
<span class="cline-any cline-no"> </span>
|
|
888
|
-
<span class="cline-any cline-neutral"> </span>
|
|
889
|
-
<span class="cline-any cline-neutral"> </span>
|
|
890
|
-
<span class="cline-any cline-yes">1753x</span>
|
|
891
|
-
<span class="cline-any cline-yes">1020x</span>
|
|
892
|
-
<span class="cline-any cline-no"> </span>
|
|
893
|
-
<span class="cline-any cline-neutral"> </span>
|
|
894
|
-
<span class="cline-any cline-neutral"> </span>
|
|
895
|
-
<span class="cline-any cline-neutral"> </span>
|
|
896
|
-
<span class="cline-any cline-no"> </span>
|
|
897
|
-
<span class="cline-any cline-neutral"> </span>
|
|
898
|
-
<span class="cline-any cline-neutral"> </span>
|
|
899
|
-
<span class="cline-any cline-neutral"> </span>
|
|
900
|
-
<span class="cline-any cline-yes">7x</span>
|
|
901
|
-
<span class="cline-any cline-neutral"> </span>
|
|
902
|
-
<span class="cline-any cline-yes">1580x</span>
|
|
903
|
-
<span class="cline-any cline-yes">1384x</span>
|
|
904
|
-
<span class="cline-any cline-neutral"> </span>
|
|
905
|
-
<span class="cline-any cline-neutral"> </span>
|
|
906
|
-
<span class="cline-any cline-neutral"> </span>
|
|
907
|
-
<span class="cline-any cline-neutral"> </span>
|
|
908
|
-
<span class="cline-any cline-neutral"> </span>
|
|
909
|
-
<span class="cline-any cline-yes">15x</span>
|
|
910
|
-
<span class="cline-any cline-neutral"> </span>
|
|
911
|
-
<span class="cline-any cline-yes">15x</span>
|
|
912
|
-
<span class="cline-any cline-yes">7x</span>
|
|
913
|
-
<span class="cline-any cline-neutral"> </span>
|
|
914
|
-
<span class="cline-any cline-neutral"> </span>
|
|
915
|
-
<span class="cline-any cline-neutral"> </span>
|
|
916
|
-
<span class="cline-any cline-neutral"> </span>
|
|
917
|
-
<span class="cline-any cline-neutral"> </span>
|
|
918
|
-
<span class="cline-any cline-neutral"> </span>
|
|
919
|
-
<span class="cline-any cline-neutral"> </span>
|
|
920
|
-
<span class="cline-any cline-neutral"> </span>
|
|
921
|
-
<span class="cline-any cline-yes">15x</span>
|
|
922
|
-
<span class="cline-any cline-neutral"> </span>
|
|
923
|
-
<span class="cline-any cline-neutral"> </span>
|
|
924
|
-
<span class="cline-any cline-neutral"> </span>
|
|
925
|
-
<span class="cline-any cline-neutral"> </span>
|
|
926
|
-
<span class="cline-any cline-neutral"> </span>
|
|
927
|
-
<span class="cline-any cline-neutral"> </span>
|
|
928
|
-
<span class="cline-any cline-yes">273x</span>
|
|
929
|
-
<span class="cline-any cline-neutral"> </span>
|
|
930
|
-
<span class="cline-any cline-neutral"> </span>
|
|
931
|
-
<span class="cline-any cline-neutral"> </span>
|
|
932
|
-
<span class="cline-any cline-neutral"> </span>
|
|
933
|
-
<span class="cline-any cline-neutral"> </span>
|
|
934
|
-
<span class="cline-any cline-neutral"> </span>
|
|
935
|
-
<span class="cline-any cline-neutral"> </span>
|
|
936
|
-
<span class="cline-any cline-yes">1105x</span>
|
|
937
|
-
<span class="cline-any cline-yes">162x</span>
|
|
938
|
-
<span class="cline-any cline-yes">162x</span>
|
|
939
|
-
<span class="cline-any cline-neutral"> </span>
|
|
940
|
-
<span class="cline-any cline-neutral"> </span>
|
|
941
|
-
<span class="cline-any cline-yes">943x</span>
|
|
942
|
-
<span class="cline-any cline-neutral"> </span>
|
|
943
|
-
<span class="cline-any cline-yes">808x</span>
|
|
944
|
-
<span class="cline-any cline-yes">808x</span>
|
|
945
|
-
<span class="cline-any cline-yes">808x</span>
|
|
946
|
-
<span class="cline-any cline-neutral"> </span>
|
|
947
|
-
<span class="cline-any cline-yes">135x</span>
|
|
948
|
-
<span class="cline-any cline-neutral"> </span>
|
|
949
|
-
<span class="cline-any cline-yes">104x</span>
|
|
950
|
-
<span class="cline-any cline-yes">104x</span>
|
|
951
|
-
<span class="cline-any cline-neutral"> </span>
|
|
952
|
-
<span class="cline-any cline-yes">31x</span>
|
|
953
|
-
<span class="cline-any cline-neutral"> </span>
|
|
954
|
-
<span class="cline-any cline-no"> </span>
|
|
955
|
-
<span class="cline-any cline-no"> </span>
|
|
956
|
-
<span class="cline-any cline-no"> </span>
|
|
957
|
-
<span class="cline-any cline-neutral"> </span>
|
|
958
|
-
<span class="cline-any cline-neutral"> </span>
|
|
959
|
-
<span class="cline-any cline-neutral"> </span>
|
|
960
|
-
<span class="cline-any cline-yes">31x</span>
|
|
961
|
-
<span class="cline-any cline-yes">31x</span>
|
|
962
|
-
<span class="cline-any cline-neutral"> </span>
|
|
963
|
-
<span class="cline-any cline-neutral"> </span>
|
|
964
|
-
<span class="cline-any cline-yes">135x</span>
|
|
965
|
-
<span class="cline-any cline-neutral"> </span>
|
|
966
|
-
<span class="cline-any cline-yes">135x</span>
|
|
967
|
-
<span class="cline-any cline-neutral"> </span>
|
|
968
|
-
<span class="cline-any cline-yes">135x</span>
|
|
969
|
-
<span class="cline-any cline-yes">133x</span>
|
|
970
|
-
<span class="cline-any cline-neutral"> </span>
|
|
971
|
-
<span class="cline-any cline-yes">133x</span>
|
|
972
|
-
<span class="cline-any cline-yes">131x</span>
|
|
973
|
-
<span class="cline-any cline-yes">131x</span>
|
|
974
|
-
<span class="cline-any cline-neutral"> </span>
|
|
975
|
-
<span class="cline-any cline-yes">131x</span>
|
|
976
|
-
<span class="cline-any cline-yes">9x</span>
|
|
977
|
-
<span class="cline-any cline-yes">9x</span>
|
|
978
|
-
<span class="cline-any cline-yes">9x</span>
|
|
979
|
-
<span class="cline-any cline-neutral"> </span>
|
|
980
|
-
<span class="cline-any cline-neutral"> </span>
|
|
981
|
-
<span class="cline-any cline-neutral"> </span>
|
|
982
|
-
<span class="cline-any cline-yes">122x</span>
|
|
983
|
-
<span class="cline-any cline-neutral"> </span>
|
|
984
|
-
<span class="cline-any cline-neutral"> </span>
|
|
985
|
-
<span class="cline-any cline-neutral"> </span>
|
|
986
|
-
<span class="cline-any cline-neutral"> </span>
|
|
987
|
-
<span class="cline-any cline-neutral"> </span>
|
|
988
|
-
<span class="cline-any cline-yes">135x</span>
|
|
989
|
-
<span class="cline-any cline-neutral"> </span>
|
|
990
|
-
<span class="cline-any cline-neutral"> </span>
|
|
991
|
-
<span class="cline-any cline-neutral"> </span>
|
|
992
|
-
<span class="cline-any cline-neutral"> </span>
|
|
993
|
-
<span class="cline-any cline-neutral"> </span>
|
|
994
|
-
<span class="cline-any cline-neutral"> </span>
|
|
995
|
-
<span class="cline-any cline-yes">504x</span>
|
|
996
|
-
<span class="cline-any cline-yes">504x</span>
|
|
997
|
-
<span class="cline-any cline-neutral"> </span>
|
|
998
|
-
<span class="cline-any cline-yes">504x</span>
|
|
999
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1000
|
-
<span class="cline-any cline-yes">252x</span>
|
|
1001
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1002
|
-
<span class="cline-any cline-yes">252x</span>
|
|
1003
|
-
<span class="cline-any cline-yes">553x</span>
|
|
1004
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1005
|
-
<span class="cline-any cline-yes">553x</span>
|
|
1006
|
-
<span class="cline-any cline-no"> </span>
|
|
1007
|
-
<span class="cline-any cline-no"> </span>
|
|
1008
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1009
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1010
|
-
<span class="cline-any cline-yes">553x</span>
|
|
1011
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1012
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1013
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1014
|
-
<span class="cline-any cline-yes">252x</span>
|
|
1015
|
-
<span class="cline-any cline-no"> </span>
|
|
1016
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1017
|
-
<span class="cline-any cline-no"> </span>
|
|
1018
|
-
<span class="cline-any cline-no"> </span>
|
|
1019
|
-
<span class="cline-any cline-no"> </span>
|
|
1020
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1021
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1022
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1023
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1024
|
-
<span class="cline-any cline-yes">504x</span>
|
|
1025
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1026
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1027
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1028
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1029
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1030
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1031
|
-
<span class="cline-any cline-yes">504x</span>
|
|
1032
|
-
<span class="cline-any cline-yes">504x</span>
|
|
1033
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1034
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1035
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1036
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1037
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1038
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1039
|
-
<span class="cline-any cline-no"> </span>
|
|
1040
|
-
<span class="cline-any cline-no"> </span>
|
|
1041
|
-
<span class="cline-any cline-no"> </span>
|
|
1042
|
-
<span class="cline-any cline-no"> </span>
|
|
1043
|
-
<span class="cline-any cline-no"> </span>
|
|
1044
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1045
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1046
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1047
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1048
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1049
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1050
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1051
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1052
|
-
<span class="cline-any cline-yes">665x</span>
|
|
1053
|
-
<span class="cline-any cline-yes">665x</span>
|
|
1054
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1055
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1056
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1057
|
-
<span class="cline-any cline-no"> </span>
|
|
1058
|
-
<span class="cline-any cline-no"> </span>
|
|
1059
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1060
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1061
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1062
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1063
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1064
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1065
|
-
<span class="cline-any cline-no"> </span>
|
|
1066
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1067
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1068
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1069
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1070
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1071
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1072
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1073
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1074
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1075
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1076
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1078
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1079
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1080
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1081
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1082
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1083
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1084
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1085
|
-
<span class="cline-any cline-no"> </span>
|
|
1086
|
-
<span class="cline-any cline-no"> </span>
|
|
1087
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1088
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1089
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1090
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1091
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1092
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1093
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1094
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1095
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1096
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1097
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1098
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1099
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1100
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1101
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1102
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1103
|
-
<span class="cline-any cline-yes">1165x</span>
|
|
1104
|
-
<span class="cline-any cline-no"> </span>
|
|
1105
|
-
<span class="cline-any cline-no"> </span>
|
|
1106
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1107
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1108
|
-
<span class="cline-any cline-yes">1165x</span>
|
|
1109
|
-
<span class="cline-any cline-yes">689x</span>
|
|
1110
|
-
<span class="cline-any cline-yes">689x</span>
|
|
1111
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1112
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1113
|
-
<span class="cline-any cline-yes">1165x</span>
|
|
1114
|
-
<span class="cline-any cline-no"> </span>
|
|
1115
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1116
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1117
|
-
<span class="cline-any cline-yes">1165x</span>
|
|
1118
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1119
|
-
<span class="cline-any cline-yes">1165x</span>
|
|
1120
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1121
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1122
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1123
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1124
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1125
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1126
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1127
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1128
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1129
|
-
<span class="cline-any cline-yes">1165x</span>
|
|
1130
|
-
<span class="cline-any cline-yes">186x</span>
|
|
1131
|
-
<span class="cline-any cline-yes">134x</span>
|
|
1132
|
-
<span class="cline-any cline-yes">134x</span>
|
|
1133
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1134
|
-
<span class="cline-any cline-yes">134x</span>
|
|
1135
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1136
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1137
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1138
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1139
|
-
<span class="cline-any cline-yes">134x</span>
|
|
1140
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1141
|
-
<span class="cline-any cline-yes">134x</span>
|
|
1142
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1143
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1144
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1145
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1146
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1147
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1148
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1149
|
-
<span class="cline-any cline-yes">1165x</span>
|
|
1150
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1151
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1152
|
-
<span class="cline-any cline-yes">1165x</span>
|
|
1153
|
-
<span class="cline-any cline-yes">197x</span>
|
|
1154
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1155
|
-
<span class="cline-any cline-yes">197x</span>
|
|
1156
|
-
<span class="cline-any cline-yes">197x</span>
|
|
1157
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1158
|
-
<span class="cline-any cline-yes">197x</span>
|
|
1159
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1160
|
-
<span class="cline-any cline-yes">197x</span>
|
|
1161
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1162
|
-
<span class="cline-any cline-yes">197x</span>
|
|
1163
|
-
<span class="cline-any cline-yes">197x</span>
|
|
1164
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1165
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1166
|
-
<span class="cline-any cline-no"> </span>
|
|
1167
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1168
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1169
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1170
|
-
<span class="cline-any cline-yes">197x</span>
|
|
1171
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1172
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1173
|
-
<span class="cline-any cline-yes">968x</span>
|
|
1174
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1175
|
-
<span class="cline-any cline-yes">289x</span>
|
|
1176
|
-
<span class="cline-any cline-yes">289x</span>
|
|
1177
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1178
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1179
|
-
<span class="cline-any cline-yes">679x</span>
|
|
1180
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1181
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1182
|
-
<span class="cline-any cline-yes">968x</span>
|
|
1183
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1184
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1185
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1186
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1187
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1188
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1189
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1190
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1191
|
-
<span class="cline-any cline-yes">95x</span>
|
|
1192
|
-
<span class="cline-any cline-yes">95x</span>
|
|
1193
|
-
<span class="cline-any cline-yes">95x</span>
|
|
1194
|
-
<span class="cline-any cline-yes">95x</span>
|
|
1195
|
-
<span class="cline-any cline-yes">95x</span>
|
|
1196
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1197
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1198
|
-
<span class="cline-any cline-no"> </span>
|
|
1199
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1200
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1201
|
-
<span class="cline-any cline-yes">95x</span>
|
|
1202
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1203
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1204
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1205
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1206
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1207
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1208
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1209
|
-
<span class="cline-any cline-yes">78x</span>
|
|
1210
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1211
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1212
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1213
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1214
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1215
|
-
<span class="cline-any cline-yes">78x</span>
|
|
1216
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1217
|
-
<span class="cline-any cline-yes">78x</span>
|
|
1218
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1219
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1220
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1221
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1222
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1223
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1224
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1225
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1226
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1227
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1228
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1229
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1230
|
-
<span class="cline-any cline-no"> </span>
|
|
1231
|
-
<span class="cline-any cline-no"> </span>
|
|
1232
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1233
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1234
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1235
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1236
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1237
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1238
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1239
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1240
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1241
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1242
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1243
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1244
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1245
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1246
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1247
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1248
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1249
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1250
|
-
<span class="cline-any cline-yes">91x</span>
|
|
1251
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1252
|
-
<span class="cline-any cline-yes">91x</span>
|
|
1253
|
-
<span class="cline-any cline-yes">18x</span>
|
|
1254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1255
|
-
<span class="cline-any cline-yes">18x</span>
|
|
1256
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1257
|
-
<span class="cline-any cline-no"> </span>
|
|
1258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1260
|
-
<span class="cline-any cline-yes">18x</span>
|
|
1261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1262
|
-
<span class="cline-any cline-yes">18x</span>
|
|
1263
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1265
|
-
<span class="cline-any cline-yes">18x</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-yes">18x</span>
|
|
1270
|
-
<span class="cline-any cline-yes">18x</span>
|
|
1271
|
-
<span class="cline-any cline-yes">18x</span>
|
|
1272
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1273
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1274
|
-
<span class="cline-any cline-yes">18x</span>
|
|
1275
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1276
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1278
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1280
|
-
<span class="cline-any cline-yes">18x</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-yes">73x</span>
|
|
1285
|
-
<span class="cline-any cline-yes">40x</span>
|
|
1286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1287
|
-
<span class="cline-any cline-yes">40x</span>
|
|
1288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1289
|
-
<span class="cline-any cline-yes">40x</span>
|
|
1290
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1291
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1292
|
-
<span class="cline-any cline-yes">40x</span>
|
|
1293
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1294
|
-
<span class="cline-any cline-yes">40x</span>
|
|
1295
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1296
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1297
|
-
<span class="cline-any cline-yes">40x</span>
|
|
1298
|
-
<span class="cline-any cline-no"> </span>
|
|
1299
|
-
<span class="cline-any cline-no"> </span>
|
|
1300
|
-
<span class="cline-any cline-no"> </span>
|
|
1301
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1302
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1303
|
-
<span class="cline-any cline-yes">40x</span>
|
|
1304
|
-
<span class="cline-any cline-yes">35x</span>
|
|
1305
|
-
<span class="cline-any cline-yes">35x</span>
|
|
1306
|
-
<span class="cline-any cline-yes">35x</span>
|
|
1307
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1308
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1309
|
-
<span class="cline-any cline-yes">40x</span>
|
|
1310
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1311
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1312
|
-
<span class="cline-any cline-yes">73x</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-no"> </span>
|
|
1321
|
-
<span class="cline-any cline-no"> </span>
|
|
1322
|
-
<span class="cline-any cline-no"> </span>
|
|
1323
|
-
<span class="cline-any cline-no"> </span>
|
|
1324
|
-
<span class="cline-any cline-no"> </span>
|
|
1325
|
-
<span class="cline-any cline-no"> </span>
|
|
1326
|
-
<span class="cline-any cline-no"> </span>
|
|
1327
|
-
<span class="cline-any cline-no"> </span>
|
|
1328
|
-
<span class="cline-any cline-no"> </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-yes">1329x</span>
|
|
1339
|
-
<span class="cline-any cline-yes">1329x</span>
|
|
1340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1341
|
-
<span class="cline-any cline-yes">1329x</span>
|
|
1342
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1344
|
-
<span class="cline-any cline-yes">15x</span>
|
|
1345
|
-
<span class="cline-any cline-yes">14x</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-yes">1315x</span>
|
|
1351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1352
|
-
<span class="cline-any cline-no"> </span>
|
|
1353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1354
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1355
|
-
<span class="cline-any cline-no"> </span>
|
|
1356
|
-
<span class="cline-any cline-no"> </span>
|
|
1357
|
-
<span class="cline-any cline-no"> </span>
|
|
1358
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1359
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1360
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1361
|
-
<span class="cline-any cline-no"> </span>
|
|
1362
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1363
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1364
|
-
<span class="cline-any cline-no"> </span>
|
|
1365
|
-
<span class="cline-any cline-no"> </span>
|
|
1366
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1368
|
-
<span class="cline-any cline-yes">1315x</span>
|
|
1369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1370
|
-
<span class="cline-any cline-yes">349x</span>
|
|
1371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1373
|
-
<span class="cline-any cline-yes">349x</span>
|
|
1374
|
-
<span class="cline-any cline-yes">7x</span>
|
|
1375
|
-
<span class="cline-any cline-yes">7x</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-yes">349x</span>
|
|
1380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1381
|
-
<span class="cline-any cline-yes">349x</span>
|
|
1382
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1383
|
-
<span class="cline-any cline-yes">349x</span>
|
|
1384
|
-
<span class="cline-any cline-yes">159x</span>
|
|
1385
|
-
<span class="cline-any cline-yes">159x</span>
|
|
1386
|
-
<span class="cline-any cline-yes">159x</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-yes">349x</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-yes">966x</span>
|
|
1395
|
-
<span class="cline-any cline-yes">966x</span>
|
|
1396
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1397
|
-
<span class="cline-any cline-yes">966x</span>
|
|
1398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1399
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1400
|
-
<span class="cline-any cline-yes">966x</span>
|
|
1401
|
-
<span class="cline-any cline-yes">34x</span>
|
|
1402
|
-
<span class="cline-any cline-yes">34x</span>
|
|
1403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1404
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1405
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1406
|
-
<span class="cline-any cline-yes">966x</span>
|
|
1407
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1409
|
-
<span class="cline-any cline-yes">966x</span>
|
|
1410
|
-
<span class="cline-any cline-yes">966x</span>
|
|
1411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1413
|
-
<span class="cline-any cline-yes">1329x</span>
|
|
1414
|
-
<span class="cline-any cline-yes">438x</span>
|
|
1415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1417
|
-
<span class="cline-any cline-yes">891x</span>
|
|
1418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1420
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1423
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1424
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1425
|
-
<span class="cline-any cline-yes">484x</span>
|
|
1426
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1427
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1430
|
-
<span class="cline-any cline-yes">472x</span>
|
|
1431
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1432
|
-
<span class="cline-any cline-yes">328x</span>
|
|
1433
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1434
|
-
<span class="cline-any cline-yes">328x</span>
|
|
1435
|
-
<span class="cline-any cline-yes">328x</span>
|
|
1436
|
-
<span class="cline-any cline-no"> </span>
|
|
1437
|
-
<span class="cline-any cline-no"> </span>
|
|
1438
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1439
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1440
|
-
<span class="cline-any cline-yes">328x</span>
|
|
1441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1442
|
-
<span class="cline-any cline-yes">194x</span>
|
|
1443
|
-
<span class="cline-any cline-yes">194x</span>
|
|
1444
|
-
<span class="cline-any cline-yes">194x</span>
|
|
1445
|
-
<span class="cline-any cline-yes">194x</span>
|
|
1446
|
-
<span class="cline-any cline-yes">194x</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-yes">134x</span>
|
|
1451
|
-
<span class="cline-any cline-yes">134x</span>
|
|
1452
|
-
<span class="cline-any cline-yes">134x</span>
|
|
1453
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1454
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1455
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1458
|
-
<span class="cline-any cline-yes">144x</span>
|
|
1459
|
-
<span class="cline-any cline-yes">144x</span>
|
|
1460
|
-
<span class="cline-any cline-yes">144x</span>
|
|
1461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1462
|
-
<span class="cline-any cline-yes">144x</span>
|
|
1463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1464
|
-
<span class="cline-any cline-yes">144x</span>
|
|
1465
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1466
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1467
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1468
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1471
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1472
|
-
<span class="cline-any cline-no"> </span>
|
|
1473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
-
<span class="cline-any cline-no"> </span>
|
|
1475
|
-
<span class="cline-any cline-no"> </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-neutral"> </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-yes">691x</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-yes">4x</span>
|
|
1498
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1499
|
-
<span class="cline-any cline-no"> </span>
|
|
1500
|
-
<span class="cline-any cline-no"> </span>
|
|
1501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1502
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1503
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1504
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1505
|
-
<span class="cline-any cline-no"> </span>
|
|
1506
|
-
<span class="cline-any cline-no"> </span>
|
|
1507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1509
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1510
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1514
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1515
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1516
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1517
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1518
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1519
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">var async = require ('async');
|
|
1520
|
-
var _ = require ('lodash');
|
|
1521
|
-
var uuid = require ('uuid');
|
|
1522
|
-
|
|
1523
|
-
var debug = require('debug')('keuss:Queue:base');
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
class Queue {
|
|
1527
|
-
|
|
1528
|
-
//////////////////////////////////////////////
|
|
1529
|
-
constructor (name, factory, opts, orig_opts) {
|
|
1530
|
-
//////////////////////////////////////////////
|
|
1531
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!name) {
|
|
1532
|
-
<span class="cstat-no" title="statement not covered" > throw new Error ('provide a queue name');</span>
|
|
1533
|
-
}
|
|
1534
|
-
|
|
1535
|
-
this._opts = opts || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
1536
|
-
this._orig_opts = orig_opts || {};
|
|
1537
|
-
|
|
1538
|
-
this._name = name;
|
|
1539
|
-
this._factory = factory;
|
|
1540
|
-
|
|
1541
|
-
// most mature
|
|
1542
|
-
// values:
|
|
1543
|
-
// * null: unknown, triggers read this.next_t() from backend
|
|
1544
|
-
// * 0: known to be no element in queue, accepts values from insertNotifs
|
|
1545
|
-
// * <non-zero int>: a know value, to be trusted. accepts values from insertNotifs if lower
|
|
1546
|
-
this._next_mature_t = null;
|
|
1547
|
-
|
|
1548
|
-
// defaults
|
|
1549
|
-
this._pollInterval = this._opts.pollInterval || 60000;
|
|
1550
|
-
|
|
1551
|
-
// map of active consumers
|
|
1552
|
-
this._consumers_by_tid = new Map();
|
|
1553
|
-
|
|
1554
|
-
this._signaller = factory._signaller_factory.signal (this, this._opts.signaller.opts);
|
|
1555
|
-
this._stats = factory._stats_factory.stats (factory.name(), this.name (), this._opts.stats.opts);
|
|
1556
|
-
|
|
1557
|
-
// save original options
|
|
1558
|
-
this._stats.opts (orig_opts || {}, () => {});
|
|
1559
|
-
|
|
1560
|
-
this._stats.incr ('get', 0);
|
|
1561
|
-
this._stats.incr ('put', 0);
|
|
1562
|
-
|
|
1563
|
-
if (factory.capabilities().reserve) {
|
|
1564
|
-
this._stats.incr ('reserve', 0);
|
|
1565
|
-
this._stats.incr ('commit', 0);
|
|
1566
|
-
this._stats.incr ('rollback', 0);
|
|
1567
|
-
}
|
|
1568
|
-
|
|
1569
|
-
// if true, queue is being drained just before shutdown
|
|
1570
|
-
this._in_drain = false;
|
|
1571
|
-
|
|
1572
|
-
// if true, queue has been drained and is now not usable
|
|
1573
|
-
this._drained = false;
|
|
1574
|
-
|
|
1575
|
-
debug ('created queue %s with opts %o', this._name, this._opts);
|
|
1576
|
-
}
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
////////////////////////////////////////////////////////////////////////////
|
|
1580
|
-
// expected redefinitions on subclasses
|
|
1581
|
-
|
|
1582
|
-
// add element to queue
|
|
1583
|
-
<span class="fstat-no" title="function not covered" > in</span>sert (entry, callback) {<span class="cstat-no" title="statement not covered" >callback (null, null);}</span>
|
|
1584
|
-
|
|
1585
|
-
// get element from queue
|
|
1586
|
-
<span class="fstat-no" title="function not covered" > ge</span>t (callback) {<span class="cstat-no" title="statement not covered" >callback (null, {mature: 0, payload: null, tries: 0});}</span>
|
|
1587
|
-
|
|
1588
|
-
// reserve element: call cb (err, pl) where pl has an id
|
|
1589
|
-
<span class="fstat-no" title="function not covered" > re</span>serve (callback) {<span class="cstat-no" title="statement not covered" >callback (null, {mature: 0, payload: null, tries: 0}, null);}</span>
|
|
1590
|
-
|
|
1591
|
-
// commit previous reserve, by p.id: call cb (err, true|false), true if element committed
|
|
1592
|
-
<span class="fstat-no" title="function not covered" > co</span>mmit (id, callback) {<span class="cstat-no" title="statement not covered" >callback (null, false);}</span>
|
|
1593
|
-
|
|
1594
|
-
// rollback previous reserve, by p.id: call cb (err, true|false), true if element rolled back
|
|
1595
|
-
<span class="fstat-no" title="function not covered" > ro</span>llback (id, next_t, callback) {<span class="cstat-no" title="statement not covered" >callback (null, false);}</span>
|
|
1596
|
-
|
|
1597
|
-
// pipeline: atomically passes to next queue a previously reserved element, by id
|
|
1598
|
-
<span class="fstat-no" title="function not covered" > pl</span>_step (id, next_queue, opts, callback) {<span class="cstat-no" title="statement not covered" >callback (null, false);}</span>
|
|
1599
|
-
|
|
1600
|
-
// queue size including non-mature elements
|
|
1601
|
-
<span class="fstat-no" title="function not covered" > to</span>talSize (callback) {<span class="cstat-no" title="statement not covered" >callback (null, 0);}</span>
|
|
1602
|
-
|
|
1603
|
-
// queue size NOT including non-mature elements
|
|
1604
|
-
<span class="fstat-no" title="function not covered" > si</span>ze (callback) {<span class="cstat-no" title="statement not covered" >callback (null, 0);}</span>
|
|
1605
|
-
|
|
1606
|
-
// queue size of non-mature elements only
|
|
1607
|
-
<span class="fstat-no" title="function not covered" > sc</span>hedSize (callback) {<span class="cstat-no" title="statement not covered" >callback (null, 0);}</span>
|
|
1608
|
-
|
|
1609
|
-
// queue size of reserved elements only
|
|
1610
|
-
<span class="fstat-no" title="function not covered" > re</span>svSize (callback) {<span class="cstat-no" title="statement not covered" >callback (null, null);}</span>
|
|
1611
|
-
|
|
1612
|
-
// Date of next
|
|
1613
|
-
next_t (callback) {callback (null, null);}
|
|
1614
|
-
|
|
1615
|
-
// remove (and return if possible) by id
|
|
1616
|
-
<span class="fstat-no" title="function not covered" > re</span>move (id, callback) {<span class="cstat-no" title="statement not covered" >callback(null, null);}</span>
|
|
1617
|
-
|
|
1618
|
-
// end of expected redefinitions on subclasses
|
|
1619
|
-
////////////////////////////////////////////////////////////////////////////
|
|
1620
|
-
|
|
1621
|
-
stats (cb) {this._stats.values (cb);}
|
|
1622
|
-
<span class="fstat-no" title="function not covered" > pa</span>used (cb) {<span class="cstat-no" title="statement not covered" >this._stats.paused (cb);}</span>
|
|
1623
|
-
|
|
1624
|
-
// placeholder methods
|
|
1625
|
-
name () {return this._name;}
|
|
1626
|
-
ns () {return this._factory.name();}
|
|
1627
|
-
<span class="fstat-no" title="function not covered" > ty</span>pe () {<span class="cstat-no" title="statement not covered" >return 'queue:base';}</span>
|
|
1628
|
-
|
|
1629
|
-
// capabilities
|
|
1630
|
-
<span class="fstat-no" title="function not covered" > ca</span>pabilities () {
|
|
1631
|
-
<span class="cstat-no" title="statement not covered" > return this._factory.capabilities ();</span>
|
|
1632
|
-
}
|
|
1633
|
-
|
|
1634
|
-
// T of next mature
|
|
1635
|
-
nextMatureDate () {return this._next_mature_t;}
|
|
1636
|
-
|
|
1637
|
-
static now () {return (new Date ());}
|
|
1638
|
-
static nowPlusSecs (secs) {return (new Date (Date.now () + secs * 1000));}
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
/////////////////////////////////////////
|
|
1642
|
-
consumers () {
|
|
1643
|
-
/////////////////////////////////////////
|
|
1644
|
-
let r = [];
|
|
1645
|
-
|
|
1646
|
-
this._consumers_by_tid.forEach ((value, key) => {
|
|
1647
|
-
r.push ({
|
|
1648
|
-
tid: value.tid,
|
|
1649
|
-
since: value.since,
|
|
1650
|
-
callback: (value.callback ? 'set' : <span class="branch-1 cbranch-no" title="branch not covered" >'unset')</span>,
|
|
1651
|
-
cleanup_timeout: (value.cleanup_timeout ? 'set' : <span class="branch-1 cbranch-no" title="branch not covered" >'unset')</span>,
|
|
1652
|
-
wakeup_timeout: (value.wakeup_timeout ? <span class="branch-0 cbranch-no" title="branch not covered" >'set' </span>: 'unset')
|
|
1653
|
-
});
|
|
1654
|
-
});
|
|
1655
|
-
|
|
1656
|
-
return r;
|
|
1657
|
-
}
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
/////////////////////////////////////////
|
|
1661
|
-
nConsumers () {
|
|
1662
|
-
/////////////////////////////////////////
|
|
1663
|
-
return this._consumers_by_tid.size;
|
|
1664
|
-
}
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
/////////////////////////////////////////
|
|
1668
|
-
// called when an insertion has been signaled
|
|
1669
|
-
signalInsertion (mature, cb) {
|
|
1670
|
-
// ignore if paused
|
|
1671
|
-
if (this._local_paused) {
|
|
1672
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (cb) <span class="cstat-no" title="statement not covered" >return cb ();</span>
|
|
1673
|
-
else return;
|
|
1674
|
-
}
|
|
1675
|
-
|
|
1676
|
-
if (_.isNull (this._next_mature_t)) {
|
|
1677
|
-
// totally ignore it, let pop() get it via next_t()
|
|
1678
|
-
debug ('%s: signalInsertion received with mature %s. _next_mature_t is null, ignoring', this._name, mature.toISOString ());
|
|
1679
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (cb) <span class="cstat-no" title="statement not covered" >return cb ();</span>
|
|
1680
|
-
else return;
|
|
1681
|
-
}
|
|
1682
|
-
else if (this._next_mature_t == 0) {
|
|
1683
|
-
// next_t() forced a read and the result was 'empty': trust the notif
|
|
1684
|
-
debug ('%s: signalInsertion received with mature %s. _next_mature_t is 0, trusting notif', this._name, mature.toISOString ());
|
|
1685
|
-
this._next_mature_t = mature.getTime ();
|
|
1686
|
-
}
|
|
1687
|
-
else <span class="missing-if-branch" title="if path not taken" >I</span>if (this._next_mature_t <= mature.getTime ()) {
|
|
1688
|
-
// _next_mature_t is numeric and non-null, so an active wait is happening. ignore it
|
|
1689
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: signalInsertion received with mature %s. _next_mature_t (%s) is lower, ignoring', this._name, mature.toISOString (), new Date(this._next_mature_t).toISOString());</span>
|
|
1690
|
-
<span class="cstat-no" title="statement not covered" > if (cb) <span class="cstat-no" title="statement not covered" >return cb ();</span></span>
|
|
1691
|
-
else <span class="cstat-no" title="statement not covered" >return;</span>
|
|
1692
|
-
}
|
|
1693
|
-
else {
|
|
1694
|
-
// _next_mature_t is numeric and non-null, so an active wait is happening. ignore it
|
|
1695
|
-
debug ('%s: signalInsertion received with mature %s. _next_mature_t (%s) is higher, trusting notif', this._name, mature.toISOString (), new Date(this._next_mature_t).toISOString());
|
|
1696
|
-
this._next_mature_t = mature.getTime ();
|
|
1697
|
-
}
|
|
1698
|
-
|
|
1699
|
-
this._nextDelta (delta_ms => {
|
|
1700
|
-
// run a wakeup on all consumers with the wakeup timer set
|
|
1701
|
-
debug ('%s: signalInsertion: waking up all consumers with wakeup already set', this._name);
|
|
1702
|
-
|
|
1703
|
-
this._consumers_by_tid.forEach ((consumer, tid) => {
|
|
1704
|
-
debug ('%s: signalInsertion: waking up consumer %d', this._name, tid);
|
|
1705
|
-
|
|
1706
|
-
if (consumer.wakeup_timeout) {
|
|
1707
|
-
clearTimeout (consumer.wakeup_timeout);
|
|
1708
|
-
consumer.wakeup_timeout = null;
|
|
1709
|
-
|
|
1710
|
-
if (delta_ms > 0) {
|
|
1711
|
-
consumer.wakeup_timeout = setTimeout (() => {
|
|
1712
|
-
consumer.wakeup_timeout = null;
|
|
1713
|
-
this._onetime_pop (consumer);
|
|
1714
|
-
}, delta_ms);
|
|
1715
|
-
}
|
|
1716
|
-
else {
|
|
1717
|
-
setImmediate (() => this._onetime_pop (consumer));
|
|
1718
|
-
}
|
|
1719
|
-
}
|
|
1720
|
-
});
|
|
1721
|
-
});
|
|
1722
|
-
|
|
1723
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (cb) <span class="cstat-no" title="statement not covered" >cb ();</span>
|
|
1724
|
-
}
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
/////////////////////////////////////////
|
|
1728
|
-
// called when a pause/resume has been signaled
|
|
1729
|
-
signalPaused (paused, cb) {
|
|
1730
|
-
debug ('%s: signalPaused: received pause notif %s', this._name, paused ? 'true' : 'false');
|
|
1731
|
-
this._local_paused = paused;
|
|
1732
|
-
|
|
1733
|
-
if (paused == false) {
|
|
1734
|
-
// run a wakeup on all consumers with or without wakeup timer set
|
|
1735
|
-
debug ('%s: signaPaused: waking up all consumers', this._name);
|
|
1736
|
-
|
|
1737
|
-
this._consumers_by_tid.forEach ((consumer, tid) => {
|
|
1738
|
-
debug ('%s: signalPaused: waking up consumer %s', this._name, tid);
|
|
1739
|
-
|
|
1740
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (consumer.wakeup_timeout) {
|
|
1741
|
-
<span class="cstat-no" title="statement not covered" > clearTimeout (consumer.wakeup_timeout);</span>
|
|
1742
|
-
<span class="cstat-no" title="statement not covered" > consumer.wakeup_timeout = null;</span>
|
|
1743
|
-
}
|
|
1744
|
-
|
|
1745
|
-
setImmediate (() => this._onetime_pop (consumer));
|
|
1746
|
-
});
|
|
1747
|
-
}
|
|
1748
|
-
else {
|
|
1749
|
-
this._consumers_by_tid.forEach (<span class="fstat-no" title="function not covered" >(c</span>onsumer_data, tid) => {
|
|
1750
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: pausing tid %s (cid %s)', this._name, tid, consumer_data.cid);</span>
|
|
1751
|
-
|
|
1752
|
-
<span class="cstat-no" title="statement not covered" > if (consumer_data.wakeup_timeout) {</span>
|
|
1753
|
-
<span class="cstat-no" title="statement not covered" > clearTimeout (consumer_data.wakeup_timeout);</span>
|
|
1754
|
-
<span class="cstat-no" title="statement not covered" > consumer_data.wakeup_timeout = null;</span>
|
|
1755
|
-
}
|
|
1756
|
-
});
|
|
1757
|
-
}
|
|
1758
|
-
|
|
1759
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (cb) <span class="cstat-no" title="statement not covered" >cb ();</span>
|
|
1760
|
-
}
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
////////////////////////////////////////
|
|
1764
|
-
// pause/resume
|
|
1765
|
-
pause (v) {
|
|
1766
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (v == undefined) <span class="cstat-no" title="statement not covered" >v = true;</span>
|
|
1767
|
-
this._stats.paused (v, () => this._signaller.signalPaused (v));
|
|
1768
|
-
}
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
//////////////////////////////////
|
|
1772
|
-
// empty local buffers
|
|
1773
|
-
<span class="fstat-no" title="function not covered" > dr</span>ain (callback) {
|
|
1774
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: draining queue', this._name);</span>
|
|
1775
|
-
<span class="cstat-no" title="statement not covered" > this._in_drain = false;</span>
|
|
1776
|
-
<span class="cstat-no" title="statement not covered" > this._drained = true;</span>
|
|
1777
|
-
<span class="cstat-no" title="statement not covered" > this.cancel ();</span>
|
|
1778
|
-
<span class="cstat-no" title="statement not covered" > setImmediate (callback);</span>
|
|
1779
|
-
}
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
/////////////////////////////////////////
|
|
1783
|
-
// add element to queue
|
|
1784
|
-
push (payload, opts, callback) {
|
|
1785
|
-
/////////////////////////////////////////
|
|
1786
|
-
if (!callback) {
|
|
1787
|
-
callback = opts;
|
|
1788
|
-
opts = {};
|
|
1789
|
-
}
|
|
1790
|
-
|
|
1791
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (this._in_drain) <span class="cstat-no" title="statement not covered" >return setImmediate (<span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1792
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: push while in drain, return error', this._name);</span>
|
|
1793
|
-
<span class="cstat-no" title="statement not covered" > callback ('drain');</span>
|
|
1794
|
-
});
|
|
1795
|
-
|
|
1796
|
-
// get delay from either params or config
|
|
1797
|
-
var mature = null;
|
|
1798
|
-
|
|
1799
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (opts.mature) {
|
|
1800
|
-
<span class="cstat-no" title="statement not covered" > mature = new Date (opts.mature * 1000);</span>
|
|
1801
|
-
}
|
|
1802
|
-
else {
|
|
1803
|
-
var delay = opts.delay || this.delay;
|
|
1804
|
-
mature = delay ? Queue.nowPlusSecs (delay) : Queue.now ();
|
|
1805
|
-
}
|
|
1806
|
-
|
|
1807
|
-
// build payload
|
|
1808
|
-
var msg = {
|
|
1809
|
-
mature: mature,
|
|
1810
|
-
payload: payload,
|
|
1811
|
-
tries: opts.tries || 0,
|
|
1812
|
-
hdrs: opts.hdrs || {}
|
|
1813
|
-
};
|
|
1814
|
-
|
|
1815
|
-
debug ('%s: about to insert %o', this._name, msg);
|
|
1816
|
-
|
|
1817
|
-
// insert into queue
|
|
1818
|
-
this.insert (msg, (err, result) => {
|
|
1819
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
|
|
1820
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: push : error when pushing elem: %o', this._name, err);</span>
|
|
1821
|
-
<span class="cstat-no" title="statement not covered" > return callback (err);</span>
|
|
1822
|
-
}
|
|
1823
|
-
|
|
1824
|
-
this._stats.incr ('put');
|
|
1825
|
-
this._signal_insertion (mature);
|
|
1826
|
-
|
|
1827
|
-
debug ('%s: elem pushed, given id %s, signalled insertion with mature %s', this._name, result, mature.toISOString ());
|
|
1828
|
-
callback (null, result);
|
|
1829
|
-
})
|
|
1830
|
-
}
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
//////////////////////////////////
|
|
1834
|
-
// obtain element from queue
|
|
1835
|
-
pop (cid, opts, callback) {
|
|
1836
|
-
// TODO fail if too many consumers?
|
|
1837
|
-
|
|
1838
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (this._drained) <span class="cstat-no" title="statement not covered" >return setImmediate (<span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1839
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: pop while drained, return error', this._name);</span>
|
|
1840
|
-
<span class="cstat-no" title="statement not covered" > if (callback) <span class="cstat-no" title="statement not covered" >callback ('drain');</span></span>
|
|
1841
|
-
});
|
|
1842
|
-
|
|
1843
|
-
if (!callback) {
|
|
1844
|
-
callback = opts;
|
|
1845
|
-
opts = {};
|
|
1846
|
-
}
|
|
1847
|
-
|
|
1848
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!opts) {
|
|
1849
|
-
<span class="cstat-no" title="statement not covered" > opts = {};</span>
|
|
1850
|
-
}
|
|
1851
|
-
|
|
1852
|
-
var tid = opts.tid || uuid.v4 ();
|
|
1853
|
-
|
|
1854
|
-
var consumer_data = {
|
|
1855
|
-
tid: tid, // unique id for this transaction
|
|
1856
|
-
cid: cid,
|
|
1857
|
-
since: new Date (), // timestamp of creation of the consumer
|
|
1858
|
-
reserve: opts.reserve, // boolean, is a reserve or a plain pop?
|
|
1859
|
-
callback: callback, // final, outbound callback upon read/timeout
|
|
1860
|
-
cleanup_timeout: null, // timer for timeout cancellation
|
|
1861
|
-
wakeup_timeout: null // timer for rearming, awaiting data available
|
|
1862
|
-
};
|
|
1863
|
-
|
|
1864
|
-
if (opts.timeout) {
|
|
1865
|
-
consumer_data.cleanup_timeout = setTimeout (() => {
|
|
1866
|
-
debug ('%s: pop: timed out %d msecs on transaction %s', this._name, opts.timeout, tid);
|
|
1867
|
-
consumer_data.cleanup_timeout = null;
|
|
1868
|
-
|
|
1869
|
-
if (consumer_data.wakeup_timeout) {
|
|
1870
|
-
clearTimeout (consumer_data.wakeup_timeout);
|
|
1871
|
-
consumer_data.wakeup_timeout = null;
|
|
1872
|
-
}
|
|
1873
|
-
|
|
1874
|
-
this._consumers_by_tid.delete (consumer_data.tid);
|
|
1875
|
-
|
|
1876
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (consumer_data.callback) consumer_data.callback ({
|
|
1877
|
-
timeout: true,
|
|
1878
|
-
tid: consumer_data.tid,
|
|
1879
|
-
since: consumer_data.since
|
|
1880
|
-
});
|
|
1881
|
-
}, opts.timeout);
|
|
1882
|
-
}
|
|
1883
|
-
|
|
1884
|
-
this._consumers_by_tid.set (tid, consumer_data);
|
|
1885
|
-
|
|
1886
|
-
// end here if paused
|
|
1887
|
-
if (this._local_paused == undefined) {
|
|
1888
|
-
debug ('%s: local_paused undefined, read it from stats', this._name);
|
|
1889
|
-
|
|
1890
|
-
this._stats.paused ((err, v) => {
|
|
1891
|
-
this._local_paused = v;
|
|
1892
|
-
|
|
1893
|
-
debug ('%s: local_paused undefined, read paused status from stats:', this._name, v);
|
|
1894
|
-
|
|
1895
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (!this._local_paused) {
|
|
1896
|
-
// attempt a read
|
|
1897
|
-
debug ('%s: pop: calling initial onetime_pop on cid %s, tid %s', this._name, cid, tid);
|
|
1898
|
-
this._onetime_pop (consumer_data);
|
|
1899
|
-
}
|
|
1900
|
-
else {
|
|
1901
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: pop: queue paused for cid %s, tid %s', this._name, cid, tid);</span>
|
|
1902
|
-
}
|
|
1903
|
-
});
|
|
1904
|
-
|
|
1905
|
-
return tid;
|
|
1906
|
-
}
|
|
1907
|
-
else {
|
|
1908
|
-
if (!this._local_paused) {
|
|
1909
|
-
// attempt a read
|
|
1910
|
-
debug ('%s: pop: calling initial onetime_pop on cid %s, tid %s', this._name, cid, tid);
|
|
1911
|
-
this._onetime_pop (consumer_data);
|
|
1912
|
-
}
|
|
1913
|
-
else {
|
|
1914
|
-
debug ('%s: pop: queue paused for cid %s, tid %s', this._name, cid, tid);
|
|
1915
|
-
}
|
|
1916
|
-
|
|
1917
|
-
return tid;
|
|
1918
|
-
}
|
|
1919
|
-
}
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
//////////////////////////////////
|
|
1923
|
-
// high level commit
|
|
1924
|
-
ok (obj, cb) {
|
|
1925
|
-
// allow commit with either _id of full object
|
|
1926
|
-
const id = (obj._id ? obj._id : obj);
|
|
1927
|
-
this.commit (id, (err, res) => {
|
|
1928
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (!err){
|
|
1929
|
-
debug ('%s: ok : committed ok tid %s', this._name, id);
|
|
1930
|
-
this._stats.incr ('commit');
|
|
1931
|
-
}
|
|
1932
|
-
else {
|
|
1933
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: ok : error when committing tid %s: %o', this._name, id, err);</span>
|
|
1934
|
-
}
|
|
1935
|
-
|
|
1936
|
-
cb (err, res);
|
|
1937
|
-
});
|
|
1938
|
-
}
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
//////////////////////////////////
|
|
1942
|
-
// high level rollback
|
|
1943
|
-
ko (obj, next_t, cb) {
|
|
1944
|
-
if (_.isFunction (next_t)) {
|
|
1945
|
-
cb = next_t;
|
|
1946
|
-
next_t = null;
|
|
1947
|
-
}
|
|
1948
|
-
|
|
1949
|
-
// allow rollback with either _id of full object
|
|
1950
|
-
let id = (obj._id ? obj._id : obj);
|
|
1951
|
-
|
|
1952
|
-
if (
|
|
1953
|
-
(obj.tries) &&
|
|
1954
|
-
(this._factory.deadletter_queue ()) &&
|
|
1955
|
-
(this._factory.max_ko ()) &&
|
|
1956
|
-
(obj.tries > this._factory.max_ko ())
|
|
1957
|
-
) {
|
|
1958
|
-
debug ('%s: too many retries (%d), moving to deadletter', obj._id, obj.tries);
|
|
1959
|
-
this._move_to_deadletter (obj, cb);
|
|
1960
|
-
// TODO add from-what-queue to deadletter elements
|
|
1961
|
-
}
|
|
1962
|
-
else {
|
|
1963
|
-
this.rollback (id, next_t, (err, res) => {
|
|
1964
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
|
|
1965
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: ko : error when rolling back tid %s: %o', this._name, id, err);</span>
|
|
1966
|
-
<span class="cstat-no" title="statement not covered" > return cb (err);</span>
|
|
1967
|
-
}
|
|
1968
|
-
|
|
1969
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (res) {
|
|
1970
|
-
var t = new Date (next_t || null);
|
|
1971
|
-
debug ('%s: ko : tid %s rolled back, new mature is %s', this._name, id, t);
|
|
1972
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (!err) this._stats.incr ('rollback');
|
|
1973
|
-
this._signal_insertion (t);
|
|
1974
|
-
}
|
|
1975
|
-
|
|
1976
|
-
cb (null, res);
|
|
1977
|
-
});
|
|
1978
|
-
}
|
|
1979
|
-
}
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
//////////////////////////////////
|
|
1983
|
-
// cancel a waiting consumer
|
|
1984
|
-
cancel (tid) {
|
|
1985
|
-
debug ('%s: cancelling tid %s', this._name, tid);
|
|
1986
|
-
|
|
1987
|
-
if (tid) {
|
|
1988
|
-
let consumer_data = this._consumers_by_tid.get (tid);
|
|
1989
|
-
|
|
1990
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!consumer_data) {
|
|
1991
|
-
// tid does not point to valid consume, NOOP
|
|
1992
|
-
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
1993
|
-
}
|
|
1994
|
-
|
|
1995
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (consumer_data.callback) {
|
|
1996
|
-
// call callback with error-cancelled
|
|
1997
|
-
consumer_data.callback ('cancel');
|
|
1998
|
-
|
|
1999
|
-
// mark cancelled by deleting callback
|
|
2000
|
-
consumer_data.callback = null;
|
|
2001
|
-
}
|
|
2002
|
-
|
|
2003
|
-
// clear timeout if present
|
|
2004
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (consumer_data.cleanup_timeout) {
|
|
2005
|
-
clearTimeout (consumer_data.cleanup_timeout);
|
|
2006
|
-
consumer_data.cleanup_timeout = null;
|
|
2007
|
-
}
|
|
2008
|
-
|
|
2009
|
-
if (consumer_data.wakeup_timeout) {
|
|
2010
|
-
clearTimeout (consumer_data.wakeup_timeout);
|
|
2011
|
-
consumer_data.wakeup_timeout = null;
|
|
2012
|
-
}
|
|
2013
|
-
|
|
2014
|
-
// remove from map
|
|
2015
|
-
this._consumers_by_tid.delete (tid);
|
|
2016
|
-
}
|
|
2017
|
-
else {
|
|
2018
|
-
// cancel all pending stuff
|
|
2019
|
-
this._consumers_by_tid.forEach ((consumer_data, tid) => {
|
|
2020
|
-
debug ('%s: cancelling tid %s (cid %s): start', this._name, tid, consumer_data.cid);
|
|
2021
|
-
|
|
2022
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (consumer_data.callback) {
|
|
2023
|
-
// call callback with error-cancelled
|
|
2024
|
-
consumer_data.callback ('cancel');
|
|
2025
|
-
|
|
2026
|
-
// mark cancelled by deleting callback
|
|
2027
|
-
consumer_data.callback = null;
|
|
2028
|
-
|
|
2029
|
-
debug ('%s: cancelling tid %s (cid %s): callback called and removed', this._name, tid, consumer_data.cid);
|
|
2030
|
-
}
|
|
2031
|
-
|
|
2032
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (consumer_data.cleanup_timeout) {
|
|
2033
|
-
<span class="cstat-no" title="statement not covered" > clearTimeout (consumer_data.cleanup_timeout);</span>
|
|
2034
|
-
<span class="cstat-no" title="statement not covered" > consumer_data.cleanup_timeout = null;</span>
|
|
2035
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: cancelling tid %s (cid %s): cleanup timeout removed', this._name, tid, consumer_data.cid);</span>
|
|
2036
|
-
}
|
|
2037
|
-
|
|
2038
|
-
if (consumer_data.wakeup_timeout) {
|
|
2039
|
-
clearTimeout (consumer_data.wakeup_timeout);
|
|
2040
|
-
consumer_data.wakeup_timeout = null;
|
|
2041
|
-
debug ('%s: cancelling tid %s (cid %s): wakeup timeout removed', this._name, tid, consumer_data.cid);
|
|
2042
|
-
}
|
|
2043
|
-
|
|
2044
|
-
debug ('%s: cancelling tid %s (cid %s): end', this._name, tid, consumer_data.cid);
|
|
2045
|
-
});
|
|
2046
|
-
|
|
2047
|
-
this._consumers_by_tid.clear();
|
|
2048
|
-
}
|
|
2049
|
-
}
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
//////////////////////////////////
|
|
2053
|
-
<span class="fstat-no" title="function not covered" > st</span>atus (cb) {
|
|
2054
|
-
//////////////////////////////////
|
|
2055
|
-
<span class="cstat-no" title="statement not covered" > async.parallel ({</span>
|
|
2056
|
-
type: <span class="fstat-no" title="function not covered" >cb</span> => <span class="cstat-no" title="statement not covered" >cb (null, this.type()),</span>
|
|
2057
|
-
stats: <span class="fstat-no" title="function not covered" >cb</span> => <span class="cstat-no" title="statement not covered" >this.stats (cb),</span>
|
|
2058
|
-
paused: <span class="fstat-no" title="function not covered" >cb</span> => <span class="cstat-no" title="statement not covered" >this.paused (cb),</span>
|
|
2059
|
-
next_mature_t: <span class="fstat-no" title="function not covered" >cb</span> => <span class="cstat-no" title="statement not covered" >this.next_t (cb),</span>
|
|
2060
|
-
size: <span class="fstat-no" title="function not covered" >cb</span> => <span class="cstat-no" title="statement not covered" >this.size (cb),</span>
|
|
2061
|
-
totalSize: <span class="fstat-no" title="function not covered" >cb</span> => <span class="cstat-no" title="statement not covered" >this.totalSize (cb),</span>
|
|
2062
|
-
schedSize: <span class="fstat-no" title="function not covered" >cb</span> => <span class="cstat-no" title="statement not covered" >this.schedSize (cb),</span>
|
|
2063
|
-
resvSize: <span class="fstat-no" title="function not covered" >cb</span> => <span class="cstat-no" title="statement not covered" >this.resvSize (cb)</span>
|
|
2064
|
-
}, cb);
|
|
2065
|
-
}
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
2069
|
-
// private parts
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
_onetime_pop (consumer) {
|
|
2073
|
-
var getOrReserve_cb = (err, result) => {
|
|
2074
|
-
debug ('%s - tid %s: called getOrReserve_cb : err %o, result %o', this._name, consumer.tid, err, result);
|
|
2075
|
-
|
|
2076
|
-
if (!consumer.callback) {
|
|
2077
|
-
// consumer was cancelled mid-flight
|
|
2078
|
-
// do not reinsert if it's using reserve
|
|
2079
|
-
if (!(consumer.reserve)) {
|
|
2080
|
-
return this._reinsert (result);
|
|
2081
|
-
}
|
|
2082
|
-
}
|
|
2083
|
-
|
|
2084
|
-
// TODO eat up errors?
|
|
2085
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
|
|
2086
|
-
// get/reserve in error
|
|
2087
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s - tid %s: getOrReserve_cb in error: err %o', this._name, consumer.tid, err);</span>
|
|
2088
|
-
|
|
2089
|
-
// clean timeout timer
|
|
2090
|
-
<span class="cstat-no" title="statement not covered" > if (consumer.cleanup_timeout) {</span>
|
|
2091
|
-
<span class="cstat-no" title="statement not covered" > clearTimeout (consumer.cleanup_timeout);</span>
|
|
2092
|
-
<span class="cstat-no" title="statement not covered" > consumer.cleanup_timeout = null;</span>
|
|
2093
|
-
}
|
|
2094
|
-
|
|
2095
|
-
// remove consumer from map
|
|
2096
|
-
<span class="cstat-no" title="statement not covered" > this._consumers_by_tid.delete (consumer.tid);</span>
|
|
2097
|
-
|
|
2098
|
-
// call final callback
|
|
2099
|
-
<span class="cstat-no" title="statement not covered" > if (consumer.callback) <span class="cstat-no" title="statement not covered" >consumer.callback (err);</span></span>
|
|
2100
|
-
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2101
|
-
}
|
|
2102
|
-
|
|
2103
|
-
if (!result) {
|
|
2104
|
-
// queue is empty or non-mature: put us to sleep, to-rearm-in-future
|
|
2105
|
-
debug ('%s - tid %s: getOrReserve_cb no result, setting wakeup', this._name, consumer.tid);
|
|
2106
|
-
|
|
2107
|
-
// clear this._next_mature_t if it's in the past
|
|
2108
|
-
if (this._next_mature_t && (this._next_mature_t < new Date().getTime ())) {
|
|
2109
|
-
debug ('%s - tid %s: getOrReserve_cb no result, and this._next_mature_t is in the past, clearing it', this._name, consumer.tid);
|
|
2110
|
-
this._next_mature_t = null;
|
|
2111
|
-
}
|
|
2112
|
-
|
|
2113
|
-
// obtain time to sleep (capped)
|
|
2114
|
-
this._nextDelta (delta_ms => {
|
|
2115
|
-
// TODO cancel previous wakeup_timeout if not null?
|
|
2116
|
-
debug ('%s - tid %s: getOrReserve_cb : set wakeup in %d ms', this._name, consumer.tid, delta_ms);
|
|
2117
|
-
|
|
2118
|
-
consumer.wakeup_timeout = setTimeout (() => {
|
|
2119
|
-
debug ('%s - tid %s: wakey wakey... calling onetime_pop', this._name, consumer.tid);
|
|
2120
|
-
consumer.wakeup_timeout = null;
|
|
2121
|
-
this._onetime_pop (consumer);
|
|
2122
|
-
}, delta_ms);
|
|
2123
|
-
});
|
|
2124
|
-
|
|
2125
|
-
return;
|
|
2126
|
-
}
|
|
2127
|
-
|
|
2128
|
-
// got an element
|
|
2129
|
-
this._next_mature_t = null;
|
|
2130
|
-
this._stats.incr (consumer.reserve ? 'reserve': 'get');
|
|
2131
|
-
|
|
2132
|
-
debug ('%s - tid %s: getOrReserve_cb : got result (%s) %j', this._name, consumer.tid, (consumer.reserve ? 'reserve': 'get'), result);
|
|
2133
|
-
|
|
2134
|
-
// clean timeout timer
|
|
2135
|
-
if (consumer.cleanup_timeout) {
|
|
2136
|
-
clearTimeout (consumer.cleanup_timeout);
|
|
2137
|
-
consumer.cleanup_timeout = null;
|
|
2138
|
-
}
|
|
2139
|
-
|
|
2140
|
-
// remove consumer from map
|
|
2141
|
-
this._consumers_by_tid.delete (consumer.tid);
|
|
2142
|
-
|
|
2143
|
-
// call final callback
|
|
2144
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (consumer.callback) consumer.callback (null, result);
|
|
2145
|
-
return;
|
|
2146
|
-
};
|
|
2147
|
-
|
|
2148
|
-
if (consumer.reserve) {
|
|
2149
|
-
this.reserve (getOrReserve_cb);
|
|
2150
|
-
}
|
|
2151
|
-
else {
|
|
2152
|
-
this.get (getOrReserve_cb);
|
|
2153
|
-
}
|
|
2154
|
-
}
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
/////////////////////////////
|
|
2158
|
-
_nextDelta (cb) {
|
|
2159
|
-
/////////////////////////////
|
|
2160
|
-
if (this._next_mature_t == 0) {
|
|
2161
|
-
debug ('%s: _nextDelta: _next_mature_t is zero, serving default', this._name);
|
|
2162
|
-
return cb (this._pollInterval);
|
|
2163
|
-
}
|
|
2164
|
-
|
|
2165
|
-
if (_.isNull (this._next_mature_t)) {
|
|
2166
|
-
// there's no precalculated value, get it from backend
|
|
2167
|
-
debug ('%s: _nextDelta: null _next_mature_t, getting it from backend',this._name);
|
|
2168
|
-
|
|
2169
|
-
this.next_t ((err, res) => {
|
|
2170
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
|
|
2171
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: _nextDelta error from backend, serving default', this._name);</span>
|
|
2172
|
-
<span class="cstat-no" title="statement not covered" > return cb (this._pollInterval);</span>
|
|
2173
|
-
}
|
|
2174
|
-
|
|
2175
|
-
if (res) {
|
|
2176
|
-
// got a res, use it
|
|
2177
|
-
this._next_mature_t = res;
|
|
2178
|
-
var delta = res - Queue.now ().getTime();
|
|
2179
|
-
if (delta > this._pollInterval) delta = this._pollInterval;
|
|
2180
|
-
debug ('%s: _nextDelta: _next_mature_t from backend is %d, calc delta is %d', this._name, res, delta);
|
|
2181
|
-
return cb (delta);
|
|
2182
|
-
}
|
|
2183
|
-
else {
|
|
2184
|
-
// no res, set _next_mature_t to 0, serve default
|
|
2185
|
-
debug ('%s: _nextDelta: no _next_mature_t from backend, use default', this._name);
|
|
2186
|
-
this._next_mature_t = 0;
|
|
2187
|
-
return cb (this._pollInterval);
|
|
2188
|
-
}
|
|
2189
|
-
});
|
|
2190
|
-
}
|
|
2191
|
-
else {
|
|
2192
|
-
// _next_mature_t is non-zero numeric, use it
|
|
2193
|
-
var delta = this._next_mature_t - Queue.now ().getTime();
|
|
2194
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (delta > this._pollInterval) <span class="cstat-no" title="statement not covered" >delta = this._pollInterval;</span>
|
|
2195
|
-
if (delta < 0) delta = 0;
|
|
2196
|
-
|
|
2197
|
-
debug ('%s: _nextDelta: using _next_mature_t %s, calc delta is %d', this._name, new Date(this._next_mature_t).toISOString (), delta);
|
|
2198
|
-
|
|
2199
|
-
return cb (delta);
|
|
2200
|
-
}
|
|
2201
|
-
}
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
///////////////////////////////////////////////////////////
|
|
2205
|
-
_reinsert (result) {
|
|
2206
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (result) {
|
|
2207
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: reinserting element', this._name);</span>
|
|
2208
|
-
|
|
2209
|
-
<span class="cstat-no" title="statement not covered" > this.insert (result, <span class="fstat-no" title="function not covered" >(e</span>rr, r) => {</span>
|
|
2210
|
-
<span class="cstat-no" title="statement not covered" > if (err) {</span>
|
|
2211
|
-
<span class="cstat-no" title="statement not covered" > debug ('%s: error while reinserting elem: %o', this._name, err);</span>
|
|
2212
|
-
}
|
|
2213
|
-
else {
|
|
2214
|
-
<span class="cstat-no" title="statement not covered" > this._signal_insertion (result.mature);</span>
|
|
2215
|
-
}
|
|
2216
|
-
});
|
|
2217
|
-
}
|
|
2218
|
-
}
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
////////////////////////////////////////
|
|
2222
|
-
_signal_insertion (t) {
|
|
2223
|
-
this._signaller.signalInsertion (t);
|
|
2224
|
-
}
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
/////////////////////////////////////////////
|
|
2228
|
-
_move_to_deadletter (obj, cb) {
|
|
2229
|
-
// commit and move to deadletter
|
|
2230
|
-
// ALSO NOT IN deadletter queue (to void loop)
|
|
2231
|
-
// commit element in origin queue, push in deadletter afterwards
|
|
2232
|
-
this.commit (obj._id, err => {
|
|
2233
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
|
|
2234
|
-
<span class="cstat-no" title="statement not covered" > debug ('while committing %s prior to moving to deadletter: %j', obj._id, err);</span>
|
|
2235
|
-
<span class="cstat-no" title="statement not covered" > return cb (err);</span>
|
|
2236
|
-
}
|
|
2237
|
-
|
|
2238
|
-
this._factory.deadletter_queue ().push (obj.payload, (err, res) => {
|
|
2239
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
|
|
2240
|
-
<span class="cstat-no" title="statement not covered" > debug ('while moving %s to deadletter: %j', obj._id, err);</span>
|
|
2241
|
-
<span class="cstat-no" title="statement not covered" > return cb (err, 'deadletter');</span>
|
|
2242
|
-
}
|
|
2243
|
-
else {
|
|
2244
|
-
debug ('moved %s to deadletter with _id %s', obj._id, res);
|
|
2245
|
-
return cb (null, 'deadletter');
|
|
2246
|
-
}
|
|
2247
|
-
});
|
|
2248
|
-
});
|
|
2249
|
-
}
|
|
2250
|
-
}
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
module.exports = Queue;
|
|
2254
|
-
</pre></td></tr>
|
|
2255
|
-
</table></pre>
|
|
2256
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
2257
|
-
</div><!-- /wrapper -->
|
|
2258
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
2259
|
-
Code coverage
|
|
2260
|
-
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Dec 03 2021 12:14:40 GMT+0100 (GMT+01:00)
|
|
2261
|
-
</div>
|
|
2262
|
-
</div>
|
|
2263
|
-
<script src="../prettify.js"></script>
|
|
2264
|
-
<script>
|
|
2265
|
-
window.onload = function () {
|
|
2266
|
-
if (typeof prettyPrint === 'function') {
|
|
2267
|
-
prettyPrint();
|
|
2268
|
-
}
|
|
2269
|
-
};
|
|
2270
|
-
</script>
|
|
2271
|
-
<script src="../sorter.js"></script>
|
|
2272
|
-
<script src="../block-navigation.js"></script>
|
|
2273
|
-
</body>
|
|
2274
|
-
</html>
|