@sidhujag/sysweb3-keyring 1.0.547 → 1.0.549
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/{dist/cjs → cjs}/providers.js +1 -64
- package/cjs/providers.js.map +1 -0
- package/{dist/cjs → cjs}/transactions/ethereum.js +1 -16
- package/cjs/transactions/ethereum.js.map +1 -0
- package/package.json +2 -30
- package/{dist/types → types}/providers.d.ts +0 -8
- package/{dist/types → types}/transactions/ethereum.d.ts +2 -2
- package/{dist/types → types}/types.d.ts +2 -2
- package/coverage/clover.xml +0 -2875
- package/coverage/coverage-final.json +0 -29468
- package/coverage/lcov-report/base.css +0 -354
- package/coverage/lcov-report/block-navigation.js +0 -85
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -320
- package/coverage/lcov-report/prettify.css +0 -101
- package/coverage/lcov-report/prettify.js +0 -1008
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -191
- package/coverage/lcov-report/src/index.html +0 -276
- package/coverage/lcov-report/src/index.ts.html +0 -114
- package/coverage/lcov-report/src/initial-state.ts.html +0 -558
- package/coverage/lcov-report/src/keyring-manager.ts.html +0 -6279
- package/coverage/lcov-report/src/ledger/bitcoin_client/index.html +0 -178
- package/coverage/lcov-report/src/ledger/bitcoin_client/index.ts.html +0 -144
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/appClient.ts.html +0 -1560
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/bip32.ts.html +0 -276
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/buffertools.ts.html +0 -495
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/clientCommands.ts.html +0 -1138
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/index.html +0 -363
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/merkelizedPsbt.ts.html +0 -289
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/merkle.ts.html +0 -486
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/merkleMap.ts.html +0 -240
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/policy.ts.html +0 -342
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/psbtv2.ts.html +0 -2388
- package/coverage/lcov-report/src/ledger/bitcoin_client/lib/varint.ts.html +0 -453
- package/coverage/lcov-report/src/ledger/consts.ts.html +0 -177
- package/coverage/lcov-report/src/ledger/index.html +0 -216
- package/coverage/lcov-report/src/ledger/index.ts.html +0 -1371
- package/coverage/lcov-report/src/ledger/utils.ts.html +0 -102
- package/coverage/lcov-report/src/signers.ts.html +0 -591
- package/coverage/lcov-report/src/storage.ts.html +0 -198
- package/coverage/lcov-report/src/transactions/ethereum.ts.html +0 -5826
- package/coverage/lcov-report/src/transactions/index.html +0 -216
- package/coverage/lcov-report/src/transactions/index.ts.html +0 -93
- package/coverage/lcov-report/src/transactions/syscoin.ts.html +0 -1521
- package/coverage/lcov-report/src/trezor/index.html +0 -176
- package/coverage/lcov-report/src/trezor/index.ts.html +0 -2655
- package/coverage/lcov-report/src/types.ts.html +0 -1443
- package/coverage/lcov-report/src/utils/derivation-paths.ts.html +0 -486
- package/coverage/lcov-report/src/utils/index.html +0 -196
- package/coverage/lcov-report/src/utils/psbt.ts.html +0 -159
- package/coverage/lcov-report/test/helpers/constants.ts.html +0 -627
- package/coverage/lcov-report/test/helpers/index.html +0 -176
- package/coverage/lcov.info +0 -4832
- package/dist/cjs/providers.js.map +0 -1
- package/dist/cjs/transactions/ethereum.js.map +0 -1
- package/dist/package.json +0 -50
- package/examples/basic-usage.js +0 -140
- package/jest.config.js +0 -32
- package/readme.md +0 -201
- package/src/declare.d.ts +0 -7
- package/src/errorUtils.ts +0 -83
- package/src/hardware-wallet-manager.ts +0 -655
- package/src/index.ts +0 -12
- package/src/initial-state.ts +0 -108
- package/src/keyring-manager.ts +0 -2698
- package/src/ledger/bitcoin_client/index.ts +0 -19
- package/src/ledger/bitcoin_client/lib/appClient.ts +0 -405
- package/src/ledger/bitcoin_client/lib/bip32.ts +0 -61
- package/src/ledger/bitcoin_client/lib/buffertools.ts +0 -134
- package/src/ledger/bitcoin_client/lib/clientCommands.ts +0 -356
- package/src/ledger/bitcoin_client/lib/constants.ts +0 -12
- package/src/ledger/bitcoin_client/lib/merkelizedPsbt.ts +0 -65
- package/src/ledger/bitcoin_client/lib/merkle.ts +0 -136
- package/src/ledger/bitcoin_client/lib/merkleMap.ts +0 -49
- package/src/ledger/bitcoin_client/lib/policy.ts +0 -91
- package/src/ledger/bitcoin_client/lib/psbtv2.ts +0 -768
- package/src/ledger/bitcoin_client/lib/varint.ts +0 -120
- package/src/ledger/consts.ts +0 -3
- package/src/ledger/index.ts +0 -685
- package/src/ledger/types.ts +0 -74
- package/src/network-utils.ts +0 -99
- package/src/providers.ts +0 -345
- package/src/signers.ts +0 -158
- package/src/storage.ts +0 -63
- package/src/transactions/__tests__/integration.test.ts +0 -303
- package/src/transactions/__tests__/syscoin.test.ts +0 -409
- package/src/transactions/ethereum.ts +0 -2503
- package/src/transactions/index.ts +0 -2
- package/src/transactions/syscoin.ts +0 -542
- package/src/trezor/index.ts +0 -1050
- package/src/types.ts +0 -366
- package/src/utils/derivation-paths.ts +0 -133
- package/src/utils/psbt.ts +0 -24
- package/src/utils.ts +0 -191
- package/test/README.md +0 -158
- package/test/__mocks__/ledger-mock.js +0 -20
- package/test/__mocks__/trezor-mock.js +0 -75
- package/test/cleanup-summary.md +0 -167
- package/test/helpers/README.md +0 -78
- package/test/helpers/constants.ts +0 -79
- package/test/helpers/setup.ts +0 -714
- package/test/integration/import-validation.spec.ts +0 -588
- package/test/unit/hardware/ledger.spec.ts +0 -869
- package/test/unit/hardware/trezor.spec.ts +0 -828
- package/test/unit/keyring-manager/account-management.spec.ts +0 -970
- package/test/unit/keyring-manager/import-watchonly.spec.ts +0 -181
- package/test/unit/keyring-manager/import-wif.spec.ts +0 -126
- package/test/unit/keyring-manager/initialization.spec.ts +0 -782
- package/test/unit/keyring-manager/key-derivation.spec.ts +0 -996
- package/test/unit/keyring-manager/security.spec.ts +0 -505
- package/test/unit/keyring-manager/state-management.spec.ts +0 -375
- package/test/unit/network/network-management.spec.ts +0 -372
- package/test/unit/transactions/ethereum-transactions.spec.ts +0 -382
- package/test/unit/transactions/syscoin-transactions.spec.ts +0 -615
- package/tsconfig.json +0 -14
- /package/{dist/README.md → README.md} +0 -0
- /package/{dist/cjs → cjs}/errorUtils.js +0 -0
- /package/{dist/cjs → cjs}/errorUtils.js.map +0 -0
- /package/{dist/cjs → cjs}/hardware-wallet-manager.js +0 -0
- /package/{dist/cjs → cjs}/hardware-wallet-manager.js.map +0 -0
- /package/{dist/cjs → cjs}/index.js +0 -0
- /package/{dist/cjs → cjs}/index.js.map +0 -0
- /package/{dist/cjs → cjs}/initial-state.js +0 -0
- /package/{dist/cjs → cjs}/initial-state.js.map +0 -0
- /package/{dist/cjs → cjs}/keyring-manager.js +0 -0
- /package/{dist/cjs → cjs}/keyring-manager.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/index.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/index.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/appClient.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/appClient.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/bip32.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/bip32.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/buffertools.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/buffertools.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/clientCommands.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/clientCommands.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/constants.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/constants.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkelizedPsbt.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkelizedPsbt.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkle.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkle.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkleMap.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/merkleMap.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/policy.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/policy.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/psbtv2.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/psbtv2.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/varint.js +0 -0
- /package/{dist/cjs → cjs}/ledger/bitcoin_client/lib/varint.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/consts.js +0 -0
- /package/{dist/cjs → cjs}/ledger/consts.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/index.js +0 -0
- /package/{dist/cjs → cjs}/ledger/index.js.map +0 -0
- /package/{dist/cjs → cjs}/ledger/types.js +0 -0
- /package/{dist/cjs → cjs}/ledger/types.js.map +0 -0
- /package/{dist/cjs → cjs}/network-utils.js +0 -0
- /package/{dist/cjs → cjs}/network-utils.js.map +0 -0
- /package/{dist/cjs → cjs}/signers.js +0 -0
- /package/{dist/cjs → cjs}/signers.js.map +0 -0
- /package/{dist/cjs → cjs}/storage.js +0 -0
- /package/{dist/cjs → cjs}/storage.js.map +0 -0
- /package/{dist/cjs → cjs}/transactions/__tests__/integration.test.js +0 -0
- /package/{dist/cjs → cjs}/transactions/__tests__/integration.test.js.map +0 -0
- /package/{dist/cjs → cjs}/transactions/__tests__/syscoin.test.js +0 -0
- /package/{dist/cjs → cjs}/transactions/__tests__/syscoin.test.js.map +0 -0
- /package/{dist/cjs → cjs}/transactions/index.js +0 -0
- /package/{dist/cjs → cjs}/transactions/index.js.map +0 -0
- /package/{dist/cjs → cjs}/transactions/syscoin.js +0 -0
- /package/{dist/cjs → cjs}/transactions/syscoin.js.map +0 -0
- /package/{dist/cjs → cjs}/trezor/index.js +0 -0
- /package/{dist/cjs → cjs}/trezor/index.js.map +0 -0
- /package/{dist/cjs → cjs}/types.js +0 -0
- /package/{dist/cjs → cjs}/types.js.map +0 -0
- /package/{dist/cjs → cjs}/utils/derivation-paths.js +0 -0
- /package/{dist/cjs → cjs}/utils/derivation-paths.js.map +0 -0
- /package/{dist/cjs → cjs}/utils/psbt.js +0 -0
- /package/{dist/cjs → cjs}/utils/psbt.js.map +0 -0
- /package/{dist/cjs → cjs}/utils.js +0 -0
- /package/{dist/cjs → cjs}/utils.js.map +0 -0
- /package/{dist/types → types}/errorUtils.d.ts +0 -0
- /package/{dist/types → types}/hardware-wallet-manager.d.ts +0 -0
- /package/{dist/types → types}/index.d.ts +0 -0
- /package/{dist/types → types}/initial-state.d.ts +0 -0
- /package/{dist/types → types}/keyring-manager.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/index.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/appClient.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/bip32.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/buffertools.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/clientCommands.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/constants.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/merkelizedPsbt.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/merkle.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/merkleMap.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/policy.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/psbtv2.d.ts +0 -0
- /package/{dist/types → types}/ledger/bitcoin_client/lib/varint.d.ts +0 -0
- /package/{dist/types → types}/ledger/consts.d.ts +0 -0
- /package/{dist/types → types}/ledger/index.d.ts +0 -0
- /package/{dist/types → types}/ledger/types.d.ts +0 -0
- /package/{dist/types → types}/network-utils.d.ts +0 -0
- /package/{dist/types → types}/signers.d.ts +0 -0
- /package/{dist/types → types}/storage.d.ts +0 -0
- /package/{dist/types → types}/transactions/__tests__/integration.test.d.ts +0 -0
- /package/{dist/types → types}/transactions/__tests__/syscoin.test.d.ts +0 -0
- /package/{dist/types → types}/transactions/index.d.ts +0 -0
- /package/{dist/types → types}/transactions/syscoin.d.ts +0 -0
- /package/{dist/types → types}/trezor/index.d.ts +0 -0
- /package/{dist/types → types}/utils/derivation-paths.d.ts +0 -0
- /package/{dist/types → types}/utils/psbt.d.ts +0 -0
- /package/{dist/types → types}/utils.d.ts +0 -0
|
@@ -1,2655 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<title>Code coverage report for src/trezor/index.ts</title>
|
|
5
|
-
<meta charset="utf-8" />
|
|
6
|
-
<link rel="stylesheet" href="../../prettify.css" />
|
|
7
|
-
<link rel="stylesheet" href="../../base.css" />
|
|
8
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
9
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
10
|
-
<style type="text/css">
|
|
11
|
-
.coverage-summary .sorter {
|
|
12
|
-
background-image: url(../../sort-arrow-sprite.png);
|
|
13
|
-
}
|
|
14
|
-
</style>
|
|
15
|
-
</head>
|
|
16
|
-
|
|
17
|
-
<body>
|
|
18
|
-
<div class="wrapper">
|
|
19
|
-
<div class="pad1">
|
|
20
|
-
<h1>
|
|
21
|
-
<a href="../../index.html">All files</a> /
|
|
22
|
-
<a href="index.html">src/trezor</a> index.ts
|
|
23
|
-
</h1>
|
|
24
|
-
<div class="clearfix">
|
|
25
|
-
<div class="fl pad1y space-right2">
|
|
26
|
-
<span class="strong">16.23% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class="fraction">38/234</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
<div class="fl pad1y space-right2">
|
|
32
|
-
<span class="strong">4.16% </span>
|
|
33
|
-
<span class="quiet">Branches</span>
|
|
34
|
-
<span class="fraction">4/96</span>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<div class="fl pad1y space-right2">
|
|
38
|
-
<span class="strong">7.89% </span>
|
|
39
|
-
<span class="quiet">Functions</span>
|
|
40
|
-
<span class="fraction">3/38</span>
|
|
41
|
-
</div>
|
|
42
|
-
|
|
43
|
-
<div class="fl pad1y space-right2">
|
|
44
|
-
<span class="strong">16.88% </span>
|
|
45
|
-
<span class="quiet">Lines</span>
|
|
46
|
-
<span class="fraction">38/225</span>
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
<p class="quiet">
|
|
50
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block,
|
|
51
|
-
<em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
52
|
-
</p>
|
|
53
|
-
<template id="filterTemplate">
|
|
54
|
-
<div class="quiet">
|
|
55
|
-
Filter:
|
|
56
|
-
<input type="search" id="fileSearch" />
|
|
57
|
-
</div>
|
|
58
|
-
</template>
|
|
59
|
-
</div>
|
|
60
|
-
<div class="status-line low"></div>
|
|
61
|
-
<pre><table class="coverage">
|
|
62
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
63
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
64
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
65
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
66
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
67
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
68
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
69
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
70
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
71
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
72
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
73
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
74
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
75
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
76
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
77
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
78
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
79
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
80
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
81
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
82
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
83
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
84
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
85
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
86
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
87
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
88
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
89
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
90
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
91
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
92
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
93
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
94
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
95
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
96
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
97
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
98
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
99
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
100
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
101
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
102
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
103
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
104
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
105
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
106
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
107
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
108
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
109
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
110
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
111
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
112
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
113
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
114
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
115
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
116
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
117
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
118
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
119
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
120
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
121
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
122
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
123
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
124
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
125
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
126
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
127
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
128
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
129
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
130
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
131
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
132
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
133
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
134
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
135
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
136
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
137
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
138
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
139
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
140
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
141
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
142
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
143
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
144
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
145
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
146
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
147
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
148
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
149
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
150
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
151
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
152
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
153
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
154
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
155
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
156
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
157
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
158
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
159
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
160
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
161
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
162
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
163
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
164
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
165
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
166
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
167
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
168
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
169
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
170
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
171
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
172
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
173
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
174
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
175
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
176
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
177
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
178
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
179
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
180
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
181
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
182
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
183
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
184
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
185
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
186
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
187
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
188
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
189
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
190
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
191
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
192
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
193
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
194
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
195
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
196
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
197
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
198
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
199
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
200
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
201
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
202
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
203
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
204
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
205
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
206
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
207
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
208
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
209
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
210
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
211
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
212
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
213
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
214
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
215
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
216
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
217
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
218
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
219
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
220
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
221
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
222
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
223
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
224
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
225
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
226
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
227
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
228
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
229
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
230
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
231
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
232
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
233
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
234
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
235
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
236
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
237
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
238
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
239
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
240
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
241
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
242
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
243
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
244
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
245
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
246
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
247
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
248
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
249
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
250
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
251
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
252
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
253
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
254
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
255
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
256
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
257
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
258
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
259
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
260
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
261
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
262
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
263
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
264
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
265
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
266
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
267
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
268
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
269
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
270
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
271
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
272
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
273
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
274
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
275
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
276
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
277
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
278
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
279
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
280
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
281
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
282
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
283
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
284
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
285
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
286
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
287
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
288
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
289
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
290
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
291
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
292
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
293
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
294
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
295
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
296
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
297
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
298
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
299
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
300
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
301
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
302
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
303
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
304
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
305
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
306
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
307
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
308
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
309
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
310
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
311
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
312
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
313
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
314
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
315
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
316
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
317
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
318
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
319
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
320
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
321
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
322
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
323
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
324
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
325
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
326
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
327
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
328
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
329
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
330
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
331
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
332
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
333
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
334
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
335
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
336
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
337
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
338
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
339
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
340
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
341
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
342
|
-
<a name='L281'></a><a href='#L281'>281</a>
|
|
343
|
-
<a name='L282'></a><a href='#L282'>282</a>
|
|
344
|
-
<a name='L283'></a><a href='#L283'>283</a>
|
|
345
|
-
<a name='L284'></a><a href='#L284'>284</a>
|
|
346
|
-
<a name='L285'></a><a href='#L285'>285</a>
|
|
347
|
-
<a name='L286'></a><a href='#L286'>286</a>
|
|
348
|
-
<a name='L287'></a><a href='#L287'>287</a>
|
|
349
|
-
<a name='L288'></a><a href='#L288'>288</a>
|
|
350
|
-
<a name='L289'></a><a href='#L289'>289</a>
|
|
351
|
-
<a name='L290'></a><a href='#L290'>290</a>
|
|
352
|
-
<a name='L291'></a><a href='#L291'>291</a>
|
|
353
|
-
<a name='L292'></a><a href='#L292'>292</a>
|
|
354
|
-
<a name='L293'></a><a href='#L293'>293</a>
|
|
355
|
-
<a name='L294'></a><a href='#L294'>294</a>
|
|
356
|
-
<a name='L295'></a><a href='#L295'>295</a>
|
|
357
|
-
<a name='L296'></a><a href='#L296'>296</a>
|
|
358
|
-
<a name='L297'></a><a href='#L297'>297</a>
|
|
359
|
-
<a name='L298'></a><a href='#L298'>298</a>
|
|
360
|
-
<a name='L299'></a><a href='#L299'>299</a>
|
|
361
|
-
<a name='L300'></a><a href='#L300'>300</a>
|
|
362
|
-
<a name='L301'></a><a href='#L301'>301</a>
|
|
363
|
-
<a name='L302'></a><a href='#L302'>302</a>
|
|
364
|
-
<a name='L303'></a><a href='#L303'>303</a>
|
|
365
|
-
<a name='L304'></a><a href='#L304'>304</a>
|
|
366
|
-
<a name='L305'></a><a href='#L305'>305</a>
|
|
367
|
-
<a name='L306'></a><a href='#L306'>306</a>
|
|
368
|
-
<a name='L307'></a><a href='#L307'>307</a>
|
|
369
|
-
<a name='L308'></a><a href='#L308'>308</a>
|
|
370
|
-
<a name='L309'></a><a href='#L309'>309</a>
|
|
371
|
-
<a name='L310'></a><a href='#L310'>310</a>
|
|
372
|
-
<a name='L311'></a><a href='#L311'>311</a>
|
|
373
|
-
<a name='L312'></a><a href='#L312'>312</a>
|
|
374
|
-
<a name='L313'></a><a href='#L313'>313</a>
|
|
375
|
-
<a name='L314'></a><a href='#L314'>314</a>
|
|
376
|
-
<a name='L315'></a><a href='#L315'>315</a>
|
|
377
|
-
<a name='L316'></a><a href='#L316'>316</a>
|
|
378
|
-
<a name='L317'></a><a href='#L317'>317</a>
|
|
379
|
-
<a name='L318'></a><a href='#L318'>318</a>
|
|
380
|
-
<a name='L319'></a><a href='#L319'>319</a>
|
|
381
|
-
<a name='L320'></a><a href='#L320'>320</a>
|
|
382
|
-
<a name='L321'></a><a href='#L321'>321</a>
|
|
383
|
-
<a name='L322'></a><a href='#L322'>322</a>
|
|
384
|
-
<a name='L323'></a><a href='#L323'>323</a>
|
|
385
|
-
<a name='L324'></a><a href='#L324'>324</a>
|
|
386
|
-
<a name='L325'></a><a href='#L325'>325</a>
|
|
387
|
-
<a name='L326'></a><a href='#L326'>326</a>
|
|
388
|
-
<a name='L327'></a><a href='#L327'>327</a>
|
|
389
|
-
<a name='L328'></a><a href='#L328'>328</a>
|
|
390
|
-
<a name='L329'></a><a href='#L329'>329</a>
|
|
391
|
-
<a name='L330'></a><a href='#L330'>330</a>
|
|
392
|
-
<a name='L331'></a><a href='#L331'>331</a>
|
|
393
|
-
<a name='L332'></a><a href='#L332'>332</a>
|
|
394
|
-
<a name='L333'></a><a href='#L333'>333</a>
|
|
395
|
-
<a name='L334'></a><a href='#L334'>334</a>
|
|
396
|
-
<a name='L335'></a><a href='#L335'>335</a>
|
|
397
|
-
<a name='L336'></a><a href='#L336'>336</a>
|
|
398
|
-
<a name='L337'></a><a href='#L337'>337</a>
|
|
399
|
-
<a name='L338'></a><a href='#L338'>338</a>
|
|
400
|
-
<a name='L339'></a><a href='#L339'>339</a>
|
|
401
|
-
<a name='L340'></a><a href='#L340'>340</a>
|
|
402
|
-
<a name='L341'></a><a href='#L341'>341</a>
|
|
403
|
-
<a name='L342'></a><a href='#L342'>342</a>
|
|
404
|
-
<a name='L343'></a><a href='#L343'>343</a>
|
|
405
|
-
<a name='L344'></a><a href='#L344'>344</a>
|
|
406
|
-
<a name='L345'></a><a href='#L345'>345</a>
|
|
407
|
-
<a name='L346'></a><a href='#L346'>346</a>
|
|
408
|
-
<a name='L347'></a><a href='#L347'>347</a>
|
|
409
|
-
<a name='L348'></a><a href='#L348'>348</a>
|
|
410
|
-
<a name='L349'></a><a href='#L349'>349</a>
|
|
411
|
-
<a name='L350'></a><a href='#L350'>350</a>
|
|
412
|
-
<a name='L351'></a><a href='#L351'>351</a>
|
|
413
|
-
<a name='L352'></a><a href='#L352'>352</a>
|
|
414
|
-
<a name='L353'></a><a href='#L353'>353</a>
|
|
415
|
-
<a name='L354'></a><a href='#L354'>354</a>
|
|
416
|
-
<a name='L355'></a><a href='#L355'>355</a>
|
|
417
|
-
<a name='L356'></a><a href='#L356'>356</a>
|
|
418
|
-
<a name='L357'></a><a href='#L357'>357</a>
|
|
419
|
-
<a name='L358'></a><a href='#L358'>358</a>
|
|
420
|
-
<a name='L359'></a><a href='#L359'>359</a>
|
|
421
|
-
<a name='L360'></a><a href='#L360'>360</a>
|
|
422
|
-
<a name='L361'></a><a href='#L361'>361</a>
|
|
423
|
-
<a name='L362'></a><a href='#L362'>362</a>
|
|
424
|
-
<a name='L363'></a><a href='#L363'>363</a>
|
|
425
|
-
<a name='L364'></a><a href='#L364'>364</a>
|
|
426
|
-
<a name='L365'></a><a href='#L365'>365</a>
|
|
427
|
-
<a name='L366'></a><a href='#L366'>366</a>
|
|
428
|
-
<a name='L367'></a><a href='#L367'>367</a>
|
|
429
|
-
<a name='L368'></a><a href='#L368'>368</a>
|
|
430
|
-
<a name='L369'></a><a href='#L369'>369</a>
|
|
431
|
-
<a name='L370'></a><a href='#L370'>370</a>
|
|
432
|
-
<a name='L371'></a><a href='#L371'>371</a>
|
|
433
|
-
<a name='L372'></a><a href='#L372'>372</a>
|
|
434
|
-
<a name='L373'></a><a href='#L373'>373</a>
|
|
435
|
-
<a name='L374'></a><a href='#L374'>374</a>
|
|
436
|
-
<a name='L375'></a><a href='#L375'>375</a>
|
|
437
|
-
<a name='L376'></a><a href='#L376'>376</a>
|
|
438
|
-
<a name='L377'></a><a href='#L377'>377</a>
|
|
439
|
-
<a name='L378'></a><a href='#L378'>378</a>
|
|
440
|
-
<a name='L379'></a><a href='#L379'>379</a>
|
|
441
|
-
<a name='L380'></a><a href='#L380'>380</a>
|
|
442
|
-
<a name='L381'></a><a href='#L381'>381</a>
|
|
443
|
-
<a name='L382'></a><a href='#L382'>382</a>
|
|
444
|
-
<a name='L383'></a><a href='#L383'>383</a>
|
|
445
|
-
<a name='L384'></a><a href='#L384'>384</a>
|
|
446
|
-
<a name='L385'></a><a href='#L385'>385</a>
|
|
447
|
-
<a name='L386'></a><a href='#L386'>386</a>
|
|
448
|
-
<a name='L387'></a><a href='#L387'>387</a>
|
|
449
|
-
<a name='L388'></a><a href='#L388'>388</a>
|
|
450
|
-
<a name='L389'></a><a href='#L389'>389</a>
|
|
451
|
-
<a name='L390'></a><a href='#L390'>390</a>
|
|
452
|
-
<a name='L391'></a><a href='#L391'>391</a>
|
|
453
|
-
<a name='L392'></a><a href='#L392'>392</a>
|
|
454
|
-
<a name='L393'></a><a href='#L393'>393</a>
|
|
455
|
-
<a name='L394'></a><a href='#L394'>394</a>
|
|
456
|
-
<a name='L395'></a><a href='#L395'>395</a>
|
|
457
|
-
<a name='L396'></a><a href='#L396'>396</a>
|
|
458
|
-
<a name='L397'></a><a href='#L397'>397</a>
|
|
459
|
-
<a name='L398'></a><a href='#L398'>398</a>
|
|
460
|
-
<a name='L399'></a><a href='#L399'>399</a>
|
|
461
|
-
<a name='L400'></a><a href='#L400'>400</a>
|
|
462
|
-
<a name='L401'></a><a href='#L401'>401</a>
|
|
463
|
-
<a name='L402'></a><a href='#L402'>402</a>
|
|
464
|
-
<a name='L403'></a><a href='#L403'>403</a>
|
|
465
|
-
<a name='L404'></a><a href='#L404'>404</a>
|
|
466
|
-
<a name='L405'></a><a href='#L405'>405</a>
|
|
467
|
-
<a name='L406'></a><a href='#L406'>406</a>
|
|
468
|
-
<a name='L407'></a><a href='#L407'>407</a>
|
|
469
|
-
<a name='L408'></a><a href='#L408'>408</a>
|
|
470
|
-
<a name='L409'></a><a href='#L409'>409</a>
|
|
471
|
-
<a name='L410'></a><a href='#L410'>410</a>
|
|
472
|
-
<a name='L411'></a><a href='#L411'>411</a>
|
|
473
|
-
<a name='L412'></a><a href='#L412'>412</a>
|
|
474
|
-
<a name='L413'></a><a href='#L413'>413</a>
|
|
475
|
-
<a name='L414'></a><a href='#L414'>414</a>
|
|
476
|
-
<a name='L415'></a><a href='#L415'>415</a>
|
|
477
|
-
<a name='L416'></a><a href='#L416'>416</a>
|
|
478
|
-
<a name='L417'></a><a href='#L417'>417</a>
|
|
479
|
-
<a name='L418'></a><a href='#L418'>418</a>
|
|
480
|
-
<a name='L419'></a><a href='#L419'>419</a>
|
|
481
|
-
<a name='L420'></a><a href='#L420'>420</a>
|
|
482
|
-
<a name='L421'></a><a href='#L421'>421</a>
|
|
483
|
-
<a name='L422'></a><a href='#L422'>422</a>
|
|
484
|
-
<a name='L423'></a><a href='#L423'>423</a>
|
|
485
|
-
<a name='L424'></a><a href='#L424'>424</a>
|
|
486
|
-
<a name='L425'></a><a href='#L425'>425</a>
|
|
487
|
-
<a name='L426'></a><a href='#L426'>426</a>
|
|
488
|
-
<a name='L427'></a><a href='#L427'>427</a>
|
|
489
|
-
<a name='L428'></a><a href='#L428'>428</a>
|
|
490
|
-
<a name='L429'></a><a href='#L429'>429</a>
|
|
491
|
-
<a name='L430'></a><a href='#L430'>430</a>
|
|
492
|
-
<a name='L431'></a><a href='#L431'>431</a>
|
|
493
|
-
<a name='L432'></a><a href='#L432'>432</a>
|
|
494
|
-
<a name='L433'></a><a href='#L433'>433</a>
|
|
495
|
-
<a name='L434'></a><a href='#L434'>434</a>
|
|
496
|
-
<a name='L435'></a><a href='#L435'>435</a>
|
|
497
|
-
<a name='L436'></a><a href='#L436'>436</a>
|
|
498
|
-
<a name='L437'></a><a href='#L437'>437</a>
|
|
499
|
-
<a name='L438'></a><a href='#L438'>438</a>
|
|
500
|
-
<a name='L439'></a><a href='#L439'>439</a>
|
|
501
|
-
<a name='L440'></a><a href='#L440'>440</a>
|
|
502
|
-
<a name='L441'></a><a href='#L441'>441</a>
|
|
503
|
-
<a name='L442'></a><a href='#L442'>442</a>
|
|
504
|
-
<a name='L443'></a><a href='#L443'>443</a>
|
|
505
|
-
<a name='L444'></a><a href='#L444'>444</a>
|
|
506
|
-
<a name='L445'></a><a href='#L445'>445</a>
|
|
507
|
-
<a name='L446'></a><a href='#L446'>446</a>
|
|
508
|
-
<a name='L447'></a><a href='#L447'>447</a>
|
|
509
|
-
<a name='L448'></a><a href='#L448'>448</a>
|
|
510
|
-
<a name='L449'></a><a href='#L449'>449</a>
|
|
511
|
-
<a name='L450'></a><a href='#L450'>450</a>
|
|
512
|
-
<a name='L451'></a><a href='#L451'>451</a>
|
|
513
|
-
<a name='L452'></a><a href='#L452'>452</a>
|
|
514
|
-
<a name='L453'></a><a href='#L453'>453</a>
|
|
515
|
-
<a name='L454'></a><a href='#L454'>454</a>
|
|
516
|
-
<a name='L455'></a><a href='#L455'>455</a>
|
|
517
|
-
<a name='L456'></a><a href='#L456'>456</a>
|
|
518
|
-
<a name='L457'></a><a href='#L457'>457</a>
|
|
519
|
-
<a name='L458'></a><a href='#L458'>458</a>
|
|
520
|
-
<a name='L459'></a><a href='#L459'>459</a>
|
|
521
|
-
<a name='L460'></a><a href='#L460'>460</a>
|
|
522
|
-
<a name='L461'></a><a href='#L461'>461</a>
|
|
523
|
-
<a name='L462'></a><a href='#L462'>462</a>
|
|
524
|
-
<a name='L463'></a><a href='#L463'>463</a>
|
|
525
|
-
<a name='L464'></a><a href='#L464'>464</a>
|
|
526
|
-
<a name='L465'></a><a href='#L465'>465</a>
|
|
527
|
-
<a name='L466'></a><a href='#L466'>466</a>
|
|
528
|
-
<a name='L467'></a><a href='#L467'>467</a>
|
|
529
|
-
<a name='L468'></a><a href='#L468'>468</a>
|
|
530
|
-
<a name='L469'></a><a href='#L469'>469</a>
|
|
531
|
-
<a name='L470'></a><a href='#L470'>470</a>
|
|
532
|
-
<a name='L471'></a><a href='#L471'>471</a>
|
|
533
|
-
<a name='L472'></a><a href='#L472'>472</a>
|
|
534
|
-
<a name='L473'></a><a href='#L473'>473</a>
|
|
535
|
-
<a name='L474'></a><a href='#L474'>474</a>
|
|
536
|
-
<a name='L475'></a><a href='#L475'>475</a>
|
|
537
|
-
<a name='L476'></a><a href='#L476'>476</a>
|
|
538
|
-
<a name='L477'></a><a href='#L477'>477</a>
|
|
539
|
-
<a name='L478'></a><a href='#L478'>478</a>
|
|
540
|
-
<a name='L479'></a><a href='#L479'>479</a>
|
|
541
|
-
<a name='L480'></a><a href='#L480'>480</a>
|
|
542
|
-
<a name='L481'></a><a href='#L481'>481</a>
|
|
543
|
-
<a name='L482'></a><a href='#L482'>482</a>
|
|
544
|
-
<a name='L483'></a><a href='#L483'>483</a>
|
|
545
|
-
<a name='L484'></a><a href='#L484'>484</a>
|
|
546
|
-
<a name='L485'></a><a href='#L485'>485</a>
|
|
547
|
-
<a name='L486'></a><a href='#L486'>486</a>
|
|
548
|
-
<a name='L487'></a><a href='#L487'>487</a>
|
|
549
|
-
<a name='L488'></a><a href='#L488'>488</a>
|
|
550
|
-
<a name='L489'></a><a href='#L489'>489</a>
|
|
551
|
-
<a name='L490'></a><a href='#L490'>490</a>
|
|
552
|
-
<a name='L491'></a><a href='#L491'>491</a>
|
|
553
|
-
<a name='L492'></a><a href='#L492'>492</a>
|
|
554
|
-
<a name='L493'></a><a href='#L493'>493</a>
|
|
555
|
-
<a name='L494'></a><a href='#L494'>494</a>
|
|
556
|
-
<a name='L495'></a><a href='#L495'>495</a>
|
|
557
|
-
<a name='L496'></a><a href='#L496'>496</a>
|
|
558
|
-
<a name='L497'></a><a href='#L497'>497</a>
|
|
559
|
-
<a name='L498'></a><a href='#L498'>498</a>
|
|
560
|
-
<a name='L499'></a><a href='#L499'>499</a>
|
|
561
|
-
<a name='L500'></a><a href='#L500'>500</a>
|
|
562
|
-
<a name='L501'></a><a href='#L501'>501</a>
|
|
563
|
-
<a name='L502'></a><a href='#L502'>502</a>
|
|
564
|
-
<a name='L503'></a><a href='#L503'>503</a>
|
|
565
|
-
<a name='L504'></a><a href='#L504'>504</a>
|
|
566
|
-
<a name='L505'></a><a href='#L505'>505</a>
|
|
567
|
-
<a name='L506'></a><a href='#L506'>506</a>
|
|
568
|
-
<a name='L507'></a><a href='#L507'>507</a>
|
|
569
|
-
<a name='L508'></a><a href='#L508'>508</a>
|
|
570
|
-
<a name='L509'></a><a href='#L509'>509</a>
|
|
571
|
-
<a name='L510'></a><a href='#L510'>510</a>
|
|
572
|
-
<a name='L511'></a><a href='#L511'>511</a>
|
|
573
|
-
<a name='L512'></a><a href='#L512'>512</a>
|
|
574
|
-
<a name='L513'></a><a href='#L513'>513</a>
|
|
575
|
-
<a name='L514'></a><a href='#L514'>514</a>
|
|
576
|
-
<a name='L515'></a><a href='#L515'>515</a>
|
|
577
|
-
<a name='L516'></a><a href='#L516'>516</a>
|
|
578
|
-
<a name='L517'></a><a href='#L517'>517</a>
|
|
579
|
-
<a name='L518'></a><a href='#L518'>518</a>
|
|
580
|
-
<a name='L519'></a><a href='#L519'>519</a>
|
|
581
|
-
<a name='L520'></a><a href='#L520'>520</a>
|
|
582
|
-
<a name='L521'></a><a href='#L521'>521</a>
|
|
583
|
-
<a name='L522'></a><a href='#L522'>522</a>
|
|
584
|
-
<a name='L523'></a><a href='#L523'>523</a>
|
|
585
|
-
<a name='L524'></a><a href='#L524'>524</a>
|
|
586
|
-
<a name='L525'></a><a href='#L525'>525</a>
|
|
587
|
-
<a name='L526'></a><a href='#L526'>526</a>
|
|
588
|
-
<a name='L527'></a><a href='#L527'>527</a>
|
|
589
|
-
<a name='L528'></a><a href='#L528'>528</a>
|
|
590
|
-
<a name='L529'></a><a href='#L529'>529</a>
|
|
591
|
-
<a name='L530'></a><a href='#L530'>530</a>
|
|
592
|
-
<a name='L531'></a><a href='#L531'>531</a>
|
|
593
|
-
<a name='L532'></a><a href='#L532'>532</a>
|
|
594
|
-
<a name='L533'></a><a href='#L533'>533</a>
|
|
595
|
-
<a name='L534'></a><a href='#L534'>534</a>
|
|
596
|
-
<a name='L535'></a><a href='#L535'>535</a>
|
|
597
|
-
<a name='L536'></a><a href='#L536'>536</a>
|
|
598
|
-
<a name='L537'></a><a href='#L537'>537</a>
|
|
599
|
-
<a name='L538'></a><a href='#L538'>538</a>
|
|
600
|
-
<a name='L539'></a><a href='#L539'>539</a>
|
|
601
|
-
<a name='L540'></a><a href='#L540'>540</a>
|
|
602
|
-
<a name='L541'></a><a href='#L541'>541</a>
|
|
603
|
-
<a name='L542'></a><a href='#L542'>542</a>
|
|
604
|
-
<a name='L543'></a><a href='#L543'>543</a>
|
|
605
|
-
<a name='L544'></a><a href='#L544'>544</a>
|
|
606
|
-
<a name='L545'></a><a href='#L545'>545</a>
|
|
607
|
-
<a name='L546'></a><a href='#L546'>546</a>
|
|
608
|
-
<a name='L547'></a><a href='#L547'>547</a>
|
|
609
|
-
<a name='L548'></a><a href='#L548'>548</a>
|
|
610
|
-
<a name='L549'></a><a href='#L549'>549</a>
|
|
611
|
-
<a name='L550'></a><a href='#L550'>550</a>
|
|
612
|
-
<a name='L551'></a><a href='#L551'>551</a>
|
|
613
|
-
<a name='L552'></a><a href='#L552'>552</a>
|
|
614
|
-
<a name='L553'></a><a href='#L553'>553</a>
|
|
615
|
-
<a name='L554'></a><a href='#L554'>554</a>
|
|
616
|
-
<a name='L555'></a><a href='#L555'>555</a>
|
|
617
|
-
<a name='L556'></a><a href='#L556'>556</a>
|
|
618
|
-
<a name='L557'></a><a href='#L557'>557</a>
|
|
619
|
-
<a name='L558'></a><a href='#L558'>558</a>
|
|
620
|
-
<a name='L559'></a><a href='#L559'>559</a>
|
|
621
|
-
<a name='L560'></a><a href='#L560'>560</a>
|
|
622
|
-
<a name='L561'></a><a href='#L561'>561</a>
|
|
623
|
-
<a name='L562'></a><a href='#L562'>562</a>
|
|
624
|
-
<a name='L563'></a><a href='#L563'>563</a>
|
|
625
|
-
<a name='L564'></a><a href='#L564'>564</a>
|
|
626
|
-
<a name='L565'></a><a href='#L565'>565</a>
|
|
627
|
-
<a name='L566'></a><a href='#L566'>566</a>
|
|
628
|
-
<a name='L567'></a><a href='#L567'>567</a>
|
|
629
|
-
<a name='L568'></a><a href='#L568'>568</a>
|
|
630
|
-
<a name='L569'></a><a href='#L569'>569</a>
|
|
631
|
-
<a name='L570'></a><a href='#L570'>570</a>
|
|
632
|
-
<a name='L571'></a><a href='#L571'>571</a>
|
|
633
|
-
<a name='L572'></a><a href='#L572'>572</a>
|
|
634
|
-
<a name='L573'></a><a href='#L573'>573</a>
|
|
635
|
-
<a name='L574'></a><a href='#L574'>574</a>
|
|
636
|
-
<a name='L575'></a><a href='#L575'>575</a>
|
|
637
|
-
<a name='L576'></a><a href='#L576'>576</a>
|
|
638
|
-
<a name='L577'></a><a href='#L577'>577</a>
|
|
639
|
-
<a name='L578'></a><a href='#L578'>578</a>
|
|
640
|
-
<a name='L579'></a><a href='#L579'>579</a>
|
|
641
|
-
<a name='L580'></a><a href='#L580'>580</a>
|
|
642
|
-
<a name='L581'></a><a href='#L581'>581</a>
|
|
643
|
-
<a name='L582'></a><a href='#L582'>582</a>
|
|
644
|
-
<a name='L583'></a><a href='#L583'>583</a>
|
|
645
|
-
<a name='L584'></a><a href='#L584'>584</a>
|
|
646
|
-
<a name='L585'></a><a href='#L585'>585</a>
|
|
647
|
-
<a name='L586'></a><a href='#L586'>586</a>
|
|
648
|
-
<a name='L587'></a><a href='#L587'>587</a>
|
|
649
|
-
<a name='L588'></a><a href='#L588'>588</a>
|
|
650
|
-
<a name='L589'></a><a href='#L589'>589</a>
|
|
651
|
-
<a name='L590'></a><a href='#L590'>590</a>
|
|
652
|
-
<a name='L591'></a><a href='#L591'>591</a>
|
|
653
|
-
<a name='L592'></a><a href='#L592'>592</a>
|
|
654
|
-
<a name='L593'></a><a href='#L593'>593</a>
|
|
655
|
-
<a name='L594'></a><a href='#L594'>594</a>
|
|
656
|
-
<a name='L595'></a><a href='#L595'>595</a>
|
|
657
|
-
<a name='L596'></a><a href='#L596'>596</a>
|
|
658
|
-
<a name='L597'></a><a href='#L597'>597</a>
|
|
659
|
-
<a name='L598'></a><a href='#L598'>598</a>
|
|
660
|
-
<a name='L599'></a><a href='#L599'>599</a>
|
|
661
|
-
<a name='L600'></a><a href='#L600'>600</a>
|
|
662
|
-
<a name='L601'></a><a href='#L601'>601</a>
|
|
663
|
-
<a name='L602'></a><a href='#L602'>602</a>
|
|
664
|
-
<a name='L603'></a><a href='#L603'>603</a>
|
|
665
|
-
<a name='L604'></a><a href='#L604'>604</a>
|
|
666
|
-
<a name='L605'></a><a href='#L605'>605</a>
|
|
667
|
-
<a name='L606'></a><a href='#L606'>606</a>
|
|
668
|
-
<a name='L607'></a><a href='#L607'>607</a>
|
|
669
|
-
<a name='L608'></a><a href='#L608'>608</a>
|
|
670
|
-
<a name='L609'></a><a href='#L609'>609</a>
|
|
671
|
-
<a name='L610'></a><a href='#L610'>610</a>
|
|
672
|
-
<a name='L611'></a><a href='#L611'>611</a>
|
|
673
|
-
<a name='L612'></a><a href='#L612'>612</a>
|
|
674
|
-
<a name='L613'></a><a href='#L613'>613</a>
|
|
675
|
-
<a name='L614'></a><a href='#L614'>614</a>
|
|
676
|
-
<a name='L615'></a><a href='#L615'>615</a>
|
|
677
|
-
<a name='L616'></a><a href='#L616'>616</a>
|
|
678
|
-
<a name='L617'></a><a href='#L617'>617</a>
|
|
679
|
-
<a name='L618'></a><a href='#L618'>618</a>
|
|
680
|
-
<a name='L619'></a><a href='#L619'>619</a>
|
|
681
|
-
<a name='L620'></a><a href='#L620'>620</a>
|
|
682
|
-
<a name='L621'></a><a href='#L621'>621</a>
|
|
683
|
-
<a name='L622'></a><a href='#L622'>622</a>
|
|
684
|
-
<a name='L623'></a><a href='#L623'>623</a>
|
|
685
|
-
<a name='L624'></a><a href='#L624'>624</a>
|
|
686
|
-
<a name='L625'></a><a href='#L625'>625</a>
|
|
687
|
-
<a name='L626'></a><a href='#L626'>626</a>
|
|
688
|
-
<a name='L627'></a><a href='#L627'>627</a>
|
|
689
|
-
<a name='L628'></a><a href='#L628'>628</a>
|
|
690
|
-
<a name='L629'></a><a href='#L629'>629</a>
|
|
691
|
-
<a name='L630'></a><a href='#L630'>630</a>
|
|
692
|
-
<a name='L631'></a><a href='#L631'>631</a>
|
|
693
|
-
<a name='L632'></a><a href='#L632'>632</a>
|
|
694
|
-
<a name='L633'></a><a href='#L633'>633</a>
|
|
695
|
-
<a name='L634'></a><a href='#L634'>634</a>
|
|
696
|
-
<a name='L635'></a><a href='#L635'>635</a>
|
|
697
|
-
<a name='L636'></a><a href='#L636'>636</a>
|
|
698
|
-
<a name='L637'></a><a href='#L637'>637</a>
|
|
699
|
-
<a name='L638'></a><a href='#L638'>638</a>
|
|
700
|
-
<a name='L639'></a><a href='#L639'>639</a>
|
|
701
|
-
<a name='L640'></a><a href='#L640'>640</a>
|
|
702
|
-
<a name='L641'></a><a href='#L641'>641</a>
|
|
703
|
-
<a name='L642'></a><a href='#L642'>642</a>
|
|
704
|
-
<a name='L643'></a><a href='#L643'>643</a>
|
|
705
|
-
<a name='L644'></a><a href='#L644'>644</a>
|
|
706
|
-
<a name='L645'></a><a href='#L645'>645</a>
|
|
707
|
-
<a name='L646'></a><a href='#L646'>646</a>
|
|
708
|
-
<a name='L647'></a><a href='#L647'>647</a>
|
|
709
|
-
<a name='L648'></a><a href='#L648'>648</a>
|
|
710
|
-
<a name='L649'></a><a href='#L649'>649</a>
|
|
711
|
-
<a name='L650'></a><a href='#L650'>650</a>
|
|
712
|
-
<a name='L651'></a><a href='#L651'>651</a>
|
|
713
|
-
<a name='L652'></a><a href='#L652'>652</a>
|
|
714
|
-
<a name='L653'></a><a href='#L653'>653</a>
|
|
715
|
-
<a name='L654'></a><a href='#L654'>654</a>
|
|
716
|
-
<a name='L655'></a><a href='#L655'>655</a>
|
|
717
|
-
<a name='L656'></a><a href='#L656'>656</a>
|
|
718
|
-
<a name='L657'></a><a href='#L657'>657</a>
|
|
719
|
-
<a name='L658'></a><a href='#L658'>658</a>
|
|
720
|
-
<a name='L659'></a><a href='#L659'>659</a>
|
|
721
|
-
<a name='L660'></a><a href='#L660'>660</a>
|
|
722
|
-
<a name='L661'></a><a href='#L661'>661</a>
|
|
723
|
-
<a name='L662'></a><a href='#L662'>662</a>
|
|
724
|
-
<a name='L663'></a><a href='#L663'>663</a>
|
|
725
|
-
<a name='L664'></a><a href='#L664'>664</a>
|
|
726
|
-
<a name='L665'></a><a href='#L665'>665</a>
|
|
727
|
-
<a name='L666'></a><a href='#L666'>666</a>
|
|
728
|
-
<a name='L667'></a><a href='#L667'>667</a>
|
|
729
|
-
<a name='L668'></a><a href='#L668'>668</a>
|
|
730
|
-
<a name='L669'></a><a href='#L669'>669</a>
|
|
731
|
-
<a name='L670'></a><a href='#L670'>670</a>
|
|
732
|
-
<a name='L671'></a><a href='#L671'>671</a>
|
|
733
|
-
<a name='L672'></a><a href='#L672'>672</a>
|
|
734
|
-
<a name='L673'></a><a href='#L673'>673</a>
|
|
735
|
-
<a name='L674'></a><a href='#L674'>674</a>
|
|
736
|
-
<a name='L675'></a><a href='#L675'>675</a>
|
|
737
|
-
<a name='L676'></a><a href='#L676'>676</a>
|
|
738
|
-
<a name='L677'></a><a href='#L677'>677</a>
|
|
739
|
-
<a name='L678'></a><a href='#L678'>678</a>
|
|
740
|
-
<a name='L679'></a><a href='#L679'>679</a>
|
|
741
|
-
<a name='L680'></a><a href='#L680'>680</a>
|
|
742
|
-
<a name='L681'></a><a href='#L681'>681</a>
|
|
743
|
-
<a name='L682'></a><a href='#L682'>682</a>
|
|
744
|
-
<a name='L683'></a><a href='#L683'>683</a>
|
|
745
|
-
<a name='L684'></a><a href='#L684'>684</a>
|
|
746
|
-
<a name='L685'></a><a href='#L685'>685</a>
|
|
747
|
-
<a name='L686'></a><a href='#L686'>686</a>
|
|
748
|
-
<a name='L687'></a><a href='#L687'>687</a>
|
|
749
|
-
<a name='L688'></a><a href='#L688'>688</a>
|
|
750
|
-
<a name='L689'></a><a href='#L689'>689</a>
|
|
751
|
-
<a name='L690'></a><a href='#L690'>690</a>
|
|
752
|
-
<a name='L691'></a><a href='#L691'>691</a>
|
|
753
|
-
<a name='L692'></a><a href='#L692'>692</a>
|
|
754
|
-
<a name='L693'></a><a href='#L693'>693</a>
|
|
755
|
-
<a name='L694'></a><a href='#L694'>694</a>
|
|
756
|
-
<a name='L695'></a><a href='#L695'>695</a>
|
|
757
|
-
<a name='L696'></a><a href='#L696'>696</a>
|
|
758
|
-
<a name='L697'></a><a href='#L697'>697</a>
|
|
759
|
-
<a name='L698'></a><a href='#L698'>698</a>
|
|
760
|
-
<a name='L699'></a><a href='#L699'>699</a>
|
|
761
|
-
<a name='L700'></a><a href='#L700'>700</a>
|
|
762
|
-
<a name='L701'></a><a href='#L701'>701</a>
|
|
763
|
-
<a name='L702'></a><a href='#L702'>702</a>
|
|
764
|
-
<a name='L703'></a><a href='#L703'>703</a>
|
|
765
|
-
<a name='L704'></a><a href='#L704'>704</a>
|
|
766
|
-
<a name='L705'></a><a href='#L705'>705</a>
|
|
767
|
-
<a name='L706'></a><a href='#L706'>706</a>
|
|
768
|
-
<a name='L707'></a><a href='#L707'>707</a>
|
|
769
|
-
<a name='L708'></a><a href='#L708'>708</a>
|
|
770
|
-
<a name='L709'></a><a href='#L709'>709</a>
|
|
771
|
-
<a name='L710'></a><a href='#L710'>710</a>
|
|
772
|
-
<a name='L711'></a><a href='#L711'>711</a>
|
|
773
|
-
<a name='L712'></a><a href='#L712'>712</a>
|
|
774
|
-
<a name='L713'></a><a href='#L713'>713</a>
|
|
775
|
-
<a name='L714'></a><a href='#L714'>714</a>
|
|
776
|
-
<a name='L715'></a><a href='#L715'>715</a>
|
|
777
|
-
<a name='L716'></a><a href='#L716'>716</a>
|
|
778
|
-
<a name='L717'></a><a href='#L717'>717</a>
|
|
779
|
-
<a name='L718'></a><a href='#L718'>718</a>
|
|
780
|
-
<a name='L719'></a><a href='#L719'>719</a>
|
|
781
|
-
<a name='L720'></a><a href='#L720'>720</a>
|
|
782
|
-
<a name='L721'></a><a href='#L721'>721</a>
|
|
783
|
-
<a name='L722'></a><a href='#L722'>722</a>
|
|
784
|
-
<a name='L723'></a><a href='#L723'>723</a>
|
|
785
|
-
<a name='L724'></a><a href='#L724'>724</a>
|
|
786
|
-
<a name='L725'></a><a href='#L725'>725</a>
|
|
787
|
-
<a name='L726'></a><a href='#L726'>726</a>
|
|
788
|
-
<a name='L727'></a><a href='#L727'>727</a>
|
|
789
|
-
<a name='L728'></a><a href='#L728'>728</a>
|
|
790
|
-
<a name='L729'></a><a href='#L729'>729</a>
|
|
791
|
-
<a name='L730'></a><a href='#L730'>730</a>
|
|
792
|
-
<a name='L731'></a><a href='#L731'>731</a>
|
|
793
|
-
<a name='L732'></a><a href='#L732'>732</a>
|
|
794
|
-
<a name='L733'></a><a href='#L733'>733</a>
|
|
795
|
-
<a name='L734'></a><a href='#L734'>734</a>
|
|
796
|
-
<a name='L735'></a><a href='#L735'>735</a>
|
|
797
|
-
<a name='L736'></a><a href='#L736'>736</a>
|
|
798
|
-
<a name='L737'></a><a href='#L737'>737</a>
|
|
799
|
-
<a name='L738'></a><a href='#L738'>738</a>
|
|
800
|
-
<a name='L739'></a><a href='#L739'>739</a>
|
|
801
|
-
<a name='L740'></a><a href='#L740'>740</a>
|
|
802
|
-
<a name='L741'></a><a href='#L741'>741</a>
|
|
803
|
-
<a name='L742'></a><a href='#L742'>742</a>
|
|
804
|
-
<a name='L743'></a><a href='#L743'>743</a>
|
|
805
|
-
<a name='L744'></a><a href='#L744'>744</a>
|
|
806
|
-
<a name='L745'></a><a href='#L745'>745</a>
|
|
807
|
-
<a name='L746'></a><a href='#L746'>746</a>
|
|
808
|
-
<a name='L747'></a><a href='#L747'>747</a>
|
|
809
|
-
<a name='L748'></a><a href='#L748'>748</a>
|
|
810
|
-
<a name='L749'></a><a href='#L749'>749</a>
|
|
811
|
-
<a name='L750'></a><a href='#L750'>750</a>
|
|
812
|
-
<a name='L751'></a><a href='#L751'>751</a>
|
|
813
|
-
<a name='L752'></a><a href='#L752'>752</a>
|
|
814
|
-
<a name='L753'></a><a href='#L753'>753</a>
|
|
815
|
-
<a name='L754'></a><a href='#L754'>754</a>
|
|
816
|
-
<a name='L755'></a><a href='#L755'>755</a>
|
|
817
|
-
<a name='L756'></a><a href='#L756'>756</a>
|
|
818
|
-
<a name='L757'></a><a href='#L757'>757</a>
|
|
819
|
-
<a name='L758'></a><a href='#L758'>758</a>
|
|
820
|
-
<a name='L759'></a><a href='#L759'>759</a>
|
|
821
|
-
<a name='L760'></a><a href='#L760'>760</a>
|
|
822
|
-
<a name='L761'></a><a href='#L761'>761</a>
|
|
823
|
-
<a name='L762'></a><a href='#L762'>762</a>
|
|
824
|
-
<a name='L763'></a><a href='#L763'>763</a>
|
|
825
|
-
<a name='L764'></a><a href='#L764'>764</a>
|
|
826
|
-
<a name='L765'></a><a href='#L765'>765</a>
|
|
827
|
-
<a name='L766'></a><a href='#L766'>766</a>
|
|
828
|
-
<a name='L767'></a><a href='#L767'>767</a>
|
|
829
|
-
<a name='L768'></a><a href='#L768'>768</a>
|
|
830
|
-
<a name='L769'></a><a href='#L769'>769</a>
|
|
831
|
-
<a name='L770'></a><a href='#L770'>770</a>
|
|
832
|
-
<a name='L771'></a><a href='#L771'>771</a>
|
|
833
|
-
<a name='L772'></a><a href='#L772'>772</a>
|
|
834
|
-
<a name='L773'></a><a href='#L773'>773</a>
|
|
835
|
-
<a name='L774'></a><a href='#L774'>774</a>
|
|
836
|
-
<a name='L775'></a><a href='#L775'>775</a>
|
|
837
|
-
<a name='L776'></a><a href='#L776'>776</a>
|
|
838
|
-
<a name='L777'></a><a href='#L777'>777</a>
|
|
839
|
-
<a name='L778'></a><a href='#L778'>778</a>
|
|
840
|
-
<a name='L779'></a><a href='#L779'>779</a>
|
|
841
|
-
<a name='L780'></a><a href='#L780'>780</a>
|
|
842
|
-
<a name='L781'></a><a href='#L781'>781</a>
|
|
843
|
-
<a name='L782'></a><a href='#L782'>782</a>
|
|
844
|
-
<a name='L783'></a><a href='#L783'>783</a>
|
|
845
|
-
<a name='L784'></a><a href='#L784'>784</a>
|
|
846
|
-
<a name='L785'></a><a href='#L785'>785</a>
|
|
847
|
-
<a name='L786'></a><a href='#L786'>786</a>
|
|
848
|
-
<a name='L787'></a><a href='#L787'>787</a>
|
|
849
|
-
<a name='L788'></a><a href='#L788'>788</a>
|
|
850
|
-
<a name='L789'></a><a href='#L789'>789</a>
|
|
851
|
-
<a name='L790'></a><a href='#L790'>790</a>
|
|
852
|
-
<a name='L791'></a><a href='#L791'>791</a>
|
|
853
|
-
<a name='L792'></a><a href='#L792'>792</a>
|
|
854
|
-
<a name='L793'></a><a href='#L793'>793</a>
|
|
855
|
-
<a name='L794'></a><a href='#L794'>794</a>
|
|
856
|
-
<a name='L795'></a><a href='#L795'>795</a>
|
|
857
|
-
<a name='L796'></a><a href='#L796'>796</a>
|
|
858
|
-
<a name='L797'></a><a href='#L797'>797</a>
|
|
859
|
-
<a name='L798'></a><a href='#L798'>798</a>
|
|
860
|
-
<a name='L799'></a><a href='#L799'>799</a>
|
|
861
|
-
<a name='L800'></a><a href='#L800'>800</a>
|
|
862
|
-
<a name='L801'></a><a href='#L801'>801</a>
|
|
863
|
-
<a name='L802'></a><a href='#L802'>802</a>
|
|
864
|
-
<a name='L803'></a><a href='#L803'>803</a>
|
|
865
|
-
<a name='L804'></a><a href='#L804'>804</a>
|
|
866
|
-
<a name='L805'></a><a href='#L805'>805</a>
|
|
867
|
-
<a name='L806'></a><a href='#L806'>806</a>
|
|
868
|
-
<a name='L807'></a><a href='#L807'>807</a>
|
|
869
|
-
<a name='L808'></a><a href='#L808'>808</a>
|
|
870
|
-
<a name='L809'></a><a href='#L809'>809</a>
|
|
871
|
-
<a name='L810'></a><a href='#L810'>810</a>
|
|
872
|
-
<a name='L811'></a><a href='#L811'>811</a>
|
|
873
|
-
<a name='L812'></a><a href='#L812'>812</a>
|
|
874
|
-
<a name='L813'></a><a href='#L813'>813</a>
|
|
875
|
-
<a name='L814'></a><a href='#L814'>814</a>
|
|
876
|
-
<a name='L815'></a><a href='#L815'>815</a>
|
|
877
|
-
<a name='L816'></a><a href='#L816'>816</a>
|
|
878
|
-
<a name='L817'></a><a href='#L817'>817</a>
|
|
879
|
-
<a name='L818'></a><a href='#L818'>818</a>
|
|
880
|
-
<a name='L819'></a><a href='#L819'>819</a>
|
|
881
|
-
<a name='L820'></a><a href='#L820'>820</a>
|
|
882
|
-
<a name='L821'></a><a href='#L821'>821</a>
|
|
883
|
-
<a name='L822'></a><a href='#L822'>822</a>
|
|
884
|
-
<a name='L823'></a><a href='#L823'>823</a>
|
|
885
|
-
<a name='L824'></a><a href='#L824'>824</a>
|
|
886
|
-
<a name='L825'></a><a href='#L825'>825</a>
|
|
887
|
-
<a name='L826'></a><a href='#L826'>826</a>
|
|
888
|
-
<a name='L827'></a><a href='#L827'>827</a>
|
|
889
|
-
<a name='L828'></a><a href='#L828'>828</a>
|
|
890
|
-
<a name='L829'></a><a href='#L829'>829</a>
|
|
891
|
-
<a name='L830'></a><a href='#L830'>830</a>
|
|
892
|
-
<a name='L831'></a><a href='#L831'>831</a>
|
|
893
|
-
<a name='L832'></a><a href='#L832'>832</a>
|
|
894
|
-
<a name='L833'></a><a href='#L833'>833</a>
|
|
895
|
-
<a name='L834'></a><a href='#L834'>834</a>
|
|
896
|
-
<a name='L835'></a><a href='#L835'>835</a>
|
|
897
|
-
<a name='L836'></a><a href='#L836'>836</a>
|
|
898
|
-
<a name='L837'></a><a href='#L837'>837</a>
|
|
899
|
-
<a name='L838'></a><a href='#L838'>838</a>
|
|
900
|
-
<a name='L839'></a><a href='#L839'>839</a>
|
|
901
|
-
<a name='L840'></a><a href='#L840'>840</a>
|
|
902
|
-
<a name='L841'></a><a href='#L841'>841</a>
|
|
903
|
-
<a name='L842'></a><a href='#L842'>842</a>
|
|
904
|
-
<a name='L843'></a><a href='#L843'>843</a>
|
|
905
|
-
<a name='L844'></a><a href='#L844'>844</a>
|
|
906
|
-
<a name='L845'></a><a href='#L845'>845</a>
|
|
907
|
-
<a name='L846'></a><a href='#L846'>846</a>
|
|
908
|
-
<a name='L847'></a><a href='#L847'>847</a>
|
|
909
|
-
<a name='L848'></a><a href='#L848'>848</a>
|
|
910
|
-
<a name='L849'></a><a href='#L849'>849</a>
|
|
911
|
-
<a name='L850'></a><a href='#L850'>850</a>
|
|
912
|
-
<a name='L851'></a><a href='#L851'>851</a>
|
|
913
|
-
<a name='L852'></a><a href='#L852'>852</a>
|
|
914
|
-
<a name='L853'></a><a href='#L853'>853</a>
|
|
915
|
-
<a name='L854'></a><a href='#L854'>854</a>
|
|
916
|
-
<a name='L855'></a><a href='#L855'>855</a>
|
|
917
|
-
<a name='L856'></a><a href='#L856'>856</a>
|
|
918
|
-
<a name='L857'></a><a href='#L857'>857</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
919
|
-
<span class="cline-any cline-yes">2x</span>
|
|
920
|
-
<span class="cline-any cline-neutral"> </span>
|
|
921
|
-
<span class="cline-any cline-neutral"> </span>
|
|
922
|
-
<span class="cline-any cline-neutral"> </span>
|
|
923
|
-
<span class="cline-any cline-neutral"> </span>
|
|
924
|
-
<span class="cline-any cline-neutral"> </span>
|
|
925
|
-
<span class="cline-any cline-neutral"> </span>
|
|
926
|
-
<span class="cline-any cline-yes">2x</span>
|
|
927
|
-
<span class="cline-any cline-yes">2x</span>
|
|
928
|
-
<span class="cline-any cline-yes">2x</span>
|
|
929
|
-
<span class="cline-any cline-yes">2x</span>
|
|
930
|
-
<span class="cline-any cline-yes">2x</span>
|
|
931
|
-
<span class="cline-any cline-yes">2x</span>
|
|
932
|
-
<span class="cline-any cline-neutral"> </span>
|
|
933
|
-
<span class="cline-any cline-neutral"> </span>
|
|
934
|
-
<span class="cline-any cline-yes">2x</span>
|
|
935
|
-
<span class="cline-any cline-neutral"> </span>
|
|
936
|
-
<span class="cline-any cline-neutral"> </span>
|
|
937
|
-
<span class="cline-any cline-neutral"> </span>
|
|
938
|
-
<span class="cline-any cline-neutral"> </span>
|
|
939
|
-
<span class="cline-any cline-neutral"> </span>
|
|
940
|
-
<span class="cline-any cline-neutral"> </span>
|
|
941
|
-
<span class="cline-any cline-yes">2x</span>
|
|
942
|
-
<span class="cline-any cline-yes">2x</span>
|
|
943
|
-
<span class="cline-any cline-yes">2x</span>
|
|
944
|
-
<span class="cline-any cline-neutral"> </span>
|
|
945
|
-
<span class="cline-any cline-yes">2x</span>
|
|
946
|
-
<span class="cline-any cline-yes">2x</span>
|
|
947
|
-
<span class="cline-any cline-yes">2x</span>
|
|
948
|
-
<span class="cline-any cline-neutral"> </span>
|
|
949
|
-
<span class="cline-any cline-neutral"> </span>
|
|
950
|
-
<span class="cline-any cline-neutral"> </span>
|
|
951
|
-
<span class="cline-any cline-neutral"> </span>
|
|
952
|
-
<span class="cline-any cline-neutral"> </span>
|
|
953
|
-
<span class="cline-any cline-neutral"> </span>
|
|
954
|
-
<span class="cline-any cline-neutral"> </span>
|
|
955
|
-
<span class="cline-any cline-neutral"> </span>
|
|
956
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
961
|
-
<span class="cline-any cline-neutral"> </span>
|
|
962
|
-
<span class="cline-any cline-neutral"> </span>
|
|
963
|
-
<span class="cline-any cline-neutral"> </span>
|
|
964
|
-
<span class="cline-any cline-neutral"> </span>
|
|
965
|
-
<span class="cline-any cline-neutral"> </span>
|
|
966
|
-
<span class="cline-any cline-neutral"> </span>
|
|
967
|
-
<span class="cline-any cline-neutral"> </span>
|
|
968
|
-
<span class="cline-any cline-neutral"> </span>
|
|
969
|
-
<span class="cline-any cline-neutral"> </span>
|
|
970
|
-
<span class="cline-any cline-neutral"> </span>
|
|
971
|
-
<span class="cline-any cline-neutral"> </span>
|
|
972
|
-
<span class="cline-any cline-yes">2x</span>
|
|
973
|
-
<span class="cline-any cline-yes">129x</span>
|
|
974
|
-
<span class="cline-any cline-neutral"> </span>
|
|
975
|
-
<span class="cline-any cline-neutral"> </span>
|
|
976
|
-
<span class="cline-any cline-yes">129x</span>
|
|
977
|
-
<span class="cline-any cline-neutral"> </span>
|
|
978
|
-
<span class="cline-any cline-neutral"> </span>
|
|
979
|
-
<span class="cline-any cline-neutral"> </span>
|
|
980
|
-
<span class="cline-any cline-neutral"> </span>
|
|
981
|
-
<span class="cline-any cline-neutral"> </span>
|
|
982
|
-
<span class="cline-any cline-neutral"> </span>
|
|
983
|
-
<span class="cline-any cline-neutral"> </span>
|
|
984
|
-
<span class="cline-any cline-neutral"> </span>
|
|
985
|
-
<span class="cline-any cline-neutral"> </span>
|
|
986
|
-
<span class="cline-any cline-neutral"> </span>
|
|
987
|
-
<span class="cline-any cline-neutral"> </span>
|
|
988
|
-
<span class="cline-any cline-neutral"> </span>
|
|
989
|
-
<span class="cline-any cline-yes">129x</span>
|
|
990
|
-
<span class="cline-any cline-yes">129x</span>
|
|
991
|
-
<span class="cline-any cline-yes">129x</span>
|
|
992
|
-
<span class="cline-any cline-yes">129x</span>
|
|
993
|
-
<span class="cline-any cline-yes">129x</span>
|
|
994
|
-
<span class="cline-any cline-yes">129x</span>
|
|
995
|
-
<span class="cline-any cline-no"> </span>
|
|
996
|
-
<span class="cline-any cline-no"> </span>
|
|
997
|
-
<span class="cline-any cline-neutral"> </span>
|
|
998
|
-
<span class="cline-any cline-neutral"> </span>
|
|
999
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1000
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1001
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1002
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1003
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1004
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1005
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1006
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1007
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1008
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1009
|
-
<span class="cline-any cline-no"> </span>
|
|
1010
|
-
<span class="cline-any cline-no"> </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-neutral"> </span>
|
|
1015
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1016
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1017
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1018
|
-
<span class="cline-any cline-no"> </span>
|
|
1019
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1020
|
-
<span class="cline-any cline-no"> </span>
|
|
1021
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1022
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1023
|
-
<span class="cline-any cline-no"> </span>
|
|
1024
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1025
|
-
<span class="cline-any cline-no"> </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-neutral"> </span>
|
|
1032
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1033
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1034
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1035
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1036
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1037
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1038
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1039
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1040
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1041
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1042
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1043
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1044
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1045
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1046
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1047
|
-
<span class="cline-any cline-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-neutral"> </span>
|
|
1052
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1053
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1054
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1055
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1056
|
-
<span class="cline-any cline-no"> </span>
|
|
1057
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1058
|
-
<span class="cline-any cline-no"> </span>
|
|
1059
|
-
<span class="cline-any cline-no"> </span>
|
|
1060
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1061
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1062
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1063
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1064
|
-
<span class="cline-any cline-no"> </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-no"> </span>
|
|
1069
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1070
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1071
|
-
<span class="cline-any cline-no"> </span>
|
|
1072
|
-
<span class="cline-any cline-no"> </span>
|
|
1073
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1074
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1075
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1076
|
-
<span class="cline-any cline-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-neutral"> </span>
|
|
1081
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1082
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1083
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1084
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1085
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1086
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1087
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1088
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1089
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1090
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1091
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1092
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1093
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1094
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1095
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1096
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1097
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1098
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1099
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1100
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1101
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1102
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1103
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1104
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1105
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1106
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1107
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1108
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1109
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1110
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1111
|
-
<span class="cline-any cline-no"> </span>
|
|
1112
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1113
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1114
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1115
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1116
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1117
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1118
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1119
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1120
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1121
|
-
<span class="cline-any cline-no"> </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-neutral"> </span>
|
|
1130
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1131
|
-
<span class="cline-any cline-no"> </span>
|
|
1132
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1133
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1134
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1135
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1136
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1137
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1138
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1139
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1140
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1141
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1142
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1143
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1144
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1145
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1146
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1147
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1148
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1149
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1150
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1151
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1152
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1153
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1154
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1155
|
-
<span class="cline-any cline-no"> </span>
|
|
1156
|
-
<span class="cline-any cline-no"> </span>
|
|
1157
|
-
<span class="cline-any cline-no"> </span>
|
|
1158
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1159
|
-
<span class="cline-any cline-no"> </span>
|
|
1160
|
-
<span class="cline-any cline-no"> </span>
|
|
1161
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1162
|
-
<span class="cline-any cline-no"> </span>
|
|
1163
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1164
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1165
|
-
<span class="cline-any cline-no"> </span>
|
|
1166
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1171
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1172
|
-
<span class="cline-any cline-no"> </span>
|
|
1173
|
-
<span class="cline-any cline-no"> </span>
|
|
1174
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1175
|
-
<span class="cline-any cline-no"> </span>
|
|
1176
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1177
|
-
<span class="cline-any cline-no"> </span>
|
|
1178
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1179
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1180
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1181
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1182
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1183
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1184
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1185
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1186
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1187
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1188
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1189
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1190
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1191
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1192
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1193
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1194
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1195
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1196
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1197
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1198
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1199
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1200
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1201
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1202
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1203
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1204
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1205
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1206
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1207
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1208
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1209
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1210
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1211
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1212
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1213
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1214
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1215
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1216
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1217
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1218
|
-
<span class="cline-any cline-yes">1x</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-neutral"> </span>
|
|
1224
|
-
<span class="cline-any cline-no"> </span>
|
|
1225
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1226
|
-
<span class="cline-any cline-no"> </span>
|
|
1227
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1228
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1229
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1230
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1235
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1236
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1237
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1238
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1239
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1240
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1241
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1242
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1243
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1244
|
-
<span class="cline-any cline-no"> </span>
|
|
1245
|
-
<span class="cline-any cline-no"> </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-no"> </span>
|
|
1250
|
-
<span class="cline-any cline-no"> </span>
|
|
1251
|
-
<span class="cline-any cline-no"> </span>
|
|
1252
|
-
<span class="cline-any cline-no"> </span>
|
|
1253
|
-
<span class="cline-any cline-no"> </span>
|
|
1254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1255
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1256
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1257
|
-
<span class="cline-any cline-no"> </span>
|
|
1258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1262
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1263
|
-
<span class="cline-any cline-no"> </span>
|
|
1264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1265
|
-
<span class="cline-any cline-no"> </span>
|
|
1266
|
-
<span class="cline-any cline-no"> </span>
|
|
1267
|
-
<span class="cline-any cline-no"> </span>
|
|
1268
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1269
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1270
|
-
<span class="cline-any cline-no"> </span>
|
|
1271
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1272
|
-
<span class="cline-any cline-no"> </span>
|
|
1273
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1274
|
-
<span class="cline-any cline-no"> </span>
|
|
1275
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1276
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1277
|
-
<span class="cline-any cline-no"> </span>
|
|
1278
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1282
|
-
<span class="cline-any cline-no"> </span>
|
|
1283
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1284
|
-
<span class="cline-any cline-no"> </span>
|
|
1285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1286
|
-
<span class="cline-any cline-no"> </span>
|
|
1287
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1288
|
-
<span class="cline-any cline-no"> </span>
|
|
1289
|
-
<span class="cline-any cline-no"> </span>
|
|
1290
|
-
<span class="cline-any cline-no"> </span>
|
|
1291
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1292
|
-
<span class="cline-any cline-no"> </span>
|
|
1293
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1294
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1295
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1296
|
-
<span class="cline-any cline-no"> </span>
|
|
1297
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1298
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1299
|
-
<span class="cline-any cline-no"> </span>
|
|
1300
|
-
<span class="cline-any cline-no"> </span>
|
|
1301
|
-
<span class="cline-any cline-no"> </span>
|
|
1302
|
-
<span class="cline-any cline-no"> </span>
|
|
1303
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1304
|
-
<span class="cline-any cline-no"> </span>
|
|
1305
|
-
<span class="cline-any cline-no"> </span>
|
|
1306
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1307
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1308
|
-
<span class="cline-any cline-no"> </span>
|
|
1309
|
-
<span class="cline-any cline-no"> </span>
|
|
1310
|
-
<span class="cline-any cline-no"> </span>
|
|
1311
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1312
|
-
<span class="cline-any cline-no"> </span>
|
|
1313
|
-
<span class="cline-any cline-no"> </span>
|
|
1314
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1315
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1316
|
-
<span class="cline-any cline-no"> </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-neutral"> </span>
|
|
1325
|
-
<span class="cline-any cline-no"> </span>
|
|
1326
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1327
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1328
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1329
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1330
|
-
<span class="cline-any cline-no"> </span>
|
|
1331
|
-
<span class="cline-any cline-no"> </span>
|
|
1332
|
-
<span class="cline-any cline-no"> </span>
|
|
1333
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1334
|
-
<span class="cline-any cline-no"> </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-no"> </span>
|
|
1339
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1340
|
-
<span class="cline-any cline-no"> </span>
|
|
1341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1342
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1344
|
-
<span class="cline-any cline-no"> </span>
|
|
1345
|
-
<span class="cline-any cline-no"> </span>
|
|
1346
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1347
|
-
<span class="cline-any cline-no"> </span>
|
|
1348
|
-
<span class="cline-any cline-no"> </span>
|
|
1349
|
-
<span class="cline-any cline-no"> </span>
|
|
1350
|
-
<span class="cline-any cline-no"> </span>
|
|
1351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1352
|
-
<span class="cline-any cline-no"> </span>
|
|
1353
|
-
<span class="cline-any cline-no"> </span>
|
|
1354
|
-
<span class="cline-any cline-no"> </span>
|
|
1355
|
-
<span class="cline-any cline-no"> </span>
|
|
1356
|
-
<span class="cline-any cline-no"> </span>
|
|
1357
|
-
<span class="cline-any cline-no"> </span>
|
|
1358
|
-
<span class="cline-any cline-no"> </span>
|
|
1359
|
-
<span class="cline-any cline-no"> </span>
|
|
1360
|
-
<span class="cline-any cline-no"> </span>
|
|
1361
|
-
<span class="cline-any cline-no"> </span>
|
|
1362
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1363
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1365
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1366
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1368
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1369
|
-
<span class="cline-any cline-no"> </span>
|
|
1370
|
-
<span class="cline-any cline-no"> </span>
|
|
1371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1372
|
-
<span class="cline-any cline-no"> </span>
|
|
1373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1374
|
-
<span class="cline-any cline-no"> </span>
|
|
1375
|
-
<span class="cline-any cline-no"> </span>
|
|
1376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1377
|
-
<span class="cline-any cline-no"> </span>
|
|
1378
|
-
<span class="cline-any cline-no"> </span>
|
|
1379
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1380
|
-
<span class="cline-any cline-no"> </span>
|
|
1381
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1382
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1383
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1384
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1385
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1386
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1387
|
-
<span class="cline-any cline-no"> </span>
|
|
1388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1389
|
-
<span class="cline-any cline-no"> </span>
|
|
1390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1391
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1392
|
-
<span class="cline-any cline-no"> </span>
|
|
1393
|
-
<span class="cline-any cline-no"> </span>
|
|
1394
|
-
<span class="cline-any cline-no"> </span>
|
|
1395
|
-
<span class="cline-any cline-no"> </span>
|
|
1396
|
-
<span class="cline-any cline-no"> </span>
|
|
1397
|
-
<span class="cline-any cline-no"> </span>
|
|
1398
|
-
<span class="cline-any cline-no"> </span>
|
|
1399
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1400
|
-
<span class="cline-any cline-no"> </span>
|
|
1401
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1402
|
-
<span class="cline-any cline-no"> </span>
|
|
1403
|
-
<span class="cline-any cline-no"> </span>
|
|
1404
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1405
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1406
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1407
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1408
|
-
<span class="cline-any cline-no"> </span>
|
|
1409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1410
|
-
<span class="cline-any cline-no"> </span>
|
|
1411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1413
|
-
<span class="cline-any cline-no"> </span>
|
|
1414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1420
|
-
<span class="cline-any cline-no"> </span>
|
|
1421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1422
|
-
<span class="cline-any cline-no"> </span>
|
|
1423
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1424
|
-
<span class="cline-any cline-no"> </span>
|
|
1425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1426
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1427
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1431
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1432
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1433
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1434
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1435
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1438
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1439
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1444
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1445
|
-
<span class="cline-any cline-no"> </span>
|
|
1446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1447
|
-
<span class="cline-any cline-no"> </span>
|
|
1448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1449
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1451
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1452
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1453
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1454
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1455
|
-
<span class="cline-any cline-no"> </span>
|
|
1456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1458
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1459
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1460
|
-
<span class="cline-any cline-no"> </span>
|
|
1461
|
-
<span class="cline-any cline-no"> </span>
|
|
1462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1463
|
-
<span class="cline-any cline-no"> </span>
|
|
1464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1465
|
-
<span class="cline-any cline-no"> </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-neutral"> </span>
|
|
1472
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1478
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1479
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1490
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1491
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1492
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1493
|
-
<span class="cline-any cline-no"> </span>
|
|
1494
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1495
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1496
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1497
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1499
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1501
|
-
<span class="cline-any cline-no"> </span>
|
|
1502
|
-
<span class="cline-any cline-no"> </span>
|
|
1503
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1504
|
-
<span class="cline-any cline-no"> </span>
|
|
1505
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1509
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1510
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1514
|
-
<span class="cline-any cline-no"> </span>
|
|
1515
|
-
<span class="cline-any cline-no"> </span>
|
|
1516
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1517
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1518
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1521
|
-
<span class="cline-any cline-no"> </span>
|
|
1522
|
-
<span class="cline-any cline-no"> </span>
|
|
1523
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1524
|
-
<span class="cline-any cline-no"> </span>
|
|
1525
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1526
|
-
<span class="cline-any cline-no"> </span>
|
|
1527
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1528
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1529
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1530
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1531
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1532
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1533
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1534
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1535
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1536
|
-
<span class="cline-any cline-no"> </span>
|
|
1537
|
-
<span class="cline-any cline-no"> </span>
|
|
1538
|
-
<span class="cline-any cline-no"> </span>
|
|
1539
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1540
|
-
<span class="cline-any cline-no"> </span>
|
|
1541
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1542
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1543
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1544
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1545
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1546
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1547
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1548
|
-
<span class="cline-any cline-no"> </span>
|
|
1549
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1550
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1551
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1552
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1553
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1554
|
-
<span class="cline-any cline-no"> </span>
|
|
1555
|
-
<span class="cline-any cline-no"> </span>
|
|
1556
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1557
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1558
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1559
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1560
|
-
<span class="cline-any cline-no"> </span>
|
|
1561
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1562
|
-
<span class="cline-any cline-no"> </span>
|
|
1563
|
-
<span class="cline-any cline-no"> </span>
|
|
1564
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1565
|
-
<span class="cline-any cline-no"> </span>
|
|
1566
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1567
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1568
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1569
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1570
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1571
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1572
|
-
<span class="cline-any cline-no"> </span>
|
|
1573
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1574
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1575
|
-
<span class="cline-any cline-no"> </span>
|
|
1576
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1577
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1578
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1579
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1580
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1581
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1582
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1583
|
-
<span class="cline-any cline-no"> </span>
|
|
1584
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1585
|
-
<span class="cline-any cline-no"> </span>
|
|
1586
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1587
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1588
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1589
|
-
<span class="cline-any cline-no"> </span>
|
|
1590
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1593
|
-
<span class="cline-any cline-no"> </span>
|
|
1594
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1595
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1596
|
-
<span class="cline-any cline-no"> </span>
|
|
1597
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1598
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1599
|
-
<span class="cline-any cline-no"> </span>
|
|
1600
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1601
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1602
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1603
|
-
<span class="cline-any cline-yes">129x</span>
|
|
1604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1605
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1606
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1607
|
-
<span class="cline-any cline-no"> </span>
|
|
1608
|
-
<span class="cline-any cline-no"> </span>
|
|
1609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1610
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1611
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1612
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1613
|
-
<span class="cline-any cline-no"> </span>
|
|
1614
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1615
|
-
<span class="cline-any cline-no"> </span>
|
|
1616
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1617
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1618
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1620
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1621
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1622
|
-
<span class="cline-any cline-no"> </span>
|
|
1623
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1624
|
-
<span class="cline-any cline-no"> </span>
|
|
1625
|
-
<span class="cline-any cline-no"> </span>
|
|
1626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1627
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1628
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1629
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1630
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1631
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1632
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1633
|
-
<span class="cline-any cline-no"> </span>
|
|
1634
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1635
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1636
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1637
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1638
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1639
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1640
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1641
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1642
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1643
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1644
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1645
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1646
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1647
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1648
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1649
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1650
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1651
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1652
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1653
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1654
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1655
|
-
<span class="cline-any cline-no"> </span>
|
|
1656
|
-
<span class="cline-any cline-no"> </span>
|
|
1657
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1658
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1659
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1660
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1661
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1662
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1663
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1664
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1665
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1666
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1667
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1668
|
-
<span class="cline-any cline-no"> </span>
|
|
1669
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1670
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1671
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1672
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1673
|
-
<span class="cline-any cline-no"> </span>
|
|
1674
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1675
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1676
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1677
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1678
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1679
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1680
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1681
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1682
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1683
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1684
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1685
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1686
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1687
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1688
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1689
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1690
|
-
<span class="cline-any cline-no"> </span>
|
|
1691
|
-
<span class="cline-any cline-no"> </span>
|
|
1692
|
-
<span class="cline-any cline-no"> </span>
|
|
1693
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1694
|
-
<span class="cline-any cline-no"> </span>
|
|
1695
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1696
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1697
|
-
<span class="cline-any cline-no"> </span>
|
|
1698
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1699
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1700
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1701
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1702
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1703
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1704
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1705
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1706
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1707
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1708
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1709
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1710
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1711
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1712
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1713
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1714
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1715
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1716
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1717
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1718
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1719
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1720
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1721
|
-
<span class="cline-any cline-no"> </span>
|
|
1722
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1723
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1724
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1725
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1726
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1727
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1728
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1729
|
-
<span class="cline-any cline-no"> </span>
|
|
1730
|
-
<span class="cline-any cline-no"> </span>
|
|
1731
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1732
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1733
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1734
|
-
<span class="cline-any cline-no"> </span>
|
|
1735
|
-
<span class="cline-any cline-no"> </span>
|
|
1736
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1737
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1738
|
-
<span class="cline-any cline-no"> </span>
|
|
1739
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1740
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1741
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1742
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1743
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1744
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1745
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1746
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1747
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1748
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1749
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1750
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1751
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1752
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1753
|
-
<span class="cline-any cline-no"> </span>
|
|
1754
|
-
<span class="cline-any cline-no"> </span>
|
|
1755
|
-
<span class="cline-any cline-no"> </span>
|
|
1756
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1757
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1758
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1759
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1760
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1761
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1762
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1763
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1764
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1765
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1766
|
-
<span class="cline-any cline-no"> </span>
|
|
1767
|
-
<span class="cline-any cline-no"> </span>
|
|
1768
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1769
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1770
|
-
<span class="cline-any cline-no"> </span>
|
|
1771
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1772
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1773
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1774
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/* eslint-disable camelcase */
|
|
1775
|
-
import TrezorConnect, {
|
|
1776
|
-
AccountInfo,
|
|
1777
|
-
DEVICE_EVENT,
|
|
1778
|
-
EthereumTransaction,
|
|
1779
|
-
EthereumTransactionEIP1559,
|
|
1780
|
-
// @ts-ignore
|
|
1781
|
-
} from '@trezor/connect-webextension';
|
|
1782
|
-
import { address } from '@trezor/utxo-lib';
|
|
1783
|
-
import bitcoinops from 'bitcoin-ops';
|
|
1784
|
-
import { Transaction, payments, script } from 'bitcoinjs-lib';
|
|
1785
|
-
import { Buffer } from 'buffer';
|
|
1786
|
-
import { TypedDataUtils, TypedMessage, Version } from 'eth-sig-util';
|
|
1787
|
-
import Web3 from 'web3';
|
|
1788
|
-
|
|
1789
|
-
import { SyscoinHDSigner } from '../signers';
|
|
1790
|
-
import {
|
|
1791
|
-
getAccountDerivationPath,
|
|
1792
|
-
getAddressDerivationPath,
|
|
1793
|
-
getPublicKeyDerivationPath,
|
|
1794
|
-
isEvmCoin,
|
|
1795
|
-
} from '../utils/derivation-paths';
|
|
1796
|
-
|
|
1797
|
-
const { p2wsh } = payments;
|
|
1798
|
-
const { decompile } = script;
|
|
1799
|
-
const { fromBase58Check, fromBech32 } = address;
|
|
1800
|
-
|
|
1801
|
-
const initialHDPath = `m/44'/60'/0'/0/0`;
|
|
1802
|
-
const DELAY_BETWEEN_POPUPS = 1000;
|
|
1803
|
-
const TREZOR_CONNECT_MANIFEST = {
|
|
1804
|
-
appUrl: 'https://paliwallet.com/',
|
|
1805
|
-
email: 'pali@pollum.io',
|
|
1806
|
-
};
|
|
1807
|
-
|
|
1808
|
-
export interface TrezorControllerState {
|
|
1809
|
-
hdPath: string;
|
|
1810
|
-
paths: Record<string, number>;
|
|
1811
|
-
}
|
|
1812
|
-
|
|
1813
|
-
interface MessageTypeProperty {
|
|
1814
|
-
name: string;
|
|
1815
|
-
type: string;
|
|
1816
|
-
}
|
|
1817
|
-
interface MessageTypes {
|
|
1818
|
-
[additionalProperties: string]: MessageTypeProperty[];
|
|
1819
|
-
EIP712Domain: MessageTypeProperty[];
|
|
1820
|
-
}
|
|
1821
|
-
|
|
1822
|
-
declare global {
|
|
1823
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1824
|
-
interface Window {
|
|
1825
|
-
TrezorConnect: any;
|
|
1826
|
-
}
|
|
1827
|
-
}
|
|
1828
|
-
export class TrezorKeyring {
|
|
1829
|
-
public hdPath: string = initialHDPath;
|
|
1830
|
-
public publicKey: Buffer;
|
|
1831
|
-
public chainCode: Buffer;
|
|
1832
|
-
public paths: Record<string, number> = {};
|
|
1833
|
-
public model?: string;
|
|
1834
|
-
private getSigner: () => {
|
|
1835
|
-
hd: SyscoinHDSigner;
|
|
1836
|
-
main: any;
|
|
1837
|
-
};
|
|
1838
|
-
|
|
1839
|
-
constructor(
|
|
1840
|
-
getSyscoinSigner: () => {
|
|
1841
|
-
hd: SyscoinHDSigner;
|
|
1842
|
-
main: any;
|
|
1843
|
-
}
|
|
1844
|
-
) {
|
|
1845
|
-
this.publicKey = Buffer.from('', 'hex');
|
|
1846
|
-
this.chainCode = Buffer.from('', 'hex');
|
|
1847
|
-
this.hdPath = '';
|
|
1848
|
-
this.paths = {};
|
|
1849
|
-
this.getSigner = getSyscoinSigner;
|
|
1850
|
-
TrezorConnect.on(DEVICE_EVENT, <span class="fstat-no" title="function not covered" >(e</span>vent: any) => {
|
|
1851
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (event.payload.features) {</span>
|
|
1852
|
-
<span class="cstat-no" title="statement not covered" > this.model = event.payload.features.model;</span>
|
|
1853
|
-
}
|
|
1854
|
-
});
|
|
1855
|
-
}
|
|
1856
|
-
|
|
1857
|
-
/**
|
|
1858
|
-
* Initialize Trezor script.
|
|
1859
|
-
*
|
|
1860
|
-
* Trezor Connect raises an error that reads "Manifest not set" if manifest is not provided. It can be either set via manifest method or passed as a param in init method.
|
|
1861
|
-
* @returns true, if trezor was initialized successfully and false, if some error happen
|
|
1862
|
-
*/
|
|
1863
|
-
|
|
1864
|
-
public <span class="fstat-no" title="function not covered" >async </span>init() {
|
|
1865
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1866
|
-
<span class="cstat-no" title="statement not covered" > await TrezorConnect.init({</span>
|
|
1867
|
-
manifest: TREZOR_CONNECT_MANIFEST,
|
|
1868
|
-
lazyLoad: true,
|
|
1869
|
-
popup: true,
|
|
1870
|
-
connectSrc: 'https://connect.trezor.io/9/',
|
|
1871
|
-
_extendWebextensionLifetime: true,
|
|
1872
|
-
transports: ['BridgeTransport', 'WebUsbTransport'], // Transport protocols to be used
|
|
1873
|
-
});
|
|
1874
|
-
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
1875
|
-
} catch (error) {
|
|
1876
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
|
|
1877
|
-
error.message.includes('TrezorConnect has been already initialized')
|
|
1878
|
-
) {
|
|
1879
|
-
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
1880
|
-
}
|
|
1881
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1882
|
-
}
|
|
1883
|
-
}
|
|
1884
|
-
|
|
1885
|
-
/**
|
|
1886
|
-
* This return derivated account info based in params provided.
|
|
1887
|
-
*
|
|
1888
|
-
* @param index - index of account for path derivation
|
|
1889
|
-
* @param slip44 - network slip44 number
|
|
1890
|
-
* @param bip - BIP for derivation. Example: 44, 49, 84
|
|
1891
|
-
* @param coin - network symbol. Example: eth, sys, btc
|
|
1892
|
-
* @returns derivated account info or error
|
|
1893
|
-
*/
|
|
1894
|
-
|
|
1895
|
-
public <span class="fstat-no" title="function not covered" >async </span>deriveAccount({
|
|
1896
|
-
index,
|
|
1897
|
-
slip44,
|
|
1898
|
-
bip,
|
|
1899
|
-
coin,
|
|
1900
|
-
}: {
|
|
1901
|
-
bip: number;
|
|
1902
|
-
coin: string;
|
|
1903
|
-
index: number;
|
|
1904
|
-
slip44: number;
|
|
1905
|
-
}): Promise<
|
|
1906
|
-
| AccountInfo
|
|
1907
|
-
| {
|
|
1908
|
-
code?: string;
|
|
1909
|
-
error: string;
|
|
1910
|
-
}
|
|
1911
|
-
> {
|
|
1912
|
-
const keypath = <span class="cstat-no" title="statement not covered" >`m/${bip}'/${slip44}'/0'/0/${index}`;</span>
|
|
1913
|
-
|
|
1914
|
-
<span class="cstat-no" title="statement not covered" > return new Promise(<span class="fstat-no" title="function not covered" >(r</span>esolve, reject) => {</span>
|
|
1915
|
-
<span class="cstat-no" title="statement not covered" > TrezorConnect.getAccountInfo({</span>
|
|
1916
|
-
path: keypath,
|
|
1917
|
-
coin: coin,
|
|
1918
|
-
})
|
|
1919
|
-
.then(<span class="fstat-no" title="function not covered" >(r</span>esponse: any) => {
|
|
1920
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (response.success) {</span>
|
|
1921
|
-
<span class="cstat-no" title="statement not covered" > resolve(response.payload);</span>
|
|
1922
|
-
}
|
|
1923
|
-
// @ts-ignore
|
|
1924
|
-
<span class="cstat-no" title="statement not covered" > reject(response.payload.error);</span>
|
|
1925
|
-
})
|
|
1926
|
-
.catch(<span class="fstat-no" title="function not covered" >(e</span>rror: any) => {
|
|
1927
|
-
<span class="cstat-no" title="statement not covered" > console.error('TrezorConnectError', error);</span>
|
|
1928
|
-
<span class="cstat-no" title="statement not covered" > reject(error);</span>
|
|
1929
|
-
});
|
|
1930
|
-
});
|
|
1931
|
-
}
|
|
1932
|
-
|
|
1933
|
-
/**
|
|
1934
|
-
* This return account info based in params provided.
|
|
1935
|
-
*
|
|
1936
|
-
* @param coin - network symbol. Example: eth, sys, btc
|
|
1937
|
-
* @param slip44 - network slip44 number
|
|
1938
|
-
* @param hdPath - path derivation. Example: m/44'/57'/0'/0/0
|
|
1939
|
-
* @param index - index of account for path derivation
|
|
1940
|
-
* @returns derivated account info or error
|
|
1941
|
-
*/
|
|
1942
|
-
|
|
1943
|
-
public async getAccountInfo({
|
|
1944
|
-
coin,
|
|
1945
|
-
slip44,
|
|
1946
|
-
hdPath,
|
|
1947
|
-
index,
|
|
1948
|
-
}: {
|
|
1949
|
-
coin: string;
|
|
1950
|
-
hdPath?: string;
|
|
1951
|
-
index?: number;
|
|
1952
|
-
slip44: number;
|
|
1953
|
-
}): Promise<AccountInfo> {
|
|
1954
|
-
// Use dynamic path generation instead of hardcoded switch
|
|
1955
|
-
this.hdPath = getAccountDerivationPath(coin, slip44, index);
|
|
1956
|
-
|
|
1957
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (hdPath) <span class="cstat-no" title="statement not covered" >this.hdPath = hdPath;</span>
|
|
1958
|
-
|
|
1959
|
-
const response = await TrezorConnect.getAccountInfo({
|
|
1960
|
-
coin,
|
|
1961
|
-
path: this.hdPath,
|
|
1962
|
-
});
|
|
1963
|
-
|
|
1964
|
-
if (response.success) {
|
|
1965
|
-
return response.payload;
|
|
1966
|
-
}
|
|
1967
|
-
<span class="cstat-no" title="statement not covered" > return response.payload as any;</span>
|
|
1968
|
-
}
|
|
1969
|
-
|
|
1970
|
-
/**
|
|
1971
|
-
* Gets the model, if known.
|
|
1972
|
-
* This may be `undefined` if the model hasn't been loaded yet.
|
|
1973
|
-
*
|
|
1974
|
-
* @returns
|
|
1975
|
-
*/
|
|
1976
|
-
public <span class="fstat-no" title="function not covered" >getModel(</span>): string | undefined {
|
|
1977
|
-
<span class="cstat-no" title="statement not covered" > return this.model;</span>
|
|
1978
|
-
}
|
|
1979
|
-
|
|
1980
|
-
/**
|
|
1981
|
-
* This removes the Trezor Connect iframe from the DOM
|
|
1982
|
-
*
|
|
1983
|
-
* @returns void
|
|
1984
|
-
*/
|
|
1985
|
-
|
|
1986
|
-
public <span class="fstat-no" title="function not covered" >dispose(</span>) {
|
|
1987
|
-
<span class="cstat-no" title="statement not covered" > TrezorConnect.dispose();</span>
|
|
1988
|
-
}
|
|
1989
|
-
|
|
1990
|
-
/**
|
|
1991
|
-
* This verify if message is valid or not.
|
|
1992
|
-
*
|
|
1993
|
-
* @param coin - network symbol. Example: eth, sys, btc
|
|
1994
|
-
* @param address - account address that signed message
|
|
1995
|
-
* @param message - message to be verified. Example: 'Test message'
|
|
1996
|
-
* @param signature - signature received in sign method. Example: I6BrpivjCwZmScZ6BMAHWGQPo+JjX2kzKXU5LcGVfEgvFb2VfJuKo3g6eSQcykQZiILoWNUDn5rDHkwJg3EcvuY=
|
|
1997
|
-
* @returns derivated account info or error
|
|
1998
|
-
*/
|
|
1999
|
-
|
|
2000
|
-
public <span class="fstat-no" title="function not covered" >async </span>verifyMessage({
|
|
2001
|
-
coin,
|
|
2002
|
-
address,
|
|
2003
|
-
message,
|
|
2004
|
-
signature,
|
|
2005
|
-
}: {
|
|
2006
|
-
address: string;
|
|
2007
|
-
coin: string;
|
|
2008
|
-
message: string;
|
|
2009
|
-
signature: string;
|
|
2010
|
-
}) {
|
|
2011
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2012
|
-
let method = <span class="cstat-no" title="statement not covered" >'';</span>
|
|
2013
|
-
<span class="cstat-no" title="statement not covered" > switch (coin) {</span>
|
|
2014
|
-
case 'eth':
|
|
2015
|
-
<span class="cstat-no" title="statement not covered" > method = 'ethereumVerifyMessage';</span>
|
|
2016
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2017
|
-
default:
|
|
2018
|
-
<span class="cstat-no" title="statement not covered" > method = 'verifyMessage';</span>
|
|
2019
|
-
}
|
|
2020
|
-
// @ts-ignore
|
|
2021
|
-
const { success, payload } = <span class="cstat-no" title="statement not covered" >await TrezorConnect[method]({</span>
|
|
2022
|
-
coin,
|
|
2023
|
-
address,
|
|
2024
|
-
message,
|
|
2025
|
-
signature,
|
|
2026
|
-
});
|
|
2027
|
-
|
|
2028
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (success) {</span>
|
|
2029
|
-
<span class="cstat-no" title="statement not covered" > return { success, payload };</span>
|
|
2030
|
-
}
|
|
2031
|
-
<span class="cstat-no" title="statement not covered" > return { success: false, payload };</span>
|
|
2032
|
-
} catch (error) {
|
|
2033
|
-
<span class="cstat-no" title="statement not covered" > return { error };</span>
|
|
2034
|
-
}
|
|
2035
|
-
}
|
|
2036
|
-
|
|
2037
|
-
/**
|
|
2038
|
-
* This return account public key.
|
|
2039
|
-
*
|
|
2040
|
-
* @param coin - network symbol. Example: eth, sys, btc
|
|
2041
|
-
* @param slip44 - network slip44 number
|
|
2042
|
-
* @param hdPath - path derivation. Example: m/44'/57'/0'/0/0
|
|
2043
|
-
* @returns publicKey and chainCode
|
|
2044
|
-
*/
|
|
2045
|
-
|
|
2046
|
-
public async getPublicKey({
|
|
2047
|
-
coin,
|
|
2048
|
-
slip44,
|
|
2049
|
-
hdPath,
|
|
2050
|
-
index,
|
|
2051
|
-
}: {
|
|
2052
|
-
coin: string;
|
|
2053
|
-
hdPath?: string;
|
|
2054
|
-
index?: number;
|
|
2055
|
-
slip44: number;
|
|
2056
|
-
}) {
|
|
2057
|
-
// Use dynamic path generation instead of hardcoded switch
|
|
2058
|
-
this.hdPath = getPublicKeyDerivationPath(coin, slip44, index || 0);
|
|
2059
|
-
|
|
2060
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (hdPath) <span class="cstat-no" title="statement not covered" >this.hdPath = hdPath;</span>
|
|
2061
|
-
|
|
2062
|
-
try {
|
|
2063
|
-
const { success, payload } = await TrezorConnect.getPublicKey({
|
|
2064
|
-
coin: coin,
|
|
2065
|
-
path: this.hdPath,
|
|
2066
|
-
});
|
|
2067
|
-
|
|
2068
|
-
if (success) {
|
|
2069
|
-
const { publicKey, chainCode } = payload;
|
|
2070
|
-
|
|
2071
|
-
this.publicKey = Buffer.from(publicKey, 'hex');
|
|
2072
|
-
this.chainCode = Buffer.from(chainCode, 'hex');
|
|
2073
|
-
|
|
2074
|
-
return {
|
|
2075
|
-
publicKey: `0x${this.publicKey.toString('hex')}`,
|
|
2076
|
-
chainCode: `0x${this.chainCode.toString('hex')}`,
|
|
2077
|
-
};
|
|
2078
|
-
}
|
|
2079
|
-
|
|
2080
|
-
<span class="cstat-no" title="statement not covered" > return { success: false, payload };</span>
|
|
2081
|
-
} catch (error) {
|
|
2082
|
-
<span class="cstat-no" title="statement not covered" > return error;</span>
|
|
2083
|
-
}
|
|
2084
|
-
}
|
|
2085
|
-
|
|
2086
|
-
public <span class="fstat-no" title="function not covered" >range(</span>n: number) {
|
|
2087
|
-
<span class="cstat-no" title="statement not covered" > return [...Array(n).keys()];</span>
|
|
2088
|
-
}
|
|
2089
|
-
|
|
2090
|
-
/**
|
|
2091
|
-
* This sign UTXO tx.
|
|
2092
|
-
*
|
|
2093
|
-
* @param coin - network symbol. Example: eth, sys, btc
|
|
2094
|
-
* @param inputs - utxo transaction inputs
|
|
2095
|
-
* @param outputs - utxo transaction outputs
|
|
2096
|
-
* @returns signature object
|
|
2097
|
-
*/
|
|
2098
|
-
|
|
2099
|
-
public <span class="fstat-no" title="function not covered" >async </span>signUtxoTransaction(utxoTransaction: any, psbt: any) {
|
|
2100
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2101
|
-
const { payload, success } = <span class="cstat-no" title="statement not covered" >await TrezorConnect.signTransaction(</span>
|
|
2102
|
-
utxoTransaction
|
|
2103
|
-
);
|
|
2104
|
-
|
|
2105
|
-
<span class="cstat-no" title="statement not covered" > if (success) {</span>
|
|
2106
|
-
const tx = <span class="cstat-no" title="statement not covered" >Transaction.fromHex(payload.serializedTx);</span>
|
|
2107
|
-
<span class="cstat-no" title="statement not covered" > for (const i of this.range(psbt.data.inputs.length)) {</span>
|
|
2108
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (tx.ins[i].witness == null) {</span>
|
|
2109
|
-
<span class="cstat-no" title="statement not covered" > throw new Error(</span>
|
|
2110
|
-
'Please move your funds to a Segwit address: https://wiki.trezor.io/Account'
|
|
2111
|
-
);
|
|
2112
|
-
}
|
|
2113
|
-
const partialSig = <span class="cstat-no" title="statement not covered" >[</span>
|
|
2114
|
-
{
|
|
2115
|
-
pubkey: tx.ins[i].witness[1],
|
|
2116
|
-
signature: tx.ins[i].witness[0],
|
|
2117
|
-
},
|
|
2118
|
-
];
|
|
2119
|
-
<span class="cstat-no" title="statement not covered" > psbt.updateInput(i, { partialSig });</span>
|
|
2120
|
-
}
|
|
2121
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2122
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (psbt.validateSignaturesOfAllInputs()) {</span>
|
|
2123
|
-
<span class="cstat-no" title="statement not covered" > psbt.finalizeAllInputs();</span>
|
|
2124
|
-
}
|
|
2125
|
-
} catch (err) {
|
|
2126
|
-
<span class="cstat-no" title="statement not covered" > console.log(err);</span>
|
|
2127
|
-
}
|
|
2128
|
-
<span class="cstat-no" title="statement not covered" > return psbt;</span>
|
|
2129
|
-
} else {
|
|
2130
|
-
<span class="cstat-no" title="statement not covered" > throw new Error('Trezor sign failed: ' + payload.error);</span>
|
|
2131
|
-
}
|
|
2132
|
-
} catch (error) {
|
|
2133
|
-
<span class="cstat-no" title="statement not covered" > return { error };</span>
|
|
2134
|
-
}
|
|
2135
|
-
}
|
|
2136
|
-
|
|
2137
|
-
public <span class="fstat-no" title="function not covered" >convertToAddressNFormat(</span>path: string) {
|
|
2138
|
-
const pathArray = <span class="cstat-no" title="statement not covered" >path.replace(/'/g, '').split('/');</span>
|
|
2139
|
-
|
|
2140
|
-
<span class="cstat-no" title="statement not covered" > pathArray.shift();</span>
|
|
2141
|
-
|
|
2142
|
-
const addressN: any[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
2143
|
-
|
|
2144
|
-
<span class="cstat-no" title="statement not covered" > for (const index in pathArray) {</span>
|
|
2145
|
-
<span class="cstat-no" title="statement not covered" > if (Number(index) <= 2 && Number(index) >= 0) {</span>
|
|
2146
|
-
<span class="cstat-no" title="statement not covered" > addressN[Number(index)] = Number(pathArray[index]) | 0x80000000;</span>
|
|
2147
|
-
} else {
|
|
2148
|
-
<span class="cstat-no" title="statement not covered" > addressN[Number(index)] = Number(pathArray[index]);</span>
|
|
2149
|
-
}
|
|
2150
|
-
}
|
|
2151
|
-
|
|
2152
|
-
<span class="cstat-no" title="statement not covered" > return addressN;</span>
|
|
2153
|
-
}
|
|
2154
|
-
public <span class="fstat-no" title="function not covered" >isScriptHash(</span>address: string, networkInfo: any) {
|
|
2155
|
-
<span class="cstat-no" title="statement not covered" > if (!this.isBech32(address)) {</span>
|
|
2156
|
-
const decoded = <span class="cstat-no" title="statement not covered" >fromBase58Check(address);</span>
|
|
2157
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (decoded.version === networkInfo.pubKeyHash) {</span>
|
|
2158
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
2159
|
-
}
|
|
2160
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (decoded.version === networkInfo.scriptHash) {</span>
|
|
2161
|
-
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
2162
|
-
}
|
|
2163
|
-
} else {
|
|
2164
|
-
const decoded = <span class="cstat-no" title="statement not covered" >fromBech32(address);</span>
|
|
2165
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (decoded.data.length === 20) {</span>
|
|
2166
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
2167
|
-
}
|
|
2168
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (decoded.data.length === 32) {</span>
|
|
2169
|
-
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
2170
|
-
}
|
|
2171
|
-
}
|
|
2172
|
-
<span class="cstat-no" title="statement not covered" > throw new Error('isScriptHash: Unknown address type');</span>
|
|
2173
|
-
}
|
|
2174
|
-
|
|
2175
|
-
public <span class="fstat-no" title="function not covered" >isPaymentFactory(</span>payment: any) {
|
|
2176
|
-
<span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >(s</span>cript: any) => {</span>
|
|
2177
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2178
|
-
<span class="cstat-no" title="statement not covered" > payment({ output: script });</span>
|
|
2179
|
-
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
2180
|
-
} catch (err) {
|
|
2181
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
2182
|
-
}
|
|
2183
|
-
};
|
|
2184
|
-
}
|
|
2185
|
-
public <span class="fstat-no" title="function not covered" >isBech32(</span>address: string) {
|
|
2186
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2187
|
-
<span class="cstat-no" title="statement not covered" > fromBech32(address);</span>
|
|
2188
|
-
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
2189
|
-
} catch (e) {
|
|
2190
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
2191
|
-
}
|
|
2192
|
-
}
|
|
2193
|
-
public <span class="fstat-no" title="function not covered" >isP2WSHScript(</span>script: any) {
|
|
2194
|
-
<span class="cstat-no" title="statement not covered" > this.isPaymentFactory(p2wsh)(script);</span>
|
|
2195
|
-
|
|
2196
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
2197
|
-
}
|
|
2198
|
-
|
|
2199
|
-
public <span class="fstat-no" title="function not covered" >convertToTrezorFormat(</span>{ psbt, pathIn, coin }: any) {
|
|
2200
|
-
const { hd } = <span class="cstat-no" title="statement not covered" >this.getSigner();</span>
|
|
2201
|
-
const trezortx: any = <span class="cstat-no" title="statement not covered" >{};</span>
|
|
2202
|
-
|
|
2203
|
-
<span class="cstat-no" title="statement not covered" > trezortx.coin = coin;</span>
|
|
2204
|
-
<span class="cstat-no" title="statement not covered" > trezortx.version = psbt.version;</span>
|
|
2205
|
-
<span class="cstat-no" title="statement not covered" > trezortx.inputs = [];</span>
|
|
2206
|
-
<span class="cstat-no" title="statement not covered" > trezortx.outputs = [];</span>
|
|
2207
|
-
|
|
2208
|
-
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i < psbt.txInputs.length; i++) {</span>
|
|
2209
|
-
const scriptTypes = <span class="cstat-no" title="statement not covered" >psbt.getInputType(i);</span>
|
|
2210
|
-
const input = <span class="cstat-no" title="statement not covered" >psbt.txInputs[i];</span>
|
|
2211
|
-
const inputItem: any = <span class="cstat-no" title="statement not covered" >{};</span>
|
|
2212
|
-
<span class="cstat-no" title="statement not covered" > inputItem.prev_index = input.index;</span>
|
|
2213
|
-
<span class="cstat-no" title="statement not covered" > inputItem.prev_hash = input.hash.reverse().toString('hex');</span>
|
|
2214
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (input.sequence) <span class="cstat-no" title="statement not covered" >inputItem.sequence = input.sequence;</span></span>
|
|
2215
|
-
const dataInput = <span class="cstat-no" title="statement not covered" >psbt.data.inputs[i];</span>
|
|
2216
|
-
let path = <span class="cstat-no" title="statement not covered" >'';</span>
|
|
2217
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
|
|
2218
|
-
pathIn ||
|
|
2219
|
-
(dataInput.unknownKeyVals &&
|
|
2220
|
-
dataInput.unknownKeyVals.length > 1 &&
|
|
2221
|
-
dataInput.unknownKeyVals[1].key.equals(Buffer.from('path')) &&
|
|
2222
|
-
(!dataInput.bip32Derivation ||
|
|
2223
|
-
dataInput.bip32Derivation.length === 0))
|
|
2224
|
-
) {
|
|
2225
|
-
<span class="cstat-no" title="statement not covered" > path = pathIn || dataInput.unknownKeyVals[1].value.toString();</span>
|
|
2226
|
-
<span class="cstat-no" title="statement not covered" > inputItem.address_n = this.convertToAddressNFormat(path);</span>
|
|
2227
|
-
}
|
|
2228
|
-
<span class="cstat-no" title="statement not covered" > switch (scriptTypes) {</span>
|
|
2229
|
-
case 'multisig':
|
|
2230
|
-
<span class="cstat-no" title="statement not covered" > inputItem.script_type = 'SPENDMULTISIG';</span>
|
|
2231
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2232
|
-
case 'witnesspubkeyhash':
|
|
2233
|
-
<span class="cstat-no" title="statement not covered" > inputItem.script_type = 'SPENDWITNESS';</span>
|
|
2234
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2235
|
-
default:
|
|
2236
|
-
<span class="cstat-no" title="statement not covered" > inputItem.script_type = this.isP2WSHScript(</span>
|
|
2237
|
-
psbt.data.inputs[i].witnessUtxo.script
|
|
2238
|
-
? psbt.data.inputs[i].witnessUtxo.script
|
|
2239
|
-
: ''
|
|
2240
|
-
)
|
|
2241
|
-
? 'SPENDP2SHWITNESS'
|
|
2242
|
-
: 'SPENDADDRESS';
|
|
2243
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2244
|
-
}
|
|
2245
|
-
<span class="cstat-no" title="statement not covered" > trezortx.inputs.push(inputItem);</span>
|
|
2246
|
-
}
|
|
2247
|
-
|
|
2248
|
-
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i < psbt.txOutputs.length; i++) {</span>
|
|
2249
|
-
const output = <span class="cstat-no" title="statement not covered" >psbt.txOutputs[i];</span>
|
|
2250
|
-
const outputItem: any = <span class="cstat-no" title="statement not covered" >{};</span>
|
|
2251
|
-
const chunks = <span class="cstat-no" title="statement not covered" >decompile(output.script);</span>
|
|
2252
|
-
<span class="cstat-no" title="statement not covered" > outputItem.amount = output.value.toString();</span>
|
|
2253
|
-
<span class="cstat-no" title="statement not covered" > if (chunks && chunks[0] === bitcoinops.OP_RETURN) {</span>
|
|
2254
|
-
<span class="cstat-no" title="statement not covered" > outputItem.script_type = 'PAYTOOPRETURN';</span>
|
|
2255
|
-
// @ts-ignore
|
|
2256
|
-
<span class="cstat-no" title="statement not covered" > outputItem.op_return_data = chunks[1].toString('hex');</span>
|
|
2257
|
-
} else {
|
|
2258
|
-
<span class="cstat-no" title="statement not covered" > if (output && this.isBech32(output.address)) {</span>
|
|
2259
|
-
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
2260
|
-
output.script.length === 34 &&
|
|
2261
|
-
output.script[0] === 0 &&
|
|
2262
|
-
output.script[1] === 0x20
|
|
2263
|
-
) {
|
|
2264
|
-
<span class="cstat-no" title="statement not covered" > outputItem.script_type = 'PAYTOP2SHWITNESS';</span>
|
|
2265
|
-
} else {
|
|
2266
|
-
<span class="cstat-no" title="statement not covered" > outputItem.script_type = 'PAYTOWITNESS';</span>
|
|
2267
|
-
}
|
|
2268
|
-
} else {
|
|
2269
|
-
<span class="cstat-no" title="statement not covered" > outputItem.script_type = this.isScriptHash(</span>
|
|
2270
|
-
output.address,
|
|
2271
|
-
hd.Signer.network
|
|
2272
|
-
)
|
|
2273
|
-
? 'PAYTOSCRIPTHASH'
|
|
2274
|
-
: 'PAYTOADDRESS';
|
|
2275
|
-
}
|
|
2276
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (output.address) <span class="cstat-no" title="statement not covered" >outputItem.address = output.address;</span></span>
|
|
2277
|
-
}
|
|
2278
|
-
<span class="cstat-no" title="statement not covered" > trezortx.outputs.push(outputItem);</span>
|
|
2279
|
-
}
|
|
2280
|
-
<span class="cstat-no" title="statement not covered" > return trezortx;</span>
|
|
2281
|
-
}
|
|
2282
|
-
|
|
2283
|
-
/**
|
|
2284
|
-
* This sign EVM tx.
|
|
2285
|
-
*
|
|
2286
|
-
* @param index - index of account for path derivation
|
|
2287
|
-
* @param tx - ethereum tx object
|
|
2288
|
-
* @returns signature object
|
|
2289
|
-
*/
|
|
2290
|
-
public <span class="fstat-no" title="function not covered" >async </span>signEthTransaction({
|
|
2291
|
-
tx,
|
|
2292
|
-
index,
|
|
2293
|
-
coin,
|
|
2294
|
-
slip44,
|
|
2295
|
-
}: {
|
|
2296
|
-
index: string;
|
|
2297
|
-
tx: EthereumTransaction | EthereumTransactionEIP1559;
|
|
2298
|
-
coin: string;
|
|
2299
|
-
slip44: number;
|
|
2300
|
-
}) {
|
|
2301
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2302
|
-
// Use dynamic path generation based on actual network parameters
|
|
2303
|
-
const derivationPath = <span class="cstat-no" title="statement not covered" >getAddressDerivationPath(</span>
|
|
2304
|
-
coin,
|
|
2305
|
-
slip44,
|
|
2306
|
-
0,
|
|
2307
|
-
false,
|
|
2308
|
-
Number(index)
|
|
2309
|
-
);
|
|
2310
|
-
|
|
2311
|
-
const { success, payload } = <span class="cstat-no" title="statement not covered" >await TrezorConnect.ethereumSignTransaction({</span>
|
|
2312
|
-
path: derivationPath,
|
|
2313
|
-
transaction: tx,
|
|
2314
|
-
});
|
|
2315
|
-
|
|
2316
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (success) {</span>
|
|
2317
|
-
<span class="cstat-no" title="statement not covered" > return { success, payload };</span>
|
|
2318
|
-
}
|
|
2319
|
-
<span class="cstat-no" title="statement not covered" > return { success: false, payload };</span>
|
|
2320
|
-
} catch (error) {
|
|
2321
|
-
<span class="cstat-no" title="statement not covered" > return { success: false, payload: error };</span>
|
|
2322
|
-
}
|
|
2323
|
-
}
|
|
2324
|
-
|
|
2325
|
-
/**
|
|
2326
|
-
* This sign message.
|
|
2327
|
-
*
|
|
2328
|
-
* @param coin - network symbol. Example: eth, sys, btc
|
|
2329
|
-
* @param slip44 - network slip44 number
|
|
2330
|
-
* @param message - message to be signed. Example: 'Test message'
|
|
2331
|
-
* @param index - index of account for path derivation
|
|
2332
|
-
* @returns signature object
|
|
2333
|
-
*/
|
|
2334
|
-
|
|
2335
|
-
public <span class="fstat-no" title="function not covered" >async </span>signMessage({
|
|
2336
|
-
index,
|
|
2337
|
-
message,
|
|
2338
|
-
coin,
|
|
2339
|
-
slip44,
|
|
2340
|
-
address,
|
|
2341
|
-
}: {
|
|
2342
|
-
address: string;
|
|
2343
|
-
coin: string;
|
|
2344
|
-
index?: number;
|
|
2345
|
-
message?: string;
|
|
2346
|
-
slip44: number; // Required, not optional
|
|
2347
|
-
}) {
|
|
2348
|
-
// Use dynamic path generation instead of hardcoded switch
|
|
2349
|
-
<span class="cstat-no" title="statement not covered" > this.hdPath = getAddressDerivationPath(</span>
|
|
2350
|
-
coin,
|
|
2351
|
-
slip44, // Now guaranteed to be a number
|
|
2352
|
-
0,
|
|
2353
|
-
false,
|
|
2354
|
-
index || 0
|
|
2355
|
-
);
|
|
2356
|
-
|
|
2357
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isEvmCoin(coin, slip44) && `${index ? index : 0}` && message) {</span>
|
|
2358
|
-
<span class="cstat-no" title="statement not covered" > return this._signEthPersonalMessage(Number(index), message, address);</span>
|
|
2359
|
-
}
|
|
2360
|
-
<span class="cstat-no" title="statement not covered" > return this._signUtxoPersonalMessage({ coin, hdPath: this.hdPath });</span>
|
|
2361
|
-
}
|
|
2362
|
-
|
|
2363
|
-
private <span class="fstat-no" title="function not covered" >async </span>_signUtxoPersonalMessage({
|
|
2364
|
-
coin,
|
|
2365
|
-
hdPath,
|
|
2366
|
-
}: {
|
|
2367
|
-
coin: string;
|
|
2368
|
-
hdPath: string;
|
|
2369
|
-
}) {
|
|
2370
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2371
|
-
const { success, payload } = <span class="cstat-no" title="statement not covered" >await TrezorConnect.signMessage({</span>
|
|
2372
|
-
path: hdPath,
|
|
2373
|
-
coin: coin,
|
|
2374
|
-
message: 'UTXO example message',
|
|
2375
|
-
});
|
|
2376
|
-
|
|
2377
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (success) {</span>
|
|
2378
|
-
<span class="cstat-no" title="statement not covered" > return { success, payload };</span>
|
|
2379
|
-
}
|
|
2380
|
-
<span class="cstat-no" title="statement not covered" > return { success: false, payload };</span>
|
|
2381
|
-
} catch (error) {
|
|
2382
|
-
<span class="cstat-no" title="statement not covered" > return { error };</span>
|
|
2383
|
-
}
|
|
2384
|
-
}
|
|
2385
|
-
|
|
2386
|
-
// For personal_sign, we need to prefix the message:
|
|
2387
|
-
private <span class="fstat-no" title="function not covered" >async </span>_signEthPersonalMessage(
|
|
2388
|
-
index: number,
|
|
2389
|
-
message: string,
|
|
2390
|
-
address: string
|
|
2391
|
-
) {
|
|
2392
|
-
<span class="cstat-no" title="statement not covered" > return new Promise(<span class="fstat-no" title="function not covered" >(r</span>esolve, reject) => {</span>
|
|
2393
|
-
<span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >async </span>() => {</span>
|
|
2394
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2395
|
-
// Use dynamic path generation for ETH (EVM) - this is always ETH for personal message signing
|
|
2396
|
-
const derivationPath = <span class="cstat-no" title="statement not covered" >getAddressDerivationPath(</span>
|
|
2397
|
-
'eth',
|
|
2398
|
-
60,
|
|
2399
|
-
0,
|
|
2400
|
-
false,
|
|
2401
|
-
index
|
|
2402
|
-
);
|
|
2403
|
-
|
|
2404
|
-
<span class="cstat-no" title="statement not covered" > TrezorConnect.ethereumSignMessage({</span>
|
|
2405
|
-
path: derivationPath,
|
|
2406
|
-
message: Web3.utils.stripHexPrefix(message),
|
|
2407
|
-
hex: true,
|
|
2408
|
-
})
|
|
2409
|
-
.then(<span class="fstat-no" title="function not covered" >(r</span>esponse: any) => {
|
|
2410
|
-
<span class="cstat-no" title="statement not covered" > if (response.success) {</span>
|
|
2411
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
|
|
2412
|
-
address &&
|
|
2413
|
-
response.payload.address.toLowerCase() !==
|
|
2414
|
-
address.toLowerCase()
|
|
2415
|
-
) {
|
|
2416
|
-
<span class="cstat-no" title="statement not covered" > reject(new Error('signature doesnt match the right address'));</span>
|
|
2417
|
-
}
|
|
2418
|
-
const signature = <span class="cstat-no" title="statement not covered" >`0x${response.payload.signature}`;</span>
|
|
2419
|
-
<span class="cstat-no" title="statement not covered" > resolve({ signature, success: true });</span>
|
|
2420
|
-
} else {
|
|
2421
|
-
<span class="cstat-no" title="statement not covered" > reject(</span>
|
|
2422
|
-
// @ts-ignore
|
|
2423
|
-
new Error(response.payload.error || 'Unknown error')
|
|
2424
|
-
);
|
|
2425
|
-
}
|
|
2426
|
-
})
|
|
2427
|
-
.catch(<span class="fstat-no" title="function not covered" >(e</span>: any) => {
|
|
2428
|
-
<span class="cstat-no" title="statement not covered" > reject(new Error(e.toString() || 'Unknown error'));</span>
|
|
2429
|
-
});
|
|
2430
|
-
} catch (error) {
|
|
2431
|
-
<span class="cstat-no" title="statement not covered" > reject(error);</span>
|
|
2432
|
-
}
|
|
2433
|
-
// This is necessary to avoid popup collision
|
|
2434
|
-
// between the unlock & sign trezor popups
|
|
2435
|
-
}, DELAY_BETWEEN_POPUPS);
|
|
2436
|
-
});
|
|
2437
|
-
}
|
|
2438
|
-
private <span class="fstat-no" title="function not covered" >_sanitizeData(</span>data: any): any {
|
|
2439
|
-
<span class="cstat-no" title="statement not covered" > switch (Object.prototype.toString.call(data)) {</span>
|
|
2440
|
-
case '[object Object]': {
|
|
2441
|
-
const entries = <span class="cstat-no" title="statement not covered" >Object.keys(data).map(<span class="fstat-no" title="function not covered" >(k</span>) => <span class="cstat-no" title="statement not covered" >[</span></span>
|
|
2442
|
-
k,
|
|
2443
|
-
this._sanitizeData(data[k]),
|
|
2444
|
-
]);
|
|
2445
|
-
<span class="cstat-no" title="statement not covered" > return Object.fromEntries(entries);</span>
|
|
2446
|
-
}
|
|
2447
|
-
|
|
2448
|
-
case '[object Array]':
|
|
2449
|
-
<span class="cstat-no" title="statement not covered" > return data.map(<span class="fstat-no" title="function not covered" >(v</span>: any[]) => <span class="cstat-no" title="statement not covered" >this._sanitizeData(v))</span>;</span>
|
|
2450
|
-
|
|
2451
|
-
case '[object BigInt]':
|
|
2452
|
-
<span class="cstat-no" title="statement not covered" > return data.toString();</span>
|
|
2453
|
-
|
|
2454
|
-
default:
|
|
2455
|
-
<span class="cstat-no" title="statement not covered" > return data;</span>
|
|
2456
|
-
}
|
|
2457
|
-
}
|
|
2458
|
-
|
|
2459
|
-
private _transformTypedData = <span class="fstat-no" title="function not covered" ><T extends MessageTypes>(</span>
|
|
2460
|
-
data: TypedMessage<T>,
|
|
2461
|
-
metamask_v4_compat: boolean
|
|
2462
|
-
) => {
|
|
2463
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!metamask_v4_compat) {</span>
|
|
2464
|
-
<span class="cstat-no" title="statement not covered" > throw new Error(</span>
|
|
2465
|
-
'Trezor: Only version 4 of typed data signing is supported'
|
|
2466
|
-
);
|
|
2467
|
-
}
|
|
2468
|
-
|
|
2469
|
-
const { types, primaryType, domain, message } = <span class="cstat-no" title="statement not covered" >this._sanitizeData(data);</span>
|
|
2470
|
-
|
|
2471
|
-
const domainSeparatorHash = <span class="cstat-no" title="statement not covered" >TypedDataUtils.hashStruct(</span>
|
|
2472
|
-
'EIP712Domain',
|
|
2473
|
-
this._sanitizeData(domain),
|
|
2474
|
-
types,
|
|
2475
|
-
true
|
|
2476
|
-
).toString('hex');
|
|
2477
|
-
|
|
2478
|
-
let messageHash: string | null = <span class="cstat-no" title="statement not covered" >null;</span>
|
|
2479
|
-
|
|
2480
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (primaryType !== 'EIP712Domain') {</span>
|
|
2481
|
-
<span class="cstat-no" title="statement not covered" > messageHash = TypedDataUtils.hashStruct(</span>
|
|
2482
|
-
primaryType as string,
|
|
2483
|
-
this._sanitizeData(message),
|
|
2484
|
-
types,
|
|
2485
|
-
true
|
|
2486
|
-
).toString('hex');
|
|
2487
|
-
}
|
|
2488
|
-
|
|
2489
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
2490
|
-
domain_separator_hash: domainSeparatorHash,
|
|
2491
|
-
message_hash: messageHash,
|
|
2492
|
-
...data,
|
|
2493
|
-
};
|
|
2494
|
-
};
|
|
2495
|
-
|
|
2496
|
-
/**
|
|
2497
|
-
* EIP-712 Sign Typed Data
|
|
2498
|
-
*/
|
|
2499
|
-
public <span class="fstat-no" title="function not covered" >async </span>signTypedData({
|
|
2500
|
-
version,
|
|
2501
|
-
address,
|
|
2502
|
-
data,
|
|
2503
|
-
index,
|
|
2504
|
-
}: {
|
|
2505
|
-
address: string;
|
|
2506
|
-
data: any;
|
|
2507
|
-
index: number;
|
|
2508
|
-
version: Version;
|
|
2509
|
-
}) {
|
|
2510
|
-
// Use dynamic path generation for ETH (EVM) - typed data is only used for EVM
|
|
2511
|
-
const derivationPath = <span class="cstat-no" title="statement not covered" >getAddressDerivationPath('eth', 60, 0, false, index);</span>
|
|
2512
|
-
const dataWithHashes = <span class="cstat-no" title="statement not covered" >this._transformTypedData(data, version === 'V4');</span>
|
|
2513
|
-
|
|
2514
|
-
// set default values for signTypedData
|
|
2515
|
-
// Trezor is stricter than @metamask/eth-sig-util in what it accepts
|
|
2516
|
-
const {
|
|
2517
|
-
types,
|
|
2518
|
-
message = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
2519
|
-
domain = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
2520
|
-
primaryType,
|
|
2521
|
-
// snake_case since Trezor uses Protobuf naming conventions here
|
|
2522
|
-
domain_separator_hash, // eslint-disable-line camelcase
|
|
2523
|
-
message_hash, // eslint-disable-line camelcase
|
|
2524
|
-
} = <span class="cstat-no" title="statement not covered" >dataWithHashes;</span>
|
|
2525
|
-
|
|
2526
|
-
// This is necessary to avoid popup collision
|
|
2527
|
-
// between the unlock & sign trezor popups
|
|
2528
|
-
|
|
2529
|
-
const response = <span class="cstat-no" title="statement not covered" >await TrezorConnect.ethereumSignTypedData({</span>
|
|
2530
|
-
path: derivationPath,
|
|
2531
|
-
data: {
|
|
2532
|
-
types: {
|
|
2533
|
-
...types,
|
|
2534
|
-
EIP712Domain: types.EIP712Domain ? types.EIP712Domain : [],
|
|
2535
|
-
},
|
|
2536
|
-
message,
|
|
2537
|
-
domain,
|
|
2538
|
-
primaryType: primaryType as any,
|
|
2539
|
-
},
|
|
2540
|
-
metamask_v4_compat: true,
|
|
2541
|
-
// Trezor 1 only supports blindly signing hashes
|
|
2542
|
-
domain_separator_hash,
|
|
2543
|
-
message_hash: message_hash ? message_hash : '',
|
|
2544
|
-
});
|
|
2545
|
-
|
|
2546
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (response.success) {</span>
|
|
2547
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (address !== response.payload.address) {</span>
|
|
2548
|
-
<span class="cstat-no" title="statement not covered" > throw new Error('signature doesnt match the right address');</span>
|
|
2549
|
-
}
|
|
2550
|
-
<span class="cstat-no" title="statement not covered" > return response.payload.signature;</span>
|
|
2551
|
-
}
|
|
2552
|
-
// @ts-ignore
|
|
2553
|
-
<span class="cstat-no" title="statement not covered" > throw new Error(response.payload.error || 'Unknown error');</span>
|
|
2554
|
-
}
|
|
2555
|
-
|
|
2556
|
-
/**
|
|
2557
|
-
* Gets account address based in index of account in path derivation.
|
|
2558
|
-
*
|
|
2559
|
-
* @param coin - network symbol. Example: eth, sys, btc
|
|
2560
|
-
* @param slip44 - network slip44 number
|
|
2561
|
-
* @param index - index of account for path derivation
|
|
2562
|
-
* @returns account address
|
|
2563
|
-
*/
|
|
2564
|
-
|
|
2565
|
-
public <span class="fstat-no" title="function not covered" >async </span>getAddress({
|
|
2566
|
-
coin,
|
|
2567
|
-
slip44,
|
|
2568
|
-
index,
|
|
2569
|
-
isChangeAddress,
|
|
2570
|
-
}: {
|
|
2571
|
-
coin: string;
|
|
2572
|
-
index: string | number;
|
|
2573
|
-
isChangeAddress?: boolean;
|
|
2574
|
-
slip44: number; // Required, not optional
|
|
2575
|
-
}): Promise<string | undefined> {
|
|
2576
|
-
// Use dynamic path generation instead of hardcoded switch
|
|
2577
|
-
const fullPath = <span class="cstat-no" title="statement not covered" >getAddressDerivationPath(</span>
|
|
2578
|
-
coin,
|
|
2579
|
-
slip44,
|
|
2580
|
-
0,
|
|
2581
|
-
isChangeAddress,
|
|
2582
|
-
Number(index)
|
|
2583
|
-
);
|
|
2584
|
-
|
|
2585
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2586
|
-
const { payload, success } = <span class="cstat-no" title="statement not covered" >await TrezorConnect.getAddress({</span>
|
|
2587
|
-
path: fullPath,
|
|
2588
|
-
coin,
|
|
2589
|
-
});
|
|
2590
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (success) {</span>
|
|
2591
|
-
<span class="cstat-no" title="statement not covered" > return payload.address;</span>
|
|
2592
|
-
}
|
|
2593
|
-
} catch (error) {
|
|
2594
|
-
<span class="cstat-no" title="statement not covered" > return error;</span>
|
|
2595
|
-
}
|
|
2596
|
-
}
|
|
2597
|
-
|
|
2598
|
-
public <span class="fstat-no" title="function not covered" >async </span>getMultipleAddress({
|
|
2599
|
-
coin,
|
|
2600
|
-
slip44,
|
|
2601
|
-
indexArray,
|
|
2602
|
-
isChangeAddress,
|
|
2603
|
-
}: {
|
|
2604
|
-
coin: string;
|
|
2605
|
-
indexArray: string[] | number[];
|
|
2606
|
-
isChangeAddress?: boolean;
|
|
2607
|
-
slip44: number; // Required, not optional
|
|
2608
|
-
}): Promise<string[] | undefined> {
|
|
2609
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2610
|
-
const { payload, success } = <span class="cstat-no" title="statement not covered" >await TrezorConnect.getAddress({</span>
|
|
2611
|
-
bundle: indexArray.map(<span class="fstat-no" title="function not covered" >(i</span>ndex) => (<span class="cstat-no" title="statement not covered" >{</span>
|
|
2612
|
-
path: getAddressDerivationPath(
|
|
2613
|
-
coin,
|
|
2614
|
-
slip44,
|
|
2615
|
-
0,
|
|
2616
|
-
isChangeAddress,
|
|
2617
|
-
Number(index)
|
|
2618
|
-
),
|
|
2619
|
-
coin,
|
|
2620
|
-
})),
|
|
2621
|
-
});
|
|
2622
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (success) {</span>
|
|
2623
|
-
<span class="cstat-no" title="statement not covered" > return payload.map(<span class="fstat-no" title="function not covered" >(i</span>tem: any) => <span class="cstat-no" title="statement not covered" >item.address)</span>;</span>
|
|
2624
|
-
}
|
|
2625
|
-
} catch (error) {
|
|
2626
|
-
<span class="cstat-no" title="statement not covered" > return error;</span>
|
|
2627
|
-
}
|
|
2628
|
-
}
|
|
2629
|
-
}
|
|
2630
|
-
</pre></td></tr></table></pre>
|
|
2631
|
-
|
|
2632
|
-
<div class="push"></div>
|
|
2633
|
-
<!-- for sticky footer -->
|
|
2634
|
-
</div>
|
|
2635
|
-
<!-- /wrapper -->
|
|
2636
|
-
<div class="footer quiet pad2 space-top1 center small">
|
|
2637
|
-
Code coverage generated by
|
|
2638
|
-
<a
|
|
2639
|
-
href="https://istanbul.js.org/"
|
|
2640
|
-
target="_blank"
|
|
2641
|
-
rel="noopener noreferrer"
|
|
2642
|
-
>istanbul</a
|
|
2643
|
-
>
|
|
2644
|
-
at 2025-06-20T17:45:56.456Z
|
|
2645
|
-
</div>
|
|
2646
|
-
<script src="../../prettify.js"></script>
|
|
2647
|
-
<script>
|
|
2648
|
-
window.onload = function () {
|
|
2649
|
-
prettyPrint();
|
|
2650
|
-
};
|
|
2651
|
-
</script>
|
|
2652
|
-
<script src="../../sorter.js"></script>
|
|
2653
|
-
<script src="../../block-navigation.js"></script>
|
|
2654
|
-
</body>
|
|
2655
|
-
</html>
|