Sebastien Guillemot
Sebastien Guillemot
We rely on the automatically generated `Ord` implementation for `Value` in a few places. However, this auto-generated implementation is wrong because Values are not total which is why we had...
Hash types that are using `define_hash_object` are using the auto-generated implementation of PartialEq, but manually define `Hash`. This can lead to issues: https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq
Right now `AddrType` is private. It would be good if it was public, but we can't easily make it public now because it wouldn't be compatible with WASM compilation. Probably...
I really want to believe the node implementation doesn't match what the spec implies on handling of inline datums in inputs where you'd have to duplicate inline datums inside the...
I don't know why, but these fields were skipping the array encoding and instead only serializing the content More specifically, you can see for example in this block header cbor...
``` thread '' panicked at 'DeserializeError { location: Some("TransactionWitnessSet.plutus_data.PlutusList.PlutusDataEnum.PlutusDataEnum"), failure: NoVariantMatched } ``` Block cbor ``` 820585828f1a0036646f1a037e5eda5820e1ef53d961b282f380544071136b17992d63859d1ba92e02f25884161886c1f158209b30232b87e5568f4dd9848a0ea9d91fef54ba11bcd39121cef5e7e6e750f1575820fae4b8f31c676f58a039005d59ea1d2179a83ed2e1f0707b46c2f6c4401d72068258409aff3d1f146c458ad78362c7eda60e09b467ab96e156bc7a33fb22d0e084a57c11b847e5ce662290904068a521d58ed561803f48ca6ccc7ba496e91dcd8ee1065850fa41545a4abbb80d59198c87642f24509e41e86ade3e49e0aad6bd4cfa74fb6c8f3879b6b2fd9095b1b5330c45ed0920d63c3c8a41128d2b48325dbd708f08a5e08fd74918acbfe6d7169822cd21d80782584000216134f32705e1e5d7bf8f81a5d35ea525facc98b0c6c681dce076ff4f3c6a92ff33182c83b576f5e51cf5f969b3e7b016208b84c2e53944e4048289fb62e05850964f51d358a202607fc61999ce3f90538022b6c6c20620649b93d1e094364300eb565bde77b83d7f062ff3bec514a201d357f50bc856edfaaf6e87d604271d4589364b9797606a28d56eb17beecc100e19195c5820c4dcb7f265eb616f165a9a9f383d8c0c1170ee0629f3a64ebc425198886c1b0558209a90d51471fef8bc2d0959c2805886dc198954b8157d00117428a959325ec55e081901b958401ee49bb44464e13dea0e41b6899964940c5a090d74e320cf6382ce66d545bbb75cdf001e58bb53f8663bbffb9a2dd68f1e0cc1f4cc2a4f8d3d5009b408daf20806005901c0aabd2aec389df4c54db2f7139cc8b01f1875c40144c3f17061bcf98a833efbb6d64fb4f2a058ecaaab61a2e48454c9b7bf709360808ce3554c47d4af6e118503ede83764eb9961059e32d76777aec501ba24525afca393787ee1c1ec92efd669304930dd8330c3b3d5559f1bfad00d9506386f9a25d408ae39a8218c91ca00abad0699ab555d91beaf0d71db7b02e71483f9c6572434360b4ea6b7437ff7ab589a0f8507f49cc5570357656c28e3c4c777bd6a8d797623783710ecd592935030b21f7eaa9579b366b113500aadf6619e3307d1f1b26e3ee8f4badb10fd28ada482dca873639082ec192077f8bd552ab9a81f5ad8b2b0bbae8971bf66a614c73052c2184cb6664f9d27921b82d9d13a89f82d62fcc4c96cc2939e1cc3a37f0264341d7850932480c19531294af242cd5d7fdb92c856c73baf672eebcff2d5a3c851bd1eeb3ff675648aa8a3faf2fcaae4abc4a8e9f66594df816ca16e97a76adee94f48fce44ed277f61b5a713ddbc9ad81cf0310daf89127298fdaf99cca7303dcca2f0ea448d0b8f3f59f5fe80468198e0902a3d4686f334786c2f2f5b4d5d6aea0a9010c92c3160cec8b6178252ef9e3419269cffd536a57f3a95af71bd03f87a4008182582032979419239e27b95e1894f69bc978bd8a4a2a885e30447530795a444d9e51a3010182825839001adb6f5ae9610b8407e6181d9d23454591afef28a9bb6dd544661ae80db3289158eacbf45d16d822e2297b7d0da225f1fe6a299334eb19db1a001e8480825839009099de2ede4623f0436aef25b8dbcad88e15dea7b370008a4d2abd41d1f0119ac8c96199b78c7aad426159e5bc031fd32f5d52d8cd8ef21d1b000000015ffe2d97021a00029201031a037e5f12a300828258201124a0737314cf6aa38c4c4edaf5ea561c029618437bd4fd57dcd33ce38b8951018258201124a0737314cf6aa38c4c4edaf5ea561c029618437bd4fd57dcd33ce38b895102018383581d70ccab91fac02ceb62281d66d68e117ace2ab197fc3eb12929b999ca31821a077eb69ea05820ae7ebf3bc5d1f50cf2f12569e088dd53c89917cd71e128e7ea4c6daf59ef02b782583900139f64f546bb2b8ea827ae71423c4d3da389e1e601ad227adfc0512d77c023981d9187f73e5128bf6e23374ff5a8d848d171263a78182ce7821a0014851ea1581cb8aa6f60b48ad4cb0f623edc96eb4dffb652b3a2384287b22c8814aca14547454e53741a01dc914b82583900139f64f546bb2b8ea827ae71423c4d3da389e1e601ad227adfc0512d77c023981d9187f73e5128bf6e23374ff5a8d848d171263a78182ce71a200ba559021a0002aac1a300828258206fe19641cd3041d152d3a5a8e4297585f63bf232db4e176640a2a21db10f3568018258206fe19641cd3041d152d3a5a8e4297585f63bf232db4e176640a2a21db10f356802018383581d70ccab91fac02ceb62281d66d68e117ace2ab197fc3eb12929b999ca31821a16601558a05820ffb3b6509a7b26a10ea88a88700c1b3fb8933b2f98a01cd46a873c45e19aa4d1825839004e8b2a4398afcb339b8557890567d7145cf46f8c19bcf56d6f1c3c919e909fa249ece2c5703eeb2556e0e5551aae238de1943113da576a1e821a001be2daa3581c34250edd1e9836f5378702fbf9416b709bc140e04f668cc355208518a1494154414441636f696e191c8e581c57fca08abbaddee36da742a839f7d83a7e1d2419f1507fcbf3916522a14556414e494c1a0018adac581cd311d3488cc4fef19d05634adce8534977a3bc6fc18136ad65df1d4fa2446c71200a1a009d8e6c446c7120741a0009272c825839004e8b2a4398afcb339b8557890567d7145cf46f8c19bcf56d6f1c3c919e909fa249ece2c5703eeb2556e0e5551aae238de1943113da576a1e1a0b8582dd021a0002bb15a80081825820ad28cb51f1f36bc4f1694e20da46b4e574e77dd16a380a506d655659add859cb000d81825820ad28cb51f1f36bc4f1694e20da46b4e574e77dd16a380a506d655659add859cb00018282583900918449aae85de7248a8e0064d1b2bf9074fafec8af0e0689776af5876649e0f9b73391a3479eee54363cdfff5fbe3514d96cf18caf54ef1c821a0014851ea1581cf6f965943c738b48513277c1baf4770aa3873f2f624bfd2567322d4ba1466d4d415449431a001e84808258390017faa84c3144273ec0ed163a2a4876b6c864dc3b853adec72c7e3246c922acb2313aefd14c318d7944aa37c261d775a2e863f6964a2e7d7b1a2fd3763f021a0007eb6d031a037e7a960e81581c5098e5f901a8b45434b12be1c4700e460551967e1a07a54b0b9d887209a1581cf6f965943c738b48513277c1baf4770aa3873f2f624bfd2567322d4ba1466d4d415449431a001e84800b58202f1e614016e6863bb95bbeec2ffe4379bdead9c593111683fab60dc4d8feb23aa90081825820d3892a2e594455f5e6e0f1b0f901ab28461273c0d42f1cab0cb82ffdd5e7aab7000d80018282581d602cc2167361ba5e1371dca3cdfe119fa4303c7d7d2b35906123dff8961a39e31803825839008e112aee238679eb9c23185c224944687f18d8262f09aabbc64559831de38812b54dc47b9370d39740dc29ba3f834e0acefca7a7e18fdf67821a001e8480a1581cfd8b1cabffe4ac7b7f2c8f63d73a68c51b164f601eeb4e70adf27d51a1575370616365746f6b656e73506c616e657448656c696f7001021a00034805031a037e855a08000e8009a1581cfd8b1cabffe4ac7b7f2c8f63d73a68c51b164f601eeb4e70adf27d51a1575370616365746f6b656e73506c616e657448656c696f7001075820636e1ba4c1ec08f024d6b5d59c09223ce5ea6ba47585596c6b6c037ebaf9fa92a60082825820fa15b96689fbfa41719c13cca93b400451176cfc36c44d7651a07c2b12f3c93c00825820fa15b96689fbfa41719c13cca93b400451176cfc36c44d7651a07c2b12f3c93c01018383581d70081b23f2b3afa39a8750b282848ed9c2bcaf6a63067c517ef048420b821a003d0900a1581c648823ffdad1610b4162f4dbc87bd47f6f9cf45d772ddef661eff198a14577444f47451903e858203769e14cf91066e0b8ca4c07dcbde56d9b5cb6e21106aa19dadc45e40cb01a468258390045aaa2b8a2b997f57dca503579c1f2de11f12f409cdba2ed4e4789b275fa6855be58b262671bffe4b187d9d7b7a58fa66d0b966854c3ef8d1a3af16f2a8258390045aaa2b8a2b997f57dca503579c1f2de11f12f409cdba2ed4e4789b275fa6855be58b262671bffe4b187d9d7b7a58fa66d0b966854c3ef8d821a0017ad4aa1581c648823ffdad1610b4162f4dbc87bd47f6f9cf45d772ddef661eff198a4447742544319271044774554481a0031be604577444f47451a0050db384577555344431a000f4240021a0002f4a9031a037e6a30081a037e5c200b582061c32ff1be070e71013c5b4d4961a61f2cd9cc37918fa6823fbed89ad6aeaad2a4008182582082e9a7a802173bf2f48829fbe1829e91ea22772d904ca36ed40d6f339cdf04fe01018383581d70d3d514ade606266075a7f7efe2f3a71b6e7b1779e958c0c1be131c88821a00989680a2581c00abb5788d115386759a351d6f9d29bc7e23d5484fd67061de60fd05a1495779726d73746f6e651864581cb05fcc8a6e7e2a6e58e932fe8b70a169d975f7b7d99ac78b6c6af135a25054617665726e53717561643030303437015054617665726e537175616430303034380158201b5c3ae5c856701157aef73a8746c84f4e5422eea92346dc7bd21b4f45750043825839004a69950e6cad27ba2f7b3073230bca1885915685667f504d14ad611220168ae068455877c9157c5c31e4be15b1b5b65e3b7703b936465264821a0021ac80a2581c00abb5788d115386759a351d6f9d29bc7e23d5484fd67061de60fd05a1495779726d73746f6e651a00989234581cb05fcc8a6e7e2a6e58e932fe8b70a169d975f7b7d99ac78b6c6af135a65054617665726e53717561643030303431015054617665726e53717561643030303432015054617665726e53717561643030303433015054617665726e53717561643030303434015054617665726e53717561643030303435015054617665726e5371756164303030343601825839004a69950e6cad27ba2f7b3073230bca1885915685667f504d14ad611220168ae068455877c9157c5c31e4be15b1b5b65e3b7703b9364652641a00d68e23021a0002f1e90b5820a63a21d24e92099a849599ba14b69fcd889f10b292ff9f2b577bf2e866a4a12c87a1008182582045f394bee236a754362117fcb5eef36b59e28f86164fac5b32b41d9b6c5e86195840869f9ff5cd75ca265355041503ba43b541d7b68c09337aa9f04ff9d5d5dba7a0e273d431c6fdb41a3f0ee1ea92fec826ece6cc6054109d8046915985d64d8e00a10081825820a978ab7a70f041bab63585a064925be94626322593d061635dcaa6b0d98770a3584097bdc670da5aaf564b766d6242fe4187aeab01a176bd4c5d26c7d72f8081c3cc1b1929ec3842a03bf1187b5883950bbd475afeb0aada4da1452ede7739370607a100818258205a38cee3bf7ee173d604f3b86b17dd1854447fb5dd637c637d39c71984eca5975840ddba74d3f6f8c63686e029f685977f1315becbf394de6fecbcbf0d43e897faa502fdb1506b653cbea14f38ed79514cbdcda7d10a4dcfb61f51dfff17904f9003a30082825820a6af79ecc2c07a82d92b57387de904e7c9a145a64b27611bfaaed8cedb0bc9925840c1da2109e61fdad0e546a805eca96f4c198e3e4181caea15ee6d57e595e81bdacb8b06d790b1d694c15e9e51c44b7f05cdeadec40ad81aa6ec2d88f9edac220e8258204a9381289a9fc11d1d4f39a0f260e6b743aec748f859f47318166e4037af867758403b020349a3ae4676748eefc40d2ef7269bf8ea24e6420356ef6b846b971193aab455c9d2cf1db1e5032b044fa6075f172a87498edb443941e6a1ba735760f20703815907a75907a40100003323232323232323232332232323232332232332232323232322223232325335001101d132635335738921035054350001d01b323500122350022222222222533533355301312001321233001225335002210031001002501b25335333573466e3c04c00408c0884d40740045407000c8408c4084cccd5cd19b8735573aa004900011991091980080180119191919191919191919191999ab9a3370e6aae754029200023333333333222222222212333333333300100b00a009008007006005004003002335014232323333573466e1cd55cea8012400046644246600200600460426ae854008c064d5d09aba2500223263533573805c05a05605426aae7940044dd50009aba1500a33501401535742a012666aa02eeb94058d5d0a804199aa80bbae501635742a00e66a0280466ae854018cd4050cd54098091d69aba150053232323333573466e1cd55cea801240004664424660020060046464646666ae68cdc39aab9d5002480008cc8848cc00400c008cd409dd69aba150023028357426ae8940088c98d4cd5ce01901881781709aab9e5001137540026ae854008c8c8c8cccd5cd19b8735573aa004900011991091980080180119a813bad35742a00460506ae84d5d1280111931a99ab9c03203102f02e135573ca00226ea8004d5d09aba2500223263533573805c05a05605426aae7940044dd50009aba1500433501475c6ae85400ccd4050cd54099d710009aba15002301e357426ae8940088c98d4cd5ce01501481381309aba25001135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aab9e5001137540026ae854008c8c8c8cccd5cd19b875001480188c848888c010014c06cd5d09aab9e500323333573466e1d40092004232122223002005301d357426aae7940108cccd5cd19b875003480088c848888c004014c05cd5d09aab9e500523333573466e1d40112000232122223003005375c6ae84d55cf280311931a99ab9c02502402202102001f01e135573aa00226ea8004d5d09aba2500223263533573803c03a03603426aae7940044dd5000990009aa80c1108911299a80089a80191000910999a802910011802001199aa9803890008028020008919118011bac001320013550182233335573e0024a012466a01060086ae84008c00cd5d100100c11919191999ab9a3370e6aae75400d20002333222123330010040030023232323333573466e1cd55cea8012400046644246600200600460326ae854008cd4038060d5d09aba2500223263533573803c03a03603426aae7940044dd50009aba150033335500775ca00c6ae854008cd4029d71aba135744a004464c6a66ae7006806405c0584d5d1280089aab9e500113754002266aa002eb9d6889119118011bab00132001355016223233335573e0044a010466a00e66aa02e600c6aae754008c014d55cf280118021aba200301713574200222440042442446600200800624464646666ae68cdc3a800a400046a00e600a6ae84d55cf280191999ab9a3370ea00490011280391931a99ab9c016015013012011135573aa00226ea800448488c00800c44880048c8c8cccd5cd19b8735573aa004900011991091980080180118029aba15002375a6ae84d5d1280111931a99ab9c01101000e00d135573ca00226ea80048c8cccd5cd19b8735573aa002900011bae357426aae7940088c98d4cd5ce00780700600589baa00112232323333573466e1d400520042122200123333573466e1d40092002232122230030043006357426aae7940108cccd5cd19b87500348000848880088c98d4cd5ce00900880780700680609aab9d5001137540024646666ae68cdc3a800a4004400a46666ae68cdc3a80124000400a464c6a66ae7003803402c0280244d55ce9baa001122002122001232323232323333573466e1d4005200c21222222200323333573466e1d4009200a21222222200423333573466e1d400d2008233221222222233001009008375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c4664424444444660040120106eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc8848888888cc018024020c030d5d0a8049bae357426ae8940248cccd5cd19b875006480088c848888888c01c020c034d5d09aab9e500b23333573466e1d401d2000232122222223005008300e357426aae7940308c98d4cd5ce00a00980880800780700680600580509aab9d5004135573ca00626aae7940084d55cf280089baa0012323232323333573466e1d400520022333222122333001005004003375a6ae854010dd69aba15003375a6ae84d5d1280191999ab9a3370ea0049000119091180100198041aba135573ca00c464c6a66ae700340300280240204d55cea80189aba25001135573ca00226ea80048c8c8cccd5cd19b875001480088c8488c00400cdd71aba135573ca00646666ae68cdc3a8012400046424460040066eb8d5d09aab9e500423263533573801401200e00c00a26aae7540044dd50008891119191999ab9a3370e6aae754009200023355008300635742a004600a6ae84d5d1280111931a99ab9c00a009007006135573ca00226ea80052611221233001003002120014910350543100112323001001223300330020020014891c5098e5f901a8b45434b12be1c4700e460551967e1a07a54b0b9d887200010581840100d87980821a002625a01a1dcd6500a2008182582013b5f5ed02b2aa700839f43bfe357dd290b5f4e65435e72e4be3ec48c2bf7d315840d1d2e5d52b6873e6448182dc4da7f1848b56410487e6f73c187ac65fbd80bf4a5840d9bdb7a9b6ab368dfe571962d71777aa42d176e311926eb396a8b2fc6606018182018282051a03b614408200581c2cc2167361ba5e1371dca3cdfe119fa4303c7d7d2b35906123dff896a20081825820c46b26712fefaf451327987fe95829f20f0511ace63657b93d7b43e1f5491a2a5840c815409055c588c250495f05ae2a373dc264821210253a9d1f5c01140a5f318104fdeebadfbaff7fff208d6176a12b63d8237eee4a7c64065f55041d55c723030481d8799fd8799fd8799fd8799f581c45aaa2b8a2b997f57dca503579c1f2de11f12f409cdba2ed4e4789b2ffd8799fd8799fd8799f581c75fa6855be58b262671bffe4b187d9d7b7a58fa66d0b966854c3ef8dffffffff581c45aaa2b8a2b997f57dca503579c1f2de11f12f409cdba2ed4e4789b21b00000180de155631d8799fd8799f581c22c3b86a5b88a78b5de52f4aed2831d1483b3b7681f1ee256953813058203395f36673a46e5c1e4d7ff53d96e72b34754fa912e67c0dee427d108f7618b5ffd8799f581c648823ffdad1610b4162f4dbc87bd47f6f9cf45d772ddef661eff1984577444f4745ffffffd8799fd87a801a000a1742ffffa20081825820edb8e8783f02648af956a22f2ddc2334ceab69ba1f7194e1f19d6fec508ae9fd58402fb2f20340cf78a3bda52260842d2128bd52f94ed6ed9e5930d3a8ce2e3428017ac17c673c6fb176593f143e557b5b5d21d1dc93410d4a1cce226b8c6f230803049f9f5f5840616464725f7465737431717039786e396777646a6b6a307733303076633878676374656776677479326b73346e3837357a647a6a6b6b7a7933717a3639777136582c7a3974706d756a39747574736337663073346b78366d7668336d7775706d6a646a7832666a71663071326a32ff1b00000180dd79f9005054617665726e537175616430303034385054617665726e53717561643030303437ffffa104d90103a100a11902d1a178386664386231636162666665346163376237663263386636336437336136386335316231363466363031656562346537306164663237643531a1775370616365746f6b656e73506c616e657448656c696f70a766617574686f726c537061636520546f6b656e736c636f6e74656e745f7479706569696d6167652f706e676b6465736372697074696f6e73537061636520546f6b656e7320506c616e657465696d6167657835697066733a2f2f516d56453153766559616e31707a435944736f66555678755a6471484d344e7a644731735045387376544c504654686c6f636174696f6ea2656874747073783868747470733a2f2f742e7370616365746f6b656e732e696f2f7075622f5370616365746f6b656e73506c616e657448656c696f702e706e6764697066737835697066733a2f2f516d56453153766559616e31707a435944736f66555678755a6471484d344e7a644731735045387376544c504654646e616d656648656c696f70656f74686572a76961737365745f75726c782168747470733a2f2f7777772d732e7370616365746f6b656e732e696f2f642f31316d646973636f76657265645f61747820323032322d30352d31395431373a35303a30302e3334373331312b30303a30306c646973636f766572795f6e6f0b6d65787065646974696f6e5f6e6f0b6c706c616e65745f636c617373036b706c616e65745f73697a656654657272616e6b706c616e65745f74797065654d6574616c80 ```
Cardano has two kinds of constants: - Constants in the genesis blocks of the various epochs that can't be changed - Protocol parameters in the genesis blocks of the various...
Currently, the output builder provides a [with_data_hash](https://github.com/dcSpark/cardano-multiplatform-lib/blob/develop/rust/src/builders/output_builder.rs#L29) function. This is all you need for the majority of use cases, but in some cases people may want to provide the full...
I noticed that Berry's fork of CML changed the PlutusMap to use a Vec instead of a BtreeMap. Not sure what the rationale for this was, but just creating an...
Specifically, this is the transaction that fails: https://explorer.cardano-testnet.iohkdev.io/en/transaction?id=b84337897280d1b93e235fba0a1bd25112715fd15906be7f680cffae9089b19b Full error message: `DuplicateKey(Str("some complicated/unsupported type"))` Full cbor ``` 820484828f1a00264e101a0176b62c58204c5c6d677d033720587f0c22615740f830b5ad855f6f32e271d2f628639251185820e7c3155586042372b19c1fe0491b771bfb2eb04f24af76f3870cda983551f4e75820d8ae2a59f1ff6ec33d0df8161fd89d820533b9580a4e43f4e9f6a628582b10ae8258403d12e3ecf22bd2d269814132491c9b9628f8fa6134e777fc95ea179fa8cf790a657856937847a23f730288d41d8b8553aa87568b2c2d7a738f5ff97e3da2a8845850e34fe4c98f5035d7b853391ddca236d5040cba4ae5e19d0b63dc3a531ff80488ed0f37f023392b5f0bbbabf17e6f5242bc4eec2ccbb98d8a4abbbb15f9d320656aac7411e6f75a6226ee33cbb8a8720e825840001abd4458cfc43c02baab20b1bef94ee31ce2669ad45b0fbec2d4f32ac7e36e5af855f6c719edcca363f8888e9ca9f07e16aeb19b92e8ecc5f1fbd3b15d0dec5850c68b4642acfc46dce00da90a4b4eb72141e07de1441472ee3c0c86cba2bc7e95c056072385fffeaac9d0443aee62d6901dc2b9f7e4c43530a9870f44a98f934622242184774134bee3264ddcb9a4c10619475f5820225c4bbc0786ccf11667fea56c706cfc5bc1e17cd855f2cf9935d45b3c814438582009a926c53eb583b419a1dde8a86ccc86a8516f088c744cfd28a88b175317543103189b5840ea61fea6e6b92daa3863526e56f57dd1e8f0aaf8c048eec16dccf9f720b62659e223e3e3c2dcc506856ebf3fbb2d7a7c1658495fcc4001ad4e43904062d6570004005901c0530fa69a5e61ea6417251c0bfaf92cbbb234fceae8f71362d5117b2b44a9e8892c6623290f918b82139cf7737a7edc289c9c61874be6121a114f34d4d9c78906e3808daf39d8121964fde6f79f2d88dbf7cb8b265fc4b6972b8d47133342a20c366f18d2efba552bf63ed00cc9fb6b4fb5c9bb5fae5df19aae222a08169662fa380985f866370613ac1886a12fd69137edb21f319fdea478847ee5285efdcdb57567174b2ce708e44f644bb0813b248df80eb5a34b2f60a667a1f69ac983cebf71b70f7805d75de75c3c6af7b0b25269d745fbe20130940c0fafb399ca8e04011428d63557d6a7d6c481ef5090084294fce07f8a4554e323cbec3f8e84f7e812924ad3ef9ce836bee640227c674b9afb6b07dae2ad56f4ff6a6618f03ec20c89aa280898aab4757c1b54febf82a01096d157a634128ee1f1b1bafefd6f06895d5daf736786519342420a2e11315be65e1682d8911e55c4a63e4e2c091fee80f0fda52997380adb02930f4f9806a11bed1d55a3be16114a9eb4689f6d7a1fd7e911b04bd38d3d4270a8a88e560adf70f23508a1dbbc4709a08ecdf0dcdd4a4b5215f3c1200d2c52da87473215d3622e07b56ec5be08dcb3c7edac2fe1967350cc85a50082825820744516f36a1da821f798e2a4cb030211e1a172dd958d1b90a6db804f034fa69800825820744516f36a1da821f798e2a4cb030211e1a172dd958d1b90a6db804f034fa69801018282581d6052e63f22c5107ed776b70f7b92248b02552fd08f3e747bc7450994411a000f424082581d6052e63f22c5107ed776b70f7b92248b02552fd08f3e747bc7450994411b000000013c1b294c021a0002c6f1031a01783b670758208e5e2cc07704990c241c2c5731b5bde70a4c9999655e5e759dd8a8975e58c43ea50082825820548a9edf44390226bacec859c1cc4141e2ae88a8d539f8d26066a62b81b4d46a00825820ec5d5eb79de70cfe0a1e7e4e5e09c00f6a6dbc2d7c5ffaaea104f84ebeef7eb101018282583900078b9934b00b677fb977f22b99dc591f3d47af9d6befdbd28c99c00f3efc9ca02779445c3f8041d0b907247aa2393e71173ed277cfa251f71a000f424082583900ae0bd7f7a09d631faafc34e116ef812b3e1347fbe3f3326faa99e7b03efc9ca02779445c3f8041d0b907247aa2393e71173ed277cfa251f71a00333936021a0007c7c1031a0176d20e0758200765d70b1aa999f18cb75db9a9c9bf82e37047e78339bcbb49a69cc376fce649a50081825820f6681fd9b62c9f2a4346812580070ec7463ff47244f665c407a232cc33af555201018282583900c01e440c5d324b2e9a1a371d78339387c45c8857fa7b9c4dc3c07ab83efc9ca02779445c3f8041d0b907247aa2393e71173ed277cfa251f71a000f4240825839002498fe7acce3fb533d4c3ef80ed0eb754068f1b19c4561b07b508d083efc9ca02779445c3f8041d0b907247aa2393e71173ed277cfa251f71a393e8fd0021a0002f215031a0176d20f075820c23b8f3fb7d04218db1680ef84b5f5d7467bcddf7c6080dc02ef51e614c3233da50081825820a1a328f08487059d0528db94bbe21d1daf8b4218d2273542af2f9b08d837650a01018282583900f61a019558a66a5c2f08dd35dc7ed5fc368ff75d9456c389716b08da3efc9ca02779445c3f8041d0b907247aa2393e71173ed277cfa251f71a000f424082583900875782cb6fed71545f6129ce8533af88f8cee38452d354355452bf743efc9ca02779445c3f8041d0b907247aa2393e71173ed277cfa251f71a0fc56370021a0007af85031a0176d2350758200765d70b1aa999f18cb75db9a9c9bf82e37047e78339bcbb49a69cc376fce649a50083825820068a955f68972faa2e28e6d6bde8c195ead711f8c7372aa0dc47414b9b82b86b00825820228ef5509cca2420fd4072ec72d48f9e6b8656f4684af16748fa7d11c190fbdf0082582065fb82d3edab8a7406c4b402ea49d1c7aad80aba03ff018d0130415e096f764b00018282583900b7b28e0d85c17d49d8dd245d7522ed0ea39b01bb305011fd56127d113efc9ca02779445c3f8041d0b907247aa2393e71173ed277cfa251f71a000f4240825839009b18f565608635863b1dc9c57e84d6450374ac5f7e71a802487eb9813efc9ca02779445c3f8041d0b907247aa2393e71173ed277cfa251f71a001b61f3021a0003228d031a0176d237075820c23b8f3fb7d04218db1680ef84b5f5d7467bcddf7c6080dc02ef51e614c3233d85a10081825820742d8af3543349b5b18f3cba28f23b2d6e465b9c136c42e1fae6b2390f565427584053844a26ff3626e1575feb9e1cc747dc6f6600da169814dc75e77b924cf9381148657627bacb86a8ca186a7a8b576b106ddec33f433b11da278beef47129da05a10082825820322ddd0ea3f272aa8215d430a9c84d86023cdd1abfe683765736a0f1188dadf858405783c4505d9055295563254e03b5e57d3d35dd4af51494f1faddadde54f2cf0975ddd23c1c5b9d57129690ef23474dcaf16a40a98f0a29c5024b24616d5472078258209760378310a1d36809fae1923f0e168af07ad2f7ef7507c0a64491b34da329d55840def5a4bad284d657a67aff3dec9667c0c6ba2ba90683341f5e0f48fe6e3f98dfc9a641097f46aa686adb7328f671fe0a016b70f31f9c24a2defca58faf0c6c00a100818258206395cda2e6bab438fa1d0cbc52ad948022b5b575ed380ebbfa409b3a5fe1f907584066b4eb659f84b97cb3a2996a34383fcc4442c9fa096e6000815000e578710aa5afdb65a83d1cc16838f438eb21d00165ebc39fb89f649751da376bba69428f08a100818258203c231ade259d7e5c8a3b342d284d69c214059119f233d029e239ece14920d03558405f7a405de3b93584edbd5be09405d93ff6bec721783b418715a96a19da7842b52efc36117cd6ffc9395205baa1cc5ffbdab0a258b4737882ea0d9d01c54dc90da100838258208cc0f51a4c7543ccc3f228c5da059c0d1e97950f158851b9d7a084ff669d5fe458401d38556030e882319e2a22a0e97c3dcae584fac8256c4c13eaa6f05b3464b319f47192392aaa1025c8ddcc049bbdb5f355f19f4f1080a76c72148670837cce0f825820bdeee318315047926b24796efbd5c8eb9dcd53d06b8359772345b0e9b49de0715840d651b601c7166e8df69d65efc018cd510a87742b4cc822cf5f06c206c459f15a5ff5a8926280528d0232baf0d99be52bd860b46d0fde05d538a5a16e618e3c01825820d8a0ef7748f0287cd857509ae38c261b725fb9d4dfe3b89ac143303e62e858b95840309073c9178d2d36ff844b5e66c2421872bd7add6ed7a352921d46e47f899ebc435f2d455431f697b3f292d388e05e0fd552ae4f142c3e8276f5934ec3acd704a50082a219270fa16474657374747365636f6e64206d657461646174612066696c6519270fa16474657374736669727374206d657461646174612066696c65800182bf1b7fffffffffffff9b7840393232333337323033363835343737353730373932323333373230333638353437373537303739323233333732303336383534373735373037393232333337321b7fffffffffffff9c7840393232333337323033363835343737353730383932323333373230333638353437373537303839323233333732303336383534373735373038393232333337321b7fffffffffffff9d7840393232333337323033363835343737353730393932323333373230333638353437373537303939323233333732303336383534373735373039393232333337321b7fffffffffffff9e7840393232333337323033363835343737353731303932323333373230333638353437373537313039323233333732303336383534373735373130393232333337321b7fffffffffffff9f7840393232333337323033363835343737353731313932323333373230333638353437373537313139323233333732303336383534373735373131393232333337321b7fffffffffffffa07840393232333337323033363835343737353731323932323333373230333638353437373537313239323233333732303336383534373735373132393232333337321b7fffffffffffffa17840393232333337323033363835343737353731333932323333373230333638353437373537313339323233333732303336383534373735373133393232333337321b7fffffffffffffa27840393232333337323033363835343737353731343932323333373230333638353437373537313439323233333732303336383534373735373134393232333337321b7fffffffffffffa37840393232333337323033363835343737353731353932323333373230333638353437373537313539323233333732303336383534373735373135393232333337321b7fffffffffffffa47840393232333337323033363835343737353731363932323333373230333638353437373537313639323233333732303336383534373735373136393232333337321b7fffffffffffffa57840393232333337323033363835343737353731373932323333373230333638353437373537313739323233333732303336383534373735373137393232333337321b7fffffffffffffa67840393232333337323033363835343737353731383932323333373230333638353437373537313839323233333732303336383534373735373138393232333337321b7fffffffffffffa77840393232333337323033363835343737353731393932323333373230333638353437373537313939323233333732303336383534373735373139393232333337321b7fffffffffffffa87840393232333337323033363835343737353732303932323333373230333638353437373537323039323233333732303336383534373735373230393232333337321b7fffffffffffffa97840393232333337323033363835343737353732313932323333373230333638353437373537323139323233333732303336383534373735373231393232333337321b7fffffffffffffaa7840393232333337323033363835343737353732323932323333373230333638353437373537323239323233333732303336383534373735373232393232333337321b7fffffffffffffab7840393232333337323033363835343737353732333932323333373230333638353437373537323339323233333732303336383534373735373233393232333337321b7fffffffffffffac7840393232333337323033363835343737353732343932323333373230333638353437373537323439323233333732303336383534373735373234393232333337321b7fffffffffffffad7840393232333337323033363835343737353732353932323333373230333638353437373537323539323233333732303336383534373735373235393232333337321b7fffffffffffffae7840393232333337323033363835343737353732363932323333373230333638353437373537323639323233333732303336383534373735373236393232333337321b7fffffffffffffaf7840393232333337323033363835343737353732373932323333373230333638353437373537323739323233333732303336383534373735373237393232333337321b7fffffffffffffb07840393232333337323033363835343737353732383932323333373230333638353437373537323839323233333732303336383534373735373238393232333337321b7fffffffffffffb17840393232333337323033363835343737353732393932323333373230333638353437373537323939323233333732303336383534373735373239393232333337321b7fffffffffffffb27840393232333337323033363835343737353733303932323333373230333638353437373537333039323233333732303336383534373735373330393232333337321b7fffffffffffffb37840393232333337323033363835343737353733313932323333373230333638353437373537333139323233333732303336383534373735373331393232333337321b7fffffffffffffb47840393232333337323033363835343737353733323932323333373230333638353437373537333239323233333732303336383534373735373332393232333337321b7fffffffffffffb57840393232333337323033363835343737353733333932323333373230333638353437373537333339323233333732303336383534373735373333393232333337321b7fffffffffffffb67840393232333337323033363835343737353733343932323333373230333638353437373537333439323233333732303336383534373735373334393232333337321b7fffffffffffffb77840393232333337323033363835343737353733353932323333373230333638353437373537333539323233333732303336383534373735373335393232333337321b7fffffffffffffb87840393232333337323033363835343737353733363932323333373230333638353437373537333639323233333732303336383534373735373336393232333337321b7fffffffffffffb97840393232333337323033363835343737353733373932323333373230333638353437373537333739323233333732303336383534373735373337393232333337321b7fffffffffffffba7840393232333337323033363835343737353733383932323333373230333638353437373537333839323233333732303336383534373735373338393232333337321b7fffffffffffffbb7840393232333337323033363835343737353733393932323333373230333638353437373537333939323233333732303336383534373735373339393232333337321b7fffffffffffffbc7840393232333337323033363835343737353734303932323333373230333638353437373537343039323233333732303336383534373735373430393232333337321b7fffffffffffffbd7840393232333337323033363835343737353734313932323333373230333638353437373537343139323233333732303336383534373735373431393232333337321b7fffffffffffffbe7840393232333337323033363835343737353734323932323333373230333638353437373537343239323233333732303336383534373735373432393232333337321b7fffffffffffffbf7840393232333337323033363835343737353734333932323333373230333638353437373537343339323233333732303336383534373735373433393232333337321b7fffffffffffffc07840393232333337323033363835343737353734343932323333373230333638353437373537343439323233333732303336383534373735373434393232333337321b7fffffffffffffc17840393232333337323033363835343737353734353932323333373230333638353437373537343539323233333732303336383534373735373435393232333337321b7fffffffffffffc27840393232333337323033363835343737353734363932323333373230333638353437373537343639323233333732303336383534373735373436393232333337321b7fffffffffffffc37840393232333337323033363835343737353734373932323333373230333638353437373537343739323233333732303336383534373735373437393232333337321b7fffffffffffffc47840393232333337323033363835343737353734383932323333373230333638353437373537343839323233333732303336383534373735373438393232333337321b7fffffffffffffc57840393232333337323033363835343737353734393932323333373230333638353437373537343939323233333732303336383534373735373439393232333337321b7fffffffffffffc67840393232333337323033363835343737353735303932323333373230333638353437373537353039323233333732303336383534373735373530393232333337321b7fffffffffffffc77840393232333337323033363835343737353735313932323333373230333638353437373537353139323233333732303336383534373735373531393232333337321b7fffffffffffffc87840393232333337323033363835343737353735323932323333373230333638353437373537353239323233333732303336383534373735373532393232333337321b7fffffffffffffc97840393232333337323033363835343737353735333932323333373230333638353437373537353339323233333732303336383534373735373533393232333337321b7fffffffffffffca7840393232333337323033363835343737353735343932323333373230333638353437373537353439323233333732303336383534373735373534393232333337321b7fffffffffffffcb7840393232333337323033363835343737353735353932323333373230333638353437373537353539323233333732303336383534373735373535393232333337321b7fffffffffffffcc7840393232333337323033363835343737353735363932323333373230333638353437373537353639323233333732303336383534373735373536393232333337321b7fffffffffffffcd7840393232333337323033363835343737353735373932323333373230333638353437373537353739323233333732303336383534373735373537393232333337321b7fffffffffffffce7840393232333337323033363835343737353735383932323333373230333638353437373537353839323233333732303336383534373735373538393232333337321b7fffffffffffffcf7840393232333337323033363835343737353735393932323333373230333638353437373537353939323233333732303336383534373735373539393232333337321b7fffffffffffffd07840393232333337323033363835343737353736303932323333373230333638353437373537363039323233333732303336383534373735373630393232333337321b7fffffffffffffd17840393232333337323033363835343737353736313932323333373230333638353437373537363139323233333732303336383534373735373631393232333337321b7fffffffffffffd27840393232333337323033363835343737353736323932323333373230333638353437373537363239323233333732303336383534373735373632393232333337321b7fffffffffffffd37840393232333337323033363835343737353736333932323333373230333638353437373537363339323233333732303336383534373735373633393232333337321b7fffffffffffffd47840393232333337323033363835343737353736343932323333373230333638353437373537363439323233333732303336383534373735373634393232333337321b7fffffffffffffd57840393232333337323033363835343737353736353932323333373230333638353437373537363539323233333732303336383534373735373635393232333337321b7fffffffffffffd67840393232333337323033363835343737353736363932323333373230333638353437373537363639323233333732303336383534373735373636393232333337321b7fffffffffffffd77840393232333337323033363835343737353736373932323333373230333638353437373537363739323233333732303336383534373735373637393232333337321b7fffffffffffffd87840393232333337323033363835343737353736383932323333373230333638353437373537363839323233333732303336383534373735373638393232333337321b7fffffffffffffd97840393232333337323033363835343737353736393932323333373230333638353437373537363939323233333732303336383534373735373639393232333337321b7fffffffffffffda7840393232333337323033363835343737353737303932323333373230333638353437373537373039323233333732303336383534373735373730393232333337321b7fffffffffffffdb7840393232333337323033363835343737353737313932323333373230333638353437373537373139323233333732303336383534373735373731393232333337321b7fffffffffffffdc7840393232333337323033363835343737353737323932323333373230333638353437373537373239323233333732303336383534373735373732393232333337321b7fffffffffffffdd7840393232333337323033363835343737353737333932323333373230333638353437373537373339323233333732303336383534373735373733393232333337321b7fffffffffffffde7840393232333337323033363835343737353737343932323333373230333638353437373537373439323233333732303336383534373735373734393232333337321b7fffffffffffffdf7840393232333337323033363835343737353737353932323333373230333638353437373537373539323233333732303336383534373735373735393232333337321b7fffffffffffffe07840393232333337323033363835343737353737363932323333373230333638353437373537373639323233333732303336383534373735373736393232333337321b7fffffffffffffe17840393232333337323033363835343737353737373932323333373230333638353437373537373739323233333732303336383534373735373737393232333337321b7fffffffffffffe27840393232333337323033363835343737353737383932323333373230333638353437373537373839323233333732303336383534373735373738393232333337321b7fffffffffffffe37840393232333337323033363835343737353737393932323333373230333638353437373537373939323233333732303336383534373735373739393232333337321b7fffffffffffffe47840393232333337323033363835343737353738303932323333373230333638353437373537383039323233333732303336383534373735373830393232333337321b7fffffffffffffe57840393232333337323033363835343737353738313932323333373230333638353437373537383139323233333732303336383534373735373831393232333337321b7fffffffffffffe67840393232333337323033363835343737353738323932323333373230333638353437373537383239323233333732303336383534373735373832393232333337321b7fffffffffffffe77840393232333337323033363835343737353738333932323333373230333638353437373537383339323233333732303336383534373735373833393232333337321b7fffffffffffffe87840393232333337323033363835343737353738343932323333373230333638353437373537383439323233333732303336383534373735373834393232333337321b7fffffffffffffe97840393232333337323033363835343737353738353932323333373230333638353437373537383539323233333732303336383534373735373835393232333337321b7fffffffffffffea7840393232333337323033363835343737353738363932323333373230333638353437373537383639323233333732303336383534373735373836393232333337321b7fffffffffffffeb7840393232333337323033363835343737353738373932323333373230333638353437373537383739323233333732303336383534373735373837393232333337321b7fffffffffffffec7840393232333337323033363835343737353738383932323333373230333638353437373537383839323233333732303336383534373735373838393232333337321b7fffffffffffffed7840393232333337323033363835343737353738393932323333373230333638353437373537383939323233333732303336383534373735373839393232333337321b7fffffffffffffee7840393232333337323033363835343737353739303932323333373230333638353437373537393039323233333732303336383534373735373930393232333337321b7fffffffffffffef7840393232333337323033363835343737353739313932323333373230333638353437373537393139323233333732303336383534373735373931393232333337321b7ffffffffffffff07840393232333337323033363835343737353739323932323333373230333638353437373537393239323233333732303336383534373735373932393232333337321b7ffffffffffffff17840393232333337323033363835343737353739333932323333373230333638353437373537393339323233333732303336383534373735373933393232333337321b7ffffffffffffff27840393232333337323033363835343737353739343932323333373230333638353437373537393439323233333732303336383534373735373934393232333337321b7ffffffffffffff37840393232333337323033363835343737353739353932323333373230333638353437373537393539323233333732303336383534373735373935393232333337321b7ffffffffffffff47840393232333337323033363835343737353739363932323333373230333638353437373537393639323233333732303336383534373735373936393232333337321b7ffffffffffffff57840393232333337323033363835343737353739373932323333373230333638353437373537393739323233333732303336383534373735373937393232333337321b7ffffffffffffff67840393232333337323033363835343737353739383932323333373230333638353437373537393839323233333732303336383534373735373938393232333337321b7ffffffffffffff77840393232333337323033363835343737353739393932323333373230333638353437373537393939323233333732303336383534373735373939393232333337321b7ffffffffffffff87840393232333337323033363835343737353830303932323333373230333638353437373538303039323233333732303336383534373735383030393232333337321b7ffffffffffffff97840393232333337323033363835343737353830313932323333373230333638353437373538303139323233333732303336383534373735383031393232333337321b7ffffffffffffffa7840393232333337323033363835343737353830323932323333373230333638353437373538303239323233333732303336383534373735383032393232333337321b7ffffffffffffffb7840393232333337323033363835343737353830333932323333373230333638353437373538303339323233333732303336383534373735383033393232333337321b7ffffffffffffffc7840393232333337323033363835343737353830343932323333373230333638353437373538303439323233333732303336383534373735383034393232333337321b7ffffffffffffffd7840393232333337323033363835343737353830353932323333373230333638353437373538303539323233333732303336383534373735383035393232333337321b7ffffffffffffffe7840393232333337323033363835343737353830363932323333373230333638353437373538303639323233333732303336383534373735383036393232333337321b7fffffffffffffff784039323233333732303336383534373735383037393232333337323033363835343737353830373932323333373230333638353437373538303739323233333732ff800282a300815820d50f10149261a6c577b22c427b16464304071d14039fa74d7a2711ad2c39910c01827840687474703a2f2f6c6f63616c686f73743a323030352f646f776e6c6f61642f707367732e73656e6465725f696f686b2e696f2f312f6532655f746573742e74786174028c5820c8e86fcd4a1157c17ceffffc482a76269b0687beff867e41737a26a29dc32f2758207dc9000f9132131ca1e1726646a023c6e96087aad123bff7087a368be7f315a9582023e8690a48a7f58529f2025dccc072cec359bd45b431d50172807a23e2ed3b9a58200c43e7fd734e32269075b6f5b82bc282b3d3612677f5b319ac1752142d3d7d985820d305434c97d498c0e22d09b149fa193f4d4bdb09ab190a81352f533674a7ab36582016d44020432ecc3fdfa00e40a6740ed96a85a37ae0ccb5a3740debbd8b9d53825820b660c4ae4bb512cd2f95db9429bafa67559a453be7682400d5e9d4bfd48d50db58209b3b426112f6f42699547ca84cc958d117bbe05e5b6bd39a020e5176b70eccc95820b6c56f983a86454492d605228fca87fcfbe2ccdc8affcee8546cb8dc2c1cc29f582053aab0916d6e8e63c22520178d6dd83c69402c2a2cf2cdf6a20e5034c14027b758207cb171535b672c1862a85c273a09c55766886a6cd06845548c43d17ac320f6505820f575bb1e1b32dc3133a23ebfa945a00662c0466614bc31a7c63a2d2081e1bfd9800382bf1b7fffffffffffff9b7840393232333337323033363835343737353730373932323333373230333638353437373537303739323233333732303336383534373735373037393232333337321b7fffffffffffff9c7840393232333337323033363835343737353730383932323333373230333638353437373537303839323233333732303336383534373735373038393232333337321b7fffffffffffff9d7840393232333337323033363835343737353730393932323333373230333638353437373537303939323233333732303336383534373735373039393232333337321b7fffffffffffff9e7840393232333337323033363835343737353731303932323333373230333638353437373537313039323233333732303336383534373735373130393232333337321b7fffffffffffff9f7840393232333337323033363835343737353731313932323333373230333638353437373537313139323233333732303336383534373735373131393232333337321b7fffffffffffffa07840393232333337323033363835343737353731323932323333373230333638353437373537313239323233333732303336383534373735373132393232333337321b7fffffffffffffa17840393232333337323033363835343737353731333932323333373230333638353437373537313339323233333732303336383534373735373133393232333337321b7fffffffffffffa27840393232333337323033363835343737353731343932323333373230333638353437373537313439323233333732303336383534373735373134393232333337321b7fffffffffffffa37840393232333337323033363835343737353731353932323333373230333638353437373537313539323233333732303336383534373735373135393232333337321b7fffffffffffffa47840393232333337323033363835343737353731363932323333373230333638353437373537313639323233333732303336383534373735373136393232333337321b7fffffffffffffa57840393232333337323033363835343737353731373932323333373230333638353437373537313739323233333732303336383534373735373137393232333337321b7fffffffffffffa67840393232333337323033363835343737353731383932323333373230333638353437373537313839323233333732303336383534373735373138393232333337321b7fffffffffffffa77840393232333337323033363835343737353731393932323333373230333638353437373537313939323233333732303336383534373735373139393232333337321b7fffffffffffffa87840393232333337323033363835343737353732303932323333373230333638353437373537323039323233333732303336383534373735373230393232333337321b7fffffffffffffa97840393232333337323033363835343737353732313932323333373230333638353437373537323139323233333732303336383534373735373231393232333337321b7fffffffffffffaa7840393232333337323033363835343737353732323932323333373230333638353437373537323239323233333732303336383534373735373232393232333337321b7fffffffffffffab7840393232333337323033363835343737353732333932323333373230333638353437373537323339323233333732303336383534373735373233393232333337321b7fffffffffffffac7840393232333337323033363835343737353732343932323333373230333638353437373537323439323233333732303336383534373735373234393232333337321b7fffffffffffffad7840393232333337323033363835343737353732353932323333373230333638353437373537323539323233333732303336383534373735373235393232333337321b7fffffffffffffae7840393232333337323033363835343737353732363932323333373230333638353437373537323639323233333732303336383534373735373236393232333337321b7fffffffffffffaf7840393232333337323033363835343737353732373932323333373230333638353437373537323739323233333732303336383534373735373237393232333337321b7fffffffffffffb07840393232333337323033363835343737353732383932323333373230333638353437373537323839323233333732303336383534373735373238393232333337321b7fffffffffffffb17840393232333337323033363835343737353732393932323333373230333638353437373537323939323233333732303336383534373735373239393232333337321b7fffffffffffffb27840393232333337323033363835343737353733303932323333373230333638353437373537333039323233333732303336383534373735373330393232333337321b7fffffffffffffb37840393232333337323033363835343737353733313932323333373230333638353437373537333139323233333732303336383534373735373331393232333337321b7fffffffffffffb47840393232333337323033363835343737353733323932323333373230333638353437373537333239323233333732303336383534373735373332393232333337321b7fffffffffffffb57840393232333337323033363835343737353733333932323333373230333638353437373537333339323233333732303336383534373735373333393232333337321b7fffffffffffffb67840393232333337323033363835343737353733343932323333373230333638353437373537333439323233333732303336383534373735373334393232333337321b7fffffffffffffb77840393232333337323033363835343737353733353932323333373230333638353437373537333539323233333732303336383534373735373335393232333337321b7fffffffffffffb87840393232333337323033363835343737353733363932323333373230333638353437373537333639323233333732303336383534373735373336393232333337321b7fffffffffffffb97840393232333337323033363835343737353733373932323333373230333638353437373537333739323233333732303336383534373735373337393232333337321b7fffffffffffffba7840393232333337323033363835343737353733383932323333373230333638353437373537333839323233333732303336383534373735373338393232333337321b7fffffffffffffbb7840393232333337323033363835343737353733393932323333373230333638353437373537333939323233333732303336383534373735373339393232333337321b7fffffffffffffbc7840393232333337323033363835343737353734303932323333373230333638353437373537343039323233333732303336383534373735373430393232333337321b7fffffffffffffbd7840393232333337323033363835343737353734313932323333373230333638353437373537343139323233333732303336383534373735373431393232333337321b7fffffffffffffbe7840393232333337323033363835343737353734323932323333373230333638353437373537343239323233333732303336383534373735373432393232333337321b7fffffffffffffbf7840393232333337323033363835343737353734333932323333373230333638353437373537343339323233333732303336383534373735373433393232333337321b7fffffffffffffc07840393232333337323033363835343737353734343932323333373230333638353437373537343439323233333732303336383534373735373434393232333337321b7fffffffffffffc17840393232333337323033363835343737353734353932323333373230333638353437373537343539323233333732303336383534373735373435393232333337321b7fffffffffffffc27840393232333337323033363835343737353734363932323333373230333638353437373537343639323233333732303336383534373735373436393232333337321b7fffffffffffffc37840393232333337323033363835343737353734373932323333373230333638353437373537343739323233333732303336383534373735373437393232333337321b7fffffffffffffc47840393232333337323033363835343737353734383932323333373230333638353437373537343839323233333732303336383534373735373438393232333337321b7fffffffffffffc57840393232333337323033363835343737353734393932323333373230333638353437373537343939323233333732303336383534373735373439393232333337321b7fffffffffffffc67840393232333337323033363835343737353735303932323333373230333638353437373537353039323233333732303336383534373735373530393232333337321b7fffffffffffffc77840393232333337323033363835343737353735313932323333373230333638353437373537353139323233333732303336383534373735373531393232333337321b7fffffffffffffc87840393232333337323033363835343737353735323932323333373230333638353437373537353239323233333732303336383534373735373532393232333337321b7fffffffffffffc97840393232333337323033363835343737353735333932323333373230333638353437373537353339323233333732303336383534373735373533393232333337321b7fffffffffffffca7840393232333337323033363835343737353735343932323333373230333638353437373537353439323233333732303336383534373735373534393232333337321b7fffffffffffffcb7840393232333337323033363835343737353735353932323333373230333638353437373537353539323233333732303336383534373735373535393232333337321b7fffffffffffffcc7840393232333337323033363835343737353735363932323333373230333638353437373537353639323233333732303336383534373735373536393232333337321b7fffffffffffffcd7840393232333337323033363835343737353735373932323333373230333638353437373537353739323233333732303336383534373735373537393232333337321b7fffffffffffffce7840393232333337323033363835343737353735383932323333373230333638353437373537353839323233333732303336383534373735373538393232333337321b7fffffffffffffcf7840393232333337323033363835343737353735393932323333373230333638353437373537353939323233333732303336383534373735373539393232333337321b7fffffffffffffd07840393232333337323033363835343737353736303932323333373230333638353437373537363039323233333732303336383534373735373630393232333337321b7fffffffffffffd17840393232333337323033363835343737353736313932323333373230333638353437373537363139323233333732303336383534373735373631393232333337321b7fffffffffffffd27840393232333337323033363835343737353736323932323333373230333638353437373537363239323233333732303336383534373735373632393232333337321b7fffffffffffffd37840393232333337323033363835343737353736333932323333373230333638353437373537363339323233333732303336383534373735373633393232333337321b7fffffffffffffd47840393232333337323033363835343737353736343932323333373230333638353437373537363439323233333732303336383534373735373634393232333337321b7fffffffffffffd57840393232333337323033363835343737353736353932323333373230333638353437373537363539323233333732303336383534373735373635393232333337321b7fffffffffffffd67840393232333337323033363835343737353736363932323333373230333638353437373537363639323233333732303336383534373735373636393232333337321b7fffffffffffffd77840393232333337323033363835343737353736373932323333373230333638353437373537363739323233333732303336383534373735373637393232333337321b7fffffffffffffd87840393232333337323033363835343737353736383932323333373230333638353437373537363839323233333732303336383534373735373638393232333337321b7fffffffffffffd97840393232333337323033363835343737353736393932323333373230333638353437373537363939323233333732303336383534373735373639393232333337321b7fffffffffffffda7840393232333337323033363835343737353737303932323333373230333638353437373537373039323233333732303336383534373735373730393232333337321b7fffffffffffffdb7840393232333337323033363835343737353737313932323333373230333638353437373537373139323233333732303336383534373735373731393232333337321b7fffffffffffffdc7840393232333337323033363835343737353737323932323333373230333638353437373537373239323233333732303336383534373735373732393232333337321b7fffffffffffffdd7840393232333337323033363835343737353737333932323333373230333638353437373537373339323233333732303336383534373735373733393232333337321b7fffffffffffffde7840393232333337323033363835343737353737343932323333373230333638353437373537373439323233333732303336383534373735373734393232333337321b7fffffffffffffdf7840393232333337323033363835343737353737353932323333373230333638353437373537373539323233333732303336383534373735373735393232333337321b7fffffffffffffe07840393232333337323033363835343737353737363932323333373230333638353437373537373639323233333732303336383534373735373736393232333337321b7fffffffffffffe17840393232333337323033363835343737353737373932323333373230333638353437373537373739323233333732303336383534373735373737393232333337321b7fffffffffffffe27840393232333337323033363835343737353737383932323333373230333638353437373537373839323233333732303336383534373735373738393232333337321b7fffffffffffffe37840393232333337323033363835343737353737393932323333373230333638353437373537373939323233333732303336383534373735373739393232333337321b7fffffffffffffe47840393232333337323033363835343737353738303932323333373230333638353437373537383039323233333732303336383534373735373830393232333337321b7fffffffffffffe57840393232333337323033363835343737353738313932323333373230333638353437373537383139323233333732303336383534373735373831393232333337321b7fffffffffffffe67840393232333337323033363835343737353738323932323333373230333638353437373537383239323233333732303336383534373735373832393232333337321b7fffffffffffffe77840393232333337323033363835343737353738333932323333373230333638353437373537383339323233333732303336383534373735373833393232333337321b7fffffffffffffe87840393232333337323033363835343737353738343932323333373230333638353437373537383439323233333732303336383534373735373834393232333337321b7fffffffffffffe97840393232333337323033363835343737353738353932323333373230333638353437373537383539323233333732303336383534373735373835393232333337321b7fffffffffffffea7840393232333337323033363835343737353738363932323333373230333638353437373537383639323233333732303336383534373735373836393232333337321b7fffffffffffffeb7840393232333337323033363835343737353738373932323333373230333638353437373537383739323233333732303336383534373735373837393232333337321b7fffffffffffffec7840393232333337323033363835343737353738383932323333373230333638353437373537383839323233333732303336383534373735373838393232333337321b7fffffffffffffed7840393232333337323033363835343737353738393932323333373230333638353437373537383939323233333732303336383534373735373839393232333337321b7fffffffffffffee7840393232333337323033363835343737353739303932323333373230333638353437373537393039323233333732303336383534373735373930393232333337321b7fffffffffffffef7840393232333337323033363835343737353739313932323333373230333638353437373537393139323233333732303336383534373735373931393232333337321b7ffffffffffffff07840393232333337323033363835343737353739323932323333373230333638353437373537393239323233333732303336383534373735373932393232333337321b7ffffffffffffff17840393232333337323033363835343737353739333932323333373230333638353437373537393339323233333732303336383534373735373933393232333337321b7ffffffffffffff27840393232333337323033363835343737353739343932323333373230333638353437373537393439323233333732303336383534373735373934393232333337321b7ffffffffffffff37840393232333337323033363835343737353739353932323333373230333638353437373537393539323233333732303336383534373735373935393232333337321b7ffffffffffffff47840393232333337323033363835343737353739363932323333373230333638353437373537393639323233333732303336383534373735373936393232333337321b7ffffffffffffff57840393232333337323033363835343737353739373932323333373230333638353437373537393739323233333732303336383534373735373937393232333337321b7ffffffffffffff67840393232333337323033363835343737353739383932323333373230333638353437373537393839323233333732303336383534373735373938393232333337321b7ffffffffffffff77840393232333337323033363835343737353739393932323333373230333638353437373537393939323233333732303336383534373735373939393232333337321b7ffffffffffffff87840393232333337323033363835343737353830303932323333373230333638353437373538303039323233333732303336383534373735383030393232333337321b7ffffffffffffff97840393232333337323033363835343737353830313932323333373230333638353437373538303139323233333732303336383534373735383031393232333337321b7ffffffffffffffa7840393232333337323033363835343737353830323932323333373230333638353437373538303239323233333732303336383534373735383032393232333337321b7ffffffffffffffb7840393232333337323033363835343737353830333932323333373230333638353437373538303339323233333732303336383534373735383033393232333337321b7ffffffffffffffc7840393232333337323033363835343737353830343932323333373230333638353437373538303439323233333732303336383534373735383034393232333337321b7ffffffffffffffd7840393232333337323033363835343737353830353932323333373230333638353437373538303539323233333732303336383534373735383035393232333337321b7ffffffffffffffe7840393232333337323033363835343737353830363932323333373230333638353437373538303639323233333732303336383534373735383036393232333337321b7fffffffffffffff784039323233333732303336383534373735383037393232333337323033363835343737353830373932323333373230333638353437373538303739323233333732ff800482a300815820d50f10149261a6c577b22c427b16464304071d14039fa74d7a2711ad2c39910c01827840687474703a2f2f6c6f63616c686f73743a323030352f646f776e6c6f61642f707367732e73656e6465725f696f686b2e696f2f312f6532655f746573742e74786174028c5820c8e86fcd4a1157c17ceffffc482a76269b0687beff867e41737a26a29dc32f2758207dc9000f9132131ca1e1726646a023c6e96087aad123bff7087a368be7f315a9582023e8690a48a7f58529f2025dccc072cec359bd45b431d50172807a23e2ed3b9a58200c43e7fd734e32269075b6f5b82bc282b3d3612677f5b319ac1752142d3d7d985820d305434c97d498c0e22d09b149fa193f4d4bdb09ab190a81352f533674a7ab36582016d44020432ecc3fdfa00e40a6740ed96a85a37ae0ccb5a3740debbd8b9d53825820b660c4ae4bb512cd2f95db9429bafa67559a453be7682400d5e9d4bfd48d50db58209b3b426112f6f42699547ca84cc958d117bbe05e5b6bd39a020e5176b70eccc95820b6c56f983a86454492d605228fca87fcfbe2ccdc8affcee8546cb8dc2c1cc29f582053aab0916d6e8e63c22520178d6dd83c69402c2a2cf2cdf6a20e5034c14027b758207cb171535b672c1862a85c273a09c55766886a6cd06845548c43d17ac320f6505820f575bb1e1b32dc3133a23ebfa945a00662c0466614bc31a7c63a2d2081e1bfd980 ```