IntersectMBO / cardano-node

The core component that is used to participate in a Cardano decentralised blockchain.
https://cardano.org
Apache License 2.0
3.04k stars 722 forks source link

[BUG] Mainnet nodes with incoming connections unexpected shutdown with Failure in Data.Map.balanceR (error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal) #4826

Closed SmaugPool closed 1 year ago

SmaugPool commented 1 year ago

External External

Area cardano-node exception leading to shutdown

Summary All my public nodes with incoming connections (active block producer and relays) shut down unexpectedly on 2022 January 22 at 00:09:01 UTC following the following fatal exception:

janv. 22 01:09:01 de cardano-node-1.35.4[24590]: {"app":[],"at":"2023-01-22T00:09:01.24Z","data":{"immtip":{"headerHash":"fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e6>
janv. 22 01:09:01 de cardano-node-1.35.4[24590]: cardano-node-1.35.4: ExceptionInLinkedThread "ThreadId 165" Failure in Data.Map.balanceR
janv. 22 01:09:01 de cardano-node-1.35.4[24590]: CallStack (from HasCallStack):
janv. 22 01:09:01 de cardano-node-1.35.4[24590]:   error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal

(time in UTC+1 above)

Some other operators confirmed this also happened to some of their nodes.

Steps to reproduce No idea yet.

Expected behavior No exception is expected in cardano-node.

System info (please complete the following information):

Screenshots and attachments Previous logs (UTC+1):

janv. 22 01:09:01 de cardano-node-1.35.4[24590]: {"app":[],"at":"2023-01-22T00:09:01.22Z","data":{"block":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667@82779850","kind":"TraceAddBlockEvent.AddBlockValidation.ValidCandidate"},"env":"1.35.4:ebc7b","host":"de","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"24590","sev":"Info","thread":"157"}
janv. 22 01:09:01 de cardano-node-1.35.4[24590]: {"app":[],"at":"2023-01-22T00:09:01.22Z","data":{"chainLengthDelta":1,"kind":"TraceAddBlockEvent.AddedToCurrentChain","newtip":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667@82779850"},"env":"1.35.4:ebc7b","host":"de","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"24590","sev":"Notice","thread":"157"}
janv. 22 01:09:01 de cardano-node-1.35.4[24590]: Shutting down..

Additional context All my nodes without incoming connections (just outgoing ones) were not affected.

rdlrt commented 1 year ago

Many SPOs are reporting the same on SPO workgroup (node versions across 1.35.3 and 1.35.4). Only nodes that were not publicly available to connect (thus, not receiving all transactions) survived

AndrewWestberg commented 1 year ago

7-minute gap in my logs.

{"app":[],"at":"2023-01-22T00:09:01.59Z","data":{"kind":"DiffusionErrored","path":"ExceptionInLinkedThread \"ThreadId 214\" Failure in Data.Map.balanceR\nCallStack (from HasCallStack):\n  error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal"},"env":"1.35.4:8bf17","host":"handy","loc":null,"msg":"","ns":["cardano.node.DiffusionInitializationTracer"],"pid":"1670822","sev":"Info","thread":"16"}
{"app":[],"at":"2023-01-22T00:09:01.59Z","data":{"kind":"TraceImmutableDBEvent.DBClosed"},"env":"1.35.4:8bf17","host":"handy","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"1670822","sev":"Info","thread":"16"}
{"app":[],"at":"2023-01-22T00:09:01.59Z","data":{"immtip":{"headerHash":"fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e69305ccaf279ceaf","kind":"BlockPoint","slot":82736539},"kind":"TraceOpenEvent.ClosedDB","tip":{"headerHash":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667","kind":"BlockPoint","slot":82779850}},"env":"1.35.4:8bf17","host":"handy","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"1670822","sev":"Info","thread":"16"}
{"app":[],"at":"2023-01-22T00:09:08.41Z","data":{"kind":"LogMessage","message":"Byron; Shelley"},"env":"1.35.4:8bf17","host":"handy","loc":null,"msg":"","ns":["cardano.node.basicInfo.protocol"],"pid":"2149443","sev":"Notice","thread":"16"}
SmaugPool commented 1 year ago

Network synchronization and block height alignment from pooltool.io (https://pooltool.io/networkhealth):

image

image

renesecur commented 1 year ago

We saw the same. Last block to come in was 8300568. As it came in, the nodes crashed.

nalyd88 commented 1 year ago

All our active nodes (mix of cloud and baremetal running both versions 1.35.3 and 1.35.4) went down. Only one node that had no incoming connections did not have the error.

Looking for the error message we found its from here so not a node exception. https://hackage.haskell.org/package/containers-0.6.2.1/docs/src/Data.Map.Internal.html image

lead-pool commented 1 year ago

Same error too - all nodes restarted... All running 1.35.4 - combination of Bare Metal and Cloud running across multiple geographical locations

lupsya commented 1 year ago

Can confirm the same, all nodes restarted at the same time that was reported here. Using both versions 1.35.3 & 1.35.4. Ubuntu 20.04

WHITECardano commented 1 year ago

Same here

CryptoBlocks-pro commented 1 year ago

Ditto here

leo42 commented 1 year ago

On initial inspection this seems to be the offending transaction

https://cardanoscan.io/transaction/5d21b0eb26ba772ec85c2db09311005815c89140ee7bf894fa36c0a6d71b89c1?tab=collateral

the block it was in 95050 fails to register on almost all Nodes, seems like they all die as soon as they see the block.

The Collaterals are consumed, indicating the the TX failed to execute.

I theorize that the Redeemer had some sort of runway process happen, causing all nodes that tied to process it to shut down.

woodkm commented 1 year ago

Just confirming saw the same thing as you all

MUEN718 commented 1 year ago

Same as above. All nodes have been restarted.

reqlez commented 1 year ago

Yup, as most reported. This is from my FreeBSD nodes:

error came in:

{"app":[],"at":"2023-01-22T00:08:48.96Z","data":{"connectionHandler":{"command":"ShutdownPeer","context":"InboundError","kind":"Error","reason":"Failure in Data.Map.balanceR\nCallStack (from HasCallStack):\n error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal"}

Then eventually node got shutdown:

{"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"38309"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"35330"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"50601"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"42620"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"50068"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"45558"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"50672"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"DiffusionErrored","path":"ExceptionInLinkedThread \"ThreadId 46\" Failure in Data.Map.balanceR\nCallStack (from HasCallStack):\n error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal"},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.DiffusionInitializationTracer"],"pid":"778","sev":"Info","thread":"6"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"TraceImmutableDBEvent.DBClosed"},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"778","sev":"Info","thread":"6"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"immtip":{"headerHash":"fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e69305ccaf279ceaf","kind":"BlockPoint","slot":82736539},"kind":"TraceOpenEvent.ClosedDB","tip":{"headerHash":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667","kind":"BlockPoint","slot":82779850}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"778","sev":"Info","thread":"6"}

JaredCorduan commented 1 year ago

The Collaterals are consumed, indicating the the TX failed to execute.

@leo42 - what about the cardano-scan output makes you think that the collateral was consumed? collateral is only consumed if a transaction is successfully processed, if it contains at least one failing plutus script, and if the transaction is marked as expected to have a failed script.

if you happen to have the CBOR for this transaction that would speed up my investigation

leo42 commented 1 year ago

@JaredCorduan I Unfortunately do not have the CBOR.

I scanned all the TXs in the block that seems to have caused the stall. according to Cardano-scan 3 collateral inputs where consumed and one output was created. it registered total collateral as 1.25A that seems to be the amount missing from the output. Since ADA was substracted from the collateral output I assumed that indicates a failed script execution.

JaredCorduan commented 1 year ago

I scanned all the TXs in the block that seems to have caused the stall. according to Cardano-scan 3 collateral inputs where consumed and one output was created.

it's wasn't clear to me that this wasn't just the collateral inputs and collateral return listed in the tx.

spireblockchain commented 1 year ago

All nodes crashed per the above here as well

snic-csp commented 1 year ago

My Droperator relay, which didn't process the transaction didn't crash, but my main relay and BP did crash.

solidsnakedev commented 1 year ago

Same here: [0c896b93:cardano.node.DiffusionInitializationTracer:Info:5] [2023-01-22 00:09:01.35 UTC] DiffusionErrored (ExceptionInLinkedThread "ThreadId 6116" Failure in Data.Map.balanceR CallStack (from HasCallStack): error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal) [0c896b93:cardano.node.ChainDB:Info:5] [2023-01-22 00:09:01.38 UTC] Closed Immutable DB. [0c896b93:cardano.node.ChainDB:Info:5] [2023-01-22 00:09:01.38 UTC] Closed db with immutable tip at fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e69305ccaf279ceaf at slot 82736539 and tip 77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667 at slot 82779850

SmaugPool commented 1 year ago

@JaredCorduan Here is the whole block 8300569 CBOR which I think contains the transaction discussed above: Hash: 77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667

820685828a1a007ea8191a04ef1eca58204c3f8289307536bed7d7f3cf95f5952298d1b03bae200f89c7f37649d5be2d22582081dc0a2122bcf8af4a3580f5fc2d7382bed5142b790443106ff02a1e5359d3055820f41f8d7fe8ace8a3cf19eb19d30fe8cd92648032634e3bbbb8a272e56264aa3d825840a5034f9197a7382665a4320f7c5e0758058f78f5205b3bb11952c3b770dd468e7f96708e97a81483490b9433719f1064d5238ce86424ed8fee6e64c2ee6dfb5d585037312b5fc35286b5a3530a0adb6f5287a9e691bc3a29c98a8ff8de98fcdf7685b34b7626bb8d9bccd9cd78063ef00f6ff0ac91ad7c15c1d87e980d42804bd9e61c48edb2c55c189d8a41d66ca2981f0f19ad525820e260a0a92217e476b110327def00e06c9d93c61e52a5ce813c618b2a1acd317d8458207cacdd1b0805fb82c3deba1335b3004ccaec4aa16d779463b1b880792ed19031081902665840b05b5abcb91a26ce1f789b4868141afe7d442989005bb687de0cb3c19aebe2fe226bfa08255c8ec9ffa20ffb593bffb1d7a571cd55a80ef8b463d79aef9cd8048208005901c0479fb7daee20f2371e759f57d941da54183597fbfc10bec3b031effe0cc02ab394b7533311cc9d24b29ebc1b8aaa3e32c9f16c5c377e39922a7037278f317f0de80ebc8d3568f2804b04a0f49e84ad62f3d74a765b888f5a0cdaaeb18b876de8633b73ab17150b091ba52ba9d4dd08d7a7661c810457bdf8b3d345bcf5ddfd8b62293e66aa13ccce14a5e8592af663160fc7bd875b645e0527ac16d982b925ff425ba26855b3cb28dd374748311b39c63827b707fb81758e2c477c4139998b11d8de8ebc6a7e9e60d904eb2b6ea46fd96e63d230966e959e3194f898c523382b3720b5bba4b5e1c4b5d9ff5ee0b4f4466ee9d611a42bd144f78b982329eaf58e614bd19033b6922d59e92c9e6f7101dae8e17fe9c80b80bf814804a3927a0ff9c1359bddb06da9fa94c46325af50274fe0b374410bd645303f7a493d3ac2c2e2259c11f341bb3fcb1e005e41eeb12d7d611f0444168d840819ce4233eade4c0a3defa3452dd8177e23a4be4a9f013c96f56be4b18d961cc34fd022f7193dd9eace6f23d67fb3ccec62b1106057ce7e7e75e672c3652fedddab72eb5f507ebd0fd562f09b5a545a078fc3f305f4d8e315961456f1a1fb54f63d8bc1a459b8dbee8ba6008382582071aea0ddb398a505c12b295019015eb946bfc9e6c16cb346663571311d7de0d10a825820e9927e476f18e689dbd203add9c47d0451c12e9b2dd98fd81a1854605e725d0f0a82582046ab163394ed0bf3ae8b3ae0d7cf5781ee0e3894ef53c01c5f4af27d37027bed04018d835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e30333437015820b47b821b9bb3ad17fc017cbfb9b95491e27367986b6fa7534c793869a85c7f9d835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e3137373601582086f33483c730e69f629594ce5b62906e7c32130198a15e29b7a4f47b9205222f835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e3233333301582078051658f6a4a6a0d0e2c4695d5ad175926bfe07e93c66169693755de393397a835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e3236353501582086f33483c730e69f629594ce5b62906e7c32130198a15e29b7a4f47b9205222f835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e3238343601582086f33483c730e69f629594ce5b62906e7c32130198a15e29b7a4f47b9205222f835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e33373932015820af30f8e2a25d329a88af6e7a2fc2efd9a71ef0b8de3c0ef3e2d236e6e52da151835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e33333539015820911325e74e109dcbc49155de12062b826c64489e7e7f8d414c488e8e8bf77746835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e3332323501582086f33483c730e69f629594ce5b62906e7c32130198a15e29b7a4f47b9205222f835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e33303932015820b47b821b9bb3ad17fc017cbfb9b95491e27367986b6fa7534c793869a85c7f9d835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e33303832015820bd54a0d500e848f390d870fb4d43c78d6047f73459bd013a7a56ef18ef05c4c1825839015e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479d746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8821a0032d62ea8581c1f362a4df39f451401e44fee30f27eb39712d66aae375f539be94ed6aa4c546865496c69616431353130014c546865496c69616433313239014c546865496c69616433373130014c546865496c69616434303039014c546865496c69616434343439014e5468654f64797373657931333137014e5468654f64797373657932323336014e5468654f64797373657932363633014e5468654f64797373657933343731014e5468654f6479737365793433313901581c21b7da6aa32387769a00c1f0ce17db86f75b213281d79ff6b158c91fa14c44724a656b796c6c454d575501581c27d4e0b1da659588e68bf785ba932db5243503a22329a8d43a0d07bfa1514e4d4b526174434e4654436f6e3932383101581c2b7f24375a4652644e39d1792f848d86a1eb64a8bc17195471c7e682a14f4f6c6976657254776973743039363601581c2d5937400e98424f74d5e7e11b1e65361a61d8b9ae4202d67c669745a1524368726973746d61734361726f6c3135363301581c313e41b0f3f55637689d3980d3479920cb3bb0a5860d03cd49c17c11a156537061636550756773506f6b6572436c75623438373001581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a44a48616c69656e33393836014a48616c69656e34333630014a48616c69656e34343233014a48616c69656e3531363201581c3956f6646614ee82a16b9e636d5cd3d54c09fe20389c9615f5b06c1ea1443232383201825839015e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479d746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed81a0976ddfa825839015e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479d746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed81a096cc649021a000a17b1031a04ef25af0758202ac6eec1f6b9bceb7157428dbda08b2203b502044db2a96adcd9f1ebd8ebe1a80b58205b8463333bbfbc55171a7dd82b4f00242d5bdaab849cfdc514831d60d7b0e132aa0082825820cc989c4eb81341e3127b49eafa7bfef376df30e1e38031de557a6f5f1f3c011f00825820e91385d484dbd884fc633e00cd8fae9bec6b060c517b943e30e49f60e501e1ff010182835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0014a67ca1581c43e85e3a386c533cf470632a863a8679681be6d4d901cdcbd0aa03a5a154436974697a656e4d6f636f737369436f6c6c6162015820e8d7a297b436989fd8c5b678923392becef927b557439ad1ed4fba681d1dbd3882583901f6289107b3e5fcc963a43b7f10018d381967c8a5e61ceb01b76f23985a852c8207a9b898ec66ef06e899d9d9d8cd65351db02990343c91b71a0132c60d021a0004ab1c031a04ef25770758207de9a1ddd1c80cc8ef7e3ec2c4a69162dacb5075e1d120568a0ef3edfe8537de081a04ef1e6f0b5820bb47978eeceb1cd131a59e38d0949473773ddec8824dcacce25e1423320201a60d81825820e11b0a7608f2b7b20025e483ea6e272d64eace15c58e98b5b341000e3a7e883a040e81581cf6289107b3e5fcc963a43b7f10018d381967c8a5e61ceb01b76f239812818258209a32459bd4ef6bbafdeb8cf3b909d0e3e2ec806e4cc6268529280b0fc1d06f5b00a600818258205e1e34c5b8cb271a119e7a887a739bffc494da6719ee9e92bd42033adb51f61f000183835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013ed4aa1581c60b741294ee35c3de6f06a7060ff27422956f54d50339a4f445423e0a14942414c444f2331343501582022086be15c5a9536a85cdeedb634b94ba04134c4f5607ad2ff465bbe1dade6e8825839017fb85d6a4ea64ed3c4c0c93ad2c2ad17f2e589ef65dca87725109cc9c2a0dfbd123e1a81e4e4011cbf4b9641b5b6cacc295f0800dc15c215821a0015a306a2581c60b741294ee35c3de6f06a7060ff27422956f54d50339a4f445423e0a24942414c444f23313836014942414c444f2331393201581ce74862a09d17a9cb03174a6bd5fa305b8684475c4c36021591c606e0a2474450303134363501474450303334363401825839017fb85d6a4ea64ed3c4c0c93ad2c2ad17f2e589ef65dca87725109cc9c2a0dfbd123e1a81e4e4011cbf4b9641b5b6cacc295f0800dc15c2151a054c072a021a00037ae5031a04ef25b007582002a25941a12e1e11c2aae94d0ed458e9b181a990a09faa829c4c321dc856dff10b5820a7a597acf9df4d09aaf4556ab2bc7665f3fb3052217b8c94dcccca9e2ea4eb64a60082825820167078abb9cda8380efe50832365788fc2b966de4f44c9ef0fff4906ef7a426b008258201ad68e98e165e231831458c658e9dbb15f5534d3ffea1366dfdc537c2cb21fcf010182835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a00140ef6a1581c2058eda85ddd54815bf4483aeb7a294c54ecf83b89d1d642f0481a58a14b6164616e617574323134300158202fb70a4fbdc8b1a0dc1dfc44155a2d29fb0b01308261b4e4bee183dc4d4b477a8258390195786ad942c2e1fc828ee5bcf4eb7014eeb097903ce8ca562249d8a39c92279db35932b47093e87b26e80efe38e07145dc947eb47420e34a1a0393f45c021a00036461031a04ef25b10758209b14132b7cab844f4570a67c462c4076c1345ba141e0ef6a41b2c040522aa8830b5820b099eb7078ddb692ee1b2ed30f17e19ee3df0c4f4a8d19702cb757db738ee59ea50081825820ef2d642377c10578ad0fc7d76e636e28121fbf3427462b363c1d0b25736973dc0001818258390164176bffe94d117fe8016566cbad63a19d13b423d375a3b8e367a8af945bd5f92b23fe9a4baaad3f061f85c3921c2848f70501c6572b9e041a1485739e021a00060f2c031a5dd073c005a1581de1945bd5f92b23fe9a4baaad3f061f85c3921c2848f70501c6572b9e041a0438c51ea800848258200db2034bb5fe30d7c390252ac3eae0c2297abed4a0164483a531b595f3425eaf0182582045356cdb828cd897bd5d875bfd14c31d14836be5edacc51bd1c28ca4ca3590290382582083a2bbfb4e90bb778b1e2d1585585a51494c984a51ec867e3f1ef406fd7fa99a00825820948218b7457d258337b6bf2d502d031bf477f42bd2b974e4b6064975eac40d1d010d8182582083a2bbfb4e90bb778b1e2d1585585a51494c984a51ec867e3f1ef406fd7fa99a000184a2005839012ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7d52563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c2011a07b9709aa2005839012ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7d52563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c201821a00150bd0a1581c2f2e0404310c106e2a260e8eb5a7e43f00cff42c667489d30e179816a14d3136373636313732303030303001a200583901bfdf836deb9a938d3ded0e21bd58c8d8879326f2a0f0e8b10361ae70e084d5fe53388503b7a78297dda228cf3b8c0bc09ca2cf1c0579f05c01821a001e8480a1581c884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903aea1455041564941193a98a300583911e1317b152faac13426e6a83e06ff88a4d62cce3c1634ab0a5ec1330952563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c201821b000000dc7307db59a4581c0be55d262b29f564998ff81efe21bdc0022621c12f15af08d0f2ddb1a15820ebb0d0c5a7a131e77e19c55acbf453da183eab5384b1d8ff0068b0cb6c426b6101581c13aa2accf2e1561723aa26871e071fdf32c867cff7e7d50ad470d62fa1474d494e5357415001581c884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903aea14550415649411a022dc5cd581ce4214b7cce62ac6fbba385d164df48e157eae5863521b4b67ca71d86a15820ebb0d0c5a7a131e77e19c55acbf453da183eab5384b1d8ff0068b0cb6c426b611a00039f7e0282005820faf2c51faecb2960fdbacc97925e99a6a4f54e263d668afbba06e92effa1a576021a000ca375031a04ef22570e81581c2ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7d0b58202a69ee1a423f8472b8541244dd2018a084ad6108fbfdbb13d968969198bd1d54075820b65e7e140dac503acf0a05a473d8a1c56b804d5876c6279ea4f4f22f213b00e2ab008682582007013a1698626af7553e5f32c0560eb5962fa5370a2320ba132a04ce6c9de34d00825820de8764c935314fc62f4586fa2eaecedfd16450fd7906065e475c8c396ff58a5901825820d2f5e39a6bc818b73d84b161f80463f762e47a9579ffef45115d116653e77c0a0182582078cee9bade4c49d1ae9d4c0df47cc6145150be8dff615f95c118140086f2a4af0782582078cee9bade4c49d1ae9d4c0df47cc6145150be8dff615f95c118140086f2a4af0382582078cee9bade4c49d1ae9d4c0df47cc6145150be8dff615f95c118140086f2a4af100183835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a00141fcca1581c23c38fc9e86e3bb87e016587da4f88757fc56a9dc1b37006b61af8dea14c52616973656e737535303435015820fdb8ac4699351854d66860c967be89fbba9a7e92b60edd03b374a337d51af5518258390186d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe8261222d830fb400b9f45ec0f18125f63a629d6fd8bca118246e9e62f65821a00d6ebd8b824581c007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742a1435054431903e8581c0171c997b8853fde686763d93b36ab8e04ce947bb6aa09a9ee5c4401a145544f4b454e1911e7581c025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e6a14563625448431a000f4240581c179dd4922c947166ca8ce3321be2d9f23232c7c1f8e3dd91cca82b22b8254a4a756e6b696530303235014a4a756e6b696530313032014a4a756e6b696530313034014a4a756e6b696530313136014a4a756e6b696530313232014a4a756e6b696530313433014a4a756e6b696530313833014a4a756e6b696530323731014a4a756e6b696530333833014a4a756e6b696530363034014a4a756e6b696530363231014a4a756e6b696530363433014a4a756e6b696530383039014a4a756e6b696530383330014a4a756e6b696530383733014a4a756e6b696530393931014a4a756e6b696531313239014a4a756e6b696534333738014a4a756e6b696534333939014a4a756e6b696534343136014a4a756e6b696534343137014a4a756e6b696534343739014a4a756e6b696534353232014a4a756e6b696534353236014a4a756e6b696534353436014a4a756e6b696534353730014a4a756e6b696534363031014a4a756e6b696534363136014a4a756e6b696534373134014a4a756e6b696534373339014a4a756e6b696534383436014a4a756e6b696534393038014a4a756e6b696534393431014a4a756e6b696534393435014a4a756e6b696534393833014a4a756e6b696535303839014a4a756e6b69653531373801581c20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3ca14650524f5849451a000f4240581c23c38fc9e86e3bb87e016587da4f88757fc56a9dc1b37006b61af8dea24c52616973656e737536343636014c52616973656e73753832393801581c29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6a2434d494e1a000182ad444d494e741a000ea82c581c2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6aa1454249534f4e1a001e8480581c2bf8daf2f4d9b5c6529999376739d5058631f874f0b34b5d215ab0f5a144424e52471980fe581c2d7444cf9e317a12e3eb72bf424fd2a0c8fbafedf10e20bfdb4ad8aba1464348454444411a000186a0581c300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a6a14258540a581c35a3903cb18692c04d4ac51bfadf28a7a431bdc783ed4444702aef5ca44f466f787865645469636b6574303731014f466f787865645469636b6574303830014f466f787865645469636b6574313638014f466f787865645469636b657432323001581c3d41ef39b9f7cc5b10e5a963ab6b10ba429bffbac2166a5584b0bcd3a14b41646150756e6b3138333701581c41a255debdfe6c25eba00d82fb70e09bb3a12925b49ffddd95422455a14741646153776170192429581c443726318f7a3995686a79f65ed48fdb79aaf576aecaee354d8ba018a1444e49444f1832581c462d81b809c4cbc9039a536a6139393d640e3f54c563c0404ef92a5fa144574152491a004c4b40581c49fe136eb6a7f438fec3a2b1fedbc29ce2723c5248530b3b1f5fbde7a1444b49434b192fd0581c4fd0d998dc0700ca6ef89fafff05fbf523a3a25c1fc8314bf7e4d1c2a14647726f7774680a581c622a3ce680e464703220b955f1ce1bfd7fb1152450b1b62e9acba09eb8324c414441546f6f6e7a33313134014c414441546f6f6e7a33323037014c414441546f6f6e7a33323134014c414441546f6f6e7a33323236014c414441546f6f6e7a33333036014c414441546f6f6e7a33333539014c414441546f6f6e7a33343533014c414441546f6f6e7a33343636014c414441546f6f6e7a33373037014c414441546f6f6e7a33393334014c414441546f6f6e7a33393533014c414441546f6f6e7a33393635014c414441546f6f6e7a34303534014c414441546f6f6e7a34303838014c414441546f6f6e7a34313833014c414441546f6f6e7a34323032014c414441546f6f6e7a34323034014c414441546f6f6e7a34333330014c414441546f6f6e7a34353832014c414441546f6f6e7a34353931014c414441546f6f6e7a36323839014c414441546f6f6e7a36333230014c414441546f6f6e7a36333431014c414441546f6f6e7a36333638014c414441546f6f6e7a36333833014c414441546f6f6e7a36343130014c414441546f6f6e7a36343534014c414441546f6f6e7a36343839014c414441546f6f6e7a36353034014c414441546f6f6e7a36353834014c414441546f6f6e7a36353837014c414441546f6f6e7a36363238014c414441546f6f6e7a36363735014c414441546f6f6e7a36373739014c414441546f6f6e7a36383538014c414441546f6f6e7a36383834014c414441546f6f6e7a36393031014c414441546f6f6e7a36393039014c414441546f6f6e7a37303334014c414441546f6f6e7a37303337014c414441546f6f6e7a37303736014c414441546f6f6e7a37303836014c414441546f6f6e7a37313330014c414441546f6f6e7a37313333014c414441546f6f6e7a37313934014c414441546f6f6e7a37323136014c414441546f6f6e7a37323838014c414441546f6f6e7a37333336014c414441546f6f6e7a37333538014c414441546f6f6e7a3734343101581c64700329d616f20f4e83f2bc579513fca51646d47466a97f8fd1c229a14344495801581c650296faadaccf9bb9852678ce0e881c5c09f1a6da9cb7531b3c23bbb2444d656174183c4453616e640a45426f6e6573183c454d61676d610a4553746f6e650a46436f707065721446456e65726779186446477265656e73182848436f636f6e7574730a494c69676874776f6f64144a507269736d616c6561660a4b4672657368205761746572183c4b52756e6573202d205265640a4b546f786963205761737465144c52756e6573202d20426c75650a4d46756e67616c2053706f7265730a4e52756e6573202d204f72616e67650a4e52756e6573202d2059656c6c6f771828581c6787a47e9f73efe4002d763337140da27afa8eb9a39413d2c39d4286a149524144546f6b656e73190907581c6c4be7b95bb28c88c76596cb51aa475e3c46d891f9071cbed83026faa14544454d4f4e190d95581c782c158a98aed3aa676d9c85117525dcf3acc5506a30a8d87369fbcba1454d6f6e65741a017d7840581c804f5544c1962a40546827cab750a88404dc7108c0f588b72964754fa1445659464915581c83e400c8c6540f6075d259a4fa0140ff4ddbd85f1ab14d7bda017a6ea1464d656c6f6f741b000000ac75290f00581c8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc3a1474c4f42535445521a001e8480581c8dec95dfd60b05de0c97a703e1d1baff330fb0f4cba86b92e005aa4aa14556696c76691959d8581c907d19ef832bdb11eda3ce29e656f691302a553a3902ccac8ce01646a146646f6730303701581c9a9693a9a37912a5097918f97918d15240c92ab729a0b7c4aa144d77a14653554e4441451a0003a90f581c9cc83ea54377108dd022f18095040e8d5808a3061c4fe54f3fd64a7aa64f48616c6c6f7765656e417065363534015048616c6c6f7765656e41706533343431015048616c6c6f7765656e41706533373234015048616c6c6f7765656e41706534303534015048616c6c6f7765656e41706535363834015048616c6c6f7765656e4170653831313701581c9d86482511c8a49f21d5c83ee58a49e2926f70ac57dd73ed20404269a1457175657374197a76581c9dec676c8acc5f2791ac0c73741f92ae9d4b61c243fd9971b4cbc2a8a3581943617264616e6f50656e6775696e466163656f6666476f6c6401581943617264616e6f50656e6775696e4f6e654579656450696e6b01581a43617264616e6f50656e6775696e5061696e74436f6d6963494901581ca0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235a145484f534b591a000f4240581ca3914cb7a564d010c7b67774ac8720a8ece3a758279b51d8a1c05cc5a1495745444e45534441591864581cdf432ac2d6c36c1cf3991bf5587aa9232aa66d80b7142aa9f75c6e01a1484d696c6f35383638018258390186d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe8261222d830fb400b9f45ec0f18125f63a629d6fd8bca118246e9e62f651a0034e3f6021a000ccf24031a04ef25b8075820af5c2ea9fed4879a1ba935a9a941b37013b70c86cecd9feac85a277d25fb0dfb0b5820154017affb4dc77f73f4c9b1064ac1445eed4b3c297c964466d5341ef5949a8f0d83825820d2f5e39a6bc818b73d84b161f80463f762e47a9579ffef45115d116653e77c0a018258204da5553548f770d59927f13982e7da77bd17c8f751c9c4b7b5eb29889275608f0182582007013a1698626af7553e5f32c0560eb5962fa5370a2320ba132a04ce6c9de34d010e81581c86d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe826108258390186d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe8261222d830fb400b9f45ec0f18125f63a629d6fd8bca118246e9e62f65821a0113489eb82a581c179dd4922c947166ca8ce3321be2d9f23232c7c1f8e3dd91cca82b22b84d4a4a756e6b696530353835014a4a756e6b696531313435014a4a756e6b696531313532014a4a756e6b696531343032014a4a756e6b696531343238014a4a756e6b696531343434014a4a756e6b696531343537014a4a756e6b696531343935014a4a756e6b696531343939014a4a756e6b696531363036014a4a756e6b696531363538014a4a756e6b696531373233014a4a756e6b696531373533014a4a756e6b696531373730014a4a756e6b696531373833014a4a756e6b696531373938014a4a756e6b696531383434014a4a756e6b696531383531014a4a756e6b696531383835014a4a756e6b696531393832014a4a756e6b696531393931014a4a756e6b696532313033014a4a756e6b696532313034014a4a756e6b696532313436014a4a756e6b696532313634014a4a756e6b696532313934014a4a756e6b696532313935014a4a756e6b696532323533014a4a756e6b696532323938014a4a756e6b696532333338014a4a756e6b696532343236014a4a756e6b696532343837014a4a756e6b696532353837014a4a756e6b696532353939014a4a756e6b696532373732014a4a756e6b696532373733014a4a756e6b696532373831014a4a756e6b696532383139014a4a756e6b696532383339014a4a756e6b696532383738014a4a756e6b696532383832014a4a756e6b696532383834014a4a756e6b696532383938014a4a756e6b696532393636014a4a756e6b696532393938014a4a756e6b696533303139014a4a756e6b696533303533014a4a756e6b696533313336014a4a756e6b696533313531014a4a756e6b696533323133014a4a756e6b696533323433014a4a756e6b696533353039014a4a756e6b696533353637014a4a756e6b696533353735014a4a756e6b696533353934014a4a756e6b696533363535014a4a756e6b696533363739014a4a756e6b696533363839014a4a756e6b696533383138014a4a756e6b696533383433014a4a756e6b696533393137014a4a756e6b696534303237014a4a756e6b696534313131014a4a756e6b696534323136014a4a756e6b696534323138014a4a756e6b696534323239014a4a756e6b696534333033014a4a756e6b696534363630014a4a756e6b696535313937014a4a756e6b696535323037014a4a756e6b696535323238014a4a756e6b696535323732014a4a756e6b696535333236014a4a756e6b696535333531014a4a756e6b696535343736014a4a756e6b696535383830014a4a756e6b69653538383201581c1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6a144574f4c461a1dcd6500581c1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07da14248491a000f4240581c1fc21c9c7df3deca16d699b2d54cf5aa477576adc45f7c1340138a19a1454341524453192608581c20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3ca14650524f5849451a000f4240581c23c38fc9e86e3bb87e016587da4f88757fc56a9dc1b37006b61af8dea24c52616973656e737536343636014c52616973656e73753832393801581c29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6a2434d494e1a000182ad444d494e741a000ea82c581c2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6aa1454249534f4e1a001e8480581c2bf8daf2f4d9b5c6529999376739d5058631f874f0b34b5d215ab0f5a144424e52471980fe581c2d7444cf9e317a12e3eb72bf424fd2a0c8fbafedf10e20bfdb4ad8aba1464348454444411a000186a0581c300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a6a14258540a581c3530c5d7ce77ea067c20bbca7688e18731c8f0c7de456a940eefa27ca14c436974697a656e313133363101581c35a3903cb18692c04d4ac51bfadf28a7a431bdc783ed4444702aef5ca44f466f787865645469636b6574303731014f466f787865645469636b6574303830014f466f787865645469636b6574313638014f466f787865645469636b657432323001581c3d41ef39b9f7cc5b10e5a963ab6b10ba429bffbac2166a5584b0bcd3a14b41646150756e6b3138333701581c41a255debdfe6c25eba00d82fb70e09bb3a12925b49ffddd95422455a14741646153776170192429581c443726318f7a3995686a79f65ed48fdb79aaf576aecaee354d8ba018a1444e49444f1832581c462d81b809c4cbc9039a536a6139393d640e3f54c563c0404ef92a5fa144574152491a004c4b40581c49fe136eb6a7f438fec3a2b1fedbc29ce2723c5248530b3b1f5fbde7a1444b49434b192fd0581c4fd0d998dc0700ca6ef89fafff05fbf523a3a25c1fc8314bf7e4d1c2a14647726f7774680a581c50f8758f5a5c9511a8d9b395e7d5df761bc7e46bcbcaf4d383bc1877a1444144414f1b0000000509b9ad80581c544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f0a14447524f5701581c622a3ce680e464703220b955f1ce1bfd7fb1152450b1b62e9acba09eb8454c414441546f6f6e7a30303939014c414441546f6f6e7a30313538014c414441546f6f6e7a30313935014c414441546f6f6e7a30323538014c414441546f6f6e7a30323832014c414441546f6f6e7a30323931014c414441546f6f6e7a30343231014c414441546f6f6e7a30343338014c414441546f6f6e7a30343836014c414441546f6f6e7a30343939014c414441546f6f6e7a30353239014c414441546f6f6e7a30353338014c414441546f6f6e7a30353637014c414441546f6f6e7a30363135014c414441546f6f6e7a30363238014c414441546f6f6e7a30363435014c414441546f6f6e7a30373831014c414441546f6f6e7a30373835014c414441546f6f6e7a30383737014c414441546f6f6e7a31303338014c414441546f6f6e7a31303633014c414441546f6f6e7a31323133014c414441546f6f6e7a31333436014c414441546f6f6e7a31333539014c414441546f6f6e7a31343530014c414441546f6f6e7a31343833014c414441546f6f6e7a31363337014c414441546f6f6e7a31363439014c414441546f6f6e7a31363539014c414441546f6f6e7a31373735014c414441546f6f6e7a31383034014c414441546f6f6e7a31383531014c414441546f6f6e7a31393736014c414441546f6f6e7a31393930014c414441546f6f6e7a32313032014c414441546f6f6e7a32313433014c414441546f6f6e7a32313531014c414441546f6f6e7a32313938014c414441546f6f6e7a32333430014c414441546f6f6e7a32333631014c414441546f6f6e7a32343933014c414441546f6f6e7a32353630014c414441546f6f6e7a32353633014c414441546f6f6e7a32353935014c414441546f6f6e7a32363538014c414441546f6f6e7a32373032014c414441546f6f6e7a32393932014c414441546f6f6e7a33303032014c414441546f6f6e7a33303939014c414441546f6f6e7a34363233014c414441546f6f6e7a34363431014c414441546f6f6e7a34373232014c414441546f6f6e7a34393331014c414441546f6f6e7a34393333014c414441546f6f6e7a34393339014c414441546f6f6e7a34393938014c414441546f6f6e7a35353032014c414441546f6f6e7a35353439014c414441546f6f6e7a35363235014c414441546f6f6e7a35363438014c414441546f6f6e7a35363639014c414441546f6f6e7a35373230014c414441546f6f6e7a35373430014c414441546f6f6e7a35383133014c414441546f6f6e7a35383335014c414441546f6f6e7a35393231014c414441546f6f6e7a36303830014c414441546f6f6e7a36303935014c414441546f6f6e7a3631303601581cac9998855c15efcc7dc5b44522d9cca6f1f0865c00350ad18b4bdf61a144474144411a22739480581caf2e27f580f7f08e93190a81f72462f153026d06450924726645891ba144445249501ab8c63f00581cafc910d7a306d20c12903979d4935ae4307241d03245743548e76783a14541534849421a3b9aca00581cb1066e840346478fbe01a7c278275c77929e5d5435d5650fcf963c7ba1534164614e617574546f5468654d6f6f6e35373401581cb1eb73a732247342724b85ca10f626b9494c69b6f5d21a2bd4052bf7a150544150316368696c6c696e673230323201581cb24a29b9c16d349df16d9b5553b119e399e46ae19d6150c1a843ef61a1466469646974731a02faf080581cb333a7235f9b9006c02152621c30c34cfd8ce7b32f7c450c9b2b341aa14c53703463334d336e3030323701581cb6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0a1581e436f726e75636f70696173205b76696120436861696e506f72742e696f5d190282581cb788fbee71a32d2efc5ee7d151f3917d99160f78fb1e41a1bbf80d8fa1494c454146544f4b454e1b00000061c9f36800581cb7c783f6304eddbdf8f0dece4715d63cb9f453be89d97c8fba155d57a1445245534908581cc68307e7ca850513507f1498862a57c7f4fae7ba8e84b8bc074093a9a14444494253191388581cc88bbd1848db5ea665b1fffbefba86e8dcd723b5085348e8a8d2260fa14444414e41190ed6581cccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd9a15343617264616e6961466f756e646572426c756501581cd030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78a148436172646f67656f1901a4581cd894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a0a14a7370616365636f696e7303581cda8c30857834c6ae7203935b89278c532b3995245295456f993e1d24a1424c511857581cdb30c7905f598ed0154de14f970de0f61f0cb3943ed82c891968480aa144434c4150190392581cdca54ecf37b0e3af2fdfd336e1d21fadcc45b3261b0f73a095631dfea144444f45581a0002c0ab581cf2fe9aafd2e5b3b00e2949a96d44a84d9f4d818d63945010a466a4aea14541554449541965c2581cf43a62fdc3965df486de8a0d32fe800963589c41b38946602a0dc535a144414749581a000f4240111a001336b612818258209a32459bd4ef6bbafdeb8cf3b909d0e3e2ec806e4cc6268529280b0fc1d06f5b00a60082825820ef8c3d0354099bff0e97f56e701c8d4d07581dd3e606d8976dba32e7cf1b27b6018258204eca4d15e9bf2844559fd94fdc0c2fb561575f94ef457715b28def56bff393ff010186835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0014a67ca1581cdac355946b4317530d9ec0cb142c63a4b624610786c2a32137d78e25a154616461706552616c65696768646542616c626f610158209071a2dcc4d3e2e1df9c486d11fec5c0a35f0015545130ac6079e23ec46c4b2d825839012a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542f821a003cf6eaae581c007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742a14350544319445c581c023cec350597bdf2a2b6945e62e0111d9808caf7a9353a2ab91e8beba150534f434945545932354c4d423138303701581c078eafce5cd7edafdf63900edef2c1ea759e77f30ca81d6bbdeec924a14579756d6d691a00049b26581c0fd9819a9d7fb414880883f43a42d33458f12bc5f9841cec6457dc15a14556695275531a000dec42581c13e3f9964fe386930ec178d12a43c96a7f5841270c2146fc509a9f3ea353436c61794e6174696f6e5069746368343037340154436c61794e6174696f6e506974636831393235320154436c61794e6174696f6e5069746368323738313401581c1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6a144574f4c461b00000001884006a5581c20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3ca14650524f5849451a005b8d80581c232ecdf81c3f06c2bccdac8e02530db924cb62ea1d3888faffc3d900a24643554237343301474355423130323001581c2441ab3351c3b80213a98f4e09ddcf7dabe4879c3c94cc4e7205cb63a14446495245190ada581c25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20ca147534f43494554591b0000000690a9adda581c29a8fb8318718bd756124f0c144f56d4b4579dc5edf2dd42d669ac61a44c6675726e697368357466434d014c6675726e697368496632796d014c6675726e69736858674a4872014c6675726e69736861616c795101581c2b8822f7799f325e278991a244e7715591945b1c2a3589cc76035ca9a147736372617463681a017d7840581c2d7444cf9e317a12e3eb72bf424fd2a0c8fbafedf10e20bfdb4ad8aba1464348454444411a0007a120581c300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a6a14258541846825839012a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542f821a0041e59cb2581c37b47fcaeb067582eb0b4230632633adffa7753481139b67cc8fe3cea1465045524e495318c8581c43206de9e07fbd36ce6c109b3d34637727233c58a0b38f1da00a9ccfa25050616e6461536f636965747931343734015050616e6461536f63696574793137333301581c4c17b7009448a33d1834b0946ea752ecd0cc61c7bb25cd9ff18cff58a145426c6f6f6d1a049ce510581c4cf268bd648f088ac9901bfa5a43f49610f7bdcae3a6eedc5e201fc3a144434f434f19c350581c4fd0d998dc0700ca6ef89fafff05fbf523a3a25c1fc8314bf7e4d1c2a14647726f777468190118581c544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f0a14447524f5706581c5ad8deb64bfec21ad2d96e1270b5873d0c4d0f231b928b4c39eb2435a14661646f7369611a23c34600581c63766427b4499dd678cb8b715dec3265dd292279ce7779447e3651e5a1434b4f5a181e581c641f0571d02b45b868ac1c479fc8118c5be6744ec3d2c5e13bd888b6a1465a4f4d4249451903e8581c6954264b15bc92d6d592febeac84f14645e1ed46ca5ebb9acdb5c15fa14553545249501a000249f0581c6d244053668da40a9fa301ba7175f0a431656e49eb33867206277ad3a15244656d6f6e696163616c446569747930323401581c6ddd6503e0ab63538c77bd51f679b9ed84998af89901b01ce3dace88a14b5369636b4369747933333901581c73719bfda16e672605fda1e3f20824065585073499a7ce6ab55c2adfa1434742521850581c750b077ee1c771cd0ac953ae87044f2c2f50357d4881506bac25f367a24337323201443433373401581c7a7f0bddec60d2b273a7033b5df778850ebef5040f6e7324d0e6d3d7a14d4532355449434b4554424c554501581c8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc3a1474c4f42535445521a005b8d80581c8d0ae3c5b13b47907b16511a540d47436d12dcc96453c0f59089b451a14542524f4f4d1a004c4b40581c8e1b8217ecfbac082e4d0f1a4df778614cd6d28e10412cf98a331566a147434142494e574c01825839012a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542f821a00428df8b1581c987c1f90efe1c95957509b460e0e4f6d6b3f7025a7aca99cd2909037a1444d595448190ce4581ca0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235a145484f534b591a10bae61b581ca23836ef3b4d0ad3ed1c28bd30e754e208ae7ea0a23e809354d67e0da4443337353501443433373401443539343201443630323801581ca4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375ba14446495245190258581ca89568bb399d0cdc38367e47831c95186f5c79e58174e08a18232396a14a4554424643546f6b656e1a5acf5f44581caa036f84174000b81a71131007e45ee44c2d78159a55d19c514a77afa1444d4e4d4c1a11e1a300581cad1c1ed3a0bb6f83630ef052a31b71ba3287bf4bafa8370758f14d31a1445349434b1a0003d090581caf267bd857e9d78fdb5fa05e91a342907518e30b0211cdf2b9c7cd00a14f416e657461416e67656c733234333101581caf2e27f580f7f08e93190a81f72462f153026d06450924726645891ba144445249501b00000005042e5b1b581cb1eb73a732247342724b85ca10f626b9494c69b6f5d21a2bd4052bf7a150544150316368696c6c696e673230323205581cb6408f665a71750e622a3f6430f35a1a6d6cde0d0b6c41bc027c0356a14f50726f6a656374426f6f6b776f726d181c581cb6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0a1581e436f726e75636f70696173205b76696120436861696e506f72742e696f5d1a069d1ecb581cb788fbee71a32d2efc5ee7d151f3917d99160f78fb1e41a1bbf80d8fa1494c454146544f4b454e1b000001e8f1c10800581cbd30c07bed903332937dcf328e2bd6da5aec1e686c13e8c5f2c99e48a14b436c617970657a3231323301581cd01794c4604f3c0e544c537bb1f4268c0e81f45880c00c09ebe4b4a7a1444d595354190bb8581cd2442fa6d08c72811d4bccdb36d0cb35cb28f4db4c5793ef00aff5f1a149244652414354414c531b00000005d21dba00581cd3a034e403b98cbdb0adbc8a3144d7779330916e190d387815bb85c6a14450555252194204825839012a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542f821a002e3baaa8581cd4e087164acf8314f1203f0b0996f14908e2a199a296d065f14b8b09a25818636162696e343048696c6c5374726565744643333245353601581f636162696e31394c6f77657250656c6c69706172526f61644d49333147313601581cd894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a0a14a7370616365636f696e730a581cdac355946b4317530d9ec0cb142c63a4b624610786c2a32137d78e25a2536164617065416e67656c696e436174616c64690153616461706542726f64657269636b536d69746801581cdd5505a024a49a38528eb9a07cc1fee8e7620a2d1d25aee6d76697eaa44b6672616d65306f49323173014b6672616d6533327851676b014b6672616d65345662364246014b6672616d6534706a47367901581cde92f0fd9b5d83f813ca944f4d2c73dc6d300cda7eb078729ff984daa5443038333501443130323501443136313401443136343201443232383601581ce98165a25cd0320b25f22d686268e58e66f855b6d85974947ccd708da146414441464f581a00014244581cf43a62fdc3965df486de8a0d32fe800963589c41b38946602a0dc535a144414749581a3b9aca00581cf9300bebcc9a4d36b056ed19a3869795f5ac66da15a21694aa7268c6a147315f32755f373001825839012a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542f1a02662d3b021a00056c79031a04ef25bf0758204696d8ff35725095d80f5cc475cfe29715e6fcf264c0a4d205d778259edb11950b582060a030643c35ccbdd27ff842d0f8566b6f9fde93b5b7ecf10102c709ade7b17ba5008782582017a8d7c2f2417c7140c36a48909c556a7da011388da19603934cda7f4f016d28018258202e3af5b286654d031acecb8117d1e06c5fad2171af2196cf25800fc5eaf858ea01825820517c4c60358ec1380594b3e4f2a486bf4086a927a19c6fe1fd9e3f9f6f9f320f01825820517c4c60358ec1380594b3e4f2a486bf4086a927a19c6fe1fd9e3f9f6f9f320f02825820689f3c1748d26d1dbfbb8ba1d1fa3c423ac0bc9c941e1f3e23ddfaebb18a823d01825820bd634f85be15cb7b6ed51b731ca1c2bb5c744997b36f661b912d9989b82139d202825820de420ff3f9cd9cbc6c1a28afa5012f24bf5e3140759901f20bb2c4322280b8ac05018282584c82d818584283581cd36874ab2a8cfe6ab1863deac8272845e3d1c918bf4391f7df55c5aca101581e581cbe2051244aa98741ab85da152911843e18cd9472b0cd7acc7c515091001a170d28641a05f5e10082583901da43dd350f28970db95db3606b611afd483f9b53b5af6ba294abaca4616ed9b71d8a03190f32d8643accfaa974fc4f94686175eb643a5595821a07db26e2b829581c025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e6a14563625448431a00030d40581c1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6a144574f4c461b000000027528fee3581c1ac239901bcc3ebddea93bb4bc5f06dbb1a257ffe3afea00ced85773a14f4c656f2042616e6a6f20233036343401581c1f362a4df39f451401e44fee30f27eb39712d66aae375f539be94ed6a94c546865496c69616432333330014c546865496c69616434343936014c546865496c69616434363835014c546865496c69616434373430014e5468654f64797373657930333134014e5468654f64797373657930383436014e5468654f64797373657931373631014e5468654f64797373657932313231014e5468654f6479737365793239383701581c1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07da14248491a00895440581c2b8822f7799f325e278991a244e7715591945b1c2a3589cc76035ca9a147736372617463681a02faf080581c2d7444cf9e317a12e3eb72bf424fd2a0c8fbafedf10e20bfdb4ad8aba1464348454444411a05f767a0581c3c2cfd4f1ad33678039cfd0347cca8df363c710067d739624218abc0a351576f726c647357697468696e30353230320151576f726c647357697468696e30353433310151576f726c647357697468696e303739383201581c3ebee6a9c50397fbd5f1d73035ffacd874a877d14bb00cdfbeea07dda34b4d61636265746830333033014b4d61636265746830333632014b4d6163626574683037343201581c406cd2082f4ca575fdec9995202821ea101f3b9be03c19829b1cace3a14e53706c6974576f726c643033313701581c4247d5091db82330100904963ab8d0850976c80d3f1b927e052e07bda146546f6b68756e05581c477cec772adb1466b301fb8161f505aa66ed1ee8d69d3e7984256a43a155477574656e62657267204269626c6520233038393901581c5029eeccd52fef299509d509a8318fd7930c3dffcce1f9f39ff11ef9a1434647431832581c547ceed647f57e64dc40a29b16be4f36b0d38b5aa3cd7afb286fc094a1476262486f736b79191388581c59babeb2b2bb2f4ecfc1cef94634157209eff89d569b72d2ad17d519a14f41746f6d6963585374616c6531393901581c59eeff2acc44e2c6ce85f1e462ef78d137a023edb1e46c877763791aa24e353043617264616e6f48696c6c730151313035436c756d73794372657363656e7401581c7caf1ea0c6a09e68127de5396efefef45718018d5703604ad803dee0a14557415445521845581c8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc3a1474c4f42535445521a00989680581c89fa6dc66a24799ccaee43a3a16930bb045a8152fdf2a2642034774fa84d506c616e657450616c7a313139014e506c616e657450616c7a31303239014e506c616e657450616c7a31323734014e506c616e657450616c7a34323836014e506c616e657450616c7a37363532014e506c616e657450616c7a38303236014e506c616e657450616c7a38373330014f506c616e657450616c7a313034303501581c8cea09a81ddf9707fd2c80f544d984bd0e8f16898bba852c53bc1048a3474c41434945373001494c414349453439313501494c414349453439343801581c8f80ebfaf62a8c33ae2adf047572604c74db8bc1daba2b43f9a65635a15243617264616e6f57617272696f723132303901581c9c54bb728df9847b0358c84c942500646326a1b581a2b8c43689d220a14c5374726970706572436f696e0a581ca0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235a145484f534b591a0280de80581ca02684b9ece84a4341585d2ae813163356ba0ca950091d1935bdb905b822514855534b59484f53544c4552303032333801514855534b59484f53544c4552303034393201514855534b59484f53544c4552303130343901514855534b59484f53544c4552303138303701514855534b59484f53544c4552303230323001514855534b59484f53544c4552303232383701514855534b59484f53544c4552303236343901514855534b59484f53544c4552303333343501514855534b59484f53544c4552303334323101514855534b59484f53544c4552303430333601514855534b59484f53544c4552303434323101514855534b59484f53544c4552303530333201514855534b59484f53544c4552303534303701514855534b59484f53544c4552303633313101514855534b59484f53544c4552303638353901514855534b59484f53544c4552303832313101514855534b59484f53544c4552303835373801514855534b59484f53544c4552303837373101514855534b59484f53544c4552303838323601514855534b59484f53544c4552303838393201514855534b59484f53544c4552303938333001514855534b59484f53544c4552313034333701514855534b59484f53544c4552313036323501514855534b59484f53544c4552313038313201514855534b59484f53544c4552313131363801514855534b59484f53544c4552313232373701514855534b59484f53544c4552313334333401514855534b59484f53544c4552313339313901514855534b59484f53544c4552313732363501514855534b59484f53544c4552313738343501514855534b59484f53544c4552313831373101514855534b59484f53544c4552313832313301514855534b59484f53544c4552313834363601514855534b59484f53544c4552313935383201581ca09278c524f157eec21b6c590e57022e8acf1980035c94018817490ea14c47756e49676e69746572563201581ca4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375ba144464952451906a4581caa21582ec1ce92f2c21ac61c8b5bbcdaadad0efa59aca5d64fba22aba24e446f6e517569786f746530333132014e446f6e517569786f74653038343601581cafc910d7a306d20c12903979d4935ae4307241d03245743548e76783a14541534849421a3b9aca00581cb0446f1c9105f0cc5bb6bd092f5c3e523e13f8a999b31c870298fa40a144515549441818581cb34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757aa145634e4554411864581cb788fbee71a32d2efc5ee7d151f3917d99160f78fb1e41a1bbf80d8fa1494c454146544f4b454e1ada351840581cb7c783f6304eddbdf8f0dece4715d63cb9f453be89d97c8fba155d57a144524553491832581cbdcb9099cd8b233fbaab9bda2232d11ef366d41a2af20a2a59ae4df9a44f54686552657075626c696330373635014f54686552657075626c696330393031014f54686552657075626c696332353830014f54686552657075626c69633334343501581cc5d5ba875f31502ad529c800865d9461d742713d37c32ab46ac7af1da25154726f7474657273585374616c65313735015154726f7474657273585374616c6531383001581ccea514eda3ce871c316fdb1f0931baa678d2fa5d373a109dbbcc905ea14b4e6562756c61536572756d01581cd030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78a148436172646f67656f1909d8581cd3558649b7874a1a596378515f9b80da63e73f324439ea113d34c9bba144424541471901f4581cd44cba92bdb8e40360c3979cdc2cf289cdc3aed44e4f3f2bf8aa6defa94948756d626974313433014948756d626974323333014948756d626974373131014a48756d62697434303138014a48756d62697435353235014a48756d62697435383238014a48756d62697437343232014a48756d62697439393334014a48756d6269743939373101581cd5e6bf0500378d4f0da4e8dde6becec7621cd8cbf5cbb9b87013d4cca14c53706163654275643134313501581cd894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a0a14a7370616365636f696e7309581cf0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9aa548636174616c696e61014c626c756562697264736e6674014d63687269737469616e70617069014e706f6c6c69746f73617a756c6573014f70616a617269746f73617a756c657301021a0004c015031a04ef72810f01a400818258206b666007edd8c6609c68770ed9fce31a27d6c2e635422af4650b2ced39578e4c01018282584c82d818584283581c70225bdbdce45b20b48edafccf1cda33d2a5fda595208a29b25c282ca101581e581c30b2b079d274132b50e2122c26d51b53ae1dc4a2eca0272bfc706a30001a4f2617521a0f5a4c5282581d610237be10f5ec0ccb6cbd226b112f0940fed44ae0466d9b53962ba8b11a1ff02004021a00029cd5031a04ef2c7fa5008182582085532ac45b26642fe26e876f5d3261756498b22396265495334f7954de42896c000181825839016875a2f25e38dd8632014ead18aca87c8602a4cb729adb1eb4aed987b27d00c64dafd3b3f6867c32c54fc81e71618dc148ed8b269df2933b1a127550f1021a00060f2c031a5dd073c005a1581de1b27d00c64dafd3b3f6867c32c54fc81e71618dc148ed8b269df2933b1a004daff58ba2008182582030b39a0b73cc7a15da844fb496aef66d5df05fea80ab4a5048d1ff72997517c25840663e8904f56fb6e708061a528ebb28d031ab5079ab34acadf9ab3b176340d001f09a94e629787f495e46546199ff9059e8911938b10d8a5750beb0ef0c47730a049fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a00d59f80ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a003d0900ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a0ad91980ffffffffd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a006acfc0ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a001e8480ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a056c8cc0ffffffffd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a00401640ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a00124f80ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a03412140ffffffffd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a00602160ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a001b7740ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a04e1b1e0ffffffffd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a01406f40ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a005b8d80ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a1045a640ffffffffd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a00557300ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a00186a00ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a0456d700ffffffffffa30083825820429f53250ffdee0269c611ebacb093c84a7a32f9839ae9e19b9d353be44bc98e584034018ab8d13d99e9eb6f510a14c013f6111166b05e2d8fa527902df2f9bb4c7c9a72cdb88ad92dc82839115aa8d8d02c65ac97e0a835bb09de23fd4c9de43e0c825820ad50cc2e2d22f4e1f33e03ea40af93be6f37c794ec078bee441d994f7f42344d5840208d6d1fea7d9f46f3e9d59587bc7647b21742a411b88248fd871636e5b22b6f05418d625fffa4dbaea19f4176c3213877dfcd1db813eccc9a3e5fa6f2d8f90b8258202ea811e9f1bd0fd1ce4af3df6dc1c00ca3e6c3173a78bdf0816601aacd619fa25840501ac0c7f55cd633ba323a590265b725e0fc2e1d1e0b8205d6af0ec9882d8ac73650c93be4e4ac9950ab449bb07c726810d41b679177347aa4bd9a72a753e60e049fd8799f581cf6289107b3e5fcc963a43b7f10018d381967c8a5e61ceb01b76f23989fd8799fd8799fd8799f581cda7eee6221b9daf9d842335134f1ff6d1da9a0996b912017e725bf2bffd8799fd8799fd8799f581cc4978c13df7c4b398809ff9b5bda1b136f82509218710eec5a8d0740ffffffffa140d8799f00a1401a0073f780ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a002e6300ffffd8799fd8799fd8799f581cf6289107b3e5fcc963a43b7f10018d381967c8a5e61ceb01b76f2398ffd8799fd8799fd8799f581c5a852c8207a9b898ec66ef06e899d9d9d8cd65351db02990343c91b7ffffffffa140d8799f00a1401a086cfb80ffffffffff0581840000d87980821a000cef961a10a1c140a20081825820552dceaed883096fd940fde949a5741de6419d8efe7203c2b9ac36c37cd8fdb658401f25f2ef01401fc4a8dfc4427ac11d1f1cea5bc0cc8374aed7eb7b9c165c83d3fdc005a156b06a2931d4b379dc5d7ebe041eb3c777d97cfc2b2bbc671002860f049fd8799f581c7fb85d6a4ea64ed3c4c0c93ad2c2ad17f2e589ef65dca87725109cc99fd8799fd8799fd8799f581c18999a3755f3e34430acdc20e55007afed7f2f23cce0d66d5123f2b0ffd8799fd8799fd8799f581cde9c0f0d70433e27bba63696693dc9d8fdf2c6dd9e0d426657ac26c7ffffffffa140d8799f00a1401a00493e00ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a00249f00ffffd8799fd8799fd8799f581c7fb85d6a4ea64ed3c4c0c93ad2c2ad17f2e589ef65dca87725109cc9ffd8799fd8799fd8799f581cc2a0dfbd123e1a81e4e4011cbf4b9641b5b6cacc295f0800dc15c215ffffffffa140d8799f00a1401a06b93100ffffffffffa200818258203120d4ade68902de695a0841fc3d0491ff93bc385c98742f06e4bd2fbb6e4c7158406779cc4ef678907def997121bafad835849a2ff52a4cbaec36ee94e801997e375a7a5f6a0e3e487f0469a5a68388a62eb628f86d0956bb36884afc35569c160c049fd8799f581c95786ad942c2e1fc828ee5bcf4eb7014eeb097903ce8ca562249d8a39fd8799fd8799fd8799f581c6d2c8da77ff5f9fe6580657ff69ee3c68b0b0b46aa12955bee6c0ae5ffd8799fd8799fd8799f581cf6d2b89d6c9e60d7d9e19224770a6c754da6fcecb35c817904939efdffffffffa140d8799f00a1401a005f5e10ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a002625a0ffffd8799fd8799fd8799f581c95786ad942c2e1fc828ee5bcf4eb7014eeb097903ce8ca562249d8a3ffd8799fd8799fd8799f581c9c92279db35932b47093e87b26e80efe38e07145dc947eb47420e34affffffffa140d8799f00a1401a06edd590ffffffffffa100828258203ad533be71a9358417e926499199f1126110c8f7c614a88f4df7472a93d6062058407cbd0ae25dc5ca135ce21694722fa8e3f30c4eedf68e01f1c874a31318497773a05b826c9ee434ffab4d9f58febf11ab0460f28f5aa1e0fd94b85428fc2d6f078258200a829a50ac0f877c7d703392291d260158eab7a84b4004a651c269c3eb3d391e5840fb4ed0860d1aaab93c13c440aaac180a84718230b99bbc9051fb25dbd8ffe0dc2bc643f83b90e5a93952402eefbd27d01b6d4b32214638af6799c3dd8ab2d202a40081825820d2beea31ad3bbc59b0d50a84a9395e9f55dca859ac7a78da7b0c1ea946fdd3635840e0338ab5a47b98e3befa7c572e511416d783ab247754152606284e29ce8c6a6b78eca76cec33b8e9a2d9c1b537f4d38e7bc118458634e8d2d96de7ec3d82330f038259014f59014c01000032323232323232322223232325333009300e30070021323233533300b3370e9000180480109118011bae30100031225001232533300d3300e22533301300114a02a66601e66ebcc04800400c5288980118070009bac3010300c300c300c300c300c300c300c007149858dd48008b18060009baa300c300b3754601860166ea80184ccccc0288894ccc04000440084c8c94ccc038cd4ccc038c04cc030008488c008dd718098018912800919b8f0014891ce1317b152faac13426e6a83e06ff88a4d62cce3c1634ab0a5ec133090014a0266008444a00226600a446004602600a601a00626600a008601a006601e0026ea8c03cc038dd5180798071baa300f300b300e3754601e00244a0026eb0c03000c92616300a001375400660106ea8c024c020dd5000aab9d5744ae688c8c0088cc0080080048c0088cc00800800555cf2ba15573e6e1d200201591e1b591e1801000032323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232222323232533533355333573460cc0042646424446600200a0086eb4d5d09aba25002375a6ae85400454ccd5cd1832801099091118010021bad357426aae7800c54ccd5cd1832001099190911198018028021bad357426ae894008c0ccd5d0a80082e1119191a827911111a80391191111aa99a9824806108008b1119191a9a9a80103102d91191919191919191aa99a982a89119982d91299a99820a8071a80103409980200100088008008020b03c9111919191919191919191919191982a299a8050a99aa8100999ab9a3094013303a307908101330820106700b06706e0060063305433355307908101305c05a305953353502b2233500206e2071210011635014222222207a33054353501422208e0122350012322533355333500a2153335004215333500c2130054984c011261533350052130054984c0112603c04f15333500b2130044984c00d261533350042130044984c00d2603b153335003205003a04f153335003215333500b2130044984c00d261533350042130044984c00d2603b04e15333500a2130034984c009261533350032130034984c0092603a153350010700820108201070253335002215333500a21533350042133303a03b00200116161604e15333500921533350032133303903a00200116161604d04e33054330500153306f00b02733054330533306301602548008cc150cc14ccc18c02c0952002330543305333063001010002330543333084012222533500315335002135001222223305d3305c0053306c01402b3305d3305c0043306c01402a3305d3305c00300c3305d3305c0023306c0140193305c001304800d0910122153350041622153350071622153350081622133300c003001323232323232323533307d0050070272222225335330743305100248000cc1440052000161333335003235500b2222223501d222223501b22235051222223232323232323232323253353308b013308b013306e00848000cc1b802920003308b013306d00201e3308b0153353306e00a00315335330870100e07013308b013308a013309a010110703370066e0402800c060cc22804cc2680404411c0084cc22c04cc22804cc268040441c0060cc22c04cc22804cc2680404411c008cc22804cdc08050019984d008088070a99a998370041a802055008a99a99843808078380998458099845009984d0080883819b80337020106a008154020306611402661340202208e00426611602661140266134020220e003066116026611402661340202208e004661140266e04020d40102a804cc2680404403c4cc22c04cc22804cc2680404411c008cc22804cc268040441c0060cc22c04cc20c04048070cc2080404006c4c8c8c8ccccc2c80400c008cdc019b800180050013370002e002a66a0082605466e0800c00840594cd400c4cccc0a005406406005c520003370002e00866e0005cd40102a80458c27c04028d40082a404d40042a404d54cd54ccd5cd19b8900148000278044c94ccd5cd19b890014800027c044c94ccd5cd19b8900148000280044c28404ccc2ec0400c0080054ccd5cd19b8900400610041006350020ad0121001160b901350010b0015333573466e2400400c54ccd5cd19b880010031330a8010023370666e080080400444cc2a0040080104cc2a004cdc199b820040110100043370666e080040380414cd4cc1fc01c1a04cdc0998490081100399b80011010133092010220073370666e080040300354cd4cc1f40101984cdc0998480081000219b8000f00e133090010200042235500c2222223501e222223501c222350522222232323232323232323253353308b013306e00748000cc22c04cc1b4008074cc22c04cc22c04cc22804cc2680404011c008cc22804cc268040401c005ccc22c04cc20c0404406ccc2080403c0684c8c8c8c8ccccc2cc0400c008cdc019b800180060013370002e002a66a00a2605666e0800c00840594cd40104cccc0a405406406005c52000350020b301350010b60153353330690870100e01e1330ae013370002c00e02a26615c0202c66e0005401c58c27c04024cdc199b820010123370200400266604400600266e0ccdc0981219b803370400400466e08cdc119b82337049004241941e90680780200198600080199b824801120ca0f350050a70130be01001350030a60153353308001001069133702661260204600266e000440404cc24c0408c004d400428804d54cd4ccc1801f80140544ccc2d0040140340304ccc2d004010030034888d400c88ccc2e40401401000c88d54030888888d407888888d4070888d414888888c8c8c8c94cd4cc21804cc1a4009200033086013306800101833086015335330820101906b13308501330950100b0193370000202426610c026610a026612a020160320026610a026612a020160d60246610c02660fc01802c660fa01402a2a66a6660c8104020120322666661540266e00044008cdc08080008078070068999998550099b810110013370002000401e01c01a2c66603e6a00614c026a00614a02002a66a66100020020d2266e04cc24c0408c004cdc0008808099849808118009a800851009aa99a99983003f00280a899985a00802806806099985a008020060069111a8019119985c80802802001911aa8061111111a80f111111a80e1111a82911111191919191919299a998440099835802240006611002660d80020086611002a66a66108020360da266110026610e026612e0201a03666e00068050cc21c04cc25c04034014cdc08020008a99a99842008028368998440099843809984b8080680d80d19843809984b8080680299b8033702008002028266110026610e026612e0201a03603466110026610e026612e0201a00a66e04010004cc21c04cc25c040341b4050cc22004cc20004038060cc1fc03005c54cd4ccc1982100402c06c4ccccc2b004cdc000980099b8101201a01101000f1333330ac013370202603466e0004800404404003c594cd54ccd5cd19b880190011309f013370066e0ccdc119b82002019483403ccdc119b81001019483283d200209e012100116350040a601350030a60153353308001001069133702661260204600266e000440404cc24c0408c004d400428804d54cd4ccc1801f80140544ccc2d0040140340304ccc2d004010030034888d400c88ccc2e40401401000c88d54030888888d407888888d4070888d414888888c8c8c8c94cd4cc21804cc1a4011200033086013308601330680030193306800201833086015335330820100906b133086013308501330950100b009337000060246610a026612a020160100042a66a66104020100d626610c026610a026612a0201601066e00008048cc21404cc2540402c02400c4cc21804cc21404cc2540402c02400ccc21804cc21404cc2540402c020008cc21404cc2540402c1ac048cc21804cc1f8030058cc1f40280544c8c8c8ccccc2b40400800ccdc019b8101200700133700022002a66a0082604a66e0800800c40414cd400c4cccc08c03c04c048044520003370202400866e0404000858c26804010cdc199b8200200e00d3370666e08004038030cc244040840f8888c8cdc199b820010033370066e0801120d00f0013370400290650791112999ab9a3371200890000a4000264a666ae68cdc48008028a4000264a666ae68cdc4800a400029000080099b833370400466e04004014cdc019b8200148028014c014cdc10018011192999ab9a33710004900004d808a999ab9a30a10100214800054ccd5cd1851008010a40042a666ae68c28c04008520021330010023370066e0c009200448008c254048894ccd5cd19b880010021330030013370666e00cdc1802000800a4008200426660f2002006046464a666ae68c27c04d55ce80089919191919191919191919191919091999998008050048040028018011bad357426ae88008dd69aba100135744010a666ae68c2b4040084c8c8488888cc01001c018dd69aba135744a0046660f8eb9d71aba15001153335734615802004264642444446600200e00c6eb4d5d09aba25002375a6ae85400454ccd5cd18558080109909111118028031bad357426aae7801854ccd5cd18550080109919091111198010038031bad357426ae894008ccc1f1d73ae35742a0022a666ae68c2a4040084c8c8488888cc00c01c018dd69aba135744a0046660f8eb9d71aba150010a101135573c00a6aae74010cc1e1d71aba100530743574200a60e66ae84014dd51aba1001357440026ae88004d5d10009aab9e0010970137540026a002104026a00810c0260c82446660d444a66a660b066606c0d46a004104026a03c1040266606c0a06a6a0040fc0ee05e266008004002200200202a60c82446660d444a66a660b066606c0a06a0040ee6a0200ee66606c0a06a0040ee05e2660080040022002002026666660f0660c602c044660c602c04203e660c602c02003c660a8660a0044607a008660a8660a0042607c008660a8024660a8a66a60c82446660d444a66a660a66aa03a104026a6a0040ee1040226600800400220020020260d6442a66a0020fe440dea66a6660640a600490000998299981d183c840809984100833800a40042660a66607460f21020266104020ce0029000183800999b8100101d303d001333066059008010305333307f22322325333573466e1c010dc680488010a999ab9a308f0100415333573466e1d205a500313370290001980299b800044800800800400454ccd5cd19b885002481805854ccd5cd19b8950023370090302402426600866e0000d20023370066e08005201433702a00490300b099b8e0060014800120001533500400115335501a13335734611a026606860e60f6660f80c200a0c20d00022a66a0062a66aa0320022666ae68c23804cc0ccc1c81e8cc1ec18001018019c0044ccd5cd18460099819183883c9983d02f80182f833299a9983d91299a8008321109a80111299a9982b00101089834800898030019a9a99a983b03c00501083883610a99a8008b1109a80111299a8018a99a99827800a400420042c112022c666ae68cdc49982c800803240000c80ba6a0020d4a66a60b02446660bc44a66a66088a0226a0040d6266008004002200200200e2c0f8660ce02c6a00a0d460c2006a66a60a42446660b044a66a660826aa0160e06a6a6a0040d80ca0e026600800400220020020060b2442a66a0020da440ba60ba0026a0280d4660b40020246a6a0080c80be26a6a0020c20b4a66a609601c420022c2a66a660600040320ba266060002032603200e6068010464646a09c4444464646464646464660706606a00c0066607066068660a600c018660a6006018660706606e6608e6a6a66a60c60ca00401e0bc0b2660b601201090011981c1981f998188070009981c1981b9811800a40006607066068604201c60420026607066068604401c60440026606e604801c6048002660706606a60aa00a09666070a66a609024466609c44a66a60a26a6a0040c40b8266008004002200200200809e442a66a0020c6440a6a66a609024466609c44a66a60a26a0040b8266008004002200200260b000e09e442a66a0020c6440a666609a08000600860a40066a0020aca66a608824466609444a66a660666a6a6a00e0bc0ae0c46a6a0040ae0c4266008004002200200260a80062c0d06a0100ba6a6a0020b00a6a66a608400c420022c603000c606600e4464646a09e44444a66a6a00e440a8426464646464646464646464646607e660700286660aa09000800c6607e66076014660b40060246607e6607e6607c6609c6a0040c00120106607e6606e6a0040bc6a01a0d26606c6a0040be6a01a0ca6607e6607866aa60ce0d846a00244660ca00466aa60d40de46a00244660d0004666a0026e012000700466e0000520000013304000b3500922330723306400233072330640010090540540033303f3303e3304e3535335306a06c0010160650603306200f00e48008cc0fccc0f0c1700181494cd4c13c488ccc154894cd4c160d4d40081a418c4cc010008004400400400c1588854cd40041a888168c168014cd4c1a01a800c04cd40041754cd4c12c488ccc144894cd4cc0dcd4d4030194178d40081784cc010008004400400400c581bcc160004d403418cccd4080178d4d4080188178004cc11800c004cc164020d4004170cc140004020d4d40041681554cd4c11001c8400458124c06401cc0d0020448004584d55cf0011aab9d0013754004444a66a6600600400207809c46a0020b0246666666600204044a666ae68cdc38010008020a999ab9a3371200400203203044666ae68cdc400100081b01e802802001912999ab9a337120040022002200444a666ae68cdc4801000880108008881f11199ab9a3371000400207406644666ae68cdc480100081c81911199ab9a337120040020620706607c91100488100223333550023303f2233350050480010023500304222337000029001000a4000660784446006600400240026607666076e01200070246a0024444400a46a0020a246a0024407246a0024406c464a666ae68c140d55ce8008991919191981e2999ab9a305435573a00626464646464646464646464646464646464646464646424666666666600201a01801601401201000e00a00600460446ae84d5d10011980f1981dbae2001357420026ae88008cc071d71aba100135744016a666ae68c190d55ce804899191919827a999ab9a306735573a004264660a066038eb4d5d0800980d9aba1357440026aae7800817d4ccd5cd18339aab9d001132330503301c75a6ae84004c06cd5d09aba200135573c0020be6ea8d5d09aba200237546ae84004d55cf00482e1980c9981b019bad35742014660300326ae84028ccc059d70029aba100a33301575c0086ae84028cc054008d5d08051980a1192999ab9a306035573a0022646609260326ae84004c010d5d09aba200135573c0020b06ea8004d5d08051192999ab9a305f35573a002264646660b060606ae84008ccc059d70029aba10013303375c6ae84d5d10009aba200135573c0020ae6ea8004cc045d73ad37546ae84004d5d10009aba2001357440026ae88004d5d10009aba200135573c006098a666ae68c15c0044c848888c010014c02cd5d09aab9e00215333573460ac00226424444600400a60486ae84d55cf0010a999ab9a3055001132122223001005300c357426aae7800854ccd5cd182a0008990911118018029bae357426aae78008130d55ce8009baa357426ae88008dd51aba100135573c0020906ea80048c94ccd5cd182800081e8a999ab9a304f00102b04735573a6ea800488c8c94ccd5cd18290008058a999ab9a3051001130193004357426aae7800854ccd5cd18280008050241aab9d00137540024464460046eac004c10888cccd55cf8009014119198239981c98031aab9d001300535573c00260086ae8800cd5d0801020919118011bac00130402233335573e002404c46608860086ae84008c00cd5d100101f91919192999ab9a305300211222203515333573460a4004220922a666ae68c1440084c8c848888888cc004024020dd69aba135744a0046eb8d5d0a8008a999ab9a3050002132321222222233002009008375c6ae84d5d128011bae35742a0022a666ae68c13c0084c8c848888888cc018024020dd71aba135744a004603a6ae85400454ccd5cd1827001099091111111803804180e9aba135573c0062a666ae68c1340084c848888888c014020c074d5d09aab9e003045135573c0046aae74004dd50009192999ab9a304a35573a0022646606660086ae84004dd69aba1357440026aae78004108dd50009192999ab9a304935573a00226eb8d5d09aab9e0010413754002220582205444a66a00442a66a00442660240040020462a66a0024046068446a004446a006446666010008006004002446a004444446a00c44444a66a6601e01400a2a66a6601e0120082a666ae68cdc38040018a999ab9a3370e00e0042a66a00c42a66a004426a004446a004446a00a446a00444a66a666602e00c00a0040022a66a00e42a66a008426604800400206a2a66a006406a08c0680562a66a002405607805405405405444446466a00a466a0084a666ae68cdc78010008018121013919a802101392999ab9a3371e0040020060482a66a00642a66a0044266a004466a00446601200400244405444466a0084054444a666ae68cdc38030018a999ab9a3370e00a0042660220080020520520442a66a00240440664466a004466a00446601c0040024046466a004404646601c004002446a004446a00644a666ae68cdc780200109980780180081091199aa9815019180680191a80091199aa981681a980800311a80091199a800919805a40000020144660160029000000998030010009981280100a91199ab9a3370e00400202c03a44a66a00420020324466aa605205c46a002446604e004666a002466aa605a06446a0024466056004601800200244666010016004002466aa605a06446a0024466056004601600200266600600c004002444666aa605005c06466aa605205c46a002446604e0046010002666aa605005c446a00444a66a666aa6054064601a01646a002446601400400a00c200626606c00800602800266aa605205c46a002446604e0046606844a66a002260120064426a00444a66a6601800401022444660040140082600c00600800442444600200842444600600844666ae68cdc780100080800b9980e80080a11299a801012080091980e11199a8018128010009a80080f9192999ab9a303435573a00226464646466666042666016eb9d71aba100433300b75ceb8d5d08019bad357420046eb4d5d0800998051192999ab9a303a35573a0022646604660146ae84004cc035d71aba1357440026aae780040c8dd50009aba1357440026ae88004d5d10009aba200135573c0020586ea80048c94ccd5cd18199aab9d0011323301c3005357420026600c0086ae84d5d10009aab9e00102b375400246464a666ae68c0d00044c8c8c8c8c8488ccc00401801000cdd69aba1357440046eb4d5d08009aba2002375a6ae84004d55cf0010a999ab9a3033001130103004357426aae780080acd55ce8009baa0012323253335734606600226424460020066eb8d5d09aab9e00215333573460640022601e6eb8d5d09aab9e00202a35573a0026ea800488c8c94ccd5cd18190008980798021aba135573c0042a666ae68c0cc0040380a8d55ce8009baa001222325333573460626aae740044c8cc068c014d5d080098021aba1357440026aae780040a4dd5000911a8009119198131119a800a4000446a00444a666ae68cdc7801004898038008980300180298129119a800a4000446a00444a666ae68cdc7801003880089803001919a80081100211a800911a80111111111111999a805900b900b900b9199aa981101500b11a80091299a998090010020980c00180b805912999ab9a3371e6a0040346a0020342666ae68cdc39a80100b1a80080b001805003880b91180f11299a80088019109980300118020009299a800900b0019111a801111299a800909a8029111111111299aa99a999aa981001400a11a800912999ab9a3371e00401c2602c00602a0044260286a0020440244260240022c2c2006424460040066601444a66a0044200620020022018446602e44a66a00203c4426a00444a666ae68cdc78010038a99a8008111109a80111299a8018a999ab9a302d00113301400b0020262202813006003002235001222222222200a2350012201c23500122222222220092220032220012220023333300248811c0be55d262b29f564998ff81efe21bdc0022621c12f15af08d0f2ddb10048811ce4214b7cce62ac6fbba385d164df48e157eae5863521b4b67ca71d8600330014891c13aa2accf2e1561723aa26871e071fdf32c867cff7e7d50ad470d62f004881074d494e535741500048811c2f2e0404310c106e2a260e8eb5a7e43f00cff42c667489d30e179816004881054f574e455200221233001003002222221233333001006005004003002300b22112225335001135003006221333500500c300400233355300700f0050040012200130092211222533500110022213300500233355300700d005004001300822112253350010052213300f30040023355300600b00400111001220023005221225333573466e20005200013005490103505436001533500213005491035054370022153335734602c0062004266a600c01000266e0400d2002253357380022c240026004444a66a00220044426a004446600e66601000400c00200660024444a66a00220044426a00444a666ae68c0500044ccc02001c01800c4ccc02001ccc028ccc02c01c00800401800c8c8c00400488cc00cc00800800488488cc00401000c88848ccc00401000c00854cd5ce2490350543100162215335001100200715335738921001622222222007220053704904d0f910b111110021b8748000dc3a40046e1d2004370e90031b8748020dc3a40146e1d200c010482d8799fd8799fd8799f581cbfdf836deb9a938d3ded0e21bd58c8d8879326f2a0f0e8b10361ae70ffd8799fd8799fd8799f581ce084d5fe53388503b7a78297dda228cf3b8c0bc09ca2cf1c0579f05cffffffffd8799fd8799f581cbfdf836deb9a938d3ded0e21bd58c8d8879326f2a0f0e8b10361ae70ffd8799fd8799fd8799f581ce084d5fe53388503b7a78297dda228cf3b8c0bc09ca2cf1c0579f05cffffffffd87a80d8799fd8799f581c884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae455041564941ff193a02ff1a001e84801a001e8480ffd8799fd8799f4040ffd8799f581c884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae455041564941ff1b0000000159f3f9961b000000015ea819ead8799fd8799fd8799fd8799f581caafb1196434cb837fd6f21323ca37b302dff6387e8a84b3fa28faf56ffd8799fd8799fd8799f581c52563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c2ffffffffd87a80ffffff0582840001d8799fd8799fd8799f581c2ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7dffd8799fd8799fd8799f581c52563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c2ffffffff00ff821a002c3c531a3374a432840003d879808219c7841a0115b9d6a300818258204f80a2bd91483b6006267cec798357942090b0d299e5549c7f39b952b5bca95b5840d2fa0a52410eec1dcc8726e42c2851c1d2efc866e4344de53ef57d44c75fdf57eb3500e061455c9f84ebe22459de568d912489ec476cd59acb72d1feef954e07049fd8799f581c86d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe8269fd8799fd8799fd8799f581ccf982e203548ccc25e31a0b486b5d4c159777e45da4cbf5831486330ffd8799fd8799fd8799f581c84a7ecc76b0404a65afdb37c019d81fc10443d60ee79d405898665f8ffffffffa140d8799f00a1401a00432380ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a002191c0ffffd8799fd8799fd8799f581c86d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe826ffd8799fd8799fd8799f581c1222d830fb400b9f45ec0f18125f63a629d6fd8bca118246e9e62f65ffffffffa140d8799f00a1401a0629c240ffffffffd8799f581c86d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe8269fd8799fd8799fd8799f581ccf982e203548ccc25e31a0b486b5d4c159777e45da4cbf5831486330ffd8799fd8799fd8799f581c84a7ecc76b0404a65afdb37c019d81fc10443d60ee79d405898665f8ffffffffa140d8799f00a1401a003da540ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a001ed2a0ffffd8799fd8799fd8799f581c86d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe826ffd8799fd8799fd8799f581c1222d830fb400b9f45ec0f18125f63a629d6fd8bca118246e9e62f65ffffffffa140d8799f00a1401a05a8ab60ffffffffff0581840000d8799fff821a0035a81a1a427d2108a20081825820217bd0570f80e6ed2f600f9b6506f3611e6fc25c147981b9fbc06b7239a8ce845840cbbaa70b99de30dad8004dc97decfdbb71c235340b25ab65d2f9e9c60d9abf9dc42ad733fac0e50fa18f103a21837e61a0e1a0a4793dc7c250ef0480a5693e0d049fd8799f581c2a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b6999fd8799fd8799fd8799f581ca089de553abbcc7b1ff01c4f5176eb59ace78def5781c4e94e4f748fffd8799fd8799fd8799f581c39f8aaa3881a830edd32eb8ad45e369316d04f970cb913ae87be39cfffffffffa140d8799f00a1401a26be3680ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a0f7f4900ffffd8799fd8799fd8799f581c2a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699ffd8799fd8799fd8799f581c649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542fffffffffa140d8799f00a1401b00000002d09ec280ffffffffffa10081825820d0e79bf11ba2790edb0be38e861faf90a6d04de311c3e08946ae0c83fc8d7b995840dd8f3db68201bc95a8a121aef1084cd9040c919a604504ee39a2a4e8f5bb04d84de23507e94cc7cbb3cf3232cc16c283eeb48c746b9eb68f2502b849da44ea06a100818258206687a36f0a4b8abf2671f8affb7febeb8940e9ee83548d2a2924dbc74679c466584087fdd447fc0b7f65b3d68843dcf98e570550ec15b899b11d72c556cee300bb800d642439221dc795a3323f6f84079cff8967ec5ae36bfc4c919fb05fb611270ba1008282582004e3e59d9d28c5bfe7280e519f711717b3e55670b3de27b282b609da6d879aa458403aac7bb2963af0aaebf4f991f86ee54e499860f0eeb32e5456cae10ea5c8172a35975360dc5901b7742d9a8ac7b2379d538fd2518886cb1824fd60ea1ae34e00825820f15eafdcd699aecec9fff1f22c266d185a5ba8e2b38bafede8a098bdb4d3ca12584061a086fd4257328678bc2950e246d1239bde3d330e2209409cc5db67412c140dea450e6fb33dfa7b19959c8414e57af572f79bcc8afc1a96e885107fb6fdd800a700b869181e613518327840643837393966353831633565353161646236663938376664336361663034646264613664633432376163303262306536636663633939316632323431316632341833784037393966643837393966643837393966643837393966353831636663353533316335396664666533373238663562626332313334313639666265376539643663183478403630373066373030626335616531643732336666643837393966643837393966643837393966353831636630386230336264386365663834393031383830633218357840636630343962653336383863336233393633353166316366376164663032646438346666666666666666613134306438373939663030613134303161303134301836784036663430666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462183778403865643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363218387840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031611839784030303562386438306666666664383739396664383739396664383739396635383163356535316164623666393837666433636166303464626461366463343237183a784061633032623065366366636339393166323234313166323437396666643837393966643837393966643837393966353831636437343662613261363032333039183b784039623335353933643866656330333339653631383564643763333438666133626366356237333165643866666666666666666131343064383739396630306131183c784034303161313034356136343066666666666666662c64383739396635383163356535316164623666393837666433636166303464626461366463343237616330183d784032623065366366636339393166323234313166323437393966643837393966643837393966643837393966353831636663353533316335396664666533373238183e784066356262633231333431363966626537653964366336303730663730306263356165316437323366666438373939666438373939666438373939663538316366183f7840303862303362643863656638343930313838306332636630343962653336383863336233393633353166316366376164663032646438346666666666666666611840784031343064383739396630306131343031613030366163666330666666666438373939666438373939666438373939663538316337306536306633623565613731184178403533653061636337613830336534343031643434623865643162616531633762616161643161363261373266666438373939666438373939666438373939663518427840383163316537386161653763393063633336643632346637623362623664383662353236393664633834653439306633343365626138393030356666666666661843784066666661313430643837393966303061313430316130303165383438306666666664383739396664383739396664383739396635383163356535316164623666184478403938376664336361663034646264613664633432376163303262306536636663633939316632323431316632343739666664383739396664383739396664383718457840393966353831636437343662613261363032333039396233353539336438666563303333396536313835646437633334386661336263663562373331656438661846784066666666666666613134306438373939663030613134303161303536633863633066666666666666662c64383739396635383163356535316164623666393837184778406664336361663034646264613664633432376163303262306536636663633939316632323431316632343739396664383739396664383739396664383739396618487840353831636663353533316335396664666533373238663562626332313334313639666265376539643663363037306637303062633561653164373233666664381849784037393966643837393966643837393966353831636630386230336264386365663834393031383830633263663034396265333638386333623339363335316631184a784063663761646630326464383466666666666666666131343064383739396630306131343031613030643539663830666666666438373939666438373939666438184b784037393966353831633730653630663362356561373135336530616363376138303365343430316434346238656431626165316337626161616431613632613732184c784066666438373939666438373939666438373939663538316331653738616165376339306363333664363234663762336262366438366235323639366463383465184d784034393066333433656261383930303566666666666666666661313430643837393966303061313430316130303364303930306666666664383739396664383739184e784039666438373939663538316335653531616462366639383766643363616630346462646136646334323761633032623065366366636339393166323234313166184f7840323437396666643837393966643837393966643837393966353831636437343662613261363032333039396233353539336438666563303333396536313835641850784064376333343866613362636635623733316564386666666666666666613134306438373939663030613134303161306164393139383066666666666666662c64185178403837393966353831633565353161646236663938376664336361663034646264613664633432376163303262306536636663633939316632323431316632343718527840393966643837393966643837393966643837393966353831636663353533316335396664666533373238663562626332313334313639666265376539643663361853784030373066373030626335616531643732336666643837393966643837393966643837393966353831636630386230336264386365663834393031383830633263185478406630343962653336383863336233393633353166316366376164663032646438346666666666666666613134306438373939663030613134303161303036616318557840666330666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462381856784065643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363234185778406637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031613018587840303165383438306666666664383739396664383739396664383739396635383163356535316164623666393837666433636166303464626461366463343237611859784063303262306536636663633939316632323431316632343739666664383739396664383739396664383739396635383163643734366261326136303233303939185a784062333535393364386665633033333965363138356464376333343866613362636635623733316564386666666666666666613134306438373939663030613134185b7840303161303536633863633066666666666666662c6438373939663538316335653531616462366639383766643363616630346462646136646334323761633032185c784062306536636663633939316632323431316632343739396664383739396664383739396664383739396635383163666335353331633539666466653337323866185d784035626263323133343136396662653765396436633630373066373030626335616531643732336666643837393966643837393966643837393966353831636630185e784038623033626438636566383439303138383063326366303439626533363838633362333936333531663163663761646630326464383466666666666666666131185f7840343064383739396630306131343031613030366163666330666666666438373939666438373939666438373939663538316337306536306633623565613731351860784033653061636337613830336534343031643434623865643162616531633762616161643161363261373266666438373939666438373939666438373939663538186178403163316537386161653763393063633336643632346637623362623664383662353236393664633834653439306633343365626138393030356666666666666618627840666661313430643837393966303061313430316130303165383438306666666664383739396664383739396664383739396635383163356535316164623666391863784038376664336361663034646264613664633432376163303262306536636663633939316632323431316632343739666664383739396664383739396664383739186478403966353831636437343662613261363032333039396233353539336438666563303333396536313835646437633334386661336263663562373331656438666618657840666666666666613134306438373939663030613134303161303536633863633066666666666666662c64383739396635383163356535316164623666393837661866784064336361663034646264613664633432376163303262306536636663633939316632323431316632343739396664383739396664383739396664383739396635186778403831636663353533316335396664666533373238663562626332313334313639666265376539643663363037306637303062633561653164373233666664383718687840393966643837393966643837393966353831636630386230336264386365663834393031383830633263663034396265333638386333623339363335316631631869784066376164663032646438346666666666666666613134306438373939663030613134303161303036303231363066666666643837393966643837393966643837186a784039396635383163373065363066336235656137313533653061636337613830336534343031643434623865643162616531633762616161643161363261373266186b784066643837393966643837393966643837393966353831633165373861616537633930636333366436323466376233626236643836623532363936646338346534186c784039306633343365626138393030356666666666666666666131343064383739396630306131343031613030316237373430666666666438373939666438373939186d784066643837393966353831633565353161646236663938376664336361663034646264613664633432376163303262306536636663633939316632323431316632186e784034373966666438373939666438373939666438373939663538316364373436626132613630323330393962333535393364386665633033333965363138356464186f7840376333343866613362636635623733316564386666666666666666613134306438373939663030613134303161303465316231653066666666666666662c64381870784037393966353831633565353161646236663938376664336361663034646264613664633432376163303262306536636663633939316632323431316632343739187178403966643837393966643837393966643837393966353831636663353533316335396664666533373238663562626332313334313639666265376539643663363018727840373066373030626335616531643732336666643837393966643837393966643837393966353831636630386230336264386365663834393031383830633263661873784030343962653336383863336233393633353166316366376164663032646438346666666666666666613134306438373939663030613134303161303034303136187478403430666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462386518757840643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363234661876784037623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031613030187778403132346638306666666664383739396664383739396664383739396635383163356535316164623666393837666433636166303464626461366463343237616318787840303262306536636663633939316632323431316632343739666664383739396664383739396664383739396635383163643734366261326136303233303939621879784033353539336438666563303333396536313835646437633334386661336263663562373331656438666666666666666661313430643837393966303061313430187a78403161303334313231343066666666666666662c643837393966353831633565353161646236663938376664336361663034646264613664633432376163303262187b784030653663666363393931663232343131663234373939666438373939666438373939666438373939663538316366633535333163353966646665333732386635187c784062626332313334313639666265376539643663363037306637303062633561653164373233666664383739396664383739396664383739396635383163663038187d784062303362643863656638343930313838306332636630343962653336383863336233393633353166316366376164663032646438346666666666666666613134187e784030643837393966303061313430316130303661636663306666666664383739396664383739396664383739396635383163373065363066336235656137313533187f7840653061636337613830336534343031643434623865643162616531633762616161643161363261373266666438373939666438373939666438373939663538311880784063316537386161653763393063633336643632346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666188178406661313430643837393966303061313430316130303165383438306666666664383739396664383739396664383739396635383163356535316164623666393818827840376664336361663034646264613664633432376163303262306536636663633939316632323431316632343739666664383739396664383739396664383739391883784066353831636437343662613261363032333039396233353539336438666563303333396536313835646437633334386661336263663562373331656438666666188478406666666666613134306438373939663030613134303161303536633863633066666666666666662c64383739396635383163356535316164623666393837666418857840336361663034646264613664633432376163303262306536636663633939316632323431316632343739396664383739396664383739396664383739396635381886784031636663353533316335396664666533373238663562626332313334313639666265376539643663363037306637303062633561653164373233666664383739188778403966643837393966643837393966353831636630386230336264386365663834393031383830633263663034396265333638386333623339363335316631636618887840376164663032646438346666666666666666613134306438373939663030613134303161303134303666343066666666643837393966643837393966643837391889784039663538316337306536306633623565613731353365306163633761383033653434303164343462386564316261653163376261616164316136326137326666188a784064383739396664383739396664383739396635383163316537386161653763393063633336643632346637623362623664383662353236393664633834653439188b784030663334336562613839303035666666666666666666613134306438373939663030613134303161303035623864383066666666643837393966643837393966188c784064383739396635383163356535316164623666393837666433636166303464626461366463343237616330326230653663666363393931663232343131663234188d784037396666643837393966643837393966643837393966353831636437343662613261363032333039396233353539336438666563303333396536313835646437188e78406333343866613362636635623733316564386666666666666666613134306438373939663030613134303161313034356136343066666666666666662c643837188f784039396635383163356535316164623666393837666433636166303464626461366463343237616330326230653663666363393931663232343131663234373939189078406664383739396664383739396664383739396635383163666335353331633539666466653337323866356262633231333431363966626537653964366336303718917840306637303062633561653164373233666664383739396664383739396664383739396635383163663038623033626438636566383439303138383063326366301892784034396265333638386333623339363335316631636637616466303264643834666666666666666661313430643837393966303061313430316130303535373330189378403066666666643837393966643837393966643837393966353831633730653630663362356561373135336530616363376138303365343430316434346238656418947840316261653163376261616164316136326137326666643837393966643837393966643837393966353831633165373861616537633930636333366436323466371895784062336262366438366235323639366463383465343930663334336562613839303035666666666666666666613134306438373939663030613134303161303031189678403836613030666666666438373939666438373939666438373939663538316335653531616462366639383766643363616630346462646136646334323761633018977840326230653663666363393931663232343131663234373966666438373939666438373939666438373939663538316364373436626132613630323330393962331898784035353933643866656330333339653631383564643763333438666133626366356237333165643866666666666666666131343064383739396630306131343031189971613034353664373030666666666666666601ac007840643837393966353831636636323839313037623365356663633936336134336237663130303138643338313936376338613565363163656230316237366632330178403938396664383739396664383739396664383739396635383163646137656565363232316239646166396438343233333531333466316666366431646139613002784039393662393132303137653732356266326266666438373939666438373939666438373939663538316363343937386331336466376334623339383830396666037840396235626461316231333666383235303932313837313065656335613864303734306666666666666666613134306438373939663030613134303161303034630478403462343066666666643837393966643837393966643837393966353831633730653630663362356561373135336530616363376138303365343430316434346205784038656431626165316337626161616431613632613732666664383739396664383739396664383739396635383163316537386161653763393063633336643632067840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031610778403030316538343830666666666438373939666438373939666438373939663538316366363238393130376233653566636339363361343362376631303031386408784033383139363763386135653631636562303162373666323339386666643837393966643837393966643837393966353831633561383532633832303761396238097840393865633636656630366538393964396439643863643635333531646230323939303334336339316237666666666666666661313430643837393966303061310a743430316130353862313134306666666666666666181e613402ac181e613518327840643837393966353831633766623835643661346561363465643363346330633933616432633261643137663265353839656636356463613837373235313039631833784063393966643837393966643837393966643837393966353831633138393939613337353566336533343433306163646332306535353030376166656437663266183478403233636365306436366435313233663262306666643837393966643837393966643837393966353831636465396330663064373034333365323762626136333618357840393636393364633964386664663263366464396530643432363635376163323663376666666666666666613134306438373939663030613134303161303034391836784033653030666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462183778403865643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363218387840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031611839784030303234396630306666666664383739396664383739396664383739396635383163376662383564366134656136346564336334633063393361643263326164183a784031376632653538396566363564636138373732353130396363396666643837393966643837393966643837393966353831636332613064666264313233653161183b784038316534653430313163626634623936343162356236636163633239356630383030646331356332313566666666666666666131343064383739396630306131183c7534303161303662393331303066666666666666662c03ac181e613518327840643837393966353831633935373836616439343263326531666338323865653562636634656237303134656562303937393033636538636135363232343964381833784061333966643837393966643837393966643837393966353831633664326338646137376666356639666536353830363537666636396565336336386230623062183478403436616131323935356265653663306165356666643837393966643837393966643837393966353831636636643262383964366339653630643764396531393218357840323437373061366337353464613666636563623335633831373930343933396566646666666666666666613134306438373939663030613134303161303035661836784035653130666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462183778403865643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363218387840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031611839784030303236323561306666666664383739396664383739396664383739396635383163393537383661643934326332653166633832386565356263663465623730183a784031346565623039373930336365386361353632323439643861336666643837393966643837393966643837393966353831633963393232373964623335393332183b784062343730393365383762323665383065666533386530373134356463393437656234373432306533346166666666666666666131343064383739396630306131183c7534303161303665646435393066666666666666662c05d90103a100a11902a2a1636d7367826f4c616d696e61722052656c6179657278403965336637363533316634643966353966336364653138353631653765393734643739373930323833343366663464366439343461333330666538626531623806ac181e613518327840643837393966353831633836643133613837333038653431373462303136623430366539333736643436643462393563633263653536666437653863366665381833784032363966643837393966643837393966643837393966353831636366393832653230333534386363633235653331613062343836623564346331353937373765183478403435646134636266353833313438363333306666643837393966643837393966643837393966353831633834613765636337366230343034613635616664623318357840376330313964383166633130343433643630656537396434303538393836363566386666666666666666613134306438373939663030613134303161303033641836784061353430666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462183778403865643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363218387840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031611839784030303165643261306666666664383739396664383739396664383739396635383163383664313361383733303865343137346230313662343036653933373664183a784034366434623935636332636535366664376538633666653832366666643837393966643837393966643837393966353831633132323264383330666234303062183b784039663435656330663138313235663633613632396436666438626361313138323436653965363266363566666666666666666131343064383739396630306131183c7534303161303561386162363066666666666666662c07ac181e613518327840643837393966353831633261396432326337313835633865363632333163646634333635386266313233353266313537616231363565323036316437343462361833784039393966643837393966643837393966643837393966353831636130383964653535336162626363376231666630316334663531373665623539616365373864183478406566353738316334653934653466373438666666643837393966643837393966643837393966353831633339663861616133383831613833306564643332656218357840386164343565333639333136643034663937306362393133616538376265333963666666666666666666613134306438373939663030613134303161323662651836784033363830666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462183778403865643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363218387840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031611839784030663766343930306666666664383739396664383739396664383739396635383163326139643232633731383563386536363233316364663433363538626631183a784032333532663135376162313635653230363164373434623639396666643837393966643837393966643837393966353831633634396431326631333963353861183b784064346136616333393936333235363437396434336437633462343665366666616234303833373534326666666666666666666131343064383739396630306131183c781d343031623030303030303032643039656332383066666666666666662c80
intertree commented 1 year ago

Can also confirm all 8 Mainnet Nodes I have under management restarted. Mix of Cloud and Baremetal, multiple Geographical locations.

v1.35.4

ashisherc commented 1 year ago

On initial inspection this seems to be the offending transaction

https://cardanoscan.io/transaction/5d21b0eb26ba772ec85c2db09311005815c89140ee7bf894fa36c0a6d71b89c1?tab=collateral

the block it was in 95050 fails to register on almost all Nodes, seems like they all die as soon as they see the block.

The Collaterals are consumed, indicating the the TX failed to execute.

I theorize that the Redeemer had some sort of runway process happen, causing all nodes that tied to process it to shut down.

the collateral is not consumed for this tx, in case of failed tx; cardanoscan will display FAILED tag. cc @JaredCorduan

Quantumplation commented 1 year ago

Do we have reason to believe that it was the block above, beyond just being the last block received before the crash? It seems more likely to me that if there was a block causing the crash, it would be the one received immediately after that persisted block, and the crashing would prevent it from being adopted. Once nodes restarted, they would likely select a different tip and continue producing nodes from there.

In particular, SMAUG's original error message seems to indicate that the headerHash of the tip at the time was fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e6 which doesn't match any of the blocks centered around the crash.

Also, if it was a specific block in the chain, I'd imagine it would continue to cause issues after the restart. The fact that the network recovered implies that the block that causes the issue is no longer part of the chain.

JaredCorduan commented 1 year ago

I agree completely @Quantumplation, we came to this same conclusion. what's weird is how such a block or transaction would propagate and cause so many failures all within the same second.

leo42 commented 1 year ago

I agree completely @Quantumplation, we came to this same conclusion. what's weird is how such a block or transaction would propagate and cause so many failures all within the same second.

My BP and Fallback failed a few minutes after the relays, I assume because they are not directly connected to the outside world.

Not sure it helps find the issue. sorry If I lead you on a wild goose chase.

disassembler commented 1 year ago

our current assessment is that block referenced in the GH issue (77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667) is not the culprit and it's another block that didn't make it into the chain. This is backed up by multiple nodes that received that block not crashing and nodes replaying the chain also don't crash. We don't have a copy of the block that potentially caused that issue. Also, the tx propagating around 10 seconds earlier caused the same error, but it didn't cause the node to crash until the block receiving the tx arrived. We'll continue to monitor the situation over the weekend and working on action items on Monday. Thanks everyone involved in helping with the analysis.

Here's a log of relevant lines on a relay that throws the error 10 seconds before and crashes right at 00:09:01 like all the other reports above:

Jan 22 00:08:48 rel-a-1 cardano[3474928]: IP 212.227.203.123:41761 ErrorPolicyUnhandledApplicationException Failure in Data.Map.balanceR
                                          CallStack (from HasCallStack):
                                            error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal
Jan 22 00:08:48 rel-a-1 cardano[3474928]: IP 35.156.63.196:40549 ErrorPolicyUnhandledApplicationException Failure in Data.Map.balanceR
                                          CallStack (from HasCallStack):
                                            error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal
Jan 22 00:08:48 rel-a-1 cardano[3474928]: IP 51.89.97.27:45843 ErrorPolicyUnhandledApplicationException Failure in Data.Map.balanceR
                                          CallStack (from HasCallStack):
                                            error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal
Jan 22 00:08:48 rel-a-1 cardano[3474928]: IP 3.125.135.28:40159 ErrorPolicyUnhandledApplicationException Failure in Data.Map.balanceR
                                          CallStack (from HasCallStack):
                                            error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal
Jan 22 00:08:48 rel-a-1 cardano[3474928]: IP 45.157.179.0:41271 ErrorPolicyUnhandledApplicationException Failure in Data.Map.balanceR
                                          CallStack (from HasCallStack):
                                            error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal
Jan 22 00:08:48 rel-a-1 cardano[3474928]: IP 64.227.46.95:41559 ErrorPolicyUnhandledApplicationException Failure in Data.Map.balanceR
                                          CallStack (from HasCallStack):
                                            error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal
Jan 22 00:08:48 rel-a-1 cardano[3474928]: IP 87.211.226.19:37573 ErrorPolicyUnhandledApplicationException Failure in Data.Map.balanceR
                                          CallStack (from HasCallStack):
                                            error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal
Jan 22 00:08:53 rel-a-1 cardano[3474928]: Valid candidate 4c3f8289307536bed7d7f3cf95f5952298d1b03bae200f89c7f37649d5be2d22 at slot 82779842
Jan 22 00:08:53 rel-a-1 cardano[3474928]: Chain extended, new tip: 4c3f8289307536bed7d7f3cf95f5952298d1b03bae200f89c7f37649d5be2d22 at slot 82779842
Jan 22 00:08:54 rel-a-1 cardano[3474928]: IP 89.58.45.241:40475 ErrorPolicyUnhandledApplicationException (HardForkEncoderDisabledEra (SingleEraInfo {singleEraName = "Babbage"}))
Jan 22 00:08:58 rel-a-1 cardano[3474928]: IP 217.146.78.169:33248 ErrorPolicyUnhandledApplicationException (HardForkEncoderDisabledEra (SingleEraInfo {singleEraName = "Babbage"}))
Jan 22 00:09:01 rel-a-1 cardano[3474928]: Valid candidate 77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667 at slot 82779850
Jan 22 00:09:01 rel-a-1 cardano[3474928]: Chain extended, new tip: 77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667 at slot 82779850
Jan 22 00:09:01 rel-a-1 cardano[3474928]: DiffusionErrored (ExceptionInLinkedThread "ThreadId 211" Failure in Data.Map.balanceR
                                          CallStack (from HasCallStack):
                                            error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal)
Jan 22 00:09:01 rel-a-1 cardano[3474928]: Closed Immutable DB.
Jan 22 00:09:01 rel-a-1 cardano[3474928]: Closed db with immutable tip at fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e69305ccaf279ceaf at slot 82736539 and tip 77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667 at slot 82779850
Jan 22 00:09:01 rel-a-1 cardano-node-1-start[3474928]: Shutting down..
Jan 22 00:09:01 rel-a-1 cardano-node-1-start[3474928]: cardano-node: ExceptionInLinkedThread "ThreadId 211" Failure in Data.Map.balanceR
Jan 22 00:09:01 rel-a-1 cardano-node-1-start[3474928]: CallStack (from HasCallStack):
Jan 22 00:09:01 rel-a-1 cardano-node-1-start[3474928]:   error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal
Quantumplation commented 1 year ago

@JaredCorduan does IOG run any nodes with more verbose logging? it's a little unhelpful that the stack trace is so short haha.

Given how widespread this is, I'd be interested in starting an open source project that connects to the network and uses the mini-protocols to receive blocks and txs as if it were a node, but just saves them to disk / S3 without processing them. This would give us a backup of any potentially "ephemeral" and radioactive network data.

Anyone interested in collaborating on this with me? 😅

https://github.com/Quantumplation/cardano-slurp

gitmachtl commented 1 year ago

None of my nodes crashed. No relays, no Blockproducers, no Backups. If someone need some logs, please raise your hand. But i only have normal ones, no debugging logs or so.

jmhrpr commented 1 year ago

I agree completely @Quantumplation, we came to this same conclusion. what's weird is how such a block or transaction would propagate and cause so many failures all within the same second.

This does feel like one potential side-effect of block diffusion-pipelining. Before, if a node received a block which would cause a crash, the node would crash before propagating. Now, the node propagates the block then crashes, causing the malformed block to propagate through the network and crash many nodes. So before it was limited to the peers of the BP which produced the malformed block, but now it can seemingly propagate through much of the network. Maybe I'm misunderstanding diffusion-pipelining though.

DevStakePool commented 1 year ago

Same here, all nodes crushed 1.35.4

reqlez commented 1 year ago

Do we have reason to believe that it was the block above, beyond just being the last block received before the crash? It seems more likely to me that if there was a block causing the crash, it would be the one received immediately after that persisted block, and the crashing would prevent it from being adopted. Once nodes restarted, they would likely select a different tip and continue producing nodes from there.

In particular, SMAUG's original error message seems to indicate that the headerHash of the tip at the time was fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e6 which doesn't match any of the blocks centered around the crash.

Also, if it was a specific block in the chain, I'd imagine it would continue to cause issues after the restart. The fact that the network recovered implies that the block that causes the issue is no longer part of the chain.

Yes, this does kind of make sense. And fact that nodes with no incoming connections did not crash, kind of points to fact that this was just a tx in the mempool, that caused nodes to crash and never made it to any block possibly. Nodes that did not have incoming connections, did not get this tx into their mempools.

gufmar commented 1 year ago

A first bunch of my relays' peers started timing out at 00:08:20 already

{"app":[],"at":"2023-01-22T00:08:20.21Z","data":{"address":"64.92.71.126:3001","event":"ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace Network.Socket.connect: <socket: 78>: timeout (Connection timed out))) 20s","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"1841270","sev":"Notice","thread":"129"}
{"app":[],"at":"2023-01-22T00:08:20.21Z","data":{"address":"62.116.182.6:6001","event":"ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace Network.Socket.connect: <socket: 76>: timeout (Connection timed out))) 20s","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"1841270","sev":"Notice","thread":"129"}
{"app":[],"at":"2023-01-22T00:08:21.23Z","data":{"address":"35.180.225.101:7776","event":"ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace Network.Socket.connect: <socket: 76>: does not exist (Connection refused))) 20s","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"1841270","sev":"Notice","thread":"129"}
{"app":[],"at":"2023-01-22T00:08:21.35Z","data":{"address":"18.217.86.227:7776","event":"ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace Network.Socket.connect: <socket: 77>: does not exist (Connection refused))) 20s","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"1841270","sev":"Notice","thread":"129"}

then followed by more "refused" ErrorPolicySuspendConsumer and "vanished" ErrorPolicySuspendPeer events at 00:08:41

{"app":[],"at":"2023-01-22T00:08:41.26Z","data":{"address":"35.180.225.101:7776","event":"ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace Network.Socket.connect: <socket: 77>: does not exist (Connection refused))) 20s","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"1841270","sev":"Notice","thread":"129"}
{"app":[],"at":"2023-01-22T00:08:41.38Z","data":{"address":"18.217.86.227:7776","event":"ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace Network.Socket.connect: <socket: 77>: does not exist (Connection refused))) 20s","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"1841270","sev":"Notice","thread":"129"}
{"app":[],"at":"2023-01-22T00:08:48.71Z","data":{"address":"88.99.52.174:33657","event":"ErrorPolicyUnhandledApplicationException Failure in Data.Map.balanceR\nCallStack (from HasCallStack):\n  error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"1841270","sev":"Error","thread":"149"}
{"app":[],"at":"2023-01-22T00:08:48.71Z","data":{"address":"3.123.59.140:36597","event":"ErrorPolicyUnhandledApplicationException Failure in Data.Map.balanceR\nCallStack (from HasCallStack):\n  error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"1841270","sev":"Error","thread":"149"}
{"app":[],"at":"2023-01-22T00:08:48.72Z","data":{"address":"185.161.193.90:6011","event":"ErrorPolicySuspendPeer (Just (ApplicationExceptionTrace (MuxError (MuxIOException Network.Socket.recvBuf: resource vanished (Connection reset by peer)) \"(recv errored)\"))) 20s 20s","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"1841270","sev":"Warning","thread":"129"}
{"app":[],"at":"2023-01-22T00:08:48.74Z","data":{"address":"169.155.44.109:3001","event":"ErrorPolicySuspendPeer (Just (ApplicationExceptionTrace (MuxError (MuxIOException Network.Socket.recvBuf: resource vanished (Connection reset by peer)) \"(recv errored)\"))) 20s 20s","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"1841270","sev":"Warning","thread":"129"}
{"app":[],"at":"2023-01-22T00:08:48.76Z","data":{"domain":"\"relay4.888pool.io\"","event":"Application Exception: 87.20.246.36:6000 MuxError (MuxIOException Network.Socket.recvBuf: resource vanished (Connection reset by peer)) \"(recv errored)\"","kind":"SubscriptionTrace"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.DnsSubscription"],"pid":"1841270","sev":"Error","thread":"56703"}
...

In total a # of 23 outgoing connections (almost all) not available anymore.

at 00:08:50 it looks like some of the very few remained peer connections served something, causing TraceFoundIntersection and TraceRolledBack ...

{"app":[],"at":"2023-01-22T00:08:50.00Z","data":{"kind":"ChainSyncClientEvent.TraceFoundIntersection","peer":{"local":{"addr":"185.161.193.92","port":"44715"},"remote":{"addr":"46.223.166.82","port":"3001"}}},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ChainSyncClient"],"pid":"1841270","sev":"Info","thread":"132056"}
{"app":[],"at":"2023-01-22T00:08:50.03Z","data":{"kind":"ChainSyncClientEvent.TraceRolledBack","peer":{"local":{"addr":"185.161.193.92","port":"44715"},"remote":{"addr":"46.223.166.82","port":"3001"}},"tip":{"headerHash":"87b3ad8d06d78bb8fc63548cd0371fa0f01436366139327a94c6457ff9ace681","kind":"BlockPoint","slot":82779759}},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ChainSyncClient"],"pid":"1841270","sev":"Notice","thread":"132056"}

then at 00:08:53 a new block header and height was announced

{"app":[],"at":"2023-01-22T00:08:53.18Z","data":{"block":"4c3f8289307536bed7d7f3cf95f5952298d1b03bae200f89c7f37649d5be2d22","blockNo":{"unBlockNo":8300568},"kind":"ChainSyncClientEvent.TraceDownloadedHeader","peer":{"local":{"addr":"185.161.193.92","port":"46621"},"remote":{"addr":"18.158.99.68","port":"3001"}},"slot":82779842},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ChainSyncClient"],"pid":"1841270","sev":"Info","thread":"6493"}

fetchrequest was sent out

{"app":[],"at":"2023-01-22T00:08:53.18Z","data":{"head":"4c3f8289307536bed7d7f3cf95f5952298d1b03bae200f89c7f37649d5be2d22","kind":"SendFetchRequest","length":1,"peer":{"local":{"addr":"185.161.193.92","port":"45277"},"remote":{"addr":"165.227.157.71","port":"6000"}}},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.BlockFetchClient"],"pid":"1841270","sev":"Info","thread":"6417"}

block body downloaded

{"app":[],"at":"2023-01-22T00:08:53.23Z","data":{"block":"4c3f8289307536bed7d7f3cf95f5952298d1b03bae200f89c7f37649d5be2d22","delay":0.227240537,"kind":"CompletedBlockFetch","peer":{"local":{"addr":"185.161.193.92","port":"45277"},"remote":{"addr":"165.227.157.71","port":"6000"}},"size":85915},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.BlockFetchClient"],"pid":"1841270","sev":"Info","thread":"6416"}

and locally adopted

{"app":[],"at":"2023-01-22T00:08:53.29Z","data":{"chainLengthDelta":1,"kind":"TraceAddBlockEvent.AddedToCurrentChain","newtip":"4c3f8289307536bed7d7f3cf95f5952298d1b03bae200f89c7f37649d5be2d22@82779842"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"1841270","sev":"Notice","thread":"111"}

Note: all of this (dropped connections but then still a valid block announced, downloaded and adopted) happened before 00:09:00 o clock

only then we saw announced, downloaded and adopted the block at 00:09:01

{"app":[],"at":"2023-01-22T00:09:01.19Z","data":{"block":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667","blockNo":{"unBlockNo":8300569},"kind":"ChainSyncClientEvent.TraceDownloadedHeader","peer":{"local":{"addr":"185.161.193.92","port":"41765"},"remote":{"addr":"176.96.136.200","port":"8084"}},"slot":82779850},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ChainSyncClient"],"pid":"1841270","sev":"Info","thread":"118420"}

inbetween these two blocks there was more events logged, the node trying to re-estblish connections but always failing

The immediately after downloading and localy adopting this last block, the node seemed gracefully shutting down

{"app":[],"at":"2023-01-22T00:09:01.27Z","data":{"chainLengthDelta":1,"kind":"TraceAddBlockEvent.AddedToCurrentChain","newtip":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667@82779850"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"1841270","sev":"Notice","thread":"111"}
...
{"app":[],"at":"2023-01-22T00:09:01.31Z","data":{"kind":"TraceImmutableDBEvent.DBClosed"},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"1841270","sev":"Info","thread":"7"}
{"app":[],"at":"2023-01-22T00:09:01.31Z","data":{"immtip":{"headerHash":"fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e69305ccaf279ceaf","kind":"BlockPoint","slot":82736539},"kind":"TraceOpenEvent.ClosedDB","tip":{"headerHash":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667","kind":"BlockPoint","slot":82779850}},"env":"1.35.4:ebc7b","host":"cn002","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"1841270","sev":"Info","thread":"7"}

may because he hadn't any peer connections left or ran into some other state where he decided gracefully shuting down and restart is the best option?

Straightpool commented 1 year ago

My Droperator relay, which didn't process the transaction didn't crash, but my main relay and BP did crash.

Same here, my Droperator relay didn't crash, my BP and 2 public relays processing regular transactions went down. All recovered though nicely and no blocks were lost. I have regular logs from all 4 nodes, if they are of use let me know.

stakepool247 commented 1 year ago

had only one 1.35.3 relay node that crashed for me, got a lot of these: {"app":[],"at":"2023-01-22T00:08:48.78Z","data" {"address":"xxx.xxxx.xxx.xxx:39925","event":"ErrorPolicyUnhandledApplicationException Failure in Data.Map.balanceR\nCallStack (from HasCallStack):\n error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal","kind":"ErrorPolicyTrace"},"env":"1.35.3:950c4","host":"relay-eu","loc":null,"msg":"","ns":["cardano.node.ErrorPolicy"],"pid":"12996","sev":"Error","thread":"503"}

asnakep commented 1 year ago

Same here.

err

Quantumplation commented 1 year ago

Has anyone checked on their db-sync nodes? Did they see the offending block and/or suffer from the same issue? I know they maintain their own ledger state.

jmhrpr commented 1 year ago

@Quantumplation Sounds like the node crashes when it receives the block. db-sync uses N2C chainsync to pull new blocks from the node, but the offending block would not have been added to the chain due to the node crashing so I guess db-sync will not have seen it.

erikd commented 1 year ago

Correct, the db-sync nodes were unlikely to see it.

Quantumplation commented 1 year ago

Ah, does pipeline diffusion only apply to N2N protocols then?

chimaeraa commented 1 year ago

Screen Shot 2023-01-22 at 10 46 37 this is my log when it happens. Screen Shot 2023-01-22 at 10 51 15

reitcircles commented 1 year ago

can confirm the crash to our LKBH and REIT pools as well. ...

nilscodes commented 1 year ago

Has anyone checked on their db-sync nodes? Did they see the offending block and/or suffer from the same issue? I know they maintain their own ledger state.

Others mentioned it already, but except a ton of unexpected connection closures, my two db-syncs just cried a bit about having no one to talk to and then resumed receiving block info ~2 minutes later.

atcasanova commented 1 year ago

I run a node and i can see this at 00:09 UTC:

T420:cardano.node.ChainDB:Notice:284] [2023-01-22 00:09:02.00 UTC] Chain extended, new tip: 77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667 at slot 82779850
[T420:cardano.node.DnsSubscription:Error:46205] [2023-01-22 00:09:02.95 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 18.224.177.133:3001 MuxError MuxBearerClosed "<socket: 66> closed when reading data, waiting on next header True"
[T420:cardano.node.ErrorPolicy:Warning:305] [2023-01-22 00:09:02.95 UTC] IP 18.224.177.133:3001 ErrorPolicySuspendPeer (Just (ApplicationExceptionTrace (MuxError MuxBearerClosed "<socket: 66> closed when reading data, waiting on next header True"))) 20s 20s
[T420:cardano.node.DnsSubscription:Error:46138] [2023-01-22 00:09:03.04 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 50.18.237.14:3001 MuxError MuxBearerClosed "<socket: 170> closed when reading data, waiting on next header True"
[T420:cardano.node.ErrorPolicy:Warning:305] [2023-01-22 00:09:03.04 UTC] IP 50.18.237.14:3001 ErrorPolicySuspendPeer (Just (ApplicationExceptionTrace (MuxError MuxBearerClosed "<socket: 170> closed when reading data, waiting on next header True"))) 20s 20s
[T420:cardano.node.DnsSubscription:Notice:47232] [2023-01-22 00:09:04.01 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.129.180.95:3001
[T420:cardano.node.DnsSubscription:Notice:47233] [2023-01-22 00:09:04.03 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.129.177.185:3001
[T420:cardano.node.DnsSubscription:Notice:47234] [2023-01-22 00:09:04.06 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.250.21.52:3001
[T420:cardano.node.DnsSubscription:Notice:47235] [2023-01-22 00:09:04.09 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.178.130.180:3001
[T420:cardano.node.DnsSubscription:Notice:47236] [2023-01-22 00:09:04.11 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.13.149.172:3001
[T420:cardano.node.DnsSubscription:Notice:47237] [2023-01-22 00:09:04.14 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.158.196.38:3001
[T420:cardano.node.DnsSubscription:Notice:47238] [2023-01-22 00:09:04.16 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.176.246.181:3001
[T420:cardano.node.DnsSubscription:Notice:47232] [2023-01-22 00:09:04.18 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 3.129.180.95:3001 outcome: ConnectSuccess
[T420:cardano.node.DnsSubscription:Notice:47239] [2023-01-22 00:09:04.19 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.150.68.245:3001
[T420:cardano.node.DnsSubscription:Notice:47233] [2023-01-22 00:09:04.20 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 3.129.177.185:3001 outcome: ConnectSuccessLast
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:04.20 UTC] IP 54.250.21.52:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:04.20 UTC] IP 18.178.130.180:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:04.20 UTC] IP 3.13.149.172:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:04.20 UTC] IP 18.158.196.38:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:04.20 UTC] IP 54.176.246.181:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:04.20 UTC] IP 54.150.68.245:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.DnsSubscription:Error:47232] [2023-01-22 00:09:14.18 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 3.129.180.95:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:14.18 UTC] IP 3.129.180.95:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Error:47233] [2023-01-22 00:09:14.20 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 3.129.177.185:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:14.20 UTC] IP 3.129.177.185:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Notice:47244] [2023-01-22 00:09:15.24 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.176.246.181:3001
[T420:cardano.node.DnsSubscription:Notice:47245] [2023-01-22 00:09:15.26 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.13.149.172:3001
[T420:cardano.node.DnsSubscription:Notice:47246] [2023-01-22 00:09:15.29 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.150.68.245:3001
[T420:cardano.node.DnsSubscription:Notice:47247] [2023-01-22 00:09:15.31 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.158.196.38:3001
[T420:cardano.node.DnsSubscription:Notice:47248] [2023-01-22 00:09:15.34 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.129.180.95:3001
[T420:cardano.node.DnsSubscription:Notice:47249] [2023-01-22 00:09:15.36 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.178.130.180:3001
[T420:cardano.node.DnsSubscription:Notice:47250] [2023-01-22 00:09:15.39 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.250.21.52:3001
[T420:cardano.node.DnsSubscription:Notice:47251] [2023-01-22 00:09:15.41 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.129.177.185:3001
[T420:cardano.node.DnsSubscription:Notice:47245] [2023-01-22 00:09:15.43 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 3.13.149.172:3001 outcome: ConnectSuccess
[T420:cardano.node.DnsSubscription:Notice:47244] [2023-01-22 00:09:15.45 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 54.176.246.181:3001 outcome: ConnectSuccessLast
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:15.45 UTC] IP 54.150.68.245:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:15.45 UTC] IP 18.158.196.38:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:15.45 UTC] IP 3.129.180.95:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:15.45 UTC] IP 18.178.130.180:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:15.45 UTC] IP 54.250.21.52:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:15.45 UTC] IP 3.129.177.185:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.DnsSubscription:Error:47245] [2023-01-22 00:09:25.43 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 3.13.149.172:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:25.43 UTC] IP 3.13.149.172:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Error:47244] [2023-01-22 00:09:25.45 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 54.176.246.181:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:25.45 UTC] IP 54.176.246.181:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Notice:47256] [2023-01-22 00:09:26.49 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.178.130.180:3001
[T420:cardano.node.DnsSubscription:Notice:47257] [2023-01-22 00:09:26.51 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.129.180.95:3001
[T420:cardano.node.DnsSubscription:Notice:47258] [2023-01-22 00:09:26.54 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.250.21.52:3001
[T420:cardano.node.DnsSubscription:Notice:47259] [2023-01-22 00:09:26.56 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.158.196.38:3001
[T420:cardano.node.DnsSubscription:Notice:47260] [2023-01-22 00:09:26.59 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.150.68.245:3001
[T420:cardano.node.DnsSubscription:Notice:47261] [2023-01-22 00:09:26.62 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.176.246.181:3001
[T420:cardano.node.DnsSubscription:Notice:47262] [2023-01-22 00:09:26.64 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.13.149.172:3001
[T420:cardano.node.DnsSubscription:Notice:47263] [2023-01-22 00:09:26.67 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.129.177.185:3001
[T420:cardano.node.DnsSubscription:Notice:47257] [2023-01-22 00:09:26.68 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 3.129.180.95:3001 outcome: ConnectSuccess
[T420:cardano.node.DnsSubscription:Notice:47256] [2023-01-22 00:09:26.79 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 18.178.130.180:3001 outcome: ConnectSuccessLast
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:26.79 UTC] IP 54.250.21.52:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:26.79 UTC] IP 18.158.196.38:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:26.79 UTC] IP 54.150.68.245:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:26.79 UTC] IP 54.176.246.181:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:26.79 UTC] IP 3.13.149.172:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:26.79 UTC] IP 3.129.177.185:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.DnsSubscription:Error:47257] [2023-01-22 00:09:36.68 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 3.129.180.95:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:36.68 UTC] IP 3.129.180.95:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Error:47256] [2023-01-22 00:09:36.79 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 18.178.130.180:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:36.79 UTC] IP 18.178.130.180:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Notice:47268] [2023-01-22 00:09:37.73 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.129.177.185:3001
[T420:cardano.node.DnsSubscription:Notice:47269] [2023-01-22 00:09:37.76 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.158.196.38:3001
[T420:cardano.node.DnsSubscription:Notice:47270] [2023-01-22 00:09:37.79 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.178.130.180:3001
[T420:cardano.node.DnsSubscription:Notice:47271] [2023-01-22 00:09:37.81 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.13.149.172:3001
[T420:cardano.node.DnsSubscription:Notice:47272] [2023-01-22 00:09:37.84 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.250.21.52:3001
[T420:cardano.node.DnsSubscription:Notice:47273] [2023-01-22 00:09:37.86 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.176.246.181:3001
[T420:cardano.node.DnsSubscription:Notice:47274] [2023-01-22 00:09:37.89 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.150.68.245:3001
[T420:cardano.node.DnsSubscription:Notice:47268] [2023-01-22 00:09:37.91 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 3.129.177.185:3001 outcome: ConnectSuccess
[T420:cardano.node.DnsSubscription:Notice:47271] [2023-01-22 00:09:37.98 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 3.13.149.172:3001 outcome: ConnectSuccessLast
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:37.98 UTC] IP 18.158.196.38:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:37.98 UTC] IP 18.178.130.180:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:37.98 UTC] IP 54.250.21.52:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:37.98 UTC] IP 54.176.246.181:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:37.98 UTC] IP 54.150.68.245:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.DnsSubscription:Error:47268] [2023-01-22 00:09:47.91 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 3.129.177.185:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:47.91 UTC] IP 3.129.177.185:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Error:47271] [2023-01-22 00:09:47.98 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 3.13.149.172:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:47.98 UTC] IP 3.13.149.172:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Notice:47279] [2023-01-22 00:09:48.92 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.176.246.181:3001
[T420:cardano.node.DnsSubscription:Notice:47280] [2023-01-22 00:09:48.95 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.158.196.38:3001
[T420:cardano.node.DnsSubscription:Notice:47281] [2023-01-22 00:09:48.97 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.250.21.52:3001
[T420:cardano.node.DnsSubscription:Notice:47282] [2023-01-22 00:09:49.00 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.150.68.245:3001
[T420:cardano.node.DnsSubscription:Notice:47283] [2023-01-22 00:09:49.02 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.129.177.185:3001
[T420:cardano.node.DnsSubscription:Notice:47284] [2023-01-22 00:09:49.05 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.13.149.172:3001
[T420:cardano.node.DnsSubscription:Notice:47285] [2023-01-22 00:09:49.08 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.178.130.180:3001
[T420:cardano.node.DnsSubscription:Notice:47279] [2023-01-22 00:09:49.13 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 54.176.246.181:3001 outcome: ConnectSuccess
[T420:cardano.node.DnsSubscription:Notice:47280] [2023-01-22 00:09:49.18 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 18.158.196.38:3001 outcome: ConnectSuccessLast
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:49.18 UTC] IP 54.250.21.52:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:49.18 UTC] IP 54.150.68.245:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:49.18 UTC] IP 3.129.177.185:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:49.18 UTC] IP 3.13.149.172:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:49.18 UTC] IP 18.178.130.180:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.DnsSubscription:Error:47279] [2023-01-22 00:09:59.13 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 54.176.246.181:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:59.13 UTC] IP 54.176.246.181:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Error:47280] [2023-01-22 00:09:59.18 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 18.158.196.38:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:09:59.18 UTC] IP 18.158.196.38:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s

This error keeps ocurring until 00:14:

[T420:cardano.node.DnsSubscription:Notice:47479] [2023-01-22 00:13:00.01 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 3.129.177.185:3001 outcome: ConnectSuccessLast
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:00.01 UTC] IP 54.250.21.52:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:00.01 UTC] IP 18.158.196.38:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:00.01 UTC] IP 54.176.246.181:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:00.01 UTC] IP 3.13.149.172:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:00.01 UTC] IP 54.150.68.245:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:00.01 UTC] IP 18.178.130.180:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.DnsSubscription:Error:47479] [2023-01-22 00:13:10.01 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 3.129.177.185:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:10.01 UTC] IP 3.129.177.185:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Notice:47486] [2023-01-22 00:13:11.03 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.250.21.52:3001
[T420:cardano.node.DnsSubscription:Notice:47487] [2023-01-22 00:13:11.05 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.176.246.181:3001
[T420:cardano.node.DnsSubscription:Notice:47488] [2023-01-22 00:13:11.08 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.178.130.180:3001
[T420:cardano.node.DnsSubscription:Notice:47489] [2023-01-22 00:13:11.11 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.150.68.245:3001
[T420:cardano.node.DnsSubscription:Notice:47490] [2023-01-22 00:13:11.13 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.129.177.185:3001
[T420:cardano.node.DnsSubscription:Notice:47491] [2023-01-22 00:13:11.16 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.158.196.38:3001
[T420:cardano.node.DnsSubscription:Notice:47492] [2023-01-22 00:13:11.18 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.13.149.172:3001
[T420:cardano.node.DnsSubscription:Notice:47487] [2023-01-22 00:13:11.26 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 54.176.246.181:3001 outcome: ConnectSuccessLast
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:11.26 UTC] IP 54.250.21.52:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:11.26 UTC] IP 18.178.130.180:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:11.26 UTC] IP 54.150.68.245:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:11.26 UTC] IP 3.129.177.185:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:11.26 UTC] IP 18.158.196.38:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:11.26 UTC] IP 3.13.149.172:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.DnsSubscription:Error:47487] [2023-01-22 00:13:21.26 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Application Exception: 54.176.246.181:3001 ExceededTimeLimit (Handshake) (ServerAgency TokConfirm)
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:21.26 UTC] IP 54.176.246.181:3001 ErrorPolicySuspendConsumer (Just (ApplicationExceptionTrace ExceededTimeLimit (Handshake) (ServerAgency TokConfirm))) 20s
[T420:cardano.node.DnsSubscription:Notice:47496] [2023-01-22 00:13:22.28 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.250.21.52:3001
[T420:cardano.node.DnsSubscription:Notice:47497] [2023-01-22 00:13:22.31 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.13.149.172:3001
[T420:cardano.node.DnsSubscription:Notice:47498] [2023-01-22 00:13:22.33 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.158.196.38:3001
[T420:cardano.node.DnsSubscription:Notice:47499] [2023-01-22 00:13:22.36 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.150.68.245:3001
[T420:cardano.node.DnsSubscription:Notice:47500] [2023-01-22 00:13:22.38 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 54.176.246.181:3001
[T420:cardano.node.DnsSubscription:Notice:47501] [2023-01-22 00:13:22.41 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 3.129.177.185:3001
[T420:cardano.node.DnsSubscription:Notice:47502] [2023-01-22 00:13:22.43 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt Start, destination 18.178.130.180:3001
[T420:cardano.node.DnsSubscription:Notice:47497] [2023-01-22 00:13:22.48 UTC] Domain: "relays-new.cardano-mainnet.iohk.io" Connection Attempt End, destination 3.13.149.172:3001 outcome: ConnectSuccessLast
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:22.48 UTC] IP 54.250.21.52:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:22.48 UTC] IP 18.158.196.38:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:22.48 UTC] IP 54.150.68.245:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:22.48 UTC] IP 54.176.246.181:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:22.48 UTC] IP 3.129.177.185:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ErrorPolicy:Notice:305] [2023-01-22 00:13:22.48 UTC] IP 18.178.130.180:3001 ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace (SubscriberError {seType = SubscriberParallelConnectionCancelled, seMessage = "Parallel connection cancelled", seStack = []}))) 1s
[T420:cardano.node.ChainDB:Notice:284] [2023-01-22 00:14:12.45 UTC] Chain extended, new tip: d1d6040a868562c4cea8ef6f484a91ca9927a85fef6389e22d64059b945bfe74 at slot 82780160
[T420:cardano.node.ChainDB:Notice:284] [2023-01-22 00:14:33.19 UTC] Chain extended, new tip: 2f1065455282dc5c49a6bd91224c444ad08562d853e1beb75dd5189f9072963d at slot 82780181
[T420:cardano.node.ChainDB:Notice:284] [2023-01-22 00:14:47.82 UTC] Chain extended, new tip: ed822978185a7e2a5f33781e70134e76481529d3a3a9a13d96d9ae092417b71c at slot 82780196
[T420:cardano.node.ChainDB:Notice:284] [2023-01-22 00:15:15.88 UTC] Chain extended, new tip: cd55750e4f54734d167ac3c160b8a7b451fb43050d391b37683043f18211f2b3 at slot 82780224
[T420:cardano.node.ChainDB:Notice:284] [2023-01-22 00:15:17.60 UTC] Chain extended, new tip: 018aa17df1beabe6de10239636a32fa42fe72d3104dc0433231a29433ca45b2a at slot 82780226
[T420:cardano.node.ChainDB:Notice:284] [2023-01-22 00:15:23.79 UTC] Chain extended, new tip: 3711b69c22f0d00a20f6c32ba11d95a270878e0dcd434f83b6b27eaf1a2b93fa at slot 82780232
[T420:cardano.node.ChainDB:Notice:284] [2023-01-22 00:15:48.21 UTC] Chain extended, new tip: 36c2be417456b3725cb1be4c3d30d5b153d20e312bb1e585566765fe418548e6 at slot 82780256
[T420:cardano.node.ChainDB:Notice:284] [2023-01-22 00:15:58.99 UTC] Chain extended, new tip: 1b049c7591c6965b812311bef60a5b153053b543eec5b265c7b36bbafc36b3da at slot 82780267
nompelis commented 1 year ago

Confirming that relay and producer node crashed.

Shutting down.. cardano-node: ExceptionInLinkedThread "ThreadId 412" Failure in Data.Map.balanceR

Restarted without issues. Still up.

(ediT) My Passive Node survived.

W944 commented 1 year ago

Not an SPO, just my random 2 cents; those who had crashes - maybe a few could implement a rolling tcpdump -w for the next little while to capture the last X minutes of traffic in case the issue comes back. The offending full block data would be in that future capture.

liv-io commented 1 year ago

My two passive nodes (upstream, pre-compiled version 1.35.4 on Ubuntu 22.04) survived too.

Willburn commented 1 year ago

My ISPPA network as well as an internal relay did not crash while my norwayrelay did. (as well as some undisclosed other networks that did not crash either). Block producer did crash and resumed service automatically.

Error msg: {"app":[],"at":"2023-01-22T00:08:48.75Z","data":{"address":"157.230.106.58:35605","event":"ErrorPolicyUnhandledApplicationException Data.Map.balanceRData.Map.balanceRFailure in Data.Map.balanceR\nCallStack (from HasCallStack):\n error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal","kind":"ErrorPolicyTrace"},"env":"1.35.4:ebc7b" I have made a copy of the logs in case it is needed.

reitcircles commented 1 year ago

@JaredCorduan does IOG run any nodes with more verbose logging? it's a little unhelpful that the stack trace is so short haha.

Given how widespread this is, I'd be interested in starting an open source project that connects to the network and uses the mini-protocols to receive blocks and txs as if it were a node, but just saves them to disk / S3 without processing them. This would give us a backup of any potentially "ephemeral" and radioactive network data.

Anyone interested in collaborating on this with me? 😅

https://github.com/Quantumplation/cardano-slurp

I would be interested in this ...sounds like a good idea ......Pls let me know if we can jump on a chat ...my time is limited ...but see this as a learning exercise ...

michaeljfazio commented 1 year ago

The error condition is caused by violation of this assumed invariant:

https://github.com/haskell/containers/blob/4599f1f141a0f41ffa245de38bdff5edbee21837/containers/src/Data/Map/Internal.hs#L4119

Specifically, either the left or right subtree has diverged from balanced state significantly enough to be Tip rather than Bin.

The invariant should not be violated under normal conditions. Review the assumptions documented here regarding use of functions and expectations on the balance of tree and prior mutations:

https://github.com/haskell/containers/blob/4599f1f141a0f41ffa245de38bdff5edbee21837/containers/src/Data/Map/Internal.hs#L3860

Use of internal functions, such as balanceR and others which mutate the tree structure breaks the encapsulation guarantees provided by non-internal operations.

Attempting to reproduce the offending conditions by capturing/replaying prior state is likely to be significantly difficult. A better approach may be to add diagnostics that check the balance state of Data.Map type after mutation operations to determine which code branch is mutating the structure in such a manner that results in the unbalanced subtrees.

My money is that the issue is bubbling up from somewhere in one of the following:

simonmichael commented 1 year ago

Upstream ~bug report~ issue: https://github.com/haskell/containers/issues/913