910'000
& testnet4 & 90'000
.
910'000
& testnet4 & 90'000
.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33274.
See the guideline for information on the review process.
Type | Reviewers |
---|---|
ACK | Sjors, w0xlt, achow101, hodlinator |
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.
Reviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
179@@ -180,6 +180,12 @@ class CMainParams : public CChainParams {
180 .hash_serialized = AssumeutxoHash{uint256{"dbd190983eaf433ef7c15f78a278ae42c00ef52e0fd2a54953782175fbadcea9"}},
181 .m_chain_tx_count = 1145604538,
182 .blockhash = consteval_ctor(uint256{"000000000000000000010b17283c3c400507969a9c2afd1dcf2082ec5cca2880"}),
183+ },
184+ {
185+ .height = 910'000,
2cc7d585600e8f0760f877fecf4e7eaf9c5dc92b: here’s a torrent magnet, with the same seeds as Bitcoin Core v29, except the binary seed: magnet:?xt=urn:btih:7019437a2b1530624b100c0795cfc5f90b8322ca&dn=utxo-910000.dat&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Fexplodie.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.bitcoin.sprovoost.nl%3A6969
It might be an hour or so before you can download it.
Reminder to other testers that loading the snapshot is much faster if you disable the network temporary, see #29993.
Mainnet assume UTXO block confirmed:
0₿ bitcoin-cli getblock 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821
1{
2 "hash": "0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821",
3 "confirmations": 2908,
4 "height": 910000,
Downloaded torrent as kindly provided by Sjors.
-noconnect
bitcoin-cli -rpcclienttimeout=0 loadtxoutset ~/Downloads/utxo-910000.dat
0₿ bitcoin-cli getchainstates
1{
2 "headers": 912911,
3 "chainstates": [
4 {
5 "blocks": 2123,
6 "bestblockhash": "00000000a3099f5f4100c759a09d3ba7001e9075d7997c4e0e76308209dfece8",
7 "bits": "1d00ffff",
8 "target": "00000000ffff0000000000000000000000000000000000000000000000000000",
9 "difficulty": 1,
10 "verificationprogress": 1.742815384638761e-06,
11 "coins_db_cache_bytes": 419430,
12 "coins_tip_cache_bytes": 523763712,
13 "validated": true
14 },
15 {
16 "blocks": 910000,
17 "bestblockhash": "0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821",
18 "bits": "17022cb3",
19 "target": "000000000000000000022cb30000000000000000000000000000000000000000",
20 "difficulty": 129435235580344.8,
21 "verificationprogress": 0.9924388182672436,
22 "coins_db_cache_bytes": 7969177,
23 "coins_tip_cache_bytes": 9951510528,
24 "snapshot_blockhash": "0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821",
25 "validated": false
26 }
27 ]
28}
-noconnect
.bitcoin-cli getchainstates
shows slowly increasing blocks from 910'000 upwards, while the other chainstate is stuck at 2'123 blocks. 02025-09-03T09:35:36Z [warning] Flushing large (5 GiB) UTXO set to disk, it may take several minutes
12025-09-03T09:37:04Z [snapshot] computing UTXO stats for background chainstate to validate snapshot - this could take a few minutes
22025-09-03T09:39:15Z [snapshot] snapshot beginning at 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821 has been fully validated
32025-09-03T09:39:15Z [snapshot] allocating all cache to the snapshot chainstate
42025-09-03T09:39:15Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
52025-09-03T09:39:15Z Opened LevelDB successfully
62025-09-03T09:39:15Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
72025-09-03T09:39:15Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinsdb cache to 8.0 MiB
82025-09-03T09:39:15Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinstip cache to 9990.0 MiB
92025-09-03T09:39:15Z [snapshot] re-enabling NODE_NETWORK services
102025-09-03T09:39:15Z [snapshot] restarting indexes
bitcoin-cli getchainstates
now only returns one state, but I still have both on disk:0₿ du -hs /home/hodlinator/.bitcoin/chainstate*
120G /home/hodlinator/.bitcoin/chainstate
212G /home/hodlinator/.bitcoin/chainstate_snapshot
02025-09-03T09:43:38Z Assuming ancestors of block 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb have valid signatures.
12025-09-03T09:43:38Z Setting nMinimumChainWork=0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68
22025-09-03T09:43:38Z [snapshot] detected active snapshot chainstate (/home/hodlinator/.bitcoin/chainstate_snapshot) - loading
32025-09-03T09:43:38Z [snapshot] switching active chainstate to Chainstate [snapshot] @ height -1 (null)
42025-09-03T09:43:39Z [snapshot] set m_chain_tx_count=1226586151 for 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821
52025-09-03T09:43:40Z Loading block index db: last block file = 5121
62025-09-03T09:43:40Z Loading block index db: last block file info: CBlockFileInfo(blocks=64, size=98094618, heights=909602...909998, time=2025-08-11...2025-08-14)
72025-09-03T09:43:40Z Checking all blk files are present...
82025-09-03T09:43:42Z Initializing chainstate Chainstate [ibd] @ height -1 (null)
92025-09-03T09:43:42Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate
102025-09-03T09:43:43Z Opened LevelDB successfully
112025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate: 85bc6cb8217fc36e
122025-09-03T09:43:43Z Loaded best chain: hashBestChain=0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821 height=910000 date=2025-08-14T09:25:55Z progress=0.992203
132025-09-03T09:43:43Z Initializing chainstate Chainstate [snapshot] @ height -1 (null)
142025-09-03T09:43:43Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
152025-09-03T09:43:43Z Opened LevelDB successfully
162025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
172025-09-03T09:43:43Z Loaded best chain: hashBestChain=000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2 height=912993 date=2025-09-03T09:16:53Z progress=1.000000
182025-09-03T09:43:43Z Leaving InitialBlockDownload (latching to false)
192025-09-03T09:43:43Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
202025-09-03T09:43:43Z Opened LevelDB successfully
212025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
222025-09-03T09:43:43Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinsdb cache to 0.4 MiB
232025-09-03T09:43:43Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinstip cache to 499.5 MiB
242025-09-03T09:43:43Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate
252025-09-03T09:43:43Z Opened LevelDB successfully
262025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate: 85bc6cb8217fc36e
272025-09-03T09:43:43Z [Chainstate [ibd] @ height 910000 (0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821)] resized coinsdb cache to 7.6 MiB
282025-09-03T09:43:43Z [Chainstate [ibd] @ height 910000 (0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821)] resized coinstip cache to 9490.5 MiB
292025-09-03T09:43:43Z [snapshot] computing UTXO stats for background chainstate to validate snapshot - this could take a few minutes
302025-09-03T09:45:32Z [snapshot] snapshot beginning at 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821 has been fully validated
312025-09-03T09:45:32Z [snapshot] allocating all cache to the snapshot chainstate
322025-09-03T09:45:32Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
332025-09-03T09:45:32Z Opened LevelDB successfully
342025-09-03T09:45:32Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
352025-09-03T09:45:32Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinsdb cache to 8.0 MiB
362025-09-03T09:45:32Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinstip cache to 9990.0 MiB
372025-09-03T09:45:32Z [snapshot] cleaning up unneeded background chainstate, then reinitializing
382025-09-03T09:45:32Z [snapshot] deleting background chainstate directory (now unnecessary) (/home/hodlinator/.bitcoin/chainstate)
392025-09-03T09:45:32Z [snapshot] moving snapshot chainstate (/home/hodlinator/.bitcoin/chainstate_snapshot) to default chainstate directory (/home/hodlinator/.bitcoin/chainstate)
402025-09-03T09:45:32Z Removing leveldb dir at /home/hodlinator/.bitcoin/chainstate_todelete
412025-09-03T09:45:34Z [snapshot] deleted background chainstate directory (/home/hodlinator/.bitcoin/chainstate)
422025-09-03T09:45:37Z Loading block index db: last block file = 5121
432025-09-03T09:45:37Z Loading block index db: last block file info: CBlockFileInfo(blocks=64, size=98094618, heights=909602...909998, time=2025-08-11...2025-08-14)
442025-09-03T09:45:37Z Checking all blk files are present...
452025-09-03T09:45:37Z Initializing chainstate Chainstate [ibd] @ height -1 (null)
462025-09-03T09:45:37Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate
472025-09-03T09:45:37Z Opened LevelDB successfully
482025-09-03T09:45:37Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate: 7d624d1ee9abfe2b
492025-09-03T09:45:38Z Loaded best chain: hashBestChain=000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2 height=912993 date=2025-09-03T09:16:53Z progress=1.000000
378@@ -379,7 +379,12 @@ class CTestNet4Params : public CChainParams {
379 m_is_mockable_chain = false;
380
381 m_assumeutxo_data = {
382- {}
383+ {
384+ .height = 90'000,
magnet:?xt=urn:btih:7341b215b570e3bc69f5fbbe5e817b51b0b9b542&dn=utxo-testnet4-90000.dat&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Fexplodie.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.bitcoin.sprovoost.nl%3A6969
Could be a case of the worst selection highlight UI ever. I have the file.
(My client claims the port is open (probably thanks to my router reset), so I’m not intentionally leeching, just low demand).
02025-09-03T11:27:15Z [snapshot] snapshot beginning at 0000000002ebe8bcda020e0dd6ccfbdfac531d2f6a81457191b99fc2df2dbe3b has been fully validated
Had to restart node for the 2nd chainstate to be deleted after doing a 2nd round of validation (same as mainnet #33274 (review)):
02025-09-03T11:28:14Z [snapshot] computing UTXO stats for background chainstate to validate snapshot - this could take a few minutes
12025-09-03T11:28:22Z [snapshot] snapshot beginning at 0000000002ebe8bcda020e0dd6ccfbdfac531d2f6a81457191b99fc2df2dbe3b has been fully validated
22025-09-03T11:28:22Z [snapshot] allocating all cache to the snapshot chainstate
32025-09-03T11:28:22Z Opening LevelDB in /home/hodlinator/.bitcoin/testnet4/chainstate_snapshot
42025-09-03T11:28:22Z Opened LevelDB successfully
52025-09-03T11:28:22Z Using obfuscation key for /home/hodlinator/.bitcoin/testnet4/chainstate_snapshot: d4971b3b981c8ea1
62025-09-03T11:28:22Z [Chainstate [snapshot] @ height 100474 (0000000001fb1795dec277e447d800c813d9a37bf5b796a22e77df9fc067f08f)] resized coinsdb cache to 8.0 MiB
72025-09-03T11:28:22Z [Chainstate [snapshot] @ height 100474 (0000000001fb1795dec277e447d800c813d9a37bf5b796a22e77df9fc067f08f)] resized coinstip cache to 9990.0 MiB
82025-09-03T11:28:22Z [snapshot] cleaning up unneeded background chainstate, then reinitializing
92025-09-03T11:28:22Z [snapshot] deleting background chainstate directory (now unnecessary) (/home/hodlinator/.bitcoin/testnet4/chainstate)
102025-09-03T11:28:22Z [snapshot] moving snapshot chainstate (/home/hodlinator/.bitcoin/testnet4/chainstate_snapshot) to default chainstate directory (/home/hodlinator/.bitcoin/testnet4/chainstate)
112025-09-03T11:28:22Z Removing leveldb dir at /home/hodlinator/.bitcoin/testnet4/chainstate_todelete
122025-09-03T11:28:22Z [snapshot] deleted background chainstate directory (/home/hodlinator/.bitcoin/testnet4/chainstate)
231@@ -232,8 +232,8 @@ class CTestNetParams : public CChainParams {
232 consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
233 consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
234
235- consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000015f5e0c9f13455b0eb17"};
236- consensus.defaultAssumeValid = uint256{"00000000000003fc7967410ba2d0a8a8d50daedc318d43e8baf1a9782c236a57"}; // 3974606
237+ consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000016dd270dd94fac1d7632"};
238+ consensus.defaultAssumeValid = uint256{"0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34"}; // 4550000
ACK 01fbbc5b7ea02c98f54255b8dba342a065edb9f7
I didn’t check the datadir sizes.
I tested loading the testnet4 snapshot and then syncing to the tip. Still syncing a mainnet node with -assumevalid=0
(also using a loaded snapshot), will update here in the unlikely event that it fails.
240@@ -241,7 +241,7 @@ class CTestNetParams : public CChainParams {
241 pchMessageStart[3] = 0x07;
242 nDefaultPort = 18333;
243 nPruneAfterHeight = 1000;
244- m_assumed_blockchain_size = 200;
245+ m_assumed_blockchain_size = 215;
Seems low, would expect 244.
0$ du -csh --apparent-size testnet3/chainstate/ testnet3/blocks/
116G testnet3/chainstate/
2205G testnet3/blocks/
3221G total
For a node that’s been offline for a year or so and then caught up yesterday:
016G testnet3/chainstate/
1195G testnet3/blocks/
2210G total
0 du -csh testnet3/chainstate/ testnet3/blocks/
1 16G testnet3/chainstate/
2194G testnet3/blocks/
3210G total
Can increase to 240.
337@@ -338,7 +338,7 @@ class CTestNet4Params : public CChainParams {
338 nDefaultPort = 48333;
339 nPruneAfterHeight = 1000;
340 m_assumed_blockchain_size = 11;
I think testnet4 blockchain size is bigger
0du -csh --apparent-size testnet4/chainstate/ testnet4/blocks/
1928M testnet4/chainstate/
220G testnet4/blocks/
320G total
Testnet4 node that’s been online a couple of times, but not continuously:
0938M testnet4/chainstate/
18,1G testnet4/blocks/
29,0G total
And one that I spun up in June and his been online since:
0915M testnet4/chainstate/
120G testnet4/blocks/
221G total
The difference probably comes from the vast number of stale blocks.
I think testnet4 blockchain size is bigger
Not here:
0du -csh testnet4/chainstate/ testnet4/blocks/
1945M testnet4/chainstate/
28.0G testnet4/blocks/
38.9G total
Will increase to 22 in any case.
403@@ -404,8 +404,8 @@ class SigNetParams : public CChainParams {
404
405 consensus.nMinimumChainWork = uint256{"000000000000000000000000000000000000000000000000000002b517f3d1a1"};
406 consensus.defaultAssumeValid = uint256{"000000895a110f46e59eb82bbc5bfb67fa314656009c295509c21b4999f5180a"}; // 237722
407- m_assumed_blockchain_size = 9;
408- m_assumed_chain_state_size = 1;
409+ m_assumed_blockchain_size = 17;
Seems low, would expect 20.
0du -csh --apparent-size signet/chainstate/ signet/blocks/
12.8G signet/chainstate/
215G signet/blocks/
318G total
Intermittently online node (though that shouldn’t make a difference on this signet):
02,8G signet/chainstate/
115G signet/blocks/
218G total
131@@ -132,7 +132,7 @@ class CMainParams : public CChainParams {
132 pchMessageStart[3] = 0xd9;
133 nDefaultPort = 8333;
134 nPruneAfterHeight = 100000;
135- m_assumed_blockchain_size = 720;
136+ m_assumed_blockchain_size = 810;
My ~/.bitcoin/ dir was 736G after removing other chains. Seldom online with that node, so will not have many stale blocks, but it’s in a similar ballpark. Same for chainstate which was 11G.
Increases in other chains seem reasonable.
117@@ -118,8 +118,8 @@ class CMainParams : public CChainParams {
118 consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1815; // 90%
119 consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
120
121- consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000b1f3b93b65b16d035a82be84"};
122- consensus.defaultAssumeValid = uint256{"00000000000000000001b658dd1120e82e66d2790811f89ede9742ada3ed6d77"}; // 886157
123+ consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68"};
124+ consensus.defaultAssumeValid = uint256{"00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb"}; // 912683
Mainnet assume valid block checks out:
0₿ bitcoin-cli getblock 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb
1{
2 "hash": "00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb",
3 "confirmations": 181,
4 "height": 912683,
5 ...
6 "chainwork": "0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68",
Other chains all increased minimum chainwork as expected.
189- .tx_count = 1161875261,
190- .dTxRate = 4.620728156243148,
191+ // Data from RPC: getchaintxstats 4096 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb
192+ .nTime = 1756722903,
193+ .tx_count = 1235299397,
194+ .dTxRate = 5.456290459519495,
Mainnet matches output from:
0₿ bitcoin-cli getchaintxstats 4096 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb
Others seem acceptable.
18 # Expected block interval. [timedelta]
19 BLOCK_INTERVAL = timedelta(seconds=600)
20
21 # The number of headers corresponding to the minchainwork parameter. [headers]
22-MINCHAINWORK_HEADERS = 886157
23+MINCHAINWORK_HEADERS = 912683
MINCHAINWORK_HEADERS
matches assume valid block and HEADER_COMMITMENT_PERIOD
+ REDOWNLOAD_BUFFER_SIZE
are close to numbers predicted for this release in #32579.
333@@ -328,17 +334,17 @@ class CTestNet4Params : public CChainParams {
334 consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
335 consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
336
337- consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000001d6dce8651b6094e4c1"};
338- consensus.defaultAssumeValid = uint256{"0000000000003ed4f08dbdf6f7d6b271a6bcffce25675cb40aa9fa43179a89f3"}; // 72600
339+ consensus.nMinimumChainWork = uint256{"00000000000000000000000000000000000000000000034a4690fe592dc49c7c"};
340+ consensus.defaultAssumeValid = uint256{"000000000000000180a58e7fa3b0db84b5ea76377524894f53660d93ac839d9b"}; // 91000
—–BEGIN PGP SIGNED MESSAGE—– Hash: SHA512
ACK 755152ac819a23acf2f9e70316134d74a04d589b. Verified assumevalid, chainwork and stats for mainnet, testnet4 and signet. Verified the serialized utxo set hash for mainnet. Haven’t verified header params. Haven’t verified for testnet3. —–BEGIN PGP SIGNATURE—–
iQGzBAEBCgAdFiEEWQtykmla/6W2csuy4T/BRc0/QwQFAmi4kLsACgkQ4T/BRc0/ QwRjPQwArKJge7cs43ejKvvxbtsNtjDfc97jj1CnDtIEJuzKzglFzbdNh0/RY9ef eAWh04+HhUv2FgNbCIL7PnWLletazPlW0GhTroRqhQsgU/r9pT5f06MkjetjWcW1 AoECEpwM8QItyZ0L/8PcPKr4qBdFiOZdkEuhHbRQC3clpPruUokSRXgnU9ISDV3z W1uVt8ToDjDIBDqKBFK1Ne/cReLNpNIcnU0a6y57EsBaQGGP2+5QGVjGFHCNuovB EQ07DfnTfdbhuf01OQlqNtmiaF/jzrRFEmowNqXtEWByQGehW8nmdO5D+oXNeeEW XRpPPuJkzV0O8bk1aIQmnWyNBa0qPj1aY4WMVlEsYkcq2/OrjxFwejMYTC+/DgtQ upGDZ8g5I4rg+FkxWcQz316DoxItupDxP2hE3El3o85pxgdFiQsjOG0mw5N5gELs P55FDxgIEBqB9c9s+EV18mS2LibsRDCy23E4fO6U9dTedfYlTKA/M9vVWYo9GO8S gqRaXTgj =cNGu —–END PGP SIGNATURE—–