nanopb-source-0.4.6-bp156.4.3.1<>, gR-I%z ۥ{#*_[Ȳwؚ %{KKaI3ܩR1 DYu/ONwR!n m (z#n$؏ur=p;*qY3 =PmKs}JQ&^m ÷p`ꅺ6m!;GŖbĩe5$UgB O `L9Ζ='+Yh[Jh˄6j |_bgQpzcuhX S~@w@+kRa슭{:F>^U5m )if3|R1T'r\J־C֮^:EWٛokٺYR@-U+g6z݉-9* 6Jœ${E ٠ڈI$!.b*ֈIIQ)YX1۸jsK^)U>?d " 8 !'0    !  p Ѫܰ  ݗ (ݿ89 :F0GDH (I XY\]$^IbdcddeOeeTfeWleYuelvpPwtXx<y z\lpvCnanopb-source0.4.6bp156.4.3.1Source code of nanopbSource code of nanopb - a C implementation of Google's Protocol Buffers data format.gR-i04-ch2d%SUSE Linux Enterprise 15openSUSEZlibhttp://bugs.opensuse.orgDevelopment/Libraries/C and C++https://jpa.kapsi.fi/nanopb/linuxnoarch|e.{-9[;:}V  _ K dW(x'IN> !P < w89C ~~ j*.5/mv.><Q %8,A=F3W( ' k !|27z]PO8!HG z`   P9e *  WZ9WQd@-Qg}:2PPC1  |6*7 |%OI -|j< : = n ok;i1F @ QNOp5~$7 b#pNg VM  tvpOwU\ /vs5P hRGe_K{{+cdR3<{Jfxhw-nb +K`Z~Zh=]a, \Q>)";R|,Y?j111cj?`HI:t{c|w,(gEZa43-0=/N G,E,  #LA큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤큤AA큤A큤AAA큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤A큤큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤큤A큤A큤A큤A큤A큤A큤A큤A큤AgR+b;b;b;b;b;b;b;b;b;b;b;b;b;gR+b;b;b;b;b;b;b;b;b;b;b;gR+b;b;b;b;gR+b;b;b;b;b;b;b;gR+b;b;b;b;b;b;b;b;b;b;b;b;b;gR+b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;gR+gR+gR+b;b;b;b;b;b;b;b;b;gR+b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;gR+b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;gR+b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;b;25b437b64e40994f8bcbc25b9ec8643a1a01e63b2dc1bde2e0e0563a5e38675b0c408b84c5768e0d32f3e11e16f5c476a89b1e73c0460684c3609ce4771edacd79dd6baba245a44ddf75e30767bc4be1b3a2b0cd0e225bc79688438c9fd49b46ca085507329992e89b77311da2897002ddc3071156fc7c76ca0ab7a237dfb036f255db55bdb7124a67fcf8a76c3279de9324f3939bdbe781d0ad0aec50bd8768e2f2fc8fe3faa7dcb09dbe995db48c6ec5c1f72705db915101e4a83fed44f66db2fab86b5d2a08ef7f80b4122ffc24b5bf1bcc13e0b12b40e8e7abbdc3b3d128352b00d68ac90bd1d632c9d8ebb41bde678c63d729f3e587ce4b44c781a3fd14af8f45b5aaa0fb7cc328abaa6912deb19fedab7591c08e1731db603d14d743e5b45c55e08a081da6754499488cb64b3e878c9741da759ba163957396da6e970e03cc973b482dae454fa4312cea8dc1046ccf0d33ca2480b32d93197bccafc767311a0d290ddeb9609a7db8c18c17a4a414f43bb2cf9087a655979b92113f0d4f85a845ee5b888e6e2757d7afff08dad614df5677450cb38311e5f10159721737dfc8b6da1826bd6f851d368575aa26cff0912862023eb55cc62f7f76bd24abb6dac71593d59aeac1d02e1a3dbeef4a21156680936cc0de371af4ce003226250cf0e6bd4bb84e8039dc190c04c6e11ab7d7f071daef371ef586bcfc5385aea66eea44a373097c2861476701404ae0016ed055b8b669dee6c2f628872bf4674f7e667f421b126598c0e53d8b28eef46d4d771c3e5138f43a10a088221a04dc511719ff117ba34ef6b7c2f1ad9a88c618175662a657054b40a698df29f29b44327a1f034014fb4a31253ba96e474007b3ff91ba1ac552a64989d6867670f311ef1f26d67f96d672d284a29b8678dfc21f6222bd0099b876ac5d95d3ec18382be6c4f57eb047684e72d5737006361ddf7de2a089c8e2a40ee40250011751441fd4426728787869ee14dc3a72632ddf19791fcba09c59dd2feb186989a02ef7ede6af38a4c8489765e263c599a482104ba15b709fac6d1821c35ed31756d7fba6398f746cbbc33230c9a12d50b35b8c9ac8db2f6fa5888048790c571821841270bcd6215f462e7a55831cbfd7169129b456044d66760d07fd82d2ae504b537e877c79a1db5abcf879c2649edb6604a434f57b215bd03a20c16c39db0a8c80b36fb6d1527a900f059ddb3b3d4617af3a65b1841ba8ea62251c94b33d443e302ac80b09b5e1093b44d508ad17b9c8cded9432841c0d743a1d012472f4b996b92f390e64094f24d42a0f923294c663dca845e5592130901ae336df08d11f5a0216ff99b61d2f56e6e8ddf8dc6c4e1d64451b9e8eb3183581fe88a9a5cdf381b9012f700c58544be0ea7cf473d6c1f5ec0979711f68a7cd81f96b59b67f3f6d6c92815ea3527a900f059ddb3b3d4617af3a65b1841ba8ea62251c94b33d443e302ac80b09263319bc99422dc8f63069f5058f9aaacda4762a275359ca2107d30e26db4aca6d8836c38dfb09a74334b117ec21e6059d4335781b6206bc95e052912dc84ccb49984487e6fdf8a75ea1a1c01deee25d6b254adce9701e10f0c8469ca49225a2bb568a5ebd4d1160d3d023fd7b0c4812125e5d74a627abb076ea79bdcd8508aa663b58ec2b4b052f13ed9e2e41386755b47d0f9f0c92cbbb9c09ede2869a7b3a3655262342478a76606f12f6e754a9d791648a14d534183d5e162e1c5293d53b6774fd7579f0a234f7ad7855b9aa0ae92b6266b25ba98afe4631cb03ccaba5275069d54fd9161371d7ba652f9a7e816f5ec6e4c346fde90646340597b3d0e25ecb5d19a1b1d612432da0a1b268940e83fe9823c4382fd1a14943418e8ae73fe4e935ea58afd780716995a5460a74b2e76f8be8f75fe3e38ee3b7285c98427ac47d322a37b755c419633cb9b1f3ce5195190e7a7bb24d4441e4a5fdd969a26bbbfdf7a2a9911019c828ff768ff84b54b752f1ae4c908977d4ecd8d51ec707fe23b99efe4689e541cca1b76801b36747206bae31e0db384e14efe8eaf613312d290dbe95539ece82068e4af92a65d3b55e3f01d631376b6b442bead06bd290194c65c02481b7c1959cf9bbbb91e5b3a8cf63c5886aef5335a517359c4ded82867c45a53470f47ea0458ef9369c194411266ced3132c23e7456f6dcc2f2d036ef763d9d8652170dfd1e7986f7d8351c9d9231b9995ec870a3bffdeb7793a5797c457c5410fb5446399441e2b451dd70b3b32307a0accd8b53c634bc2bcb554cfe5744e7f0c6214f3d710b0e16c72e877478576cb6fe59749df2edb07093f799de5c5ce1951380f8b0d5da93ea0a665a85edad46a5339219df6d1b293a05e15f550f68b2b49a081cf5dd77066ab737ea095e05c25194216eec8c02e90eb45fc878b673a78d512608c349bf453f2f1f0eac677a2a9fd269ca5c34a10aa90ece85fe146d8836c38dfb09a74334b117ec21e6059d4335781b6206bc95e052912dc84ccb3147a8df59d0bce38b280c808a028704ba15611526951c0c1f3c06ce1237e90127e889e281d7c526ac59428e1a13eb4c11d5f39586a1e6352d0b9fd81f8d1ae819eb903f44bcc653c80b834d51f3c25a6aff0308dbb04941c32a169523a0e9344c72ed7cad5fa372039c46b6ba38c3bce90696e03830ba49bd49deb8d02e8dae35e57746e681686afa461b2d697b469470dbaaa5995a08062d14d2f9426baf3a5da53cba779ad22fcd573a0c6db0fbf232d23915d1d62c290a9083780e6f6ce2bd2bdc5193e60738ad270b1f1ec0e568b937e91d4e6afd77710992d55ebfcec653fef9000f32b14d11b8d54f1a1a380d94a15b102d004f95a5980d6f41fe86a410807143c2a56a843fc0ec6f6ad00c1807c56d6208b59d3fe17fa7d98d7103dabe9a69f60bd7be72d519b0f7204a84328dabc7c76d915c7c398331f9f560ace06d24ab55fdb89a877314389538851d4306e652e66e7b419f5f138d1af0291e1c0da7ae0c53bc1fb185426c523072f8f96407d0c0ce82f02db053e1a7cd417141a44659052c6ba8924198d78ef3eb3134913f5a46894eae159784e29c9072765373b9703ba5c3aca96094049cf6d3223eec54f110982bde66cf2c853dff555c572500c4c45c81c2b6691d5193b0071f9c7dbdcf5510381ce9724a55c4cbba39bf605bc10e05f82149d7dbfc620b76d7a6a888613d8aa7d76ff125258e869011e08e3def1e6866c95caf842cbe9471635be66c9bd6d8c0de8302d35a1e43e7278dc6c8f5004b18581fc6e1e2c5a0dae7059e2215678288546e96bc3f93b897b08b2083afefc9ae208bc9cca2bf3fe7d1c32c1fc90d462d7e0c48c37bd90c0545b1931664f873584b86a3ec010b79e422149c0b693130fb883ee127df8a7b3d798852ab7f5ad84d2410387b547755ecd2ed9520c0de970306f1fddf1deec7bd1a1a149fec7c4e17a8049e589f13a53d9510f90faa32cd38f26c242807ca94bbdfd8cfdf92dd4aebd1b0ac56f0eb7ce70f322e0e261590441ce83aa6322abc070dbda35a3333fee6c39581a150d3fc6b4adc4b247fd8b0b4358dffa495798687ac5a62a13daf0f2e2658f05378047668053fa96fd27d89cd1bcb4af21c975ca4434198b860cb9df93e72ea75cd16cb1701138d75ddfd0f2db37683604f738a8c79ef3d3a1cfc343a9345394f2fc6fa5a4bddba76066af065df11e393ee837bdfcff58d2ec28baaaf2b7a5e90e4cb2fa9700d21cef7f826f051a637c30b7a1e6a05166495a691aca68d6973f2274b5dd54b74fbb57f6b019c45fff255a857fe1abcfdd58772c57ac1fe62ff5b7841436d30d9d61b4f836fd53936c06745df9149ffbbddd9fe7c027f4a9cdb6cb4c74959eb916dd19a06a0ff48909c3612d313e0b445f85be395be8c34a732eea12f64358110e5b0836f0a120a7c20982edec129a9960715c9e289c1c49d3cb3128bdb81e1d40d1efeefe695c19ce1730f8103e54cbb7f8d5b816e6b440ab3e5d5b119405073948dcc84fe115868f3b41d4975f0e99b21c2a62f318f71206756e3184db693552e44a23a399c01a877105d7b92e01d071483995274d6b4d26201ee8df5c65191b8461271cd312ae160e6c6553042d3a8c76b495a4f316e3ecb8aad935b60c2d6c34e4c6febdc03dc9deadf4ce32df4fc65dc3460a2be279a48c5220239c37669b1aef3551b0e2045468d69a32a4a4032ffb03e429cb90d2e89c56eee94464913e0d42b22b4eb5b20fab14bded1d4e73f8479f2612a1df0bb1c5e2010da8aae590bb5695738ed25f0df7d5e2c301ebacb00c9aa27bfe36745d7902a4a4aa282b6d4ce4fee3ea77eaf2c44c512d7b972b292c444291d604cd07c478c623966f66c23b3b567a18c4cbd1dd79391694851d9e1b133e4b7c8fc2de12992df51fc0bc578149d722a90fbe793c75d7378ccbed1862e5702fc6042ec27def169cc3647d28ff5386782061dde49228517a4e42d3ced0f4310ff74b6a51f24aaef267adc2c5f9af0a92f2c954da2c7c3f225a689fa68feb8aeaed5132588b7b97d611c3828daf3eb66d63d5409c4ff1257a458e4dd46a03a4ba423d0ca0905c39ec3cb6ef99def7de8a649a4193899a0c71e9cbf4a55a8bfdcd0b134753e73b98f25123568cd2c1116d74b6c0b0428937864412c3de987dfa33a52a057c53a3720c3be47b2d1f482e40fc2909c11b9833fe05ccebe3f42b9a91c53700dd4d33873ec778ba3e363bd3eaf3f09f665406726f9608121aa71ec6e6e3a01cbb5758676cb0a0cc631f9a383d11b39ecca6a9aef14306d44580832442fe057e7e9555b32ed8ad49b9de4b624146b5722089e5833e5038b75df35cc0798ed5938c7070d6cc4e37e7319838bc1cc0f8014d4845d357c4cbe1b15fcc3716640df1609a1e6c112d9a24046cb375cb4e2a3d370386bbd518fadc862422c7b6d203a0f406bba0442be49b0583643ea7482bbb46a6cb336d1a2e4f1e67df7153f815ebec7dcefcd458e569dfecd2f64f977ed1291dc1372c397558ec5ee887e163f372d3a9b10904ff8309b0d562edde0dbb1f45bbd94a1fa787b87b011a6cc72a3c70d53f381f761b4e86e34b5de76dff7e81a421d8cfbbe9583f67c2e8cb51caad07fb6b6340d1c0af2bc2646e2d3b1273effe2a1ad28fc3f6df5b31e42d03645694c03b0d9f86b31ac8aba5c83d1abbf3904c3165f6c1a851aa6ef89f7aa754fd55029f8d29292e5ee7e6b8103dcb69364fd3749a9912e1665700cb8385e5d46b29ff22f3fd4054ca6ddda2e167789c317574aa7a140f9f3592346a84396f8ff199af40a7875e733d6225a9d1d6b55aabc6ad9b5e0da7809e4058f2d17b19f66b3d66b204a3b2dad60b45a9f9468588095293129c1f4f78a2eafda8453de3f863349f0a21277fbf4f23d0880972723002972c2637dc5de59d67c355a8efd837d44d0d742992b839bcca887774c441287260feff51a3cd83541ddd231633ad2433e58b572efecf3b16cc5a4814e0b8d6435eaeddc3ad09ca1cdccc9926c2dd4339c8dba03ac01fdf9479bd1ae3c31a54c698d196bc377997f0a3855898b1b24518d37e717c9f3148da7bd0770848d7cea195b08335ef7c57d1ca5eb17f46635e34afc19eea43086306ff1ff9346cf53d9130c59de6f2f6628883b455fe606e61eaddceca4891e77e1a969c38e9d6422e61917abf466392680292812a5bf6efe0230dc5a22050d953abc61726afe12e810cbb58532fe7980add532e07aa3c7d4bfbb9525f13aed2aa9857aa1ede7081be6e0f58a0127e72a45c14a5c7b575204aa20fecf71aa697fb8a3491bee81d63cbe8bed78ebb8daafd75ee3fbf886b5d2f6ac6872acfd61b2ab60f0abe1ecd8f359ed2e2b1276295ec5529a933001db4a42dba2b99b4c6663b83c8ae0965765a5cbb6ca5da7bbc58774138848faf082b4c74b46a8097887c6eb878d8798d63069fc930ef13358ef45c1e0520be733b5470f18c9729d327324fb722e69334aa2db626dde6c2651e53ab88f357e9ff4c53fc26126213ccae8138b76254abb2a2ab21d6910a9e0cc25e84677994293b1a73649f08b2727d3b26b591eea73539fc3c88248aa2e61814794903dbb783b753681d7ce73c3e5c0e75cfb241ce9a043e47e11b35411781886f7c4d3a6b7bb3ab7c2145fb2dc11db514ae0f59ebb0c52de70e33e11ba8d3985e38dc516ed7319e8971a366c4d67b39e0a01b8bfbaacc1456182b3102954f0165f871a80ca97693350ede947a530bc242f164971c48bf5301b6d0aa2cdec334928c6dfd5c104dc590265f47213e3a5ca56a6f7cec7c57b328632172d22de9866877446441c4ac22b95b7897d7e3a872407f7380d00cfd150a9aaac488ffc771b6d0e2d523da9f23d971a5479dc1ad08b1e81882af2ff461a602cb23baf8a01775e5cfa777155d7bea9c38d9ae4b405085de04f05392a2df82a53d464dfe8ee10e75e8e7ca3f700da842a92ef4e333c8080333656c5a6a9f9af59b282293333acc02109e70afb68dcb9dcf3de665f105b43b1529dcc2c6c09e04332e3f580c93a27f5a76cd59e17753b22f647c230c57b9e057b3e9c628ad4660d1b5b8e4c20662ef4368031f0deacb80b572b37877224d16d51b9cc8899587bd33ae3c81a20496b738cc1e8405487b3758256d10572bcb4364bab4fb5ca3984fd40239d1eec09949dc54aada5b5069b3afef53ec2725c70e713b81c99436c290a99be18f3654af9c0a02615caf38f2423eecabaad23c3bdedbb77b759919f30336e29f24472554aba23e0beefb489299425efe406f307164c1457ffa5c7aa0e2a2f2b8a0c7ae54ac86c73de315b4709031278a2aff65e6da5a758cf4766e55b0e45bd24beafc59de0f0dbc9a9b65759f525e6b4a5a4258890ce9ae445db1b6f941ed1f2f48f0a110b4b15faf640ffa195fdabd085d2e152150e3baf532088c0b964bb19acf9671ed4502602049b0072dd8a3fbe3a822f6f125c5fcddb99218610a2dd2b2717a063c47cca8d4f59f2edd9da31bb89094e3210efd75efd8944a1ed2f4784c5228f679437eee0cc72dc2b29314ada64bfd8aac95e086d92c855b0070d1c8370b92b1f190f2b1563bbdedcce032cf880c8f07cc36c82963d66c5248c87920801ffa7f798f10cbc9f76ee3ec3f1078261d200227f2ad966bccaf3b6a721479585690375102a9f999e9e3519b4246ad03917560958153789120e7a02d8ab1ae32ae6a0be6f63bed3944c46074892f070f163a6ce81fe79fa484823409ad75bcd11244b083917611986f0a00cfbe02d9e320259aa866de8a290a4d40e2cd862a9a68eca1b5ee6fde1297c6c9b0c70fe1c75c1accf28bfd8e561e69f354f0ea6d64880d98117f5217295eb2178eb69c6ca68b7a9bba789d069881515fd1b2e4da06b5d0cf6f1794906bd556b9b0f88dfc1002db0c58ed4fffddd589b1de913aec9afefdb73d4691f4d4b5e5ae27ec66d4f579bc9136afdae64e3c1461698a9652057d8a3908b4afaf41e9947b0bf18cd7afd7d14c7ab9be2f3c5cccdbc0b7671995d87f46b5652c2c8f39e218fe10fe9c6633ab140cdf26ed20876b0ec7d8c1313e7681b0c44d631cd51e89fe044bd6eefa25d507aea584f932bf184f8c9703c42226a84a49ccb414f335169723748aba2b3dbb09ba721f8140a2a23bda3d37e8c413b6f2564f171f75486fd19a88375d25e477cd54b4af981c8b4aea905cb674d6c0c02b0cd9640c01e017f4b7bd613ecdd3ddcb5f78edc95d0b6be373ffd89f9e5448ce6200ddae33205514c1970dd8e66601bfa4a065539a8fe8eafde333c4f1a564f458855c9ebbd39bcfd0743928817cc9d85769aed95eb086552bd007f8cecc428163209774849e946b4bcdf792309573cffcbe21eb42ea2b2a49fd9426d9dc2afd571563dad40ccef1403779ce9b54697a42be61fa39de4683facdeec52a11609315c1fca31393a70952b880777bef26863b28473cff2f095501e5a51aac5138b1d3e2aca5b2a1e61b1ad2a0727761ead2495b2a7941893498c0ad2a2c5075975fad16c8cee2c71113c2316e4c6dff2baafb9c612783350497f35e78d01798f3cc96c874ec56b5d2a8373705446381b56f0ae20999ce84116386d8d917d4197f6d32538ba8009dec133c5668c0d2249229557745d0f8db66adfd0745959eddb515936702d4dfb3c40217b332bd3b857783e57bc8df7f27f3ff292ea3788d1b0749bd8bc0fbc544ee1c6a1a79f963f9f6a05bde3fc253c08f22fb55d73fb554ac0e270f5abb6aefac46c769a00dca31d2934ddb63684a0806b6fb05eb7a09af010789886b78313ce71b8d0bd6244e8d72996ee3d8d4dd55d248dea6c251433c79b5dc5fc29081ac08d3c7cc7dc7292c91aab760a6f946ec8a13b55833467116a2af9b6d71ae6d11b4d84da691face8c159e49d8a440e97203d68cc8c36ec5ebd0fcf6bc618e427536447cac87a3c0422aeecf018bf917ed3221797d937d46f6c7f834257c3261a682f20542c8e653a2b6a835940119b07e2a1f0ddb62e5e54696c96544cace3720f355ba51d46393007d731d146252ec68e2bd4e8fd1820a0bc36e4d1e4a73a22f1cfe86ee6cf589847e0ab7ff3f336762c754277a303342bf158957cd5c91f99a5261dfbb90e4238f3b4926cb5de9810b10c7c5242dd6091c70cb38952c5a72637bf1a72e3f7b67464192d11f0b427ad6d8bbaba1c7e8439153cbbc130ce39ae7747632ca485015eb4b21a83947ee37703e7ff333172d902e85c1b3db04ea7c2f62f7a1d0dde8a38cb2a40ac4c6f12134716e4a87dcb5fe61d97289b1679084bb9cda13ea6e65c2452c3ac823748b285dbc0c4b0a2cbc606a28d1ec6115d54f84c22e2452b796e27ef59e2a0d357ca30a32f2285ffc72775f121bed28a30fc9c70e2c073562e70af87725b6363593b9b7b0a1e78d36b5a965b7456124bc5c8a2dee72bd45eb0f8d2b5995476700681f1af3fdb21abc5a54fdc3a8c1adc6dfb56088a432461748fd237e5cb03f19fb77d9dfca6d633920f97ca183a8e0b6669748ace8420c9612fe1964028c3315240e9b05e068beec19ef4e61ed6f06ac98c1f12fe631df4bd625ecba858e3efec5929132add26c867f6cf77f71baa1bb100452c8dd87dddadd6b8ab709d55c623fc7cbc97f286c4ba93942edb9ead82752ab4ef31db90a77e790dce5b8167efa26a431dadaa0ef7cdf4f2cb18c75eab10c3383fb1a1f1660a1592d00b7a6aeb338df0118b8875ed790d9f5febf5688c1633206b4e3880b0c3fec014f3888ddc865fb6590fc523ee0980469ce693ac0e7e9d76a0b8bf31769c65767792a4e25c19aaea85b2323fd5af359f4f7dfa8c265fb7f8050dfd7b0a0923e9070be49a700d286242f48bde554a509892c2e54f01d0ca0de124175495ac2e87ce07511b78cfaf228e8f5044d2b66226378b4b60ecc3500e372e7f9e4f4891e3d709795367aa0e95f25e19b390407ba84eb5f014861a82d2ae0911e8e40dac24234d17bfe5abc42f3cab8bce62f5aa89896253d3b6d64ad163b31ad7dabb417e44a941c7dfbe01fc93e23140288daa748692ba47f50c01abed8ee360960847bbe1b058590b60ffa8fe2672995b43b84c2b9333c0ade9c7cad7d1cf972f990ebc71249b7f76ba173f497c8929e2c94a94d06dbea9a92fcfa7bbc22ca0f9b5e9f636248bced526da3db96f4fc8d48fdd2ede3b390460b9942f695da9a6b8a88452881c93e0ae7740797e82a1d2599ffa78c3377b656c2e01319728be0e083ce8da22ae16179f8e206f32e36e4ae8cbcb704b733014fa561fc916ca5f908ad1d07f54f11b25041fb2fd45468d77bdb37e5b36810a6c028a60618a7778d82460fc11aef5df8601a9b0d7b4c5ab3dc54147850bcd5c67f4e7fc6828fa22640e7a008b78b3385d363f8a78c9ad1c324e91cf97905eb61462da290620ae9b706921dbb478a197d80ea3bc7c8877223c891e29384f70aea9da5e61124ef38af02328e8aad25da6090a68101a897e371d1ee1520a1c53f14f3b640fed5502e45cb2c11a3406d22b005e36379425efd823938c7d0ad86361251c873893860cb8e5ba3531e324b86b5bae2458ae1e13917143673d85219d9048a2d41f995ef71f932ebb0c46b13f844a16d986984fc95033bf46c4da47575f7df4f9037b15567b8be67e7448e5ade0c59a466c64d6f3ef1b9b66786cf7b20a29efa61f77217fe84f01e93030f4e095bcdb41aa497054dcba962d3bab5a2353f71a130449257e1cff3cfbcaa01e5e4bd69083e4cb5d18299bd5515faf1bc6b4b030e63947c59595d9861ebc1cd79166dcdd3e971fccb5284ec6ae95022c9056e359b0a034f9a2a35c29af0544e733073b3ebf0e5713b266a09ec2d0ad34777b08147d5d21367dc831748961107811648a8e1fea8fe2baf4250bc8b5b7e97a4d8f5b6edfe8fda6c2e516f2437aef3fa50b1900ed4bf2763f1d57bc3b7674920156e05f9e58cf942ed986333f0fbe383a683fc547255a9a349a043b7aa104a08799ce515419a1b7a437cea0a41802e235f79d0b15e46c5758c250911dffbf2c0a7b0445019becef75c9c27a0d81b442c38a8c7aabbf562fed9028225b16cb38b75ab91e1adab2f90e41e91317170eea2dab9cf9c2cec246f5d8f4cb1b254338cb46d778c4657fb7fafa979b509e71b01d007b8972d912b4925152528b0fd86c34fea2abd5cd0ada8a09b629d86b0aef6413eb02dc7a950a41a901f0ad3339132e32f23dc22ff8296f15e6636b4f6ccf0608b624a6944e587929dbf9a8787dadf031467a65ac147dbf3fc7f7b4e5c4eb7ab6a8fdbe96eae3cb8a88cfa45e09bba178c3b5f2181a0daf838f08edc4c3d9cde6b7591d8d3351d93dc12c10ea2c3fd8d27e7a7b78bdbca54081b0f8e62a6ff28678c91dbc03ad23b8198307e65fd389a195ae441e957d3dcd10aa2a4f5daf0e8c79b7c06ab5bba06e3d25d66ebd83e4ec68e0fbf886b5d2f6ac6872acfd61b2ab60f0abe1ecd8f359ed2e2b1276295ec5529a155e280c9f70951376df803e23f9f0cc72dad2852d574c213623ed8b7be3f7d6620e7815f57816dcda43f9470609bfd79645efda1d6d70c703adc314cb98432ada9d3e72d893e07c8b80cf625f996f53fde9124a2d0785d7f372ae391308e7ea324ac5eaf8ee8941ed1ef4c4cdd6d7429665bca9979c370af1118b2ac3d3268e564369b504a33bf0be0e8299ba227366d0e7a7e111a8a66426216f5391476f94d24571e1034fee55472b163e4d85918aafc7d6a0183692930b01b06243abd0c271266768f41819ab89fd78671483cf69677a0364171f3724cac76fdff8f1c8c9b294cc73d4cfed34ff50856167db66933902b1fe93fb475c6139ee8f40fb4c1411fe86ec090ddb51a0613a777820d0763e04dd7a83b6b87bcbfe9219be527c0a5228dd4a68b95a4957589728586b9c1258b463cafcfd7b570cdc37beeac09d5973bb6699d01a6e3dd6871a5f3a8fdbe6dd7ea30d314ec79dbd9cad56c2cbd063985939e93c8b3e909c5976bb88b736bd258008e3ff58eddc7fc7a70211de13e3e98bfcecb56b198e61dbecae99d02b824e5030615d2b620eb23ac27253ac468a2daa643036a5454bffdb3a668857ca986a882dd92e8f8fbad06bcea4df422fc0946c0eac00bb7460afeed1db2fde9b07795f12a1c4cf83472d3256128a0089e168feb8aeaed5132588b7b97d611c3828daf3eb66d63d5409c4ff1257a458e4dd0c55e140ff437a396a2fe9fa6aefe88758f0aecbb3e16b6a8c7767c6d886a40bb1b874212859e16b11ab96d9b038801f456e9836d4d35e531be51f856f0fe59b08ae43dd08b8653ce84edddb0c93ea977cca72a6fbecbbbe5944aca1f3cb8f0e7e5f6bfaf1de2c6db756e6265586044139581a1e391ce76ce55f1eb0badaa0e84ccdc8cbccf5d928f7fd4f6f9a6cde5723c2ad4aa16871ba4be3a6a6aa20c4c28b74bf8f4648e0f1fc801e745c83f89d1dce849dc72eb1699bbbd38b887e9daeea57a09202d35a612fce00f656b3c9fa45dbf9f7089659b53b44681b726f25912a5ac293deafb2b353d7f60600618082b6816cb608e8c0431a0bbad0c453b7c012c06af5fdc3b747add2bd8807e5fc43778b49733662969e316f9add1eec6a268df028945823b98b340bae8297dbef125281c4c2a443b04be5925908113de335e3e09918caa272434cd13587b59f6b8b49cb2dcd6c1bba7e6af3b3214e2ce00cea44d243769b1e2e0522aa4725c557dfcaed809a856541180bf640ea90c7806b53a8d7375fdca95acda13d6c757b850699acb1be85321848cfd2ec42ad94542183b9839f5d79f0aa5bc96b50a47f62eb2d455c1da76e9d0a2e8e5b12917f038d87801dde9b1396d465f921d9bbc0612ec4b5cc5c2f1b1d9b38016129ab3dcc52ecd3628eada145913187dc8c9472ea6736af25526434e18202f62dbf8859bc63d6f5b1ce544e94a01f8b5d96085ad98331f86510997f533582201971d046f401e0829406838d1abcb1e40b5b6bb3044cdc5fc2420acc03a50fdc17092e6f2d9ead97374999928d31c9e2a0b46b14c200ab7aa03e6b72187d9e18ec6b0d28eec77b43d5dcf421f2eb5b30273b1e4a141a8258a87ea7f4045fe1f2f4a4fe1bd7387be75f35d830fac31ac2fc6dba8f15a33a2e56d0d25739f1651383508d379cbbc2958639ad73046a0b4cb8bd0b64f9454bc15c2c28d04715efaee73772326fcb7db96c2d804d9febe02b184bd567ef4e9a2a06c4df4b39b10f1c9ea791afe18490c8cd9878af6fb93fd6f4d033b7958f99e992fb7ae33c41f5392a52451b6ff347fb10503a5902bc71273f14167364ec424af292b8487cf390b2ade7e86c687784ee60371679e0e933e7cf0e70f28d4cec45239e4afd2db7e111737c89f3bfe0ba3e4bcefb6c1cdd276aa06355de204c61e8dbb7a2fcb8cc3c1c3160ad216e376c24aaa3216e0a17071f78582282f83c4a227d5f4ba6730e42c08491ca7152608718ac617fca35d43e799aab371f3b5fd1be0f319a01e9c5aa708835f90e89aef6d1b44ba259670cc47581b965e5be7d05064a5a2cde2d23d477242ebaf82d9241048eee61c7e1267ab8d4648b4256570c5b99efb9cff622bd200fce330b79062afe62a2d4f4aade132417106d00a45d4d721e8546b5523dfce7f1fd3d424ab37d8f372d7c9c77c486121a62a5061cf36d225217f2513ff95b35cb4c10324be3cc594a2fd50f2209c66f048042c934bef3b96982cafccf3de8e8c264e33a47facb217d63051b636e0b81e09bd36ac6132d4ff01f4d1007bacfe2f97d6ab007dd2787d3e2ab612acf4f1bd14f6eaf021cb896f5c831ad9f1f3d3cebaf775fac591c5d693267d1f9da5e6419b2096d6ddd5f7ed32a08eeee2bf9507006ea4cc1a2f54f075383e07ddcdb8b0840cbdf8a4fe018dfd885fa2b4e767eb95f0ea08d07b52404fb2306a14923bbfa0a2dba38ed03ed1a0c9907ae8f3c6e8281f65cec57e89237b4a280a5cec263353dc1712d9c6414e5a3012e124876c4e1a05a098c2e5531a7efb2c3df757fd676c3d338c7e5182bb662cd9ca88dde1e5799e1fa8956ca8bc2964d4ea0b2650b7efcabe43dcb1036ac0e645f2c57bfb445607f005f5631fdb78140bef52140435a7c5fdc419a5075a8fb61990d6cca582109dd6f5eaef30a353481573f853ae7211800d9c6c07c7a2afa64c48652d79f90f2871f3710abfac16e15adeedca0bf89a7d857d8996bc93d2b6ba972bc21198d673a6c0a6f8a6f73c1dd9b55a61056a159aa8ecee431b25f8098a0c44075d7ded4cae689b46a971281ac23e15d43e050064ce46582213a2738660e8e3c8033a78e7e254bfca980fbd991807bdeb9bf0051d7c4071baa49643892d8a715450571981c1554021870dd80ad3ad967d1f2b8480efc751f33d6c904b89e1a285526924d867794bbfec145d8014d8c53dc94ba4ac820491ac3bb31184fd07ae8c2cb5001ea9e9b35b441118f1ad2d227fbe4f721a239f6be7b568fd38380aa9812e339e0fdeceee5fe94086cf4a5db578cf6a646a2285b560379c2c8c186a61476178a5328250a8a809b46f67012ef2776b28263358cd3068cb495e6eae957f6c04fd0addea8e708d45aae499f8b644538e38e1f282d8d56402e9ef9b72c85b89833f3abefec75169ebde7b31131e07d6640438bfc49405fc1403362ad62c0efca0d53f979d7b50e355d349f12201cb129f45649f406deac3b584782aba34b3fc7f4699fc82dfeff3899011a224c23902cca27530c3c4577e44272db68cbcecf4ab1fc471ea3228a6f530bd9dcf4e0c26753c62ac38ba19955d07063cb97c80cd108a4c8fde1dfb74baeabaa832ac50b1994f73514063df079f1328906d50a1e97d845cf3bc71b8c40a2d03274afdd89c28ac3f9d0a5dcf43bd6b342e976038e0b12ed264d4becc7eb99a1c325476ed0aa1543e64644e24a772e72a84e098fe1774fdaad08ba8b9e9e9ae9ed4726426de0fb818a86d8fdbf67d3a3c92516194be54a151d5611cfd593efef06a01e81937ce3a9e8b84452dc76a1454daf48f5028bbd2f312740b19e197380c01bb7d6700838a857e9de72137057edf2a00ad2cc72531ca841114fc8f8b780d758aa1e77d7244eec05d20e1312eb5661d854576a8980b872d1456f5fae159758601f94970d53616e3016dc292dcb71f4e41bdf548079715a8802c543ec12a3eb8bb6373a2404d44e471b44847e4de79118fde6f652bdcf56e385bf5775c5ad3b70701eaede2b0f6affd699252b387da2726999ff7e0d56a2a3442a36d08cd77c9164be153d11344c1307f691900e5ea30014e048d9a148cada35d9d80882272cab4c13f18f481b5c679a035add1e6f124b9a3548d1a8ffb9456ff2723f0b96828ea9b63770efad586885d1d2abf824dc10c2f5c2ae04ecd5388ee13bc0ce3962b43beff40cbc7efe076005b0749ff7830e74b880d814af4ca2bf026be53420e67fb9c98dba00b119db97f6b37c2ac6835fbadf38ac7594c6a7de7e54e54d97f99b9f7fb59face1e6098d4af8e175802b461d9672cdc7d54f44ff1b4103a31a39786bd6670543c1e3485440c34e132c0bb180c7b1764409fb4b88cacb4419c96c49f0e4eee7355854634400d449ec1c2e7e540eda46d76bfdd7b0453f28ef62d6a40fa0b16d03a7f62cf7afe3592f1191c6780c302f50b202ea50971a617f74bca13c3e9b600ee93d75297c001a35c5d476e40899383d0b0a26ec40453547d31170f89a42aef494af08cc1ddecd649011e64727cfece8452d9b27470fde70b93bd9be55028ef7b2f34a79cd8428fb64c7a6c2990d68f5c5b96babd22a3677074b0cb3ff97693e01949e81f6ba312958572ac273e8b8f953f142a1b14979348abe9a70c2c02c2c2b52f44b22a10425634de24a3c8d2be77714e33f30a7a9e82c13163498b21230979291e36af8873a97e7230d6efa94d0ad1ab0a7743dcde52a3df6520af96cd25cdfa4d440e7849cb13ce6aaf67df4bec537e630702ae4ec6b051ec603e50e76d45dfb4ddee23f1c9534c12dcff513f224f507dba2bbe50786a7664012602be392f5d58aa543d5185ffb3fb2b916b86de8ea0b1b9c0917d1676311350b1719d936e0b98a4b917518073c0d0d200cb4629d5cf9d6a882555deae382e052929bff4343aa290949d403342684c8596cbee0bbbada73ff78d3b6b508a0949cf2483b141c7f9173328d78ee179abe9b2555432fee3f27085bf14b5651c216cfe111850a73e56e3a14428f797767efb549bdbd420dde1f7c6adeed20c131bdb49c5aaba1933010263d3edea2089fda924f65163ddece344876848b61cf4d93f6c6b6f87b59a75907bedab9b3b4a6aa9d3a50669061faf3dd42e7ff4c6070ac2c907623fce1b686e2883718cc0144011493924b2b3f80ff0ba33f4218b564254d2d3002839c22e9c7f228e130631c4fdf5840cb3b2206d617616bea8ec8880e2bd0659298b790664fde8438bfc6a570c09fc96a411603450c796de9124f07ec71c9e51ad4fc3c87a4d953d5e65e8d2b669ebe5361b259710742e7e75f388b4729802c007001721df53d6fdbc8f8d3e1fd528cb7c2dc6d2d0c38a576e2cf83f268c071b88ab14d7dd9d732f80e46743a378a892e7c5c0b4ad5885268bd98439ec51cd4c3b9d975033f82ba442e1cd751091db50b6b6d2ea2f95c6195653b59c70aa9bb95ec9959bed7bded8a1b7d60df77c5e29c1b67c68075a011ec72e6e00156356fd5d2672434e9b5c9a74aec9f128a781a8dbccdae5f98e6f059a103dd78816dbf2bd9a7837f12740a37537e26889312f7f2653a0eaec333b75cf032c700d8db1d695e73d44f6eb9341e3c8f4fa5d8b79b4f5603b6ad2e9ab7ca94ab56a72c1401b889ed09b98a8d8aa3544b6287784586d47e80086fcfe2a45ee00c779fb7310df5e5ffaa80d67a116803103836c07f93fe775c73d5a66954bad53ec8cfd2bd8a6b4b96d87033e9185fc4d4585977e7ad5ec768ed276416c3342825652eb79a8ed3e2cc1f39b424b3193689e46a0dcb249dd60918c8dc0e0207faf3fdb56bab28df57f15e1b5ca4942137a211a83b5fc46bbaf036c706f4d8ee77fd3bfcc0b5aae8a7861884ea3f4dcb2903c33a8cc278dee5f8b9124e12e8a706fbac5f319bc43eacbcef6dd4631d9e7e32d3dd668858ef28701de8b2ca5f8e1ae732ad51ddb197195697c5ce47e53dc0803a8ca377e92d37cf6d9b28bde223a303d65da09dc5d2720d19e812dccc4c0e51fbce509409b3dd386b8aee85901d6042247615dda7b81a0484b640c9e8ae3492e408cfde625c2e49a3437c3f7cd96780ca28fb6ea339bff1c324db65eeb8217a5ea5cbcb16ca9e61df77f0cb652c0b7fcfe9fb7288b2f846e5132f6eddb4de3de94b3a9982765d00deb533f2badbbdacd8b45c4159d91b5c54b565d7f51411f6e5bfa6e9ffb7c102565ca38b9df76fd81a7d6060fd840db279aa68b4adf734ec670f304f682b0991a42c9ab4730e7cb9929a631759df3cec5cd68a622667cd1030e922a600972785545c047b1552af58252ec442593014e52dee016621a99c1cfad141fbc123433b875368a60facf8d8a51322fc233f4275e3e5917a381f9bb5a07cae1402307fcabbeb47f64d88dbe21b98b46d5322698862c380cb823280db8271a5c96c05c67e386f919411c24e1568c0a570bc794962e6448b67bce5ffef3512a01b7ab3db06b0ab88af624ea4057b69a128ec7279bee655053d47a087f14d00d77ea60ca890d4d228e7e8b7d1b517cf1392d2d5ac7fa89380bacaf430977a02a93ce61bb51e85e6006c1b1eae4fab816380a013c151e589da9d323a07c652e36020a6acda3230720ecbee92c54505d1a57774ade67b7621176b0185613ff59a1dddcbdab9bf9691e9abaf7c52d43f2b5b9ee0a5e709d528557b30af2b6cb6a0650a39acab9b6553ea8f001b92e0a946b3a83a8ac8f86abd2c9e268ee09537e612ec09054ab455490e03d7284fcf39237cfbfa916092b35daf2911fe1cb6e98112c6608f870fbd5be9dacbdc3fc14fcf81afbd81935393deb89904cbf7c2444e9169f5ce160bd595ff675b0d1afe656db0beb3e3b78f99bc066b4addad8b32a9010d59e3f002d859e1182076778216648d68a1b09bdb2ae8603b1452a46ac58f843084b9ec7f91ab8216030c5a08462fc2b7b9326a85c09095224b36a4952e7cf0166fb317f4a182cea116f95dd9b8accfbb138dd9d4981ccb64b7ed45c646b3ab1c7d5e25263ddf7b9aef4495d9741b0ad82c8e5c8167cd7309c861f7d8a0d4d9369675259747797de15fa1ddfc3c1e0e0e0ee3a023ef9a97fcfdcdb4e0e2726ed59b106d065d665a234c5cb2f4b4afa91ce26727955d922b7fc6a61d3e2ce6c0d52e152db6aaabcb129b9a45a3d0d97bb671b0465bbf3f4b26e7a08fb244fb3424deea5000961cbe08bc9c8521cb11eeaa692215b25dc0c7474aa8a13a7b47d3427842c647568b608f4690fda63cc96eea3f888e1bada1f90f15345db7a0ad0979b6d7ac69393ac937654d2d0390681e3605c2ab4f8e2d331e74e79a613205e3d57123dd9afa5510b8988efa6f6b760ed3a6cfc40813d331e974974f8167555f784ba0b1b667b2274c6bde7c1be63152878a4a15fbc1ecca3b381484d335734906c98975de1f85b983af460dc7d7ce10c16783f4ffad9b745f9714ac3cebdcb6c22dbd5e7c2e70886930be851ba450f35f97dbaf42eab30bf9ab928e50d079288aea4ec037dff5a95fd76498996a1de4d98cd470bc02464195d7c5cc2de5c267c70ee4fa4603c254a7890f9dfa55b18c622aee20b372196eac32970ac823ffa22aca9d70256104e83ffde4965a93f4213d786c9ff5e20638231cfe93a6c8676bd3da6594db5399b686a461731585b2012f3dab6d7ccbf04dadc439b76412657a8462cb8cdb5740c4524f825f6a63f02d3798f78c9ed172dd34167c12dbec84f22392432136eaffeff8c890193c404e8624cdd7e79ee533dec776439e60eb01b179106969ec920fb5a883d23c78ee498b820e627a9bd8bafcac6e8fcaaa70b3d8136b2f6fdfad5e7ddb44fd16a1976551e06bfcbce2a5f8b8828e0893d3b19afd4cc48c663c2e54d00ebd21990ea7cee2a788aeb0b3cffce1c2b3235736a5b29f90296e350a7b7b376290f6dc952617c78e4d9a7ca090acb10a52530e06b06b6556440b3bf86ff66252920fe1ff2b2e212bb5aa8884df356e4651119f416d50b052fdfd74286204d334e23ff2a5ad4b122f11d67f2b2dc71cf7274b11abb2e00cbcf5930abd70e7ea388f43c77f8d5bce922e4bfde0b5c3826848ca279d675238f3c6a5f10884435e18a0dc3e0838d7f2eda50cab0892ee46fe48ea01d5cc516b6ac8a1d36ba004e7a5d57321e9f7702e189b4d52cee390a9aab6a511ab292ff9774ad2ab1a535850b5dc307447183905ebfcdf349a9dbe54021eda3cc807498b230fbc676f75da2b19fcc9419ba36c98a9105594b5eed263347919ef3cc8f7ff452163224a26c418f648c0b56c8caab1c3f9a3b8554f4ae3458f2ec6654e4c062c5ea0160f314112086a59f3ad271dc7875bda695aa87c431f35a49324be18a9fca956d8e83b1ef598b6c0f174657721a2e16b57fd8562c1a533f2b301c7b84b41490e204d8b691beec9db20586ed2000238ab11f9f98390190c3650ce3ccc7fabc9155c659d1c1b1c3ba1f5739774a8e8caf68e049563921d0f0ada9a41a059395b7bdef62e56dba6dabe30a3215209cd1fddf3a919cdbac414ed4fdb5061ee8d764b3052596de68b1faa6fce330087e1de789622e1891d9c3e57a6f9e2465eed4c6fce6be7241f311fd80b392e03917a07598a85861c9d4401a6578bfc2c422cd7858a8a56bc487c2d32eb1be09a5f94f7308f582b90538b45ad95964e69d6127136c17b285b57e48e8b7633b328d74244c0cec1bf3befad0018ef4d84437286e9c950150097105ecee0078c04ed8a14b3ee90bc83d57ca499c554a07552db66243a028dd42c86f35424333fd409788911422b661dda7b4c920321c68a8f2755ec896e8d34e552d054b87523d94b4900b1dc0d55e28021cfa1424ef83f479d8a383e2e21a405e82161b23985692a6a7abaeab3f8a2f7a872befa0f077c34ec101e693e5e6ee6cfab8167e295ec5b0fa1749b82b1953aef0c3b23b12a94eee70c7e53ba1f082a7d27f93cec6a7cbe1374cae5b1b829abb2683f87d4e980efa24c9a4a9d0ee90726fb540cb09603e8e99fabad3c02dc80cb47d7e41eebd7cffab7134c9643dda2dde19e05fa07b9561e530f8e3e1f8ee97c5acd4e69202bb48e9417aea149fa8b22a4366bfb455d04e0a8a2520ffd38be2a38426d49c94aa41abfc4e3ac165cf4e7c68f1329b8965a1c41dce8da375146d3f235aa495e4a9b9f7548fb9bae53d801a2e9b25c7c347f407b3ef011c4694abed5a8b7daa01303e31101229024b0a8bf70f3255c3f673f54386ebe9289dddf20281cbbfee0188cc1345c52eb60a1006dc9c8de0870c31360a1bcab6a87d0fa865a16d01f246a15bf77b95bdbd828e825ff6fec6f33912ed05478d33c7b12b875ebbe05cbbbeb1fee13848f6d6c14e37ab6798bcb774c986a8aabba943863a4cd54b687baf810b856287fd0242ab06e8f49a88910aee6bfebbf5f78954626e5352433670c29e0f040c22b8d2ab0a1eec737680a8c496dfa057ca9fd4015c2c84c255bfa1229f5efd00695bcf7b92c1d668c507941b480a90fd255ca724cc3ba42fd817184e5f8d9485f9e1a52e9bd83706a8ecb97adefa60325326aa645dd02439b9e815f4013929dbe39062a92d53f290e1513330c5597034e06d302ba6e4d8763bad079a96b84f7da0b9255eef8f3e747551a86a857502b9c845ce1b160f41f0bb4b9decb993d6994d9f8085ec962b71f192873cf9db46b6cae9617dfb7e860b87a0e52a707d05684e8eef5d1ff963782be8dda2a10c5eca4ad2b4342678073dd1bb76db102447e0b43bbc39f51a233ae5eeb24bcda1e72c5326c3d6f3bff4cf8ae7a2e754765dd5a3822fc3fff845484d5fcdb43142c76c33d237f2887cd2969f242b2a3691a73ad41d84f65de14b6ec0fa47272e390094094280de9e5528426df1f4e0ee411fe7ab4a58a2dce5ba85cbe9478ec5b2ef59166334a8ec2beaaf938a22e57a41dcc7eaf2ee5e8fe114b7b6ce8858d4f6916b4ddf024111b6bafb828486ba4ce41d59cb451a6885c689192037da909b84b1b4509145bc2d177eab947e3d21cbd49b25898ff557b1985e91c53fcc803191de7e9730a3f8e5c9a6dfd42c0014055f4ad210afa62b0c11eed3a9f1d7f856048aa5b945048cffc0f174ad2f007e6ea92a97dacbc1d6956e56680d130a68f953c7aa283fe59a9ff1b91b0e4a2bce64a5bf836b548e67b95d7e1946990f43155e1fe935d2c8eb2367c0da7759d9341edc6158d89ea63df7eb2219ceb1f067dab660ff8b3577b006b29b39341a4c7885f8b6a475989910521be1147d806ccddcdfe8220091e1556148f8df5236f28643cd2819ad29461bc4ba58d0ab3e58d74936219f1e845f8072faefde964c8b9b2f4b1c1f06ae35f3bc8139327509a3ac8c91a4e1c5dcd537f8063cab2c6c9a741576786313cc2ce31b249db3b63ee721d8b9fbe5be66d1d000362a2ae3483001f73a4899950ea7219b7f7ee8b9785cb436072a54d74419d6964e8e2d86a31832dfd0103918f7421adc67df58e0a05467766dbc1bdbb92adaf90a2572c54dd4f4364ff25cb9f2dfce6846e60d6727e1314f55375a8ad21c0c6a5ca40273346dbd97ab1c66513311bedc684f8655db162ab5c4a12fa721e980bbd6ca1e16727ee893a6a65dc43de38acff97790672d379a15551fc643ac8db564fd82e6a0c57699dde133d5f0f039432dcf93b1eeba344cea21a7cb9bc60ad12dc52b02343b0a76f066601ad072fde967aa1038299ee5df43b0837b6e1c2ec7dbc0f979df6d148ebf525ea610dfdc477c5cdbb94e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8552f4089b4b0cea8843b83f5fe38bbdb3ceef170a3ff4fd0beaa77bef1fd440b942da5c721a0ddd96b8fdf2ae63088133fb20af1892f2daeb72a095887f965fcf6907e2767706daa9764f9e6574ba54f2b884008672ddff7d179e422caff3d9124e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8559de819f6b0f982c093f28be1c373b66e8fa08a4b17edcb82a762e5cd49ba9b9ee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8554b43884e9e2493ac78e13c839c9f651a8323db67aa50452f79294b7707dd5ea2e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855891baee470b00b518fe1cf423691ebf9167a34a64ffb8f5953df8d4408f4e2bee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8556b232a2fbda5a0c2b80847d1d1f653f8193e34f5d7868e682ffc2e403ea866b06eed91121b473ffb315f4e97b63d797b7f8c1ffd817ee819930075a4c1d38ca8b05ace25ac25086f08e4cb487334a835cddf186e71b588008a808905b393b9595be7ecf8297eceb9330846e2ce3c49c4334628cb8ef33c3161c7c00d9fc3390abd8cd07683696fa641216b89a8249ed9f51f766e9af6b6abe6e189000b42abd692f55e700b62fad8ac0809a8495fba066c60af4330503a45762b1cc7c8bdc6bbfb91377d221ddd1027f9e2afe65d3e4b7110dcad66dd5f0dc9a481c36fedfc6f34117493fd41e109069d6d751527dde11ab0fc80fa4effca64f421b077a29c0c3032784f1733f1b464f9b7732a096c155447e0ab36a83e445363a8bcb22aae063d992333a15184b5e8d9a54994d168649eb00553904783eaa92ead42be00da3c1046e74100dc665db66696a672b5e07c6e3e36da1de41b5b89d09c1aa0283cb958d744e30757a8b8e9aae5af994d8007d205041949af8ed14b16975ade2193222cf087d01976533d67079bb1888eaefeff26a942fe8032dcd8b68b7e5034a46b7d70c0f0431ff410fd3594c599c01cc5133602d1580099440c812c5c8a151881484f350bfee66ba383b8672e59354081103e14bd08a7d5d1aebb06035a8809523e4ce9104048710e7cdfd18960f5f7b95b80367689f7ae3c659231f8ba0cb353593610f27bcdd2ba1acf43dad76d1bb0009a9b64c643404923b9a5c2a59efb391a415176ed459f0fa1501908f30072209e9a865a57f556fb70bbaba6fdbd057b6a72684ca20c3ac506c26e5b4a4ee74feabdae2027abefaa895d1f8e10bc6a7e2b872bc9c0cd0bc5142a20991946ab8664b00843118a564abd13b10e7c382789d20da0c4d7ec7e13d8d0538be0ea7652a15b17bb470ae91436380d8606a73d532af9fc84ce64409b680d0fc4bd0dd30024c2ac43b1420898313cc56bad857cc15c06e556e8865e083254eccc135f9ea92c95fcfd64b23a1032001e3bea28eaf6824fb4a0b030350538af5bced9e4f701979c43209e2ae30c87cd0c79d76686ca939d9e74113168dc81c257e54853afdcdd815a562d10ee53f849a7139e83eb41e9fdbb42d24272109498c070404fb15ee046ce1cead49d329faff364c0986dd709be5da1ad9fd192dfc5cb0de458d11e051f12a438e53696761d1e54755fabdf5fa2ad20d170cecb928d7eaa9d870937832b56cc462cdbb81224293ce13b35054b1101c8aac84b721e4ec333b8e78eedea5cdd31efd424c0c98e6253dd53ba4ea4046399692c6406d59fd582a1c2100a77096a4260e36d75a12bf17e5bad453cd38b6f9bb355c897898417b5597fbfbe487407201cf1a23822542ea729b2c4f3d42e147cf2a62fb51111bef1c336e4dbb3b6656e9e0368e788c59e3dd63aab9e3607f8183997884295503caddb3c739fc349a4a055ede8857bb7d9d7fb9f993b6b8262b6991aa7bdae72e078d6f954688d5bd9c70797dcb3b63b6fdd60d8d9298a16895f0a7f82221799c32b893a28ed0e0e812022e52c23c34a438af2c452c5fa74dc01bf0295e72cc2825ff79aa1024bc1d7e74e67224d7906efdb0125335ce046d9335c1f9ca6d73987267bfd8728456f898799999776781131fb6cc0a4db415874bf3e55a688b2f617dad3ae3b50dba698f7d61686c143e8c702b1ae4460../../pb.h../../pb_common.h../../pb_decode.h../../pb_encode.hrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootnanopb-0.4.6-bp156.4.3.1.src.rpmnanopb-source@@@@     /bin/bash/bin/sh/usr/bin/python2/usr/bin/python3rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3gPD@ccױ@cױ@c@cc @a]`v@_ts@^f/^2@]@\3?@\3?@\U@[^Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Dirk Müller Paolo Stivanin Jan Engelhardt Jonathan Papineau Ferdinand Thiessen Dirk Mueller Michał Rostecki Tomáš Chvátal mrostecki@opensuse.orgMichał Rostecki Michał Rostecki Michał Rostecki Michał Rostecki - Add CVE-2024-53984.patch: Fix memory not released on error return (bsc#1234088)- Revert back to 0.4.6 since 0.4.7 breaks nanopb_generator.py thus breaking some packages (e.g. Criterion: https://github.com/nanopb/nanopb/issues/845)- Revert fix-missing-file.patch.- Add fix-missing-file.patch (generator/proto/__init__.py).- update to 0.4.7: * Fix comments generation for submessages * Fix handling of spaces in arguments passed through protoc * Fix problems with multiple files and mangle_names option * Fix generator error when using M_STRIP_PACKAGE without package name * Fix compilation error with fixed size array and FT_POINTER * Fix wrong format in Python Poetry project file * Fix unnecessary generator message when using --quiet * Fix enum_to_string with C++ Fix /* */ inside .proto file comment * Workaround python-protobuf version issues * Safeguard substraction in pb_read() with custom streams * Always include pb_release() as function, instead of macro. Allow using = instead of : with generator option -s * Allow specifying include format without special characters * Allow including headers from inside of extern C * Add option NANOPB_PB2_TEMP_DIR to store nanopb_pb2.py in a temporary dir * Add compile-time error message for when PB_FIELD_32BIT is needed * Add --c-style command line option for naming style * Add --protoc-opt to nanopb_generator.py * Add ENUMTYPE convenience macros * Add Bazel build rules- Add 'PB_ENABLE_MALLOC=1' so that we can build Criterion.- Update to release 0.4.6 * Fix passing of error message from substream callback * Fix regression in 0.4.3 where generator did not find all dependencies * Fix double-definition errors with size_union * Fix generator error with same inner message name * Fix infinite recursion in generator/protoc script * Use C11 static assert mechanism by default * Support --proto-path as alias to -I * Use memcpy instead of iterating on buf_read/write * Add generator support for PlatformIO * Improve handling of varint overflows * Improve optimization for little-endian platforms- Install nanopb also under /usr/bin/nanopb_generator.py - this fixes an error when using with protoc- Update to 0.4.5: * Fix CVE-2021-21401: Release of Invalid Pointer or Reference * Fix unordered field numbers inside oneof causing fields to be ignored * Fix pb_decode() not initializing fields inside oneof * Fix compiler errors with complex oneof hierarchy and sizeof() * Fix descriptor width calculation for 64-bit types * Fix compiler error in generated initializer for submessage callback * Fix duplicate union definition in generated file * Add support for including comments from .proto file - Update to 0.4.4: * Fix CVE-2020-26243, memory leak * Fix generator error when oneof contains a single unresolved field size * Fix unsigned enums not working correctly inside OneOf * Fix recursion depth exceeded error in generator * Add support for proto3 optional fields introduced in protoc 3.12 * Add better error message when enum type is not found * Allow specifying descriptorsize on field level also * Allow multiple targets to be created by calling NANOPB_GENERATE_CPP() - Update to 0.4.3 * Fix issue with unknown message sizes being referred inside oneof encoded size calculation * Fix problem with [default=xxxx, (nanopb).proto3=true] field option combination * Better support C++ types in generated structs * Use grpcio protoc * Make pb_decode_varint32() reject overlong varint encodings. * Performance optimizations * !! NOTE: version 0.4.3 changes layout of pb_msgdesc_t. It requires recompiling .pb.c files and thus breaks ABI compatibility. - Enabled build of generator (requires Python3)- update to 0.4.2: * Fix buffer overflow when encoding bytes with size set to 65535 (#547, GHSA-3p39-mfxg-hrq4) * Fix segfault with pointer fields and proto3_singular_msgs = true. (#504,#505) * Fix Windows 10 temp file handling (#486) * Fix macro name conflicts (ATMEGA32U4 UENUM and more) (#522) * Fix generator error with nested messages and default values (#487) * Fix nanopb_generator exception on enums with aliases (#535) * Fix compile error when struct members are called X or a (#492) * Fix sizeof(union ...) fallback not compiling with C++ (#415, #494) * Fix "missing required field" error with submessage callback (#544) * Fix field descriptor sizing with submsg_callback option (#545) * Fix protoc calling on Python 2 (#503) * Fix handling of varying NaN representations in PB_CONVERT_DOUBLE_FLOAT (#543) * Fix clang undefined behavior sanitizer errors. * Change generator to use Python 3 by default (#441, #509) * Binary packages updated to use Python 3 and grpcio-tools * Add support for infinity and nan floating-point defaults (#530, #538) * Add generator option sort_by_tag (#542) * Add type_override option to override type defined in .proto (#497) * Set proto2 enum fields to first value when no default is given, even if nonzero (#532,#539) * Include protoc-gen-nanopb in path in protoc wrapper script * Properly pass error status from protoc wrapper when calling binary protoc * Generator: pass --include_imports when calling protoc (#494) * Create intermediate directories when writing files to relative path (#512) * Add current directory to include path for protoc (#499) * Update readme to use nanopb_generator.py directly * Regression test for proto3 incorrectly considered empty (#504) * CMake: change package name to Nanopb for cmake 3.17 compatibility (#506) * CMake: remove find_package(PythonInterp) (#508) * CMake: use split --nanopb_opt only on protoc >= 3.6 (#515) * CMake: Relax python version spec, allowing Python3. (#534) * Swift package manager (#549) * Rename BUILD as BUILD.bazel (#537- Update to version 0.4.1: * Fix for CVE-2020-5235 - porential exploitable out of memory condition. * Fixes for AVR builds and tests.- As we download the tags directly no need for services and we can fetch it using URL paths - Do not build generators as those require python2 and we are removing that from the dsitribution - Update to 0.4.0: * Make nanopb_generator automatically compile .proto files (#462) * Allow installing as Python package from pip (#460) * Use protoc from grpcio-tools Python package if available (#463) * Change proto3 message types to be optional (#308, #452) * Add pb_decode_ex(), pb_encode_ex() functions. * Automatically rebuild nanopb_pb2.py * Use plugin.proto that comes with python-protobuf (#234)- Update to version 0.3.9.4: * Publishing nanopb-0.3.9.4 * Update changelog * Add test for PB_ENCODE_ARRAYS_UNPACKED * Fix "unused variable" warning when using PB_ENCODE_ARRAYS_UNPACKED * Fix undefined behavior with bool fields (#434) * Make fuzztest detect invalid bool values (#434) * .gitignore: don't ignore generator-bin files (#419) * Don't call stream callback with count=0 (#421) * network_server example: Detect count=0 in read_callback() (#421) * Add scons package to travis rules, for build automation * Introduce new compile time flag: PB_ENCODE_ARRAYS_UNPACKED * Add migration note about enum min/max * Use min/max enum value for min/max * Publishing nanopb-0.3.9.3 * Fix generator error with mangle_names option (#380) * Add testcase for #380 * Fix incorrect PB_STATIC_ASSERT for bytes inside oneof (#363) * Add testcase for #363 * Generator: Allow comma separated options in plugin mode (#343) * Fix encoding of fixed size arrays inside proto3 submessages (#376) * Add regression test for issue #376- Enable PB_FIELD_16BIT setting to add support for tag numbers > 255 and fields larger than 255 bytes.- Add nanopb-source package - some Go programs using gRPC need protobuf definitions which are included inside the source code, but are not included in the devel package.- Update to version 0.3.9.2: * Update changelog & authors * Fix splint test error (#359) * Clarify the usage of callback fields inside oneof sections in the docs * cmake: Include CMAKE_INSTALL_LIBDIR in CMAKE_INSTALL_CMAKEDIR * cmake: Allow to build a shared library * Made some changes for Error Output. * Update README.md * Further test fail fix for Windows- Initial releasei04-ch2d 1733480237  !"#$%&'()"+,-./0123456789:;<=>?@ABCDE,GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>@ABCDEFGHIJKLMNOPQRTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0.4.6-bp156.4.3.1    !!!"""""#$$$%%%%%%%&&&'''())))***++++++++,,---.../000011222324566777888999:::::;;;;<<<<===>>>>>???@@@AAABBBBBBBBBBBBBBBBCCBBBDDDEFEDDDGGGHHHHIIIJJJKKLLLLLMMMNNNNOOOPPPPQQQQQRQSTTUUUUVVVVWWWWWWWXYZZZ[[\]]]]\^^^\____\```\aaaa\bbb\cccddc\ee\fff\ggg\hhh\iii\jjj\kkk\lll\mmm\nnn\ooo\ppp\qqq\rrr\ss\ttt\uuu\vvvv\www\xxxx\yyy\zzz\{{\||\}}\~~\\\\\\\\\\\\\\\\\\\nanopbAUTHORS.txtBUILD.bazelCHANGELOG.txtCMakeLists.txtCONTRIBUTING.mdLICENSE.txtPackage.swiftREADME.mdWORKSPACEbuild.pyconan-wrapperCMakeLists.txtconanfile.pydocsMakefileconcepts.mdfeedback.htmlgenerator_flow.svgindex.mdlogologo.pnglogo.svglogo16px.pnglogo48px.pnglsr.cssmigration.mdreference.mdsecurity.mdwhats_new.mdexamplescmake_relpathCMakeLists.txtREADME.txtprotosimple.protosubunlucky.protosimple.ccmake_simpleCMakeLists.txtREADME.txtsimple.csimple.protonetwork_serverMakefileREADME.txtclient.ccommon.ccommon.hfileproto.optionsfileproto.protoserver.cplatformioplatformio.iniprotopio_with_options.optionspio_with_options.protopio_without_options.protosrcCMakeLists.txtpio_esp32_idf.cpio_with_options.cpio_without_options.ctest.hsimpleMakefileREADME.txtsimple.csimple.protousing_union_messagesMakefileREADME.txtdecode.cencode.cunionproto.protoextraFindNanopb.cmakenanopb-config-version.cmake.innanopb-config.cmakenanopb.mkpb_syshdr.hpoetrypoetry_build.shpyproject.tomlgeneratornanopb_generator.pynanopb_generator.py2platformio_generator.pyprotoMakefile__init__.py_utils.pygoogleprotobufdescriptor.protonanopb.protoprotocprotoc-gen-nanopbprotoc-gen-nanopb-py2protoc-gen-nanopb.batprotoc.batlibrary.jsonpb.hpb_common.cpb_common.hpb_decode.cpb_decode.hpb_encode.cpb_encode.hspm-testobjcc-header.cobjc-header.mobjc-module.mobjc-qualified.mswiftmain.swiftspm_headersnanopbpb.hpb_common.hpb_decode.hpb_encode.hpb.hpb_common.hpb_decode.hpb_encode.htestsMakefileSConstructalltypesSConscriptalltypes.optionsalltypes.protodecode_alltypes.cencode_alltypes.calltypes_callbackSConscriptalltypes.optionsdecode_alltypes_callback.cencode_alltypes_callback.calltypes_pointerSConscriptalltypes.optionsdecode_alltypes_pointer.cencode_alltypes_pointer.calltypes_proto3SConscriptalltypes.optionsalltypes.protodecode_alltypes.cencode_alltypes.calltypes_proto3_callbackSConscriptalltypes.optionsdecode_alltypes_callback.cencode_alltypes_callback.canonymous_oneofSConscriptdecode_oneof.coneof.protoany_typeSConscriptanytest.protodecode_any.cencode_any.cgoogleprotobufany.optionsany.protoduration.protobackwards_compatibilitySConscriptalltypes_legacy.calltypes_legacy.halltypes_legacy.optionsalltypes_legacy.protodecode_legacy.cencode_legacy.cbasic_bufferSConscriptdecode_buffer.cencode_buffer.cbasic_streamSConscriptdecode_stream.cencode_stream.cbuffer_onlySConscriptcallbacksSConscriptcallbacks.protodecode_callbacks.cencode_callbacks.ccommentsSConscriptcomments.expectedcomments.protocommonSConscriptmalloc_wrappers.cmalloc_wrappers.hmalloc_wrappers_syshdr.hperson.prototest_helpers.hunittestproto.protounittests.hcommon_unittestsSConscriptcommon_unittests.ccxx_callback_datatypeSConscriptcxx_callback_datatype.cppmessage.protocxx_descriptorSConscriptmessage.protomessage_descriptor.cccxx_main_programSConscriptcyclic_messagesSConscriptcyclic.protocyclic_callback.optionsencode_cyclic_callback.cdecode_unittestsSConscriptdecode_unittests.cdocker_imagesREADME.mdbuild_all.shubuntu1804Dockerfileubuntu2004Dockerfileencode_arrays_unpackedSConscriptencode_unittestsSConscriptencode_unittests.cenum_minmaxSConscriptenumminmax.protoenumminmax_unittests.cenum_sizesSConscriptenumsizes.protoenumsizes_unittests.cenum_to_stringSConscriptenum.protoenum_to_string.cextensionsSConscriptdecode_extensions.cencode_extensions.cextensions.optionsextensions.protoextra_fieldsSConscriptalltypes_with_extra_fields.pbperson_with_extra_field.expectedperson_with_extra_field.pbfallback_typeSConscriptfallback_type.expectedfallback_type.optionsfallback_type.protofield_size_16SConscriptalltypes.optionsalltypes.protofield_size_16_proto3SConscriptalltypes.optionsalltypes.protodecode_alltypes.cencode_alltypes.cfield_size_32SConscriptalltypes.optionsalltypes.protofixed_countSConscriptfixed_count.protofixed_count_unittests.cfloat_double_conversionSConscriptdoublemsg.protofloat_double_conversion.cfuzztestSConscriptalltypes_callback.optionsalltypes_pointer.optionsalltypes_proto3_pointer.optionsalltypes_proto3_static.optionsalltypes_static.optionscorpus.zipflakystream.cflakystream.hfuzztest.cgenerate_message.cossfuzz.shrandom_data.crandom_data.hregressions.zipsample_datasample1.pbsample2.pbupdate_corpus.shvalidation.cvalidation.hgenerator_relative_pathsSConscriptany.expectedprotoprotobufany.protosimple.protosimple.expectedtest.expectedtest.protoinfinity_nanSConscriptfloats.protoinfinity_nan_test.cinlineSConscriptinline.expectedinline.protoinline_unittests.cintsizesSConscriptintsizes.protointsizes_unittests.cio_errorsSConscriptalltypes.optionsio_errors.cio_errors_pointersSConscriptalltypes.optionsmapSConscriptdecode_map.cencode_map.cmap.optionsmap.protomem_releaseSConscriptmem_release.cmem_release.protomessage_sizesSConscriptdummy.cmessages1.protomessages2.protomissing_fieldsSConscriptmissing_fields.cmissing_fields.protomsgidSConscriptdecode_msgid.cencode_msgid.cmsgid_example.protomultiple_filesSConscriptmultifile1.optionsmultifile1.protomultifile2.protosubdirmultifile2.prototest_multiple_files.cno_errmsgSConscriptno_messagesSConscriptno_messages.protooneofSConscriptdecode_oneof.cencode_oneof.coneof.protooneof_callbackSConscriptdecode_oneof.cencode_oneof.coneof.protooptionsSConscriptoptions.coptions.protooptions_c.expectedoptions_h.expectedproto3_options.expectedproto3_options.protopackage_nameSConscriptpackage_name_nanopbSConscriptproto3_optionalSConscriptoptional.coptional.protoraw_decodeSConscriptraw_decode.cregressionGHSA-gcx3-7m76-287pSConscripttest.ctest.prototest_input.pbissue_118SConscriptenumdef.protoenumuse.protoissue_125SConscriptextensionbug.expectedextensionbug.optionsextensionbug.protoissue_141SConscripttestproto.expectedtestproto.protoissue_145SConscriptcomments.expectedcomments.optionscomments.protoissue_166SConscriptenum_encoded_size.cenums.protoissue_172SConscriptmsg_size.csubmessagesubmessage.optionssubmessage.prototest.protoissue_188SConscriptoneof.protoissue_195SConscripttest.expectedtest.protoissue_203SConscriptfile1.protofile2.protoissue_205SConscriptsize_corruption.csize_corruption.protoissue_227SConscriptunaligned_uint64.cunaligned_uint64.protoissue_229SConscriptmultiple_oneof.cmultiple_oneof.protoissue_242SConscriptzero_value.czero_value.protoissue_247SConscriptpadding.cpadding.protoissue_249SConscripttest.ctest.protoissue_253SConscriptshort_array.cshort_array.protoissue_256SConscriptsubmsg_array.csubmsg_array.protoissue_259SConscriptcallback_pointer.ccallback_pointer.protoissue_306SConscriptlarge_extension.expectedlarge_extension.protoissue_322SConscriptdefaults.cdefaults.protoissue_338SConscriptbigvalue.protoissue_342SConscriptextensions.prototest_extensions.cissue_363SConscriptoneofmsg.prototest_oneofmsg.cissue_376SConscriptfixed_array.optionsfixed_array.prototest_fixarray.cissue_380SConscriptmanglenames.optionsmanglenames.protoissue_395SConscripttest.ctest.optionstest.protoissue_407SConscriptextensions.prototest_extensions.cissue_453SConscripttest.ctest.protoissue_472SConscripttest.protoissue_485SConscriptuint8.expectedissue_487SConscripttest.protoissue_493SConscripttest.protoissue_494SConscriptoneof.protooneof_size.ccsubmessage.protoissue_504SConscripttest.ctest.protoissue_522SConscriptuenum.protoissue_524SConscriptoneof.expectedoneof.protosubmessage.protoissue_535SConscriptissue_535.protoissue_544SConscriptsubmsg_callback.csubmsg_callback.protoissue_545SConscriptsubmsg_callback.protoissue_547SConscripttest.ctest.protoissue_558SConscriptmixed.cmixed.protoissue_569SConscripta.protob.protoissue_610DataPacket.protoLogMessage.protoSConscriptfirst.expectednanopb_generator_bugfirstfirst.protoaa.protoaa.protoab.protobb.protoba.protoissue_611SConscriptuenum.expecteduenum.protoissue_617SConscriptoneof.optionsoneof.prototest_oneof.cissue_631SConscriptsubmsg_callback.prototest.cissue_637SConscriptoneof.protoother.prototest.cissue_644SConscriptint64.protoissue_647SConscriptrepro.crepro.protoissue_692SConscriptoneof.protoother.prototest.cissue_746SConscripttest.protosite_sconsplatforms__init__.pyavr__init__.pyavr.pyavr_io.crun_test.cmips__init__.pymips.pymipsel__init__.pymipsel.pyriscv64__init__.pyriscv64.pystm32__init__.pyrun_test.shstm32.pystm32_ram.ldvectors.csite_init.pysite_toolsnanopb.pysort_by_tagSConscriptsort_by_tag.csort_by_tag.optionssort_by_tag.protospecial_charactersSConscriptfunny-proto+name has.characters.optionsfunny-proto+name has.characters.protospecchars.expectedsplintSConscriptsplint.rcstackusageSConscriptstackusage.cstackusage.optionsstackusage.prototypename_manglingSConscripttest_flatten.ctest_package_initials.ctest_strip_package.cwith_package.optionswith_package.protovalidate_utf8SConscriptwithout_64bitSConscriptalltypes.optionsalltypes.protodecode_alltypes.cencode_alltypes.cno_64bit_syshdr.htoolslist_authors.shmake_linux_package.shmake_mac_package.shmake_windows_package.shset_version.sh/usr/src//usr/src/nanopb//usr/src/nanopb/conan-wrapper//usr/src/nanopb/docs//usr/src/nanopb/docs/logo//usr/src/nanopb/examples//usr/src/nanopb/examples/cmake_relpath//usr/src/nanopb/examples/cmake_relpath/proto//usr/src/nanopb/examples/cmake_relpath/proto/sub//usr/src/nanopb/examples/cmake_simple//usr/src/nanopb/examples/network_server//usr/src/nanopb/examples/platformio//usr/src/nanopb/examples/platformio/proto//usr/src/nanopb/examples/platformio/src//usr/src/nanopb/examples/simple//usr/src/nanopb/examples/using_union_messages//usr/src/nanopb/extra//usr/src/nanopb/extra/poetry//usr/src/nanopb/generator//usr/src/nanopb/generator/proto//usr/src/nanopb/generator/proto/google//usr/src/nanopb/generator/proto/google/protobuf//usr/src/nanopb/spm-test//usr/src/nanopb/spm-test/objc//usr/src/nanopb/spm-test/swift//usr/src/nanopb/spm_headers//usr/src/nanopb/spm_headers/nanopb//usr/src/nanopb/tests//usr/src/nanopb/tests/alltypes//usr/src/nanopb/tests/alltypes_callback//usr/src/nanopb/tests/alltypes_pointer//usr/src/nanopb/tests/alltypes_proto3//usr/src/nanopb/tests/alltypes_proto3_callback//usr/src/nanopb/tests/anonymous_oneof//usr/src/nanopb/tests/any_type//usr/src/nanopb/tests/any_type/google//usr/src/nanopb/tests/any_type/google/protobuf//usr/src/nanopb/tests/backwards_compatibility//usr/src/nanopb/tests/basic_buffer//usr/src/nanopb/tests/basic_stream//usr/src/nanopb/tests/buffer_only//usr/src/nanopb/tests/callbacks//usr/src/nanopb/tests/comments//usr/src/nanopb/tests/common//usr/src/nanopb/tests/common_unittests//usr/src/nanopb/tests/cxx_callback_datatype//usr/src/nanopb/tests/cxx_descriptor//usr/src/nanopb/tests/cxx_main_program//usr/src/nanopb/tests/cyclic_messages//usr/src/nanopb/tests/decode_unittests//usr/src/nanopb/tests/docker_images//usr/src/nanopb/tests/docker_images/ubuntu1804//usr/src/nanopb/tests/docker_images/ubuntu2004//usr/src/nanopb/tests/encode_arrays_unpacked//usr/src/nanopb/tests/encode_unittests//usr/src/nanopb/tests/enum_minmax//usr/src/nanopb/tests/enum_sizes//usr/src/nanopb/tests/enum_to_string//usr/src/nanopb/tests/extensions//usr/src/nanopb/tests/extra_fields//usr/src/nanopb/tests/fallback_type//usr/src/nanopb/tests/field_size_16//usr/src/nanopb/tests/field_size_16_proto3//usr/src/nanopb/tests/field_size_32//usr/src/nanopb/tests/fixed_count//usr/src/nanopb/tests/float_double_conversion//usr/src/nanopb/tests/fuzztest//usr/src/nanopb/tests/fuzztest/sample_data//usr/src/nanopb/tests/generator_relative_paths//usr/src/nanopb/tests/generator_relative_paths/proto//usr/src/nanopb/tests/generator_relative_paths/proto/protobuf//usr/src/nanopb/tests/infinity_nan//usr/src/nanopb/tests/inline//usr/src/nanopb/tests/intsizes//usr/src/nanopb/tests/io_errors//usr/src/nanopb/tests/io_errors_pointers//usr/src/nanopb/tests/map//usr/src/nanopb/tests/mem_release//usr/src/nanopb/tests/message_sizes//usr/src/nanopb/tests/missing_fields//usr/src/nanopb/tests/msgid//usr/src/nanopb/tests/multiple_files//usr/src/nanopb/tests/multiple_files/subdir//usr/src/nanopb/tests/no_errmsg//usr/src/nanopb/tests/no_messages//usr/src/nanopb/tests/oneof//usr/src/nanopb/tests/oneof_callback//usr/src/nanopb/tests/options//usr/src/nanopb/tests/package_name//usr/src/nanopb/tests/package_name_nanopb//usr/src/nanopb/tests/proto3_optional//usr/src/nanopb/tests/raw_decode//usr/src/nanopb/tests/regression//usr/src/nanopb/tests/regression/GHSA-gcx3-7m76-287p//usr/src/nanopb/tests/regression/issue_118//usr/src/nanopb/tests/regression/issue_125//usr/src/nanopb/tests/regression/issue_141//usr/src/nanopb/tests/regression/issue_145//usr/src/nanopb/tests/regression/issue_166//usr/src/nanopb/tests/regression/issue_172//usr/src/nanopb/tests/regression/issue_172/submessage//usr/src/nanopb/tests/regression/issue_188//usr/src/nanopb/tests/regression/issue_195//usr/src/nanopb/tests/regression/issue_203//usr/src/nanopb/tests/regression/issue_205//usr/src/nanopb/tests/regression/issue_227//usr/src/nanopb/tests/regression/issue_229//usr/src/nanopb/tests/regression/issue_242//usr/src/nanopb/tests/regression/issue_247//usr/src/nanopb/tests/regression/issue_249//usr/src/nanopb/tests/regression/issue_253//usr/src/nanopb/tests/regression/issue_256//usr/src/nanopb/tests/regression/issue_259//usr/src/nanopb/tests/regression/issue_306//usr/src/nanopb/tests/regression/issue_322//usr/src/nanopb/tests/regression/issue_338//usr/src/nanopb/tests/regression/issue_342//usr/src/nanopb/tests/regression/issue_363//usr/src/nanopb/tests/regression/issue_376//usr/src/nanopb/tests/regression/issue_380//usr/src/nanopb/tests/regression/issue_395//usr/src/nanopb/tests/regression/issue_407//usr/src/nanopb/tests/regression/issue_453//usr/src/nanopb/tests/regression/issue_472//usr/src/nanopb/tests/regression/issue_485//usr/src/nanopb/tests/regression/issue_487//usr/src/nanopb/tests/regression/issue_493//usr/src/nanopb/tests/regression/issue_494//usr/src/nanopb/tests/regression/issue_504//usr/src/nanopb/tests/regression/issue_522//usr/src/nanopb/tests/regression/issue_524//usr/src/nanopb/tests/regression/issue_535//usr/src/nanopb/tests/regression/issue_544//usr/src/nanopb/tests/regression/issue_545//usr/src/nanopb/tests/regression/issue_547//usr/src/nanopb/tests/regression/issue_558//usr/src/nanopb/tests/regression/issue_569//usr/src/nanopb/tests/regression/issue_610//usr/src/nanopb/tests/regression/issue_610/nanopb_generator_bug//usr/src/nanopb/tests/regression/issue_610/nanopb_generator_bug/first//usr/src/nanopb/tests/regression/issue_610/nanopb_generator_bug/first/a//usr/src/nanopb/tests/regression/issue_610/nanopb_generator_bug/first/b//usr/src/nanopb/tests/regression/issue_611//usr/src/nanopb/tests/regression/issue_617//usr/src/nanopb/tests/regression/issue_631//usr/src/nanopb/tests/regression/issue_637//usr/src/nanopb/tests/regression/issue_644//usr/src/nanopb/tests/regression/issue_647//usr/src/nanopb/tests/regression/issue_692//usr/src/nanopb/tests/regression/issue_746//usr/src/nanopb/tests/site_scons//usr/src/nanopb/tests/site_scons/platforms//usr/src/nanopb/tests/site_scons/platforms/avr//usr/src/nanopb/tests/site_scons/platforms/mips//usr/src/nanopb/tests/site_scons/platforms/mipsel//usr/src/nanopb/tests/site_scons/platforms/riscv64//usr/src/nanopb/tests/site_scons/platforms/stm32//usr/src/nanopb/tests/site_scons/site_tools//usr/src/nanopb/tests/sort_by_tag//usr/src/nanopb/tests/special_characters//usr/src/nanopb/tests/splint//usr/src/nanopb/tests/stackusage//usr/src/nanopb/tests/typename_mangling//usr/src/nanopb/tests/validate_utf8//usr/src/nanopb/tests/without_64bit//usr/src/nanopb/tools/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protectionobs://build.opensuse.org/openSUSE:Maintenance:18700/openSUSE_Backports_SLE-15-SP6_Update/0de4a27938a479ecf3ae37f75f15b294-nanopb.openSUSE_Backports_SLE-15-SP6_Updatedrpmxz5x86_64-suse-linux                                                      directoryUTF-8 Unicode textASCII textPython script, ASCII text executablemakefile script, ASCII textUTF-8 Unicode text, with very long linesHTML document, ASCII textSVG Scalable Vector Graphics imageC source, ASCII textPNG image data, 192 x 192, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 48 x 48, 8-bit/color RGBA, non-interlacedASCII text, with very long linesJava source, ASCII textASCII text, with CRLF line terminatorsBourne-Again shell script, ASCII text executablePOSIX shell script, ASCII text executableDOS batch file, ASCII textObjective-C source, ASCII textC source, ASCII text, with very long linesgzip ERROR: Stdin has more than one entry--rest ignored (Zip archive data, at least v2.0 to extract Zip archive data, at least v2.0 to extract)data (Zip archive data, at least v2.0 to extract Zip archive data, at least v2.0 to extract)Perl5 module source, ASCII textJava source, UTF-8 Unicode textemptyassembler source, ASCII text RRRRRRRRRRRRRRR|q:n"utf-8af908ce2c72bc1b35a3eedd7c93f765f2066f96780e5338c194c278ee339bff7? 7zXZ !t/ ]"k%%غ75s}jGڕ*l2^Nop)h@t{IS3o10_>zT69{_P=rn26oB[{zR"NI&Gqr -\G!";+b^94̋sJ^γ_T Kgc#[ER4Zr=ȅl? tŨinNrPJEC)ps(əe|4Al #=%ju0u o0u}v-`9.$ MM_UTQ02vh[!#do8ePfV?V7L w\~)ʨ$:Q Du+EѪ[r03zTnKI4({;G񆋷rKեKu3 dICĔvQA6@2ލ&*hCJ~/Z9*\mK$qeWMxt]0"6pR.Рt'Z5CU@ˢT*B/z{$ΧՇ%kZx#THG52Wir?ڧ/8Nn~U$L5\Pp60PNnԡ,.5}>nC?KjQ| ZzMT&8@ze$N_I+v؏[˨vf8?ӯ %Nn5Kld6cOz2|LSrN:N `U6 B;LHyB.MZ| GUUG_?b 8yY@.E G l(&Z ɖQD.G0-D%Eh))?0)+phnFz~0RSբCPZ| G`T7";qz@Pwa .lm!Kdv,irU!5>0- ]<*Tgbz4\Z?lq9bz Xn*|Qkl识 1vdѴLGZWZ#UCv82GU iG i'sbȺ=IӉkU}zM\ xzEĈ3Al&kf*ԳgٺĄ-K.O~703QV{ TJ:w ,F;Bt+#/δ Z*(bYfO.RfhnݪD +@ ;kXE(L }g/(!Y@ E 8t1kd0_J΀bN#1cjxT$kD؎R^KQDphjQ#Ȼ$8/C\nF4"/8?};B-haTsgu>'b6:nF𶽄z>֋vj<vpË3*MPۮc(Q9~尃 K!erӢ!Utaqw~BLK/ Wx3qDG&NFϓ̠O`TN܊XsٷmL/q_`9y>oT8@|}\ުPV&He'nxMw5Ļ<ߺ^"!ѲDZQ#(o{ⰀߍYK#|Ca]SqZ9טJڂ .L٤}ɪ tIarmÕx%:=n_'t9)ܻQ~|rS܉@,pe >:D;JK ؊hoX`7_hd%S*M~6GG3ydY@._7n% -p<1lFVe"R X!Vg@ h)(0r82/w$=R\|I,sUա(:0 XZ5t;(]fc=2ۢA3(E^BRFawZ`_ j5[^e'xQI"lTJ辰[$BiCFŎ45p&A@mHy}4 &ौtanH_)wC vNjW% 1*HGq_۾- fF-/~KRݼЙ8Z(~6WqH}9 m;[" RoO@Jf_X aCDbWQӀowŃiKTwY>tT#@b_A Pyy~nɳm=f3<.XnLu2[T u3Ղt<:Y!%gAtR}₋evQ;j  Ҋʇ_I g%='47z( aت4yYabq!'n3 L n kmnb}¨zV:H[tkd=1k.`|f/ lqqBv֣s;a%C.|F_q:^ILg\e0*[tz隩KA[ Rԣ5G+E[/.$SL| ֳehؐ/2@A3~ELǎG1YjBa ."!,juZ1,*|!"wK!5%=K\TT07'au*l1`sO4Xuug>ϏxMj+*j/4\fm=!٨7{R*bfJ*O]k&w)0cBUY- $FqE=@*k9!Βv h_;S' wdFQB;ŭ܈Z.H(ɽ%68(ډ44?Su]0m"]W%lr!h_7E7:C1j ^f.BTYG]5(F1@O`*ū";bOݶ YZ