python3-pycryptodomex-3.9.9-150300.3.3.1<>,܉e p9|.EuTΝS#5o1f (s.6cY/E-m]5=|pKG\>X Qj,Ъ@יpS@2~Y0UV Q&>%0PO,MX"ad#rUm6!$TG@DhYl ` ҆ /,؛:/^R~ ĚAq[yиzB\| /kl*iq4~>A?d + L $=^k      '0  7d  .1  2@ Bt V jk( {\{ { | (|8}9}`:~F`Gt H I XY\ ]P ^9EbKbcL dLeLfLlLuL v\2wr x yL ztCpython3-pycryptodomex3.9.9150300.3.3.1Cryptographic library for PythonPyCryptodomex is a self-contained Python package of low-level cryptographic primitives. Unlike PyCryptodome, it resides in its own namespace `Cryptodome`. PyCryptodome is a fork of PyCrypto. It brings several enhancements with respect to the last official version of PyCrypto (2.6.1), for instance: * Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB) * Accelerated AES on Intel platforms via AES-NI * First class support for PyPy * Elliptic curves cryptography (NIST P-256 curve only) * Better and more compact API (`nonce` and `iv` attributes for ciphers, automatic generation of random nonces and IVs, simplified CTR cipher mode, and more) * SHA-3 (including SHAKE XOFs), SHA-512/t and BLAKE2 hash algorithms * Salsa20 and ChaCha20 stream ciphers * Poly1305 MAC * ChaCha20-Poly1305 authenticated cipher * scrypt and HKDF * Deterministic (EC)DSA * Password-protected PKCS#8 key containers * Shamir's Secret Sharing scheme * Random numbers get sourced directly from the OS (and not from a CSPRNG in userspace) * Simplified install process, including better support for Windows * Cleaner RSA and DSA key generation (largely based on FIPS 186-4) * Major clean ups and simplification of the code base PyCryptodomex is not a wrapper to a separate C library like *OpenSSL*. To the largest possible extent, algorithms are implemented in pure Python. Only the pieces that are extremely critical to performance (e.g. block ciphers) are implemented as C extensions.e s390zp37PSUSE Linux Enterprise 15SUSE LLC BSD-2-Clausehttps://www.suse.com/Development/Languages/Pythonhttps://www.pycryptodome.orglinuxs390x%akr0X*-),K ! G;a' H{{]]&&ZZ  [[ y yFF++//77BB9999.G.G'*_@*E>0$8 TSM~(=,7'(g'7G'''x7'$m$(pb . d 4n00''''''777ww_99??ss##dd00bb<<22   ''</"?%)%)X,X7+-yeN,Q++,,  OO++xMg"Z +GGJJW[IE 6!p- 3LLww))WW Do-- + +~'|22--m1m1SS BBjj00@@::Z[Z[/4/4Y5Y5vvJJmmFF@@$$KKBx` 'O?"SN1y^>Ds3fn$o!1RA)Y 1 ?6&%&(60i 4 B9&%&(90lb_Ssc!o|! /o~j=~ 1 ?6&%&(60ih),\\>T6[>^^>V6]> U U0U*0\\>T6[>0KP O,X lk;kz4k}sjk!8BxWuZjŷ <<dd,,(()) d d44%%22}},,&:i6z5 7 G s 5 : ; : ;#F#dG "koPXxhh<Dd OWwSa 88 D?? ~ ~xn% }}[[\\%9>?"y"ykk&&GG**ZZ%P|,!/c ]vy.:::,+ B>[;WP {{{i`z22 2xHNm!a* Z [ ' 8wK!3h}  f1+1+996=qJ p|2XnkɴqO=iiH2]=oWr!Q n iVXLU$G[ 9<ċdšdd.n`JƐd##UUUURR$x$x r(a)zf ##OO~~;N7//KK*c*c"85B "RZZ__II" " kkkk ;xd(x| r8cb ^ 9]AA큤큤큤A큤큤큤A큤큤A큤큤A큤A큤A큤A큤A큤A큤A큤A큤큤A큤A큤AA큤A큤AA큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤AA큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤큤A큤A큤A큤A큤eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3e_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3e_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_3_3_3e_3_3_3e_3e_3_3_3e_3_3_3_3_3_3e_3_3_3_3_3_3_3_3_3_3_3_3_3e_3eee eeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeee_3_3_3_3eeeeeeeeeeeeeeeeeeeeeeeeeeee _3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3e_3_3_3_3_3_3_3_3eeeeeeeeeeeeeeeeeeeeeeee_3_3e_3_3_3e_3_3_3e_3_3_3e_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3_3eee eeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_3e eeeeee _3_3_3e _37db0ff87c0db005e0db052ab6e12b3e6c3059ea2985336b45ea4f893d7f54a91dda8449f8df0985bf7ef17669e589bce358e9910204927a2153a05308a0b55493703b8d8a581a6e4d74b94e1c7482c0d19b1cabbdf8ae771ecf29e775291d022ce031f518df9c3502e122d1aa6416e1e8fcd40e7f3b02c6e67d80dd6cde80218c7ff0bfca03fa4392878839209067254fc210f79dae3ec528643e478d4646b9fb0cc3bdf26477a89e61b1f41862c80effff83d0268714d3848c45c0e39f227662b9845ea76f6afc16c1e180b5f68ab77250caa0e0f0b0ac082eebc34d854d5a8903a286b3331635f7bdd232d3ee84d27d7faf0f4b870d5b29f261aec2a160b8fdd70e3b5506c89ada43ef76e701d7dfc511cdf333b8522bc24a2a62be6fc72f55e0564f703affd5efb2db4269b6e0ed91f8f0ecb3c2621dfc35d646ab6af2822bbb617d243bd301c15ec86edfc36f2cffa47abe4c6e4f3b1a119cd386cbd64fbfe5d7186d3b20666041cfec5b6693c11066929e817f69dcde6d7240bf3cfbded5b4b4e9819283737f0b7080f1bd4f0d1d526dec67c2158677a14db01cda346de8755398b1383cccf4dc0ba57f6868825d790d2e6d8783798f66eaeaf4e5d282779b8073aa3468c2625228161dd6e4a5d8d7b6909ef7248e1402f533c42aa3ee6b61359013c59d10faf3a1fd5ed0559bba27f112bebf66700ebb5a5415fe73f50aa621a80e2e13061b6db5b02ec1007f717b9967c64da2ca295b798a02de2b7876abbf8521bfb9528002f7e81fd5c790cbfacff5f0a73dfd37a33717ed329e07e488b9cbd3208940bcb5f66bc6576ba68b97a16b18907ea5a678cca0d156533195d1679ff4bfcc362d4603d381b3dc491ecbd3f16016499d497ed2b56fdaafe06360ccd9ffbecb8a86bed8ab7fef6e43f0baa6524707c612a6de2dbaec24b5d425f3cf14cbacf7c152a44e2ddfa1843b9ae30e98af323bc632e61eb40dfff5dc94aecda62105cfd0eefa0e0c3990dab0b320b9dd3e9985d67eaa8ad0cc9a4ee7ae2f8eafc737c34aed4f5575a687220b35efe7f25bc4913c365a1f2de329592dae7c2b46e7fd421cca515c8e66829f30fd4751db17d35c822204423aab2ff06957e2e9311e3746d77339c59322f3b1aa0bc4d9aef623d3f939a9dc22ef26c1340e898405ec4956c931895cb9da4dc123440c1f57e4d8e17d118fcd9bdc39cfc0b2825125a07f3bc6f92aa3a6aa302ecd62984cd03a877bba7110c367c248fdfd309d6aedc0fd9b26a8e14cf322b84360bf845795db18ddf7f7d4f35dbf7dead73e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855435767193a723275e6c00dab795e90773a28d684adddaddb62f6600d68422615d4e3bc1ef5da564820c3ea6267049f6fc5449bbe8ef7d25a910e138e91825e45ba75fddfdc3c152754e223272e81c69e0ccc24d0e7014ca0538aab5f55269c9cf38855514dcc246256bc59752010dfb93d90e55ea423964e804fc18df7654b80db5f926ba493f2e436977499ca076dfc1fec50d888ccda97726ce6ab6943854584a34cb453e487e53d2b53a5ac6cba159e42984a1ec94659fd308c688efd30434b81b9cceab4c38d6dc4aef6fa92c57b161d930988c72bc9e4aa7afb6c154d86246a038c1f5a7f61f1d2fe143a3e2a4edecbc15c1e5ee3ba7ba8d28578f3c2ca1efdfd1a4bb42dc4dbd51cebc613192f5bc916793c13da033c60c541af8081f2f386c7e15e74a5077ca8e90af63f52bf85ee4382016ea72e517478ad7b7adcf5621594832498311526be43fed6306668868ba81b8006fab6e3f3aa4f6a56cded278c2c7b9e71311bed956e7b70291a7cfe50440ec4829998ed2652ca574a710adbd0e06af61150506e11e5d374662e2f4ff370cca7c2a6eb88295ba27678fa2d6ae7a681000ab8e5ccb3f5dd4a80da7da15ae125a31d5c58101261a37d4c70351e1e562f4174590b009b9889fed5a77d2cd3cb68ac1f71d92842e19588a4ca740a547cebea848e238127175a9334adda8c8b4f53810d23b930f3b090417d6574158c685ee0702c81dcc51540b58d785065af781b88c3f51c7ca274614c0c3902bec5b47488fe16a65e014319f62f8b9dc84b5ed5b44ba46ab40dfb4699e7befa185edd14c86276f39246bb273080899ac8b2e596219f6f843218695dd0fd1f7e0b9d73d062622a28d19a9c47d5e3296343d2029692132cf150689d902e63d4ab65b3191ac7461d8656ea1d576e075f2f364414254a0c2b67c615dc6e1dc83ea765b3191ac7461d8656ea1d576e075f2f364414254a0c2b67c615dc6e1dc83ea7e13f77a41174b5c013fbf440cf3b350df238944ad50ab6ddb626e5eabc49b4563bce581706de08fa9f5ded87202b96ccdb9389df77ea23417cc25b2b2269e7a70d33871631ec4a7c51607cb8af6fd2e4da84b21ee734bb6a5b77bac45688d0f2dcf0d35e595261688e070f0e6ece99900e72753942310faa2e8f2538c9cdeccfc63eae2d3fa5ca257c73406a364e957d647e74493e9efe215e41772b9cb96627c63eae2d3fa5ca257c73406a364e957d647e74493e9efe215e41772b9cb966279bfae6e68eb447c91d5da7843aa3fecce12214403efd5daab5c6aab9649dbb8e9bfae6e68eb447c91d5da7843aa3fecce12214403efd5daab5c6aab9649dbb8e24a47a650a730974a2d37f10c6440d3635c9695a76eebe47c4de1151113148f7a791826b1d820df6fb7a92124f2865445c50df2a6b4c69da7b4a68e30790b093966530d910d206985c6e80b39fca5ffda5b25ef223680680bac7921908f29d0167d2fb2b3af02822e21c5cea4ce2a13de7c85e564a51a06d6a78c3dbd3098acd9474276f1642c1a837f55c881d905eca3f9af806bae0d7851062b8959b7cd935de60cabf8a01cc8dd94ffe11f2ab80525cf4a39300d9e73e7d3643f252256d115a15ca36645a41ef253df445f33fa9bb6bb4073e496403bac760b6ff12aaaa2aa17ec634f87bf19816a63d682029297c1fc06b0f81cba331159a444e47ae90a8b7ab43c7547a6529946056ea95665cfbed04f6f08eb170ffe2427e1d915295dfb7ab43c7547a6529946056ea95665cfbed04f6f08eb170ffe2427e1d915295df5a64ab38e7196645322d000ee4c9141ecd076e74c59f5b97eb498bca0819ff6247b40c9a286e6110fa229fbb98c4a4afa590f6b11117db5977ee1644f8ccac371aa8f652c92e07259827215d06ff5ff100a85834342ad7c5817b4d3cbc81f5e58a2dafeda9fbd877a0c36c0be5028de66b276256b29fe7fe2f3c04c9cddd2f095c6e17ebdfe2200b2585701d2e76b00118b37d7984418fe89bb928543300995f5c6e17ebdfe2200b2585701d2e76b00118b37d7984418fe89bb928543300995f0b3fa3fae96adc04d724322403be72ad8579ffd71d69320b101aba5711b0327f0b3fa3fae96adc04d724322403be72ad8579ffd71d69320b101aba5711b0327fc4e3dbaec27ffcee46db064af5be99331d1c027dfdf0eef03349e06bc283f29086e882f5032c5230742d77c17ed9ddc8e3aa60e0a28bebd60c22bdfb914fd394d7611abebdc5929f4fe4c9271433bf3dbffe3de7fb51b49b31a57f20d8d6b535d7611abebdc5929f4fe4c9271433bf3dbffe3de7fb51b49b31a57f20d8d6b535a002589ac325d22ddb783b3134ad00236fbd73c575681f76a8dccebbc4af1b6f70369afb380d21ba2c2c7261c2c0edb7b60e4c4fa3cd1522e0e0df8fde5206c3a87e6911036e79f69b79157e5f3fba000f79dcc15dfd9db4cc67814f06bab74bceaabdd63011be674f5ece7cbb4b823fe0fc72dcec83ae4b7fc9d6f554187b3b652b3848e962bc81bf254c649c38d02ace196069a4c003bb2b60ca71bcffd78395f21e1f1266caa9815a4f38778cfdd37d0ea284d2057d607da548691a883f213ccd2c94105f59d03811cd098ccf8e2617a26640853d60000ef2ecbcaa4344263c58aa6d68dba1669e2efd0cd069c4e28f3fbefea1ec079dbf970dab9d55365551c675cce6655674d29646bd475c85a3b91a0e1ade88b2827bb014d3901c02e25d739cf8629b6768516a0af923916284a59a1a1f215cfd528b6918dc3f39fa5b5473ed4dd03ed9bb42bd113ee27a51b460ab02983bac1356a47499575a68f09d87cd45de6350734f1d56bfff88fdffe358b17ae974d0eb03c3d98223f061ec8f3e0cd43ec558d8344cef6c0cfa1ef8bc289c78d17fc9e681c4e03a6edfd97e60a003964d0d6aca73afec17eeb9e5e89041754e084447328e5c480728c8f9d308e6def6407412d200eaeb0b7361f695a93c668c1ce952fb10bc368fd83a8dbcb141e1e23ee9d41962ade221bc039d3181657d6f70bba96d2ec093d172d6b96c2f4973146b5b35758fb6ef6964b7148eb723a8a8b76d3ef7cd9115ea9978c1138ab1775bba601218df8aee9b3cf73edcfa49e73279d8b6e3bded7ef2f95619bf2098f219d9efd7f94464fbc2c136267269c7dc4b7122d6f813f18961c88fb40bc9c2121cf74aa2a2ac4c88bd910b2b39f97c1f0e7b439de558271e01afa5f7cc3e1682eb16a9efc497f417f9e91ce80f5117d4c864ade83c72229da29285e2f8229d1a862418eac662a2914a5504b80c3774c6c20d9fddba0236d52d19c9fdb845b326f79179f2ba1a1057a157be8cc88ee75609004269d39bd48d81b95fba022dd7b5c33972f9f0539ce981cb1d03edca89a6ab156b8a2c2b8a559d18c2a3d0211963085eab7db1dcc4a13e5f62087a2b06a222b4ff00e9c3e7977b2d9b7a24e425aef707f31d4180ae912690e239375f534f399a2d8b809d2166186ffc15dad0a17df487f7f59f68618eacdbf1a4ccba76203cdaaa2e878d455557888dc393b7e8214ce9c9bbf630961a665bffd6211fe4c263dc4e0e642bd6edaa8d16a608e9230e4d74485b09a5f75a1f14852d89cd73b3f5981baa6b1d8013a477ba4865bd06f8ad09aecf7d45b8f8cbf7d599932aad6bd6a283546018e71710b58f738a6e740724eb7cfc28a6bd5b0b54721aa81b5aa672b86115cd9bfa9beedfefc22044dc222b026d507fd5147d4ff5432158089446ee3b9d9ffac066b4a18187bba57182796a4b16af771edf01c1159af73cc1f144ca190a939aeec03d0fbb70e2bc1707ac788cef6ea854a1d8ba17bfcf1e4f88d65661b2e4c6dbfb261ce9c9eab248d79751c6c3f318b38ed36788d00a70e50cd88764bdc81f73557c532e4869c3285b14897112b23fc6ae4caeacf63b9fa8d9328eed714a12a2a75662f00ebfd537335d93d0d8666d4968b400c2b5ea46b857f40866ba2a2d473d2ec960c57b7bf981473c2821b6fe789e2eca1aa0f7f90a3f07ebfb8a441b9e6d7c170f7ca1023358457cbb6726d7c4ff8fd0708c20cf69227a01aa69aa9c0ed6eee61c6e928279f45b2e6c62c79027fa68f039c591954a8a7c598e322c25a2dd5ab9ddc1a248dab81c586d60d995e0a6b0ebd21265515cfcb04d2d9333eaaade8c8de05269ebc7f63b0be232d0ab9fcc6fc58cf7d2cfbab1f50fe14bfa02c0799c817fc4225addd3a1f2a3bafb5c082494a5d6a7bb6db5389916a2914c620d8a0c641205a1e966f20c9b7a70298e8a1aacf6d521666885c3abba3d2d33266e5b9809beb2bf55a8a69e39d20090366c38bd47eb4002720d9fe1d68bf077ef302efa32a9df6de6157c0c870447f911ee8ba226184d9f4f66998846f8ad53a3ab88a19f8c550cff8799fb9c3515d8223f2239718a11718de13230c871e122095bd92712a30ca0e6d7c1aec6498529ccbdbbb28e18822244668d1d3b6d352b21caf3b436d0fbe6f9b3152198ee4f2b61ac91e8f13484da480914dad6e3622125718b1229682dbccf38ed9b594048090b022cc2779bd0d068bffb8bd3f4e882587d10f3272d5146ab0a09de70b59e0e056f8eeedbde6ef39bb1acbf8c8ead46da147c87e46c4d1aa8c4738302247bd84e2d982f8866a84bbd8af6d2be4049751f92da5754a84a732bcbc4449efec05a260ee304913cf3f4b78d6534b88bbc975f0d6908e6a25fee21e04d21a8b6d8ab2cf211ca2bd28d9b9c401eda3da61f86b5249fca28b7a3ab9a65d2845a1ae29c4d45537c1657666e4d64b400bf23db0218c1a60ccde4a7f66ba8f83cd993d3ad880644f84dbf3c2c85cf8a47437468ba82e5528dcd79a6dfdd271980e2052c3f0fb48238f03cd22de5de68d9b0fbe69a165255510d2b0914b3f9450f725f18c7d4149a5379b086c0a7f7eebb0b46bf05cbf730375a7d00a2b8fbd7e3b718529b9b586dda357b33da5d2aee86a400ac0929c044f1e59457054c0a4491e9e2fb95ff5f52b60138ab196721f0e5b60163c7e2fdaba1f4b6387e464da32cfd3dd1a06956bdd12e8ed4d3e17bb38fabb02f0db248b07ea92020e94cdebcdb41fdbe0ccad26af08a35c6e7dd38ee952fe9cc05c0a70cf220250b8d3c23450dc408e91526c9e1d9ae5f08f2fb0227a7a62db695ca6cb91354ca99167c1bf11b1bc88c087cef0573f7e95b0d4c9c5c34e19e27faa2f41b4d6a090670bf1fd9f85534f18aae27e3e3d0741316b1acc0ae6ed0d37108876abaf337424f5540ce774d123bfa0d939668ea6ea142ac0368538b627bfa824580e435d2c4919d71683bb935d0db202cab4addac8f43787c85b01aeac4bb4f16601e66322a9f5bb828859b0fe9416ddee5bd6805aae22a50031a8aca2f7b2d075743669aafa9bce67a85df9e3042363083f2737113cf92e2f47b5c9641635d577fa2e4fff7cdcd4f0efd9793aa3d4a6d6471431ea3cb1bbae3f7d87a90844a3f755f69f320327349cfd222899bd557f2771696e5f1cefe9a30cc07fabee47addc75b59a4dc4bcb8030bbeb658c6f449d25f53886ab66b18ecebaff5de9c795e5531fe5ba041357137468876478db794f9497bce3427a467d079b2d68e2c67540b4afe43cc3712056a5c8859f768c630db76373198406dff9ca97bb21c8948dbba80983a3ee95b4967ad1d5233327d7545f8da96718f187a84dc6ffb897c707dfae1dc687b8dae5fa1f1c5f31796c9d9e36650ff663159953b6817468433c4b404f810817bee44735ae64a77754646b63422263b47beb2e2dbcc017d1045eb6358a99e74bc4651be455f3331f1fb453879f0b2642ae0b3f68ecf5ed6f2dd191cbff7b91f33698cc25c0d55bb7354189eea373311f8e21a3b517e510f11e6168e2f028072b9a1a9397c0b855f2587c6185b38bb3e4840077fc9427fe139936f92265883e26388fa5fb7410b014656a6f2b61247e99cbbb46560b592a8e5609714ff4b55920212f1e38f54abf15a798c03c7fe9d2efdf7d56bf5b279c6c40d948457147442c793053d5c311b2a8f1cf68c052089d66ba99cc15405939479345fbc292dbc56e0b2cae52cb1f993a42078c1d548cfe38caaf687b58a45ee525c7a9f49b639ab96be1d3bbdf1e1c1759ccc71299fefbc25d0d09b07f15666070723b291ea58e11d4a1b3bdd93830ddcf0d8f05a24248786a2ed6a040245620ab2c2918f3a31c5fff60cd85fba321129694c8f7d83f988b2de92c43d2051126364e5d180af794de3c87ddbd39c566a3607667052129d681d80ff308773c2aff28f14cf63d8f79dbfc59872eb49ff21ddbcddd8172fd06364da21fb633485cbbb741c44a12ab319690ebb3a1e40c5e5d7d07240987cf6daaf88546d152f4b2df445b2de35bee231141d80986c91fd2ec30ec692f44029d91889b8735578e993549fcb11429afa40036818344388e99ac0c7da4aabdc3f2cd6eefe1fd3d4212b6d0a6706f1d02df96a0b116b40f83190326084ab16f9f541066c54ff521e9b3ba332d612ba0f61c44529e98e28f1b234076730a4a6103a0e429f576d3493953a8a90445dfd9823ffcf42e6bbbe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558aae24bb8a0f3c4c45e0b08acae223aba73007d37d59e2d99531de7baeb07444d812e2bb1345e82193e732f2b3e2727e4819a91fdb6a5f565383a703c9cb9970f2cd8b4f8cb9a509f37e5117c4bd1abb3edf029c991ef2d4ed9f1caff7ef65885672fafb2df77b772b199369b7ef54e47a4d47baa3c7079d3c793e736dc7ae07f00cbb8511e446f56e937724a45add7efb132c4b2394b5507a69d22d2f5033dd3a0b6414d267e9e206c74b0fa859029f68c10bd0f9ba3008af7db217c7f985289471d8a0d9d3443c10d5a93248fb94dbc16f934e3527ec62f334b4e035312438464e9a54d54afb8aee9426040a552f51a9b3353877a4512488786dfd42819dbb5d554573e36a9e74cf63ce6e94f62331b1ac39fe0b208b7523ce613bcabc45b30ceb827a4671129dc80958a42e8d25a980131b7e30985f92d30a35d2d6a49dc3c3c3ff6aba8f625c2ff95f6e23759fba34d3a2e7000d76ad879e026a6005e3a2d685d1958c318b8814518c7d1e7ec9387435d6114e4a17a1ef1884a7c9141a4111460ddb45b8a105f6875391096a7cea92f945de88db8f876128cdd023ad3a3e740694ca066ec641f4df4904e71b9f9a350de5e9ef97eef4416cadb62e2c05df56f23e9d5d525c52dd1777afc4e308e9b86e65ea71e84c5a2fff7a213a6deed3d9d982c52f14f3ba3ac84b9b6a8115d21408a6072ca28e747d940bb42b98ed19f31c1017d50cea686cd2581565d7ef4336356643004913ad9fa8c244c2fd1c48f31c1017d50cea686cd2581565d7ef4336356643004913ad9fa8c244c2fd1c48839c73802fd0ec3098868eca078c5d6dc17a2143f482ceabdaff0343b50d6f370e41585d1df60c800e0cad70d8bc531c136f2e1ac7ef114c62f8ec9fc7a3c1c3662b95e321a67d26753e45f4c0d9408b2cad4e38d201623094b021c1bc05bd79662b95e321a67d26753e45f4c0d9408b2cad4e38d201623094b021c1bc05bd7962e89369d2c5dda0b98e2950d860ed0c71da573e4b7acfd3e52ff8c460e12a61a5b215404248b75d3f8aa2af2031ed23ebb938221f6b41342c199158d4d49c77b82daf835e9f89552d06c2c4af1a0c9a65ecee33f244276521ba2eeeadc659b14869d5564c879e94e866136be72dd5832244fb27805e27b08c7e748da745bbdb7758e5f7b1818dcd49af378a04c0c1eba7ebc691843b63b366aa3943f7e1349454970ca79874cbfc38b83faca095bd685fa0c0acdf24a25ce099f93d07a78ef3e02a4b7b5ad38561097de721eab09a5f011d05420836466040efcff47ae4915126bdd3c43a34f1233ca98ab7404e76a32ac4206914e2c55b54603300ae472426b2e3b9a862f55f2a210aaf091fe75b39815482c8c79d437023e1ff0d139c6a0fb2e3b9a862f55f2a210aaf091fe75b39815482c8c79d437023e1ff0d139c6a0fe9def3dc89f0df3db677af50809ae7dac02d76600d4ae0c0606ec34336c7dff5e9def3dc89f0df3db677af50809ae7dac02d76600d4ae0c0606ec34336c7dff59d05e94bcd1438927dac297b9d5f50e3e6451481c4e620345fda2e70cb1a6da09d05e94bcd1438927dac297b9d5f50e3e6451481c4e620345fda2e70cb1a6da0d08b527ebabe24b5ae9de14b5024d006a0f254ede2e6c09e73a10a510339f5fcd08b527ebabe24b5ae9de14b5024d006a0f254ede2e6c09e73a10a510339f5fce15cb391157a399c845a14bc01045f5a19e85f20892f51a2eedccbbb7af48e88f11886c8928e5acb0032730ec82d807a6bce3a9cda0298f2b4d31bf1a827231e64b8d4818d699b50a9938f152139df16cef0e45bb8277eec965851d72e3c2a35c1be4ce0020632c5336fcc6cf35231f4c4dd50dfc0ce75ff0a4ec935aa146ba2ce0c612fc6cc40bb5290c9263d72bb0a5881e8f358cf4ee83089b8f984d2e02f1d0dd14b9fd3febb4f822cbeb6d03eba69efa7ca3066634d67d0d65d74e4a5cc9a8282dbe5e1b3680fd21be5d519a2f20eb5412fc9ac52e96b56db76d15f2bb22899628da498abf3b7093969c51cb6a83bd1467e2f25591dd266b0cd0455797fe285aac7df549a7ed53a916da7cb43246f836236a1db4d77cf858465d8096544e285aac7df549a7ed53a916da7cb43246f836236a1db4d77cf858465d809654439f1693656a3a9ed63682198d3df4e79309999379f52485ec4a9e443567becb25383f584ad6684a2a479dd912dd7e86829c1b3a81ef1f4c2aaf034c0874f0f59a2da6ca323d0a1786597c7a2d938ae9c09251a88b75be0a8a948f42bb0b549686babaa0d8680bde0cc93bdd900ae2ad83d469331f21269ce804f75162e419ec0a5701968d7dac9909733107b20316bd85f078b4ebf870141dc65e337363bb0134cf3dd5220872c46aec11008675634bb1b481b3cf9573e5e179119b0fddd19176b51b4ed142d66f12d5c79726f17437284cf3379ea31b74e34d8f3733e471ad1cfe5a2841aa071e6e186490aea372e5c4dfee22df84425c996a79f177a9a3a0d571943734e4310a6b50c9ea518f31bcae142f171d38e6fa9bef8b0f74a612e95640a258d1dffb1a6841af366bf566391ca7e529f76e6dea51f41876cf03364fe41624b6d887bcb0cb6c254569db5101bf86a96feb37e86c5e68e852a1eeb7960414be7a035a59ae386123c5787fb971cca129a83e2fe749e87e12decc4a87de8f4b8f5e2a50735c2fa41f9e3600a2622fea45fb743a75406faf4e395497c0554a6327d472a379500f32929bdb058047dd60bcb401bc9dec35974444c63254cf4fe2012e5b03656ad8e218ba6c73c8cb06ff1977c00210bebc4192e7a0ca650748565cb585f03663e9b58cfd547cf9ecf5b60448cbec688119ffa0d6d49d70381ef277e22810c84806395c24a228852c0caaecc74ba73d7e4228d9c720f4f6a170063c41e980c8ce00f8cf2c9229293ccf38d1f331794e6a1b7034792ecd4870f7a3fa488493bc932b1941c0bc250a8e83480f199687ec2c2d572407ed6ed32de7a3fa488493bc932b1941c0bc250a8e83480f199687ec2c2d572407ed6ed32ded9f411d0dc43878afcaf1186ac86a169d197439b2c41bda734fba10b53bd4b440c111d85e9767f98b4f7ba476b965371cc7219fd2b29f857b493f81a235b3ff474495c3d4d926f14eedc4e481a3fd2d7c5b8b445cc908d0024d133f1777c7f9e897018d20526722212fc5bc7e552708507cafb4b4399a1f6bdc0cb1c7172c4818d5fb36fd956428957700f72e40313550897899345fcdd618757ffde82f29612db66558e797a5b0c6042ea83c8b4a985b28746e9b4a5ae94c99cd8e31500d65e71bbc66a78bcbc2c3b56dfa08ecfbe33e3eacaf26ff881fc728fe34b363439efb3d5198a0044814bc74b820e76df235e1b19df73bd8f5f69ee589ea1bd51f846a987fb663998fbc4d4e201d82fbb7c81538f4da81a0750f035f13fc0877048dc51c24e18c613d5df86d0f8db0b90724a1165e68ca8ac547c877f1f16dd2e63db7041b536568b0a38c47fbe1b19e674c1d9a8c1fb632f45a82fd4d801e2464902a5968dd715e707cbbb55facc829ea3aa2fe309a278c78b7411cb3ba99ff6c7eee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8553599d7bdd8bb68923904c1e5de01d5fe8770f5ee88e9a3ff4de6f30ddfc5ba9312ae7eaf7712be76971150449f9c9b0c2e8b9a1b333beeebfbaf0adb64ccb3ba835f67b8450e0b8aea34c4a63663520812bdf103e8c8a772bb1cf17e467069788ae5f7911a6b8ff56e6ee1ecf80427670a522d684dd6075fefa0e1c92f3c510e634a81d126537911be4b38f6def08a722db9f2a5d38c41c76fc03c7307c4ef9ea356f85158f2e64fd5895ca034e773f941107d10ca9d58c5b94be3551fdc4d14146500f401a0e2e24694150fcd9ae117448f92ff8bcc7195156b3e77114ce34d97a20cee36ebfe0498b558b6b3b31da55d54440fd5b379ea00020a43e2ac660a63602e21cf297efcddc1679c57b79d26292b8df5b36398a8f7267d4cae8ee17e1e5a0501c0a3de3456c7b2ebcf52995a49631972cf19e7b1f83804a8d8232806f2adff1bff6bda19753eac334b542d44c4cd391750245462636f710e80c467ebc885fb29c8a4b335aa24c3c95791e432f702de0d7d710518680a4c248d1ab516b484311dbabc2992e668c4be6b2bb22f1b17cb2e0c3b1f06873a364768153883b484311dbabc2992e668c4be6b2bb22f1b17cb2e0c3b1f06873a364768153883fda76057e9e92602224fb859ac8fd6cd992a7aa093f889e1136d67b9628824619e6c036f5a938f97c735259974b57097f0b28e56ce8cceab5034a5f3034b714339fb806a30c32480c89f2fb332e1ac7e1a822d9af8c7c6d99d5e53a276e0d34164dc3f62156ce1362b27bd3be60e96c1a8a20894519b2d1fa53fcba04315dd6cfa512b57646f68d3ee380d33e1ce385a6352bbd8ab0b0fc30dbef03e0092d816797961e6725577a3685df52327e98d1a09b9a04f2be8c60304e2075d67734cfc44d76bc0c823b7d6fd2e672475191a6180b83c2ccd57ed478b64f707630781dbaca9b525116bcd88ad93979ab586664f188e71aea1e5b41d5568d05d48060b16cb156fdc996c835a56b9103a3927a6293df4e57ab91273de05b163dd07af92c1ed76a294a57f3bd52d88cf6782d527ce8d6ccf291c3b81b67f29c3b106611aad931ed68138e5b142f3155dead2b22970fa9c7fc123f7038380e5c488c7461373335ffa12fdeed62a4313fb0de60a1b433896f0430aaa2dcab985be019f43d65e335ffa12fdeed62a4313fb0de60a1b433896f0430aaa2dcab985be019f43d65ee0711e5eb03dad91519e8650edb724e9df4fed55c8ca37c99b71d38811ea40f5af7568e9fc825809e0c9f23c856b2b3a6b3d4ab8ff96fcc87e81dc765c053023438b3e640c79c55f2e7b69717d584eb5043362e6b0bb7aa10f3d0ee538682dd3eb679a4de365ffa55c1e3c32680dbcbdc8e658cf9610a32715dabedc63abf0b92a10cc62ba938a805c65ad0559e31d25e9495a6378eccd8a59f4bbcbbf082d5ca9ed495d944b0a73103bcbbcf7655903cd2ef762015e74eafab57409cbcc29affacdedcb4bffa3ef11abcfe7ad8877d95a3a8a1afc39a49675cfc7eff095182aa5a29c91eb1e47a4a115579d50c37bc1974da641bcf71714689063fe532ea19de771e064575ccc2cd5625f215502dacbd440d0aa9c5411adc8a1b4bb6af94befdb23f4a63917281af40b4400e714bc27177d9c7cfd553e6ea0d212e7d282e0ace3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85532f6fba8fa707793ecdd5a5b7a15cd1212ef773ea35936c07bb58b0f91a2ece3ba4d858a4a5226d49375a2cc4e744ff00a23fe1b691c9e777a36d3163caab88d40eb3dea38e61ac8b08192242a69656e4d679ea45a84332ed1e1d59e787f63f43b21278fb09e0301ec317c5f38ec9358a657706a3cb7dc68f4c84d3661f0f7884df598be3a4c259524752a66fe125d5f1b4b91838969014a547e81a078c2ed97a5c8fd9311dbdcd9c8983635d789566a2fd2a5fb75cfbf1ba90c625a775cf54d1393715ee81fe015fdc590b85f39b92ceacaaec6f7b3c0f7f6eff374180df8770fd04688e4c924a4a3d12ee6eb933b436b588e5d91fb69806553aa4c54c5d9f68f99bb49a1bcc2df07a421b41ff7ecacd655234feed133bfa6863dab047ee477cfab0b1839e41ee93541d661ec8c9cb77636c1a816ad1cae084150fd2d9f7a9d090a6a99e1d41d4e920f2424535f69d4b3fcc7cd2d68ea12e7335ab31a2960271f4bbdaa471208685f91bad213d228d77edc34805f10ce586847f042a568284cd6be03b348738a5ee1bfb5625a375317cbaf999eb44860114e1e96263285fc68b7c67c7ce24387ae195e6aa9482aa576cf8e29bd82e459dc426a82b2d7c62263cb00b2f540eedbf01023ad02856c46c72a87899a18c0c282dd3557267fd954831099ddf654d7a39645be682b033bf6c075fc6fced234f3b7b03181dd4a1f55ed89e89f868301daf78abac451059590a7a8a03eb8b9d36ed5aea7dd74ee5bf9651d475d55e7665c660425710e133e85203d4975153b1fb130a7842464cf3bb45d1d475d55e7665c660425710e133e85203d4975153b1fb130a7842464cf3bb45d7f42f72179539b33788cc4fb716359335ffa8abf14c24bf39358c9fa7fdeec68b5abf121c46594cbc0ec22982e6787d4e37543a42bab547b86e02c1776026f67696703eef038796ad19a3224868f981b16eb542dda9c54f31dafcdffb49db3ae2e0a3587ac2dc940e112eae80d1cadf9e62f3c512040ea347f17c013af12d9c39c8d0c5b8f815501f00b062a816c5aecc84bf4ec589b0612209729e6a7bf9fd62f4b98a2557f21148f9cbf0cd642dc2464305e71aee0a0d7729bea9593bb8627e27f2af71c27d27a9a0a3f9105b66573567f09f67fed089c85fa1423d02ef8b467f7457b49b2e7da2707d8c1216a5d2801196ddaa98318f3ac2090d3587d0c28740b814ca1d1513348485967fd471a6db84f6ebe1db8bb44c319946da96e3f2875c1caec62d06909f385abf5f6b07aace0760549610f0a70b5f38e69e276b571009f9714eb720e1162baabcaa5276d8c43a6c9781ded7183d4f76e41a451d39dd510637f19471535ed100cae03698b93a7213c5fefc7f1e00e6875896a087f94b9ddb286da0e03a24209ef9bddede6f0507893421151a473768947c48198d1da750e8a61fcdc3ab7f98f01a73922d3203d4192cd86f1ac09a0899c073b440a858908b54e40fa9261de761c5603ad3ff3351f61cb589c0eef1743f42e3fa0f000595bb289742504e7131a1e3e9c776f9cb11e9b746db7545a2a1fb9345ad431cb7d79250d629046a03ccad7033f5f5316f646382693f186e1df45f13b1844a44b64b7108b1135db369b9dd72d429b5783bbb3748fd70fb1a8dab4f2516b83289e14077819c3632b90dbd893369cfa211e26a974b2943d87fabbbffb23c07f6705b325c2143c7e3973a39400c497ae0dbb9ef59cbbc5aaae24dbd69fa60db873b53337d461c17ab075d97ad17a0334a61cd3f7fafa4a0794ba0dbd13ac70a21850331c92f793e13ec6a7d7f0922334eba22fd653006a0c4e6d59f3c3410644c772612a66a84e7f82641c80fa4d828667c20bc5bc7cc8e27bd8a431102e71b1f57fb27c8194b4c41cdac582d6b8a20fa7b854e2f965fad5f896aa28383d019285fe91eb44aa9df8c2038b4df17bb8261213a9c42071fcaa59f398184b0caaedd00b1096202f45709bc0db87932f3c9a9dfef8dbd671dc2ea0d71bfaf730edfe845efecdb3f47731ec601a8f2c3994b076bc1101610855cc681f987eddd48ee8d865ccb687106fa7bc7586c27fbffe4f2db641a3243db30e606d7b951f07a19fc182b72c58fefed51a6b82a886eee836f6cfa8a52840a97f9eee16a9a4ff8be3a86918cdcb45c57a86d861731498d8136026f1976e00f07099b4097b6a181bf2786557fc29314e026a30e6462fc7704ee5490fc09a08cf4521341d77de35f38eaf1f9a259d282e0b171e6c843a93fa18ad5caccf380a4da87d2534669bcf583c740440fbd36f449b73421862a6834c00aa51a8653da3fcb44fd54c41b794398ebeff9d2be30d12808c9826d5b7edadd28a5e8ec30b8f09b321b43b9f22818c4aa241b93199552d1711d69e18ec1b064048627797ea866b7f3f80c92c86d21724a917995e09780c9b2c5efe6d1fe5505646f20ef4282fbd259814d1d474eb5d96000a283176d47d01ef4859bc971476e3e7a80803325546e5fcb3998ac770e19c0353f1ab560b5c511056962fdfc3192a795566db158062584db36a556fb61ecbcfa0732413292c0cc55441dd8abe0eb861fdf8cc3535ce5487d2258c2b2b51c0479150a41fed985baaf14d65222655a5fa60ff97a515dc0f70cf67f0db2911b4e24685eed77a540aa140df9e0ed35c9e1fb16c31c5d3ef5565b9682addcf47153c0fc816b4a738533251a0b9c922de8f36b04d3237a65f55900c65a33f2e0ab040729ac11141ada629064366f53e670b9108feaa973b833f9192369fbc6989364129ff6eec5d657243a622a836e78160e2e56a9a8d5dedfec4be29ef2c9d8673b1aee7db5c59e7cb13fcdf8237d1a6d4767e5ae6853233411d7944a9461fbcf7a6ed63f1561a6e316da334bbc1f097d1d07f6a29919cde075e0ab1b6fc8f52cc99fc48c65660577197a42ab0ab60fbdafb8ccaed7fafa2509c986ce3990277a860ac61e8c7a356af688584e2bd10d9002bb5e351323fe1c57b5adc0ad889bfcebb54c339d61f1b8324e1c8b4e0fb1b2bddae5018f19ba70cee80a23f2f83a0e16435ded2c78acfeb865290e7e6914f75e92720313db82a96a7d5f609e54db99e9a35c0ec1487985d5dde1c22fb3989dc4e0a3182d8c25097ae3f58e6b8c09a25f515cfcbca48c8ce5a7d1ad47fcbf62a5947b471c3c15466a3a4c23be15cd7d3ada9072433e24bd34fb50b8fe79b2606a8a4fbb346e28fe1e8d4b5bf83dcbd377ae11e9787f68b8ada6e6472b7dc6f4bd14b0daad4b7a1b2e89c41f1ae4f58e772583e900562aeac19bcddfad14d8befb7ecb2c3fa123f03a282c382790c1e67943a80e5d012ed0f046def0fb0ffb13ef2d00a9fad77c003853eaac6c0acd3ae8c12e588322088409f5fc26b9ab74a1d82c75c8bb1086b64aeadd1a41d015b5d09da7c2ead62a68acc2ba8ee022ac9e9cdb28c6f4be852c82f05024a9421a76bbffc5a3adb9ac1f26eb6af3b4a8f00b555c8146c9104e54627a686c87eb9de4cbf1576be72cde53e1da2e54c555a25e4639b9f6e66e2588dd42a16f1403e858d4838141d0497046aad635494e99e36ea76d470b63150b144e6eb4731bff14276595c58d9200d54d1d4169c6953e7543b1c75d2c591f01410d7c005d47a7a7bb80ad35f6774cb5664b50776f41c601267a20bce8e2141a056b97fe3574ebb12721d7dd008f8b49592c56f0b6e7e446d793d3f235b4c307dcc838ae3f6b8934f8d0584a4a8ac823a5859407a184f958fd53fc1d5b334602b0486131747d7c2f2a12974e671a4f8d18983889aa75f7598e26088da4b823677f10c2aff9a24b58cf9f1cb0e73c830cb007f637eca5d23ec920baf5186bc9373022dc0e10b22dcffb71c4e6feaa2ab3c7fc290540da435720c9b33957f12887f749b5edd3327e3eb854e97a7ee1318dbe38426361199751eb569c54e57d28ddc13805824fd36bb7c79f8c3fa5bccdd7452a2e5b6f5bd66ddb8619e8e1380a23d4d42360cac416df77574206ca70108b2f7f58233f31af46041b2496589c71cd0ea982644b66fd85c42c54a438ace094d1ac61ff3ed4e0c49419d6b7f67ba392d3e50546aa5557c4e64321b87f48fc3c61a399390e01c3b042466b3d2bba9b7d8e5bc83ccb6e2b032cdb5b0d40bb37982e99d886ecddaaa6dd91482e2296654fb91b6e93daacd605db6d10611845f5a3e0222f7246f7407b3e5082b61466ad1f16c2a6c75750ed5b49bbc77b3cfb60f6a6e1679a651c6d191c5eba3c875084e1c02160effcfeb6230a1c15d8d4d32fd18d973b45a7b845aef5259767b998ce558471029d4819ee1a61269b67e3bc066f539f52cdbfa31c848d5d2d9e270cb108d49f51466dba3e040412f7957d86961e3e2bf421d7fedbad66615a661c6b43155035d22c9df11fb1e1d2a9775ba6642f72066facfccd0423b11a7a8242e10ab8abcb39958ff040ae370f95e96be2fb652ffe20561c92548971834d64558df9d4da5335f86eb625cf2c435822442e95008edd37e85667f3b8500225786f0cf7ad79478d1d994ad901f6c33898e4f1854bfbb8d848f5861cfb212104df61bd6d114297892600aea3fba2f27642d35cba87fce0d6016e77cb65defdb7402cfc438d33a132dcaf025bed37ef46b23b1f79733215d44820a9e8c4d5f32d862b09f21e40a783b0e094d91579598bd8602a63720fba4925b141385f590bef33e10d2a61c2c93d7f30b0b808ccb27be9312bf816c965d9329b22c61f8d7f3e734e9c0e4410c4bc374787f5b2b3b6c12bdf4379ac9419d2e1e8cb20568611aa444e1f2b4ef7d3b9438afa436a97004b7086f2b66e48699d682a1f30f091bfe441956f02ca699235fe3dfecfc706cafd120ad66bc634b3e09c0c8d002b3746c5cf22d9116f844a726f596103d99339f53dc0cb380169f43a83c4aff86eeb146d5861a7e0247908106f8b6fd37902e97f836e20f93a14e2a7fc7caf0f478a6cc50431e94d5e7db4dea6642c5843c787ddd9b273848781343f47436c96434d06fc487a6266f32730b359add1fbe83ce5f7313c5b086c64c816e43ffc657b602cfe6a7231bea8297ebc9a96b0932d351f1553deb416b857d97cb59b9ca157669d3706db2c46997579ce080602ce818f226b3e292dcceee63e77fd910937741b1ad6fdb3504f7248b033e0785f2f4512699f7d94f2fc2f752db237950f180c4a707abb8c7c05ca68077c219b34dca0e67b211a3ced568e1956f6034bc11337fcc314dc80129d27bab2bf969334326b75b812968eaeb58f136d6476aba16f6f8d17b055fffc0987655f597c99db21287b3c0623ccd4a97d1644cbaa404f0172ae93fd218db8be92d9cbdb5619e94649e2868a4aacb12b4509add78bdfb1d11077638850517ab0d6f0305e71fe71cf2fb90a272baf16bdb7ef694678af430f84b5ba5c30a805eeb0491cdc0a24ed96eeebe58c1a6d2f3e4eb0fca45d0c7f8f8fc1c515f539647129b46c75fbc6146d218bab81a432b1377b9c035adbe698659b637929efaa37e49ac8816aca0c37516a9ac450c482b9bc7163e5f3dae242b03fcddc69b83dc1f47ff19fae3ef83a96abd2620950b6024897512ac394c03114a91a3f17430501f40a876de180d6008e13a3f1f7e94ca5ee9d7351364b50532b509226e6ec5c235473295cd49bb28f40a3657d2ff251c01af0343cb99e992c0e88b55308e72f8d2f19611e246edc7b333b129e74cadfc33d72bd7bd4e033766713643c5139c1a8d07111196ceefa9af3a8fc62ec450550db06687e4f0228e6449df0962df6d0ed2ee2c9a940cbf128b693afe694e6b9dac12cd529ff03508c0f5eaf0be9870c0c3f083d9d65c189a2501c142e3a5fc5441f6837943e2b25556cd32c9cb8a89cc0581557f1ec25ffad26fd2e6839a84c418d782f39681f7956696e566bfc3fc6b3e6602ff8fa692de736e3952c98d3c835877829193adb7fa403b735dde9045abc5bae189d64e4cd415582652c3d35546d6e1e69bd2fdd234ee4145d35c77a6c65f1699e2d864c4e7eae92ec3c3e595771c264825a4c7add87746fe15713c7500e53f727bbc3744db576d13aacf6675d7b6cbe40cdb67d730c7512fa03c0c8a1f8212198a1441c660b6c371d9332de3548b67fcb4874a9dcb37c75a1612933bb67bb4837acf274f31efa6f91d778d0f7c9ff4c18ac7bf013683781a43671c5c1ca3a7a706563f1b4c1fd3b1443f17310ba66c3b700d938e558ebab0e38390b8e2ca01ccc111798b00c2d7fed1a5d30f11c9f80981f33fbe2f2dcab7f8a7c1e2305151025d68015efba36886c3e64694fdb47ecbafd1faa19db7561be6221e20e9f2d34f8dd56e211737c22136d271b01aac14ddd332440eed96e5ec8fe7f2c9680f9db3c5e2e08aae73607e0ecb2fe0d39ce8b0123d61270fee746e8566e4ca266968584d86d08732c23f26c675da9af1c0992af4f76677d9ade4bde66536bba29f7cd67b6b48429aaa7d64de5cf2d352f7907783f8ba927c4fbe9a91639c61a479e9ea3926acf2cf88f3655fa70fe80a2889a99dde907e6543a6ac172c09b697c11ec123e8bd402339b5663daf8d8eb1f3322cd07a04f7f6e6b2d3e9bf53f7c2611a7649748d35bd7adb36f89bdc0f798dd9350b0d9f5458807919f668dbb4a56125020a9375a5208ea5ff6042f03cc5fb4e6f3b022314d7b96b441e5206581491f09032eac5859f14d605ddfc3336a9a156e846864dca883a5da0b1e3d9a4ad3f49ab43c96d60c0163dfd3d57bc8bc60543f6d2469000460de8d1cca95a05d5360e0b250129693f8cb9eb818bcd410beb6c6803835dc747ab06f58e0d6091bd167a351a20e192c0fb5ac6c49c62cd8673a011d9272c26f3e3d71a4761d0cf7696debdab55e57b3ea94f7ea35f232e9699940051a63007048e966f916b82d6100a0622a90279a40e4b8284bab2ffb09cee5954a10c80025a8530f592887ee3c6e1b065f5daaf674fe7595e5892f8016d2998c384d85769709398d0e513e8096e35b209998e329aab13af24418ff185f7f5531a8a18ed7020ff5243683a3825aca017678af79f3b0d12aca917faaef22c6b805b29ff6edd48ab24a51d0e9b2f4513a9d0c3d437662c09c1a75b2bfb684a6cd753c039d0d7fe9e69cd1f08acae282da19a97a3551d84ef8a61a1795d50df51d4937c2cf4a0a7b9be6156e7c2bc70e6eeb0bbdfe7dfd4f9bd09a578c650b44e4268c1e4c9d52215a0a76998f2135b4f3c59b30d7412d3033e770dab8dfb0341c8eafb10c1bfe995dadeeb16988ec313a4b1698842262647421aeb310668013c0440015a728f81bbecd8eb5009be5400e2d5a02dd7f200df65de26c36dd8fcf092dcfd15fe62ee5342bc7aa3983d696035020a3a6c1a83810df6e151e4268c28e8eec8d542963c641404bea53ca3956d241e71a4efe1e149a22846ae600e36b16c952e948f2e67d030fcdf9fe4e6628cf49c18afb503ad936c8d7d79a86eea5878ee2ffa0bff6cb28080857808debf278a1d5a7d75c44edba0bf108ed7eb44d9f2ddf24fa552b1af049be5ae03753c6f8619c68e5969c5321aae86f3dd0d1f98d0c9e176ede1f3e85484dd13de92c3436ca97df378ec3481e04c19a73230156236f768b0d81e58a3e5bd3bd79ce294cf9ef0ba0a84cf7b869c89ebd9fd8437819eab5dd7ce5c7fe325cccb00507b5340c4d00370165e547089e42efcd1c3dcda5c54a505491280e77d108bfeb898d931de4aab8082875330dfd11fe522d3593a6b0ef2d4fdd85353b5b4c189c5fcd4fe14134aff9cbbe6452f05283b42ff3b3f84784e1e4f11d23a9a9497d9bf95bd60b474259c28b979543556f80fbd268dcf9d3859652fc46e298d80084b67ff3ce6fd8260581448aacbcc89cabe97e7dd340a295ae483a8e55a540edac1f110d1b4e20f5acaeba13006b1ce2850b3da503c266444539d95a7d5f9a495906baacb08ccc66275038b9546e98af90980eaa1346c88a035f26c96b5500c659957b6245c11b7fa1c0e823b2e221cf242b74e90558595265f60b8b11a020d13af403b90bf98153a4d1a1719b5a69e9b7c0e98cc31d5b08eb70d00709aec631ae1981c9c5b807755a1ef7e03c61eb9e91cab05531bd7c326d478a7ded8078e7c6b7cf49be0fe18da6bdf87607d579672f577e99c0e299e448fc12b8df6449d63814f5f56813c79532aba8f46e2d50afa56ef44f2e158ad77e76dabb225200676e00a4e7bff20d211baad5d8d50672f124500c21c5abe004f51b786c120250eacb5c168042ccb50b3d3d01342d4cc5cdc06c60c246ba8a277704eec3d3779368bf4d2cccb07752c66f861208958c970a5863306d28824d30f3108ae4d151bd8656b1583df78c905bc6524a737d0723f6198aa891da97ded68d83eae5da5a1608c88d74e048b03284a1ff142f94009a9368dd7cb50616836a38492bab208bf5a80a98af9ee9c4710cf7b3f60fe92d1cc79718652e9c31e04e5920bb9497fbfadbc2bbbb09bd78afbd69ff9da61a0935780e1883f3f60b78620e7a661a4968d7562179b4aeb12e16044354913705245745707823949c069bd5757195491c1d1d21a593385b317868b9e46cfa2b60fb372de2e59e2acc395f0ab29282a8b379269649209b74c5eeef05aea6759823627d672d093883ed94ae8899259fa773c2bb3d0a6497b7a9ddfab9152b574e43b62fbaafa33e230fd68f9ca6ebf50bc2e9b073cf39da157927776af25e8506d94c805f1573ef747a332671024002f6b9a031d97d516d57c3df270702009f9566faef7553f83d02df7e3d857a441b03fc7ebcb0f23033a36cb19711d496878cc802eb172c4488e106c908aae9ceb2dc37cfd1029cb3e363795ee425771a46ec6629a08481629f64c024f0bf0acc202a0ad77ff2614f65f26264ff9379ffdd5ba8c166e7a6b0bb157d8732eba58e285713e2f7f2ff291abc4b7c7c53fee53cd435d47482ce6c61e6728ccd47d96a1a688d73223d42a008dc66ac2107e4b962ba2e6139d80d809924ae4f6a4333beb73007d18611e10b7219001fca2bbf250f2f22fd3e29cbc18a540b71688ad5bcc0af0e9ed1380e5c0dee2aae0c7f412d145fe6e06d6b79062ceeb398bf23b70b3653367acb04c7ffc07b836bb4f949dd6a370307d325ba5008980d9108dc1ff88f43977727e28b8f6b20341e696a6af872810ba27958d0ffec63f7a34d5f49be52f8f2f5a5c47750b418af304265869f77cd4bacb8e1d2f51c1e192a146f01149a2223a56507b3acb65d3d2b560c5915c19cc46c0b2a1e2fd4b5ef399f956214227da549c8a84d9d097538c00a3d131de5748ad8508105aec9372949fb80fde72de8c137fd63b156255ca9fea3689043343ea5964115590ba0c1f2c289b56ec2e8c8b107ac65f8b199a944f1191058c8e14d50001ece4be9e8289ac927ecb538b5b4f49facf70aa0cd808b86aeffe4df53b325c377806fdeeaa7d3d66f97123616d441d63ea792386df4f18b57702e47256ba7d4bd7cccdb706365d76a718a50c6e235583927289203aedf0c46df9651fe25d90a926dfeeb5a2ed04d31298be870882e78b3975c6549aaf266e5646c568163549184f54a035b2c819367f0beb7dd76860fc9812f596493b1e066b30d2a86365641e850ce597a42668192dd050f0db463b39f9ebe8fd8a7de6bf91241959a00fc4b7c13c20a7ae87ffd5b34ce490f61450084a984cc450faba94690e8e8c66704d426288f32d81df1c9d8b8996a40fd7c0e8a54e1a31a38eb69fcc42c96b76306d92cb664ebdcd8f1a45767b662c83b2e8b37a9ac5a1130dd8f9a9f45ac9cebb6a1f6befb70ad9e878f74568613823d1db6933d685215acdbed1f9f6cc43a273e2437499eb4b284afb5e356ece345d1b5a9f56305654611d5216369a0f730fa8dff50f153f2c58d231aa31509c408cfaad05a86047314f14a977df62e9eb803b56177cf561df5b93c5320301afb2eb7ed10c178d5e517b64e6039661368f773cb4af5cb831c4fa2b87780c3c56f2add0b1aa6ba752d7a295bce95b6487ed71a2aaa640f1d532320683311f8ccd9c71702a53b87909369aef1ac415fa050ecd54c3b2d351132d8cc877fc12ce233cd5d506546d6c5ee26370564987177d36bbac09922dd2213952879290a9d797ad3be75849fc6efce7a93c62191f307347d84031e5e150b05dd834f2f8eb25ba2ab632aaf39801eac40090e472b56b604c406a575b665d3fcf64831db1d1abc3115e850b8564208aa78d25dee64a1f959cbd752cb43bb192ed1782aca3a5e185c52fd576b96867e811e24a57bf48234bb9f713742b530394e9ba6e1329f569f9b61b19121b49d3f3cb64da97fb44991124d0d8899024d1c33e5d08bc07c01a6a81d0ff53f059fa54791dfd99585770ecdd64b75896bb213f1ea0778a99a45af525706854ad2dae9b0481a1381f51eb2853bb316759abc72a06acad9a8b49ce82b1a78935746a404219087ed726379d59e0e739f0b772b2b691187fb778c86ac5f5840a46f1b9def632fb05ee06848c88bc2f437ab4b83f41ace6147513958f5ac4af65ec402489f1071281ddcd94574ed7a7d31a42a081fecff87b94b1f0c1bb2dc6a16b222ece8cd3c3d26f46721f1195fe8d436b04032abd5a413369c5f30812e8217d0f1ebc0c099355e936b1e3654a87f7e7e80b0692dec5bd7c70286a936b6fba34da42e5be7e2dc5c718b7d4d2e1472b2b5d8691acae0d91a86ee8384e1a94846418bce53d4face0ca56d4ff75338d7e7bb0988c4302e2854b350a32f1d83aea351757494fca372392edd6750b2425a510f4661230d9b0a47da3e0ca24a31f6ee82493db9333c1e82a10ffd6785d75b28a8991f41432039bca18d26e1a0a54391fbc6f801cdab104ea4b47273412ab1f9011782abbe122cc045932acfe884fae841061fc36b82f5984344640a66be726ba3416a95da41452b4dd22c583dbc7a2178d067aefd597e83d7dbc3ecb61ccfb533b1de04034fc87b3f26bc46b1a28b0785597106415949d9a05361860056766f6af0669f19341d664223cc1aa013ee19e0f1fc2cf4b4a45750e5efad4dbc3f847db13a4dfe95fcb2b67b080d13b9203a10aad94879b228dea22bdc7ef2f7807c2f0d0ec36e9b4130cb1d819546b7b5a897bfb79a8fec22274e91af6a860e10038793eaa52cebe7ee7bc59e26f7dee82cefc24f8dfcaa62a50a083e9e713f3f3ef7f06a063e399f94641b7a23a49c9fa0d9f7e1ae5f4b29ee66e754b145c217220620100d4d76a30c548df3a4752d6dfa9fdd5cb3df96159db0dfebfe70603d814a2e437165fac13a3e6ae48366b993d289256ddf11090cbf76f64bd24ebdeaf0c66277b444154afaec98cfff201abde2044587dbc108bacfc7cb024702895452775ae05882bb102ad8f1379e65b0528a359ac29f47865bd132e89b7a670014c9ca1c33b1a5f42d9014de32a68a0ea1ba4991eeedf9f9a9cd81d487f012dc5c08b60e8df79c5c012fc97328ddae9c43d626a22b4329aea4cba9543447e360d5b29f1a8251f57b81cd4f674fabb82707be418fd136534a22c0439f9c33cd6cfdc2f468284962f6cc3089fd09a47877bc37d184af9caf129646a2727981d9f7f834d721d43a1ce2ff9e07eeff09f895153c8732e97d0529b98014329e8ecb40c2ff5ab06b659b6a71f32cb0378b26f3b8f8420c881bc88fda03660a7d9b2ee94973f54e2a8279a1b3405a30c72e52ee36fca3cb52acad0322da7e0eb6e05aa3509cde70cad9caa9336e359b60643a014d052f238e9fdef05f3d10a8d7f353dec8a2b8ec099bee67d83e7985b4cfb46aa30baf75dfb88ce446d489a5a4cd3d3f33f0848ddc5775aa1571301034469d2238f13ea58fa2b619fdc118d1294917f9e40f23e4bd53de33cd6dc1853bcae1c35cfa29545f6dee0f993de14a4c8fe65b1b23b645c6b640b4b9037e0389c2e79bea922ec9b0961fbf3e2ec950b9f94f7f8139ccf28ae8b2a6cfb19eed3fcc37ab13a2954dfce04537a54c8cddf90ee85d14c2d819f2bade1b0794fd5cbeb0dac6fdbc162a273dfa9a616369fced944495759f8cff5a77af6c46c147c453f1a556cf9683ff2890500decc200baf1afe8c8478d09eda9416367c35d4a5d4ddd4ada2423fc96d8cdc1e0d1f49b2d2b41f13370ffbda24cb174071975de191b4078c63360f9c0f87f293a6766e2a65ff0c02e00bcd9a98fab281b446e32e592bba1c74e7ae4fbd4ca565439644fb931a9a688fe139c29b71cfa80b68c5023444465eae08daf5d9bc114d38a08560d1a4d8b201b5d57dcfa24a5fbe93f149779a646228ea2a6b242012363bb3e295bc7a993580adc2d328238300b63eedf5aba0a8e368e77f596b1c57b8d18c4a180f312b3764d0e3e11241187b4bea011c9790e0cf317527eeab5223610077055a800c6c02e1a5e9a0500605cf1252b3374b4bdd4fb44de2d53f47bb23cb71b241d7480f18b3adda6232d6fc13f5214765c6c1dccd8086362d2be63dc34b5613f71d99ea3642b1ef9777fd4b85063e82e78f2ef1dcf477ea46c60ec96657b33d6b977c3fd30678fb40e246b71cdbf65322e6ad29c688d004c11909b40e270a9d731352a76ed670bb83aacd835d575abb606174c4a7b40de5d98409ad7388486db0ca844a6390d7cfb0d901faa10ab41673588278a9956ae3dee4aaab052e24b76a84d8e7307f7eb904e4e118f30f3eec44bba1f802595daac867b2f36b8654cbdb4d353e69512b009b943a031da66578af95a88c5666b55580205025d6e3b9e463bbc0c59709d13f2367bcec9debf84beeea197506001280b4813da662e650b8210b1def5e6f170585065de0134b73c12f626a89bcbe166ae3f127d4f4e1e820bea08029164fcc1b049ebd901a810233837be0bae6d61369b70e0d0688a5eb594ff4684414bd88cee4713f2e3188a5e162dc9a6bce4688d279cb40bdec9496cb624b011f3c6f064482dfa3b6d6674e69e6f9316891686b1b8fb59b85253671332a917f32053c4df3f52b81666674655e20274ac44ff89a6a607b08048e7ab3c43534fd962be6ab782ca3083bd77b92781bc50d47e879fee7192ff8aaaf51a5c96518d082f2bce82a998886cfed65dc4c29c65fe734ce8dc82e0361c19eb79815961653028196cbcfab2c3abf51e8361122567debeaf39a35c09a6a0688422c010aa74292169c9a9b0ccdba0246fdf8192acc149435b88b202d11be21d1772363479daba3340b27c41358349dc485e8dfb64607679c1a2051d65ff39a71335f5727dd2305a1bb317494bd4a2a9b9c7ecefebafaeed1fc7ad72437fa80a11bba053022d0e6bc108bf235a54c8a3bb0ee9df925af00c3b0ce332e2cd651f0ad9e6fb40b23338193a2fba26a9c83d9bfa33fedbc193b76bb578297a3016df77c161ee745d4ce40d7fd81587cf839c2be0991ddc5372932d55804b11713c9140d10435ef4b316a0773e3506eec79cdae53a36c03609e5a3e3cc4b6e117a499db7864c23ec825c6cec99503a45f407649b11fb25ff08d8c708e098a22d013c5d38c068d1e398eb573d2055c053bffe75d8d5008b73f90cb92a8f8d4d9af745809ceef47af4cbeb2ee245cc6b153f5223d5e2d63bed3e418e4a251b05558b8cb19c59254aa27797d076861feb64cad14546f140145e43cfbe314ed98e23eeab97074b9bd837aba4e8099092753c168e008b2a93f91ab4c8ee51e9e60c4279e51329f3358bd3d5f32311bd537adaee399ca489b3861b832a5a9d1efb296717647b83afca6f0281f770fb9810b678b80532f863ab24be7656290ba8eacd2e8fdd5babc0ba88a4ac8c2ffccf3213e702db47c1156cf7894889646aa615caa231b0a96c62fc18ed6cd393a19c2f2ee4f40bfe67c054d2767346284000044ad8957e81b64a0647843c5d6679195de283b224b5c0346b68a80847f05bfbebb7aa38110c8ff826e0d863793c0844635a57d770ed27568efc0b22ea31d090bbcdaaa417d1cb772239464a2fd7d9d2a2f3ce8f849cc425e282cc182908e28d33a74a8e987cc29b58dbbea7f467474f9629d476cf2d391033450633b731cb5b592241c29589a0e93850e6c515a5547e79139edac58ad0603e46844cc9aa1bcfe999b3147414061a1896b1d320de08ca3b022758e89095c7e442211c0af08358200fc6b2ed02354856da9fb47f62528852dfc0cc943467d6bd0585132c3f7639d036151d792e121ca92b4b067000652789a9fe9d820ae0605c161d6f2d2257628ee9f934471e71efa78dcd8323e05e357af4a6689730aa8fef678e1ac882f112b527993c272b03819ddb1646093d111f460e1dabda764e67ee933c483a51071057da86f0c3b8eb6b79b66149a19470d82052ff3fcb06dfedf7251f6e747a390042cf3cf14bbb5d98e25b408f19126ba1cf827decd3222b5ab7e6fabb87a4b5686a943ebf047192a82448ed68181095a42dc9adeffba5e0641c5fe115a5da5200d172c1e55f9eb512d3fa8e867c1414d65016504f4339eb697e364424f563eb458a0301bb5628c39cf4b4f9c8013a10dc2ceedefebb356f00baee79b1f72c9d7e97856145fe5e417de3413d03ba96a88b88ecdde302c8122c101997f17ee1337c839e5d3b67007ecb8a19f14b1d97896694d684199b63733d2039095f0808350ed994c44b1b319ed84d7bd27bf8758adf083455e99ad4733d2039095f0808350ed994c44b1b319ed84d7bd27bf8758adf083455e99ad4e6ca0a4e331211c0b453043bea51d0e5bb5550ba5172555d1071302ab5f765d1e60da3d6693b4e7dfb28fbb9a8e9971969ac606b384f599edf7cd125082062f5b023ad2587940ac498335351629c1e5b395482badcf16e2f4872c8762dacfda1442f0b0dce5bfbbd39e995a0a0934c3f169180de09f14cb382f40d13b2dfa14fe884c1e285d7071028c1a4535b20ddef1d2462b81f8026d34a5513e337b5b155f0e896284a1fc3df3892d34a965436fc0bb00b676c22eedb29686551ad97ac1c61ad4961c4c989c7be0e7b442e8d4b69c011d3c93ee4bf96f3fee7d45dd3e064457335db2c82e0e9666e3e08ba2136814ac85c35370c6a741f1f0660c711d47d47ced6b868c3bf8252cdc2145573c0989acaf0a3191122969d00824c8fcb299a922ba8b838415d556d6562d155fc2244c1adb0fabab0f15d8a675de9beedb5f2230898bf66f1695da8c9e045250a8ba6e26ff8e08277e18e9c1757a1cc0772547c1b361f1da89746f95e5f2ca4723d4262bdeb5a7522a96320fb1788a16be7f8eed3497e064374404ad603bdfd31ffd2ed069cbf42ae978287c98b39067abe027c868a3a06e2ba8c42585f0581a889c36e76f7b6ac9f79bfa08330818bbdf3b91f9488564336a511d90873f86dce03b5b295e052ca51acb91e30dac0a0646cc72abb3b4306f445bc6f28af91886acccefa72eede240a6a2dfac6968b68317a63d15fe0cdc056ca4d5215810172c12061568f7f0dfe519b5c5a5d1eb55fdb82f0aeca0af3a1bc8c350d3e2560e6ebb77374ba5d5378c33f5d97fb72d286a373024f6bb9ee96589a9adfdd954e53788767c7a478a8eace64a2dc8a464b7c9f0ab73364a1f4ebc357312aba9fff858622a6e02a5ef0701074a8a0f3f3e267810b2ac8c69a530b5a60b938cd99d0ff0604d96ac95952a14d6fd38ffa3df9cdac50a4c58de737ff2c044c92222398a931a603ed7c5364c8f5186700848e515415086afe7beaf0bdd853302cc5a33bb71902007e7057dc4e64a16fdb922ff3e06588bf31509a7884b9b809e15f41d1ae30c9b7fe25ab1d28efc61b86478effaa5e96e8becb85d44c12880b219241ee9fd94593d8a397191d18f0487413da3a516031fab5ec76afbfaba898fa9f18a2cd8e2e9ae5f509a10bb08d46966782010a1b0e5a749e6d1c1a93f20536d2949c07479ec6a02dcbeb58f755e4b19ef75dfa762a8c749e6d1c1a93f20536d2949c07479ec6a02dcbeb58f755e4b19ef75dfa762a8ca880ed943e2724e1cbd11960fb6ac0230f8f841691dd0f7a55b9f7931cead17207ae27a13ada70044c037a86214988ba4e4e6fe358c8895d9dd34af8a2559a48e90bb151413e34ff3fd6d40d8fd31a723b5ce78d339388fce59ec6d4dcb2d9c23bdc3b5f506430a9054d4ffa2c703e34ed6e31330b2abd0881148ee1295608fd8b41311d8d185d482d43a4c7f6cbd1de535ecd0d191d4fe6854fe1a63d267fb4882345846b047c1df0c2129f3a72a3ce10697ebcb809a6489409a0f26682f430533a00927abd57d66d3a8081e3c7b40b8568421e3fc977ac107e79e4ff1e7beb691436d917c372949e3442aef7c85fc484ea40c22848e086c021b55d342ecd5a573b5fb28a837b752f4e46232a5cc3febbb92e34c834a620eb5b04fe5258bc454038123c0fedd6c22c672e4db58660f9cbf2813a52ef06fde42eb6bac4ad5f232b4c633a5d67551351f258df040d669062709ba7af94f7a006c0e503b8ccf86dcf4dff2d9a43c07d23ad4eaedeb60b6dd90284ff7d9e46a8ec91d2e42fcfebd8576a76e554689ed8168f3f2e1d07a7dcb848f8e81ef2541a9d16667b1d80537a08db30195ea53523793f16523c35f91e1bd5cf7342dfc7c33fb838361d1d75bec41888f5348f7cf6112e212c2158e426dfbb6eb5a504a9bc819d3af232d7ba0824af5e0a5aa2bb9b422bbfd230b6ede73dd9fdb83d9e8402d189edd022e164716f735739d044d91ffb148ab1203915b7688fbd9826e7588756aa7e2996f7a38a01ea240eb20915409354bfc8d997630c730d975f13b97e53bb3fa7ed8986943900c3e788d82a262f1384087f2a271abdf4ae2874548eea4c81d8e8874bdc50f7f0548aeb417d935f35819a00e6dd2bd8b025ac06aeab296452d5c0e362930ca665d841351273da832fd5b8160412bb7ef7352591d233f1b3d2d89951211d2884b9bf22fedc65cc8b6235fab47dfb6472d107057b359ad3eb638a3e4efa3d979a9e2409e31f03f1bd67eaaa7bc6349db615cce1ccfe02145b68829c955228af5a6b7d51e280866dc34392ce5027ff08a574ae8c9663c35661c6656b0675825d50f15d71b98f4b5ac30bc452547db7f44a4258bb2d05d66448a6ba33ca7de47575696c0ba28b64a2362b448e9cc2db520f5492627084199d90886dae4a6a7c057e1617311f79e09ad6cf7b3c8b2d2da0d495d46fa46b7864d57cae9af114f9cb84552f08ff91dc1a1c8c747560147c2dd81c84337f13991c7ef150416196e1d90f576d1e8406217f9580726e66071bab37d60cdd9e7cbc07d363e8ab77313b03f6d1f6c7d3a27d7e4cf5004ae0bf4b92edd50649138e8d29f13569a9bf28f9fd08b93f14852692159eb0cc2a6933a6322275f21bc1bf0882ead703e61d282ebe1cc18becb72b64625630e35bd191e712fb3154e63445bea8dc935fc5b2506253dbeea94a391a1d05c927f8d1225e38e1bdd2b7de88fad791ec897da509d9ff1c76ca3074286270edc2b9f703860bdbdabf4d07b9aecefb8cb82a647e66f7d3205a5285a26a5f64cd7479fafa87f838a24ad17d2d0b91ec7696544cdad733baa063d30922a95b0f044cccd31b9d9371c9e3558a858229d5761be443227771c886394c92925a5e57bc9bbb8abf9b063fd8361ab0d73ad3dad269434b5a70b9cfb300c8c103626816973b49ba330e17dacc4bd2216b7e06057cae5d8a5880b5b1c7491a8b5c7510ef6e5f751ef5a55b5cf4d3d8ae5184d34a91b2e07ae6549fec0c295cec29e8a9c40035f0db7f556b9afdba056924e5a869941343e884f7d1a9ca1e682c40525b949e0464aa49538d7309d54f91d3abf24ed82f018f47262ca204cd5362cea9778597f2a9b818ed7ae14c548370a64872481407ade32c22c9807bc57da0deae812ec20fc8c7fe45e4d3e3adc2202f526cb954cef049644f4f4680be0ca9562a04f3ab9404a6eece7e70125b63f508ca6c4eb1d82c530cccffff48c5f0b89addfdcef3516eaf5f7796410f7ccbaac7124844ed94aa3a96a3f1c31c5e5e8193606e4bae3a2e2d3224213e1e14ec6de4dd551fb0186e1040d9a65bcca172799b228c085bccfa109d8d9f87a0ea3ca06cae45c7e4cf8c8b2bf515f9d22e690660bc4ae6c7a67227852d611ba4035ec67387903bbb9a883b02c01a8f174f7c6bfc5b752924c3176262769cf46b9a348f367c8e704f9f2357601ac035a96ad7c55b1cd647b2292396edf9b5e659079ff1fd58a66fb3652eedf14f020cb385c14c5cfeb4542926d5b96f579abdb2fbd8fa7d9a16532a7e7f790c1059d27155010f5f5b48975f06ff8007c482c64e15bbfcfc5f6b1e4acee455a41ba58be7ee95ecffeb6c7717120de8b512e8d770b86467e32659d15a9558921db320bb8ca615b707ae163b43b04ed27b7e028095316a8f3cb79bbcd07b74f354c811551ed2cd31a453039ea89a71673d8b72c96e67703fd1fff01eb30fcd1ec3177949edbcdf472ff6c7136214834d013b80d5de8a1a7b415156ddacdb04f7d2a9d21e2c1281d179c9074c236c3d375473d8e665d645c04b756376fbcee1e441344c1c8bcf956e05fa01c6f29967ac48f05ce0e53410d1d3adb8e04d85a9d356e91aca67499bc87ccd1f1447fb21cedc9e08bbf6111767f8f8f44593c8fe50e703ce04ccd58e30caa99ef50807a811ff6a74552b9b9a8c74bf522c1054480efb68709db2a63a4baff15033f938ccd483663b1fac7d920068d60436b91588b854e93b9be413abba0d90233dfb46557665cc4fe23fb9b77d0407947fb1405b0edac78e6751b0cefceafee9f432360eae26a2236ba7b23899c8e0d82da8e411984a97533e7c8861a4388f367f424ebcd1c1e8e03ee94a03ae18a2fec757a156b98db9a3fc5690c6db951a76f7e56e53be24c547e557e14026dbb8cfc3fa9a00a4f6cc645d379d5491b0d74f90511dcad35daa3394b4c6e96cc6a1cc0272cef648f267d014c80b1c0f42b5a142cfcdaea9a2561783db32b6bf5a605678686cfe83943c4e08e3a9bfe6daf3d4cc85caf061bf7d1704d34864633ef1c463f62d003fee1cdf4d5df6dbcbdae1d0d8ea8d014307a20019cbcd57765c91cfe9287591e963740e2f48c289035d3adef44f01006bc263b2565f535e2df5032e270e16238c69f5b3b56e83a7d93d932ae55c47562d3817efb942f84b118d1c89fdab6da0bc4fffbbbd001a3ff5eed745556da6e6c2cd546017b7e8001bd2bebb2a8a640a9557add01958190cb988e2119d96442df26b060162bc3c819e4b0963a6c6913dc6a9e3c96350f1e3482d87782c6be303ce9137a016f33547864fac36c541e7189afa3051cf3e9d2807740cd178970ecb0931071be790e40950c7ad727db212675e4ea169489b12970c5882ce279ab021dcccc0c065d59e9cdb18c52e215b65194400eb0d64778889a9c055b302fd151cfea916e7a66f78758d38df54902b711f344028d4e053762284b656c1fa333245aea91a13b754371f73a4f66295238aab05964f3c1dd6cb72c3ed10153256ab9e022bd504c10d2102ba7485b911e5733ae326ef87846eec1204f8cd71c2fe751d9693103ed54d54be8a77ce7e50d945bd6a578f764a2ec54b33226a72e22ccbdd33fba82a9ba8a25304af5e3dc5f8f166cd41333364dc4ee90ed08e63a0f47b4682fcdbaf522bf32fecf97d1526222d188a239c693fd7cf52ca32dc5459eb6d416bf3a7d1447c8ae4bc6b5741225897a0d56215e74e9f9357b6a2a88ea789016ddf78f47d1b928cb50b94079b2edaf3aa44ad066fadca72a797b1883e091c70ed2b48d595a8c8d0def7a41c155559a0d373b671a6436fe3f5cb7b4366d0e16ab0f92fc10aee933e94662e8571b80039522def351adc5f9e901399fe65ac8c692fb98efa2e8797096d3cce977a7bebf32fe3c2d80d64444f7e8dabc349283ea8dab4f06ca4e725118b952d5928fb02e09b14ec12aa0d263691503a0683d8ae53aa5b5b1c8f4b5d76631a78a7e7f8c4fbba722964296c4883b990b1644175df6e316e1f05b32782f9ee71593ba1d8923d4c748c62d6b79cd7b812d72c604e9c91cd86c9dfc62dff2c1cc442def367b76f03c5b5d1734506c520cbf141d9ab95485f22d0329acd6e9f53015044f15ce10b7696fbc2a839f1136e1a328e97ddaa19fcb71434d9e3a62b5b81a33ed8d854e3dea158bdff5eafa81af596f6df14c7acf5f94bbb3ba856020c5d239be0536795b0335ccb24bf6f5f9fc93fe2573c0e5243d63a85ce3f5015b214dae332253b99b74f013a31101da571dd00ba46c71678ff77585a6d1450699c6cb37404833b3aa6462f14580c8760df90d0a6e6ad195d84f76a2d4a9f09708e32b33060d80deaddad53895a031f312d8b1d58e7da059b4ff5e62fbb8864b69e47866bae88601324f39841836656ac3544ee6c7289985baa22104fc13cbd3d238ca16239d7543f6d450e6a5943e6364fc247ce14f35c2ef8073cb6b7d2427e95cc8b71600bf46f86a64d2b64b8eef58a5df5f5073302d92e6b6ee73f04b98109f0ba13c3b9573853ccfcfc5e471e048ef85c64a066e756f537ecdc4cb8ec8aab9506d76b42e2c79ba73a25a82c0c20b4e63f05e2f3ec3e79ad1a213a70127e9294e55212008fec9432a636e402c6bfa6bd9bce1a49b4e3076bd1c2213a0c72d76ebbd6f32b0161af4ea415df5a78894e9833b1c22acd8fc52e4e961f4cb51f492569bfe2267d94d76d2fd65a0ae0683445913417d46eae13350919bae48e400a7a55e1a69eb6c8a28fa50be41ed3e33445913417d46eae13350919bae48e400a7a55e1a69eb6c8a28fa50be41ed3e36022ff77d180d30a7f0788c7eb7805820959cfded00e2a506f72401b21a4d6242c7dc964f7fcda65fd9197cb0aeaf037a285c4024a7b473b767ff04e49b39d37b978183d3eee654e15484f03e287fef4c6e0156556c932d67a4a4fc2bc8a5a1a90a87c6d3aa1066bf308efab7a4dd31c3f127e189b6576fee4c28092e6bafbfd8386baf7a485c4eb4097d4daeb0110ec693b4b6c403980d6ff6a3076ce10446da7e1aa0be5ed69ca50b02869c6a07452e0f3189cf6e730d519cd572c3f50665c4ac72e6d7e50ff3bb5f77ff6d34aca10431c0ec03c51434c165daac29643efd7cfb84d6333654c70410f54e0cc87914f58cbe8ccfd58534d6e70751e38a15f6b7760109e638f56f53f162080f673e8dd003b4d09d12240ab54a8a204fed9bb2e6a45045a5cc790b43248bae2badedcd4bcfbfc0f14bfa1a6203d9afe74abbe005a4e61c8c969ec26ff4c082502198f11515e8d23cc63dedc4f3f6fa31860a781bd698a03ef885f3388b337f5e74c1b1aad7e393015053237b2a2278eeb4805691d55dccd1dc7fe73fa6a7460316f37e71da563486590167ca8c2b78dfe4da2a9382451c2a3c84a743faab2923682cec56b3a7467d5b0fa0e8fc79a9a2a7a87292a7a2423c226c2543cd0aef4485c6da324196535c96c19cdbcc1e700a0409eee39b950d20a390e386275225af5b1b9c853d051e97f1c331e5304cb5bc95833a656d6ed11774fffa11ac59fe144bdeb3fe1eb055044a9bfc034dee5f077e844530bee701419063aa4a6cb98f59633f61001ec4cf9b3e02a77925b2b5204da51526513b22814393e705f9a6a4964c0ccdc6993c3de3bf6c2fbf05570668c253d61cd22e91919e67c262609e5359db91aaa4b68961b3915ad58fc2f089d71d5675607c230575d371c08ff488edafcee3f34bd9b36f1b824b692f72e86a73e71b95e6d16610ae67f54807121fd786ed96097130501122ecf8c596cdc7c52637d47a3b06282f38791446367e894bd1c8647f18bf698f98dda83c87335390b622dd83d1834443737b177eda413c3601f3c17e628c4132af4d45873fd9076a7bc7472bad05c05fdc6d249116174d3a94ca412327d069ca7173b987d13f08f758a7fa4e0a8fc1f7a1c11eeec446d377d3c35f233b1f1ffb5d8f92d7c9b440f0406615daba4d14e52947f5cd4d15ba6186debe12f8ec91fe60ab8c4f84e7dbea2c26d2b2dac316e9fb03f5d4322aa4b30ea24e6ec725aa7ed59d70188362c21a12453f422727888145be7464ec9bc021fc991da80af1e9ae1973249701d82a7779c9efc030a06d41c96b8d8b485b8a873c87a883ab3a18dfb72d5411ba86ea66738301b8c5c0cc009a3d82ca627bb2de4f5e28c11a2cb62fe7df700d2f8fe3f58f73eb053fbd6be6e4dfc7cd18338be40d0cbafa0cbfff83183c97bfe1f2fe18bd94f55d57e647d080d00d0e0664e4d155ceddd2c5e89b96a5f6274e247419b289e3abbc7da64423e568265a10ab479d068d4f8532578cb8520a76ca6e37d6955694ee50badc289aa82339d9e13d67ec25a2405d48752fbe4ed1025e2253beef5cb88944646de7f2fccb5f89516e64b5bdb1c4fd456a09c9cc680dd64e0756e62ff5000ec78c4200604ee709d64ea5308f44f6be49356c9a6988c37688ccba0590cf83bfa3be501e600f8b2f624b7f0ed043b0f35e17eeca864445f835301e1bf7200968719c49b8fc7102cc12476e215854cd228f1f8c0d316f0ea2df6c183f167e9724a6f60381434ad60ff390e67913b4d072ee7c2564bd5763696ef1b299e1d967b33758f559cc68f6745588738f25d7bb80d46b93b23751ccf075d91486ad6b92a3f354cd350ebeaf0a5209e181b957ca5a3fc42d29ac352b0499ef1d3d8238c0e1687465f343fd54ca96b50bafa7ecaa15a2d4d3b04a40994182ce63593992ea3747eb9bd43d243e9bb5bf5a62b7de4abaaed498ac4e639cb0d311ebba116543e387e595423dea975860f4a6b4d9dfe707a782a92541c365d45bf9b6662019a8d10ad8a7748098d32a2393a27a4e28d89ada74ced8b02377b202539b7436d7dd4e50d2c168003551a723a977b534ff7fa217ee5775c7a4d642ad502ef9a49ff0260ad49fd14fad46df1516bd46d8bd980793d561fc4c28d7bd0f9290deb29b1ebf69bee8784d40100ed283fb1efbb9a8e9bbcb4fd1870a626af3781fb48f24a67deb2bc570e773cc341f23c2d5c146604ba6e6ef5695a162942336f7af601517f5c784779f5a335632ae6ab56a88cf64a2e0c918b1c7fb49d3e9f173fb25fd0f09462f83590a9e9e26a5d7359f863ed412aacd29eddf248f81759b09c3c4893f4edb5008e594fb04bca70ced73f410076bcad485e67e502f47dd561a995529f72da18ed012e1e7b04d6092b765cba23e30329cacc12de939cfd48fd4469c98e90852d31f986be44a9c8b077ae1374b88bf4e7d44e4d3f604545c985a2090c3ee0014db1f60d3d78a4ac0b41d9ea75cdcb26445a7f611c7641023d95f4aad50c1ea37cb8ed03f20d675642e092306e76d32d962f9af54dedc1e7e9cfec6d7efed6a640f75fd0ae931c110cf5a4a4977e6cea40e4877f922289ac8685fa6c4b70c5725b00927809ac9809c9b58a51771a53d4ce06327f5269b6e08912244958a3ec06965856e3275181a63f52aebadcb0d589e2cf3b3e8437e77fbea289ab556e3e3e6533b53be67f79311f5cc5d7fe067cb72af5a8751423129bfbc98e1ce9877dfbc9c59f42962f493046e81dd0dfe715a0a1b5ad46e5c40737ae273b43166b05bbcef35d9b3492b8d5267ff66eb164658d1c49b2982237f213858195766cea26119e2bf1d9ae07b80c1f684454c01b9364344422f7bcb86b2dbb4c0de59668042780bcad383999f03994253ad319b8345aebc6d701a6deeabec30661ccda661003d576f099abdb54f79f626589852ef1d5bcae7a22790c0cd39a8d9e421946fbb241aee4698d17a21aac8b1bb2f9ece40d22c6f3218bf0bf7c1ee6df8fd0c63acd6c3d2c3a8a7d0ca0f638805a24e053a8df6989353fd65aa4fa90695ef016e81565918f4fbfe822f6e0c0b14a3358857ca25e7c3e82f7e567b8ff1f80481af41c851ec4914bc2330b21b98416d650a1a5f409760c02b094e21001cad43ca357772d0f2e7f1a5cb6b8f6547399d88ed3056b8da53a735b7afd60eb0f71a0867d09d91918c26bc5a6e3f55c85934797cab21609ca27fb4ce6efcd8c65a5640b5cefc64c7c81c50b38477437d49f71e8414944012833abbf643e74399cdcc43634a9f28994a2deda243ba18206d41d8185d2a091ec33512e3bc8c27480197a825443b8e92c199731db1e00fc33e79c4d035e6235ebaacdb21a58f2859f9a53dc5a0b776c3e0b8f95dadef20835bddb2fd4304b5b49d4c9dd018e2ea3d0b3827189fc43539322bd7ae8e520e2e00c6d11ac5cfdff4f2f7043cc1e3a1660b12d06baf4d4036810a27a31cf7888a092f9ca8daa7871efd66c1c2cbd6bca5657c3e8a6c90478eb9587b15c2e6709bff0186353e5505161c2a153d6d4b84cdab8496904656ede03315a378fb1e044513997b9b4dda56febc519266ea0dfd926821f84b6be01db32a4ca8eebf1918a5d0b4411bbcee5890fcd041158c0de663ef4eaff024a850e05b3a650ccbe7942d3d0989518017ac13fb6d2ba46acf6b2f8f3685f94e01525d49694e7ca029f41b8722a883589279b0e31bacc5c5abfd1c89ca621787c66796a8f3f0315676c8d9bf8d070719ff8ee4ae223b28a2cb1361842c3e2b96c902fd3001a15a8b775268f30c6a77ee0d4c9542418591429053277ff5ffc8d89b585ed73af3de59c4dcf2feebf19d175608e1c2ea9936272dfdbe2e77dc366375ac34623c882de3c7602a1a81b34b830433d40327f2b2f9b8609aba30ad4b89f20d64d2b88710e48e0b880a63673ce502913a123058de596abd9a803a199d4200281e64f08e636184999f9063563579e5c4f86758fd655ace5c70c45bd6594c37d17655654acfebd410ea165dc1ef242f08a1904c1c1678369657507e9373e014568dbd65e564758552aea99d3d06e2ee067a568457268675d5afeafb222a70cd79f960d9a48da679814d9c5791a52680b6ec5aa6ccf3f0c91f47c7ac913bb91a7d7ae79d4bfcb02926110f44fcd249660e9cade76befb19cd15f00da4cf8a80ebde6acd7d0cddaf5e9f3d01a2dc372de8c470c40a43608c01305cb98d09cd4616fbcba7cb6739ea1e16377dd56f2c04e31b23be6c1e3e5f907fc34f643578607511cfb88f1abec4ca501440a7c7a3d95b335da9aea6232a622fd3cc379cd67a770161e000cf6e756cfb54fe3e71da8457c80538ad79c1474fe680ce593593818ffcb37467f8c4aeccd1bc4ffe21779fafa9f9c63b14a50957bea9b6d3000e5dd0ebf4807aa8f75351d1feb7f48cd0314f945f5a713a6f743c8fae51a38996ba6cdf4ce4740f95066e1cf8f84de5b4ca61d42d8d212ce5b726e9e7913f7824929382ff7e3dbe3829245110a1f595cc9f147b09d987e66780cce4f884c2a33e41f5260df9219c2bb928fceeaadb0ea7a045d30bf2b49cce26770dbcd5b60a00f0f5260df9219c2bb928fceeaadb0ea7a045d30bf2b49cce26770dbcd5b60a00f04b474bb917bf217716b32aa6ee94d4386e000e84706db2fe03d736b7811a84696c8cf5056633a51c407aa144800d6394cb9a5718a3dbdf58258c37d5812a31a095f4773180844886343a69407ea228f15624caf49f7733fb0d3a2ceef9eda2e495f4773180844886343a69407ea228f15624caf49f7733fb0d3a2ceef9eda2e40b88b3ab7b8e9faa857141469500ba9c10a24b4d58213a92f2a1c01fe967d0c744b00b5096b9a711ecb3a96b344f80e7670c13043b88c01048f1dd7494d94a6da4719d971741901dcb44289b8cf463606f9fcd96b175e531d8e239435a945311dbdb2103b0fde1ffefe408223f70e792b5a5c53a9a92037c4d575dd20b8c24dd1f6c8e09a6bd07b0c028b4fa18c519719eb895c699b986d29e488471f2a939f2f90dbd441ee5da368c3414ee9be90f9ac8b54b48b62f809d4963fe6c4ab51bb00293855d4e5423bbfa172b9deb1f433b1c7392732ce664617623f1ac46b278a1612e900a9020e303b57ffb85d728d109f963c4b57d7b14e3c73649133749bd091fc6d9794a9ddc8f32d5e5a147f5e03932df093be1808ab2bba1f109bec98ccf13802ea6182994224454af0d590ce109080eb546574039cb08acb15022908e6d891bbec4b2ec95bfe4b4d38f90ab384c058f963af10cc92c1674aaa36e6af5d008c3a8a28dd06a1534c31de7fa035d9a9aa2a3915a9c450ea2cb1ed177d2fe3a6ec6e8d5d19813e822ad9e0c73b25e31bb2029643e59c7073c094b033777d36f690031ed6eb6ced6f6bad1930a58374206fc883f734829d38618a5fdc21d2fce5da63d3d34cd8781bf501877127c0175955f8e9fa8d3f48be85540c785109c045da63d3d34cd8781bf501877127c0175955f8e9fa8d3f48be85540c785109c04211599c80c5983d603aa856189425b059a53b4dba76eb690a7e21db082dfa426e1d6151cfa40ce9ea7a517ace4107b5cec5e4d16fe5fe42d84795629457b519b8e674c4baf4534d4574e28ad52af3bed043c74ea3dce01fa8a214fc404564691ec5ad0b5d159dcc9f80827f3dfb4ee2fac40d6650e3b344607a9570d0c71be6e6f8a037c8e19a21677088f48bc15dc36e2e2ba93eca64b8f6f8032779c22c25cafd0195e85061b64a8b07387963b6335c07bf14fbf272250ed0f119e43ecee5fc4eebfd83129b7eed11fa083d58116bfc0232a34f142c6a52962cb6f400b6f0b5eca051e647f83294cc4685126b4077daacd9c84ff32ef2df6801e6d13d179c9186ed18ab8a1c2ba1f13c7738cc0dc6d07ce5648ade0c5e86da07fe79a8fd3d0cdacba2cd67734896ee3643adc8093de6644733fda546d6b5cb3a4276b5f6ac7a372b2f4317d888fb0a461c38b9bd9b3bb29cc54a500d60892a82abb4cc2900a7f3c39bd0bc77217c91ef94712bdb808c4d8d86c3cfe9aaccfbea33663140657684cf3b7571c14cef5a497c6e9daf0cc665e4c8fa7b4ce3e2cbc413f26855cb07aac1e08fbea6b29f6c623bd02abf805cdfc18a38b71c6ba3dacd3f53f3bb9f163b3bba65a9989b254208c910d33c7c5429804dbe5e1ba2d157be3114034cb40023db94ccfcc21ce401219a4e06753f55452a04ec51709dd963f79b0dd975a805fa2c8b9e1dabaf4717cc53458e9c1800dc7014f6bf80a23231bd4c99cd80980f82e7f39d44d428e345e27ae3da48aa588cd0f074e5afdc2134e5d1358a37d0d351f5b776bef64872787eec02e16602aefd24b68faa811a1ca802294c2f0fb297a653ebd6d151170df2bb1ac183417fb772f9ee5a6ac244d050a75cb034d152b0592d50961b9c5e86a4c3e41cbab6a690588496c751dcfc8bb0509756e70c52c7c6142f191af83ba73c3ad0bc7d8a0aeae75d50d2d239443b3e6c65c214e34fd7c6142f191af83ba73c3ad0bc7d8a0aeae75d50d2d239443b3e6c65c214e34fd21f355e2d91bec576b71c453cbd1917fdbff29d64a9981a92f6f8389edf4ea8d21f355e2d91bec576b71c453cbd1917fdbff29d64a9981a92f6f8389edf4ea8d4258783fdeaa9f38a3ee88feb521c1336b46a42de3176e320496197b3e7ed1d91f00a907b7519f533f9918df86f99976c7e16c6d266907dc495728f269614115e8c41aa901d4fd984520955a5f228b3321bdfc427a0706f8736eab61e610185293ca3be15569fd9c35d5599b84b0713e253a0b3cd39bb35b68dc0679678d9fd0395462c562fd029cbb1927a076fa7d88693e6a9a3e350d406fce01322d7697df3bfe9839efa2478ac72333679babc2cdcc3154d3c64607c05e1873a7537d8cf121689ddb6e16cbe926435531a91b2eb708930f326af9a8f1406c74af1fbf3371d89ad31c962adbadd7a2c4120bf3483f44ee7d4b13946ed652bfa546a8c90ae028cc2f94750beb344d03f5cc6bf497c1b9bb44120d0ffdec2b5e7935e4a8708fe3b4771f6904eba3ed28ef36793fd57397824a035ee2a38582a3883d1765a7d7cc70badc9c7e3ea650d9e6dc606521686eb6bdf9054a495073c31999aa44ed26078d8bbec13a1bbf3aacd12cae1b5afc100d6b382ba5bd16a1204fa8aca3b7987ec65646a197651da098cd23c6e8a880a5b75b0ce5ccab934515988b0b4e39ddb64ad9d1eaae2d2213862500f3ab9d07b39d742ba451878a5a70c503287431a8b64ad9d1eaae2d2213862500f3ab9d07b39d742ba451878a5a70c503287431a84ee8a9bf1e0ab917dd50b369aef7da35885061714e1bec1e775d0f0e0067aed1e0761bfed6c4af6109077900bdf8121f212b35319b18e98746303aa368595ccfe483862f7bf902ecdcb35e25ec62b0fcf7d774a74d0d00b764830e98bb99cf2b6b79d1dee6d03e4c50d9b60fffcd98966e7fad1ef3caab60e6c619a6e2ccb46e92f24d2d0732a9ac48fec12d64d195a4a416604f419f2811bec6b02a0233fee4a01b86ff73dd15c799b8a5a188304c12b0991eb9ab2ac7f52b6083c2a77d742b79b02d6783451740da05963f5bd3546f509c8e7cfb2d1f9f887734b43dbdfe2379b02d6783451740da05963f5bd3546f509c8e7cfb2d1f9f887734b43dbdfe23220abd6e7d1cf2d921dbfb695157d8746925bb2fd02259aa0645b7a239b40f2702beaa01ed15673ae0eb5cfd317c151042cf769d49e58353f3d15e0bc63e90396e5eac6d50e862c4e92bca0a670f5c61aa57dd4616fec16040339b486fcc14cff01895698faf217aa670b549cd3da6a2ab3d59054744e84545e55743cdfd8ed6907a57ddeeead620b01aaad1a552f386e0c782384c3cc3d1cd2a8fd05d7742a167f5f195da9d1e0d4be8495c7e89cab15f7e3959616d40aa14d58fa93f04790e8fa9a76e2bb0de131e890d38e1c4a58d11ffdc5c566608e55b292e09f4bb3b3b56a306a6a0265c8afc19d4a62605af508859a70018bc3d797f44891c5bf1cfcfd0dad9c61dbbf976b8149e74a52338ccf301bf9ab11b55d67566a55ff8a4e170cf523eabf6157f1dbfa642cce66cfbccbece7205a247333ebe553896bed27ecf32c065b403dc9c1e5b0426364c9516792c3fd22fe60326336b47be7662758e9832c065b403dc9c1e5b0426364c9516792c3fd22fe60326336b47be7662758e987ff26296ec33c619a5b4c6e9b4843ca80d3761476048d06bdd1c1cc97f73fb17df029767467c965736bb1003bdb873ddd1d5e982f246b0ee8ceb1a6d795f7c241a2807ece01af82b4c3c283ab4489f0bc7afd54d13bf11331c22cb91ba3573459bb1ec3e02ae291b13423828bfa560d36767ed7b1ae76c6108b9aa2e33c8a198e50aee1163c4e2eacfb65093e4483cb41432855f5f7c17d92008e6328ef6edd3fd4cedff0435fe59b91a710d105fecd99c9af8b3827c6f94080dba10b0740cb83a1736aebe914be9e1b3a4f900bd58c90b5aaacc7a055ac96b4f760a2c00bcd37605a679d1cba9c0bee205d7729cb66b74dc89ef0b98ce71d654d19836f5a55eb8e1688a83ad1f9928dc4e7da91ff31c7b1513623d6440c73e0e9c3262096a77c51e2840a05fe125e2cf4210fcad25c38dbb8efbe05fd4a21177a322ef5f755fc701f52c6aa456c8347ee7f1adb5a55fcf2954fc5b135d45bcedcbe0e737ce1b8b15f5052f04befb8f5cdd7ff1aa2c7581ca9ad5c607d36544d548f53f4c000f8756430894237409e13958a95324440bf3a5132b77cf9910d69aed5e3f5999af19e6573d47bb1ea013459f628ec0d1b77b155c48a83af8bf4fc7732eb50c04de48470149663cc6a4803c198f0364dd4e31499ea4ecf40e16a31557e15c8dbf663ae06fbae2bf7b3ab779a1d8d7427cf71a4447d210f70718cc523b8f5b69965da081e31540954ef832ba154eb8f2d2436f4f5e33a06f85cded4891753b3c19b57b911ae39272d9174eafa6e62c5f63892d81c3ae569d84c3d4d30b2656c601acbffa2739c2972f2298cc098d4498b1bef0ab3a210035c05977ed433f79b85e46cd1aefdceb37476c0a35b6978d36e65c8426cf6216e530c6deb22ab8f95e625de3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855d7df21eb1e8bb74d65ffd382a65bb43da1376200a82d438a89b4ded63cfa80a1ad3dc5e4a574a7faf49314776761510b1f1b1637369e50e3503ecf98e7194a0801ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b78753d6ac7ba8a7d5948112d4c3a65edfc083c838de369dba99d6e153c9c731be00791bcc3e1412ab065c5da89c5f752fe8ccf253df2037150d710b04e9788d8015aabf136bc8910f574b468371aedd1d0e65a8b958b21dcc196593e57647cd392be4816fb8b9646adb5454c96390580a1be8e3e310189b66d4b9a68d550a1b3d1af3fab2ef8cc53b6c7f48bdeb178ac874b04faf4ba0159a96b6109f1d393e2rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-pycryptodomex-3.9.9-150300.3.3.1.src.rpmpython3-pycryptodomexpython3-pycryptodomex(s390-64)@@@@@@     libc.so.6()(64bit)libc.so.6(GLIBC_2.2)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libpthread.so.0()(64bit)python(abi)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.63.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3e_0@_)M^Y]M@]]x]w@\ \ڭ\1[[[[[@["@[;e@Z@Z?ZK@Y@Y@mcepl@suse.comhpj@urpla.netdmueller@suse.comdmueller@suse.comhpj@urpla.nethpj@urpla.nettbechtold@suse.comtchvatal@suse.comtchvatal@suse.commcalabkova@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.nethpj@urpla.nethpj@urpla.netdmueller@suse.commcalabkova@suse.comhpj@urpla.nettchvatal@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.nettoddrme2178@gmail.com- Add CVE-2023-52323-side_channel-RSA_decrypt.patch (bsc#1218564, CVE-2023-52323) fixing side-channel leakage in RSA decryption. - Add CVE-2023-52323-const_time-decoding.patch (bsc#1218564, CVE-2023-52323) using constant-time (faster) padding decoding also for OAEP.- update to 3.9.9: * GH#435: Fixed Crypto.Util.number.size for negative numbers- update to 3.9.8: * GH#426: The Shamir's secret sharing implementation is not actually compatible with ``ssss``. Added an optional parameter to enable interoperability. * GH#427: Skip altogether loading of ``gmp.dll`` on Windows. * GH#420: Fix incorrect CFB decryption when the input and the output are the same buffer. * Speed up Shamir's secret sharing routines. Thanks to ncarve.- update to 3.9.7: * GH#381: Make notarization possible again on OS X when using wheels. Thanks to Colin Atkinson. * RSA OAEP decryption was not verifying that all ``PS`` bytes are zero. * GH#372: fixed memory leak for operations that use memoryviews when `cffi` is not installed. * Fixed wrong ASN.1 OID for HMAC-SHA512 in PBE2. * GH#341: Prevent ``key_to_english`` from creating invalid data when fed with keys of length not multiple of 8. Thanks to vstoykovbg. * GH#347: Fix blocking RSA signing/decryption when key has very small factor. Thanks to Martijn Pieters. * GH#308: Align stack of functions using SSE2 intrinsics to avoid crashes, when compiled with gcc on 32-bit x86 platforms.- Use the pycryptodome tarball- Update to 3.9.2 (10 November 2019): + New features * Add Python 3.8 wheels for Mac. + Resolved issues * GH#308: Avoid allocating arrays of __m128i on the stack, to cope with buggy compilers. * GH#322: Remove blanket -O3 optimization for gcc and clang, to cope with buggy compilers. * GH#337: Fix typing stubs for signatures. * GH#338: Deal with gcc installations that don't have x86intrin.h. - Update to version 3.9.1 (1 November 2019): + New features * Add Python 3.8 wheels for Linux and Windows. + Resolved issues * GH#328: minor speed-up when importing RSA. - sync spec file with python-pycryptodome- Add export LC_ALL=en_US.UTF-8 to %build, %install and %check to fix the build on older distros- Update to 3.9.0: * Add support for loading PEM files encrypted with AES256-CBC. * Add support for XChaCha20 and XChaCha20-Poly1305 ciphers. * Add support for bcrypt key derivation function (Crypto.Protocol.KDF.bcrypt). * Add support for left multiplication of an EC point by a scalar. * Add support for importing ECC and RSA keys in the new OpenSSH format.- Update to 3.8.2: * GH#291: fix strict aliasing problem, emerged with GCC 9.1.- Update to 3.8.1 * Add support for loading PEM files encrypted with AES192-CBC, AES256-CBC, and AES256-GCM. * When importing ECC keys, ignore EC PARAMS section that was included by some openssl commands. * repr() did not work for ECC.EccKey. * Minimal length for Blowfish cipher is 32 bits, not 40 bits. 3.8.0 * Speed-up ECC performance. ECDSA is 33 times faster on the NIST P-256 curve. * Added support for NIST P-384 and P-521 curves. * EccKey has new methods size_in_bits() and size_in_bytes(). * Support HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, and HMAC-SHA512 in PBE2/PBKDF2. * DER objects were not rejected if their length field had a leading zero. * Allow legacy RC2 ciphers to have 40-bit keys. * point_at_infinity() becomes an instance method for Crypto.PublicKey.ECC.EccKey, from a static one. 3.7.3 * GH#258: False positive on PSS signatures when externally provided salt is too long.- fix tarball: use the one from PyPI...- Update to 3.7.2 - Resolved issues * GH#242: Fixed compilation problem on ARM platforms. - Update to 3.7.1 - New features * Added type stubs to enable static type checking with mypy. Thanks to Michael Nix. * New ``update_after_digest`` flag for CMAC. - Resolved issues * GH#232: Fixed problem with gcc 4.x when compiling ``ghash_clmul.c``. * GH#238: Incorrect digest value produced by CMAC after cloning the object. * Method ``update()`` of an EAX cipher object was returning the underlying CMAC object, instead of the EAX object itself. * Method ``update()`` of a CMAC object was not throwing an exception after the digest was computed (with ``digest()`` or ``verify()``).- checked in python-pycrytodomex as separate package on request of Dirk Müller- fixed source url- Update to 3.7.0 - New features * Added support for Poly1305 MAC (with AES and ChaCha20 ciphers for key derivation). * Added support for ChaCha20-Poly1305 AEAD cipher. * New parameter output for Crypto.Util.strxor.strxor, Crypto.Util.strxor.strxor_c, encrypt and decrypt methods in symmetric ciphers (Crypto.Cipher package). output is a pre-allocated buffer (a bytearray or a writeable memoryview) where the result must be stored. This requires less memory for very large payloads; it is also more efficient when encrypting (or decrypting) several small payloads. - Resolved issues * GH#266: AES-GCM hangs when processing more than 4GB at a time on x86 with PCLMULQDQ instruction. - Breaks in compatibility * Drop support for Python 3.3. * Remove Crypto.Util.py3compat.unhexlify and Crypto.Util.py3compat.hexlify. * With the old Python 2.6, use only ctypes (and not cffi) to interface to native code. - Clean up spec - pycryptodomex package spec added- remove pycryptodomex copy in this package container- Update to 3.6.6 - Resolved issues: * Fix vulnerability on AESNI ECB with payloads smaller than 16 bytes. - Update to 3.5.5 - Resolved issues * Fixed incorrect AES encryption/decryption with AES acceleration on x86 due to gcc’s optimization and strict aliasing rules. * More prime number candidates than necessary where discarded as composite due to the limited way D values were searched in the Lucas test. * Fixed ResouceWarnings and DeprecationWarnings. - Update to 3.5.4 - New features: * Build Python 3.7 wheels on Linux, Windows and Mac. - Resolved issues: * More meaningful exceptions in case of mismatch in IV length (CBC/OFB/CFB modes).- Update to 3.6.3 (21 June 2018) - Resolved issues * GH#175: Fixed incorrect results for CTR encryption/decryption with more than 8 blocks. - Update to 3.6.2 (19 June 2018) - New features * ChaCha20 accepts 96 bit nonces (in addition to 64 bit nonces) as defined in RFC7539. * Accelerate AES-GCM on x86 using PCLMULQDQ instruction. * Accelerate AES-ECB and AES-CTR on x86 by pipelining AESNI instructions. * As result of the two improvements above, on x86 (Broadwell): - AES-ECB and AES-CTR are 3x faster - AES-GCM is 9x faster - Resolved issues * On Windows, MPIR library was stilled pulled in if renamed to ``gmp.dll``. - Breaks in compatibility * In ``Crypto.Util.number``, functions ``floor_div`` and ``exact_div`` have been removed. Also, ``ceil_div`` is limited to non-negative terms only. - suggesting libgmp10 and python-cffi - add license file tag- Provide/obsolete also python-crypto for py2 package- fix condition to act as drop in replacement for python-pycrypto- Update to 3.6.1 (15 April 2018) - New features * Added Google Wycheproof tests (https://github.com/google/wycheproof) for RSA, DSA, ECDSA, GCM, SIV, EAX, CMAC. * New parameter ``mac_len`` (length of MAC tag) for CMAC. - Resolved issues * In certain circumstances (at counter wrapping, which happens on average after 32 GBi) AES GCM produced wrong ciphertexts. * Method ``encrypt()`` of AES SIV cipher could be still called, whereas only ``encrypt_and_digest()`` should be allowed. - Update to 3.6.0 (8 April 2018) - New features * Introduced ``export_key`` and deprecated ``exportKey`` for DSA and RSA key objects. * Ciphers and hash functions accept ``memoryview`` objects in input. * Added support for SHA-512/224 and SHA-512/256. - Resolved issues * Reintroduced `Crypto.__version__` variable as in PyCrypto. * Fixed compilation problem with MinGW. - Update to 3.5.1 (8 March 2018) - Resolved issues * GH#142. Fix mismatch with declaration and definition of addmul128. - Update to 3.5.0 (7 March 2018) - New features * Import and export of ECC curves in compressed form. * The initial counter for a cipher in CTR mode can be a byte string (in addition to an integer). * Faster PBKDF2 for HMAC-based PRFs (at least 20x for short passwords, more for longer passwords). Thanks to Christian Heimes for pointing out the implementation was under-optimized. * The salt for PBKDF2 can be either a string or bytes (GH#67). * Ciphers and hash functions accept data as `bytearray`, not just binary strings. * The old SHA-1 and MD5 hash functions are available even when Python's own `hashlib` does not include them. - Resolved issues * Without libgmp, modular exponentiation (since v3.4.8) crashed on 32-bit big-endian systems. - Breaks in compatibility * Removed support for Python < 2.6. - Update to 3.4.12 (5 February 2018) - Resolved issues * GH#129. pycryptodomex could only be installed via wheels. - Update to 3.4.11 (5 February 2018) - Resolved issues * GH#121. the record list was still not correct due to PEP3147 and __pycache__ directories. Thanks again to John O'Brien. - Update to 3.4.10 (2 February 2018) - Resolved issues * When creating ElGamal keys, the generator wasn't a square residue: ElGamal encryption done with those keys cannot be secure under the DDH assumption. Thanks to Weikeng Chen. - Update to 3.4.9 (1 February 2018) - New features * More meaningful error messages while importing an ECC key. - Resolved issues * GH#123 and #125. The SSE2 command line switch was not always passed on 32-bit x86 platforms. * GH#121. The record list (--record) was not always correctly filled for the pycryptodomex package. Thanks to John W. O'Brien. - Update to 3.4.8 (27 January 2018) - New features * Added a native extension in pure C for modular exponentiation, optimized for SSE2 on x86. In the process, we drop support for the arbitrary arithmetic library MPIR on Windows, which is painful to compile and deploy. The custom modular exponentiation is 130% (160%) slower on an Intel CPU in 32-bit (64-bit) mode, compared to MPIR. Still, that is much faster that CPython's own `pow()` function which is 900% (855%) slower than MPIR. Support for the GMP library on Unix remains. * Added support for *manylinux* wheels. * Support for Python 3.7. - Resolved issues * The DSA parameter 'p' prime was created with 255 bits cleared (but still with the correct strength). * GH#106. Not all docs were included in the tar ball. Thanks to Christopher Hoskin. * GH#109. ECDSA verification failed for DER encoded signatures. Thanks to Alastair Houghton. * Human-friendly messages for padding errors with ECB and CBC.- provide python-crypto 2.6.1- Initial versions390zp37 1708333344  !"#$%&'()*+,-./0123456689:;<<>>@ABCDEFGHHJKLMNNPPRSTTVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'')*+,-./0123456789:;<=>?@ABCDEFGHIIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     3.9.9-150300.3.3.13.9.9-150300.3.3.1    !!""""""!!##$$$$$$$$$$####%%&&&&&&&&%%%%'(((())****************))))))))+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+--------..////.00111111110000233244425552666277777777777777777777777777777777777777777777777777777777778899999999999999888888::::::::;;;;;;;;<<<<<<<<<<<<;;;;========>>>>>>>>>>>>>>>>>>>>>>================??@@@@@ABBBCDCryptodomeCipherAES.pyAES.pyiARC2.pyARC2.pyiARC4.pyARC4.pyiBlowfish.pyBlowfish.pyiCAST.pyCAST.pyiChaCha20.pyChaCha20.pyiChaCha20_Poly1305.pyChaCha20_Poly1305.pyiDES.pyDES.pyiDES3.pyDES3.pyiPKCS1_OAEP.pyPKCS1_OAEP.pyiPKCS1_v1_5.pyPKCS1_v1_5.pyiSalsa20.pySalsa20.pyi_ARC4.cpython-36m-s390x-linux-gnu.so_EKSBlowfish.py_EKSBlowfish.pyi_Salsa20.cpython-36m-s390x-linux-gnu.so__init__.py__init__.pyi__pycache__AES.cpython-36.opt-1.pycAES.cpython-36.pycARC2.cpython-36.opt-1.pycARC2.cpython-36.pycARC4.cpython-36.opt-1.pycARC4.cpython-36.pycBlowfish.cpython-36.opt-1.pycBlowfish.cpython-36.pycCAST.cpython-36.opt-1.pycCAST.cpython-36.pycChaCha20.cpython-36.opt-1.pycChaCha20.cpython-36.pycChaCha20_Poly1305.cpython-36.opt-1.pycChaCha20_Poly1305.cpython-36.pycDES.cpython-36.opt-1.pycDES.cpython-36.pycDES3.cpython-36.opt-1.pycDES3.cpython-36.pycPKCS1_OAEP.cpython-36.opt-1.pycPKCS1_OAEP.cpython-36.pycPKCS1_v1_5.cpython-36.opt-1.pycPKCS1_v1_5.cpython-36.pycSalsa20.cpython-36.opt-1.pycSalsa20.cpython-36.pyc_EKSBlowfish.cpython-36.opt-1.pyc_EKSBlowfish.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc_mode_cbc.cpython-36.opt-1.pyc_mode_cbc.cpython-36.pyc_mode_ccm.cpython-36.opt-1.pyc_mode_ccm.cpython-36.pyc_mode_cfb.cpython-36.opt-1.pyc_mode_cfb.cpython-36.pyc_mode_ctr.cpython-36.opt-1.pyc_mode_ctr.cpython-36.pyc_mode_eax.cpython-36.opt-1.pyc_mode_eax.cpython-36.pyc_mode_ecb.cpython-36.opt-1.pyc_mode_ecb.cpython-36.pyc_mode_gcm.cpython-36.opt-1.pyc_mode_gcm.cpython-36.pyc_mode_ocb.cpython-36.opt-1.pyc_mode_ocb.cpython-36.pyc_mode_ofb.cpython-36.opt-1.pyc_mode_ofb.cpython-36.pyc_mode_openpgp.cpython-36.opt-1.pyc_mode_openpgp.cpython-36.pyc_mode_siv.cpython-36.opt-1.pyc_mode_siv.cpython-36.pyc_pkcs1_oaep_decode.cpython-36.opt-1.pyc_pkcs1_oaep_decode.cpython-36.pyc_chacha20.cpython-36m-s390x-linux-gnu.so_mode_cbc.py_mode_cbc.pyi_mode_ccm.py_mode_ccm.pyi_mode_cfb.py_mode_cfb.pyi_mode_ctr.py_mode_ctr.pyi_mode_eax.py_mode_eax.pyi_mode_ecb.py_mode_ecb.pyi_mode_gcm.py_mode_gcm.pyi_mode_ocb.py_mode_ocb.pyi_mode_ofb.py_mode_ofb.pyi_mode_openpgp.py_mode_openpgp.pyi_mode_siv.py_mode_siv.pyi_pkcs1_decode.cpython-36m-s390x-linux-gnu.so_pkcs1_oaep_decode.py_raw_aes.cpython-36m-s390x-linux-gnu.so_raw_arc2.cpython-36m-s390x-linux-gnu.so_raw_blowfish.cpython-36m-s390x-linux-gnu.so_raw_cast.cpython-36m-s390x-linux-gnu.so_raw_cbc.cpython-36m-s390x-linux-gnu.so_raw_cfb.cpython-36m-s390x-linux-gnu.so_raw_ctr.cpython-36m-s390x-linux-gnu.so_raw_des.cpython-36m-s390x-linux-gnu.so_raw_des3.cpython-36m-s390x-linux-gnu.so_raw_ecb.cpython-36m-s390x-linux-gnu.so_raw_eksblowfish.cpython-36m-s390x-linux-gnu.so_raw_ocb.cpython-36m-s390x-linux-gnu.so_raw_ofb.cpython-36m-s390x-linux-gnu.soHashBLAKE2b.pyBLAKE2b.pyiBLAKE2s.pyBLAKE2s.pyiCMAC.pyCMAC.pyiHMAC.pyHMAC.pyiMD2.pyMD2.pyiMD4.pyMD4.pyiMD5.pyMD5.pyiPoly1305.pyPoly1305.pyiRIPEMD.pyRIPEMD.pyiRIPEMD160.pyRIPEMD160.pyiSHA.pySHA.pyiSHA1.pySHA1.pyiSHA224.pySHA224.pyiSHA256.pySHA256.pyiSHA384.pySHA384.pyiSHA3_224.pySHA3_224.pyiSHA3_256.pySHA3_256.pyiSHA3_384.pySHA3_384.pyiSHA3_512.pySHA3_512.pyiSHA512.pySHA512.pyiSHAKE128.pySHAKE128.pyiSHAKE256.pySHAKE256.pyi_BLAKE2b.cpython-36m-s390x-linux-gnu.so_BLAKE2s.cpython-36m-s390x-linux-gnu.so_MD2.cpython-36m-s390x-linux-gnu.so_MD4.cpython-36m-s390x-linux-gnu.so_MD5.cpython-36m-s390x-linux-gnu.so_RIPEMD160.cpython-36m-s390x-linux-gnu.so_SHA1.cpython-36m-s390x-linux-gnu.so_SHA224.cpython-36m-s390x-linux-gnu.so_SHA256.cpython-36m-s390x-linux-gnu.so_SHA384.cpython-36m-s390x-linux-gnu.so_SHA512.cpython-36m-s390x-linux-gnu.so__init__.py__init__.pyi__pycache__BLAKE2b.cpython-36.opt-1.pycBLAKE2b.cpython-36.pycBLAKE2s.cpython-36.opt-1.pycBLAKE2s.cpython-36.pycCMAC.cpython-36.opt-1.pycCMAC.cpython-36.pycHMAC.cpython-36.opt-1.pycHMAC.cpython-36.pycMD2.cpython-36.opt-1.pycMD2.cpython-36.pycMD4.cpython-36.opt-1.pycMD4.cpython-36.pycMD5.cpython-36.opt-1.pycMD5.cpython-36.pycPoly1305.cpython-36.opt-1.pycPoly1305.cpython-36.pycRIPEMD.cpython-36.opt-1.pycRIPEMD.cpython-36.pycRIPEMD160.cpython-36.opt-1.pycRIPEMD160.cpython-36.pycSHA.cpython-36.opt-1.pycSHA.cpython-36.pycSHA1.cpython-36.opt-1.pycSHA1.cpython-36.pycSHA224.cpython-36.opt-1.pycSHA224.cpython-36.pycSHA256.cpython-36.opt-1.pycSHA256.cpython-36.pycSHA384.cpython-36.opt-1.pycSHA384.cpython-36.pycSHA3_224.cpython-36.opt-1.pycSHA3_224.cpython-36.pycSHA3_256.cpython-36.opt-1.pycSHA3_256.cpython-36.pycSHA3_384.cpython-36.opt-1.pycSHA3_384.cpython-36.pycSHA3_512.cpython-36.opt-1.pycSHA3_512.cpython-36.pycSHA512.cpython-36.opt-1.pycSHA512.cpython-36.pycSHAKE128.cpython-36.opt-1.pycSHAKE128.cpython-36.pycSHAKE256.cpython-36.opt-1.pycSHAKE256.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pyckeccak.cpython-36.opt-1.pyckeccak.cpython-36.pyc_ghash_portable.cpython-36m-s390x-linux-gnu.so_keccak.cpython-36m-s390x-linux-gnu.so_poly1305.cpython-36m-s390x-linux-gnu.sokeccak.pykeccak.pyiIOPEM.pyPEM.pyiPKCS8.pyPKCS8.pyi_PBES.py_PBES.pyi__init__.py__pycache__PEM.cpython-36.opt-1.pycPEM.cpython-36.pycPKCS8.cpython-36.opt-1.pycPKCS8.cpython-36.pyc_PBES.cpython-36.opt-1.pyc_PBES.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pycMathNumbers.pyNumbers.pyiPrimality.pyPrimality.pyi_IntegerBase.py_IntegerBase.pyi_IntegerCustom.py_IntegerCustom.pyi_IntegerGMP.py_IntegerGMP.pyi_IntegerNative.py_IntegerNative.pyi__init__.py__pycache__Numbers.cpython-36.opt-1.pycNumbers.cpython-36.pycPrimality.cpython-36.opt-1.pycPrimality.cpython-36.pyc_IntegerBase.cpython-36.opt-1.pyc_IntegerBase.cpython-36.pyc_IntegerCustom.cpython-36.opt-1.pyc_IntegerCustom.cpython-36.pyc_IntegerGMP.cpython-36.opt-1.pyc_IntegerGMP.cpython-36.pyc_IntegerNative.cpython-36.opt-1.pyc_IntegerNative.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc_modexp.cpython-36m-s390x-linux-gnu.soProtocolKDF.pyKDF.pyiSecretSharing.pySecretSharing.pyi__init__.py__init__.pyi__pycache__KDF.cpython-36.opt-1.pycKDF.cpython-36.pycSecretSharing.cpython-36.opt-1.pycSecretSharing.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc_scrypt.cpython-36m-s390x-linux-gnu.soPublicKeyDSA.pyDSA.pyiECC.pyECC.pyiElGamal.pyElGamal.pyiRSA.pyRSA.pyi__init__.py__init__.pyi__pycache__DSA.cpython-36.opt-1.pycDSA.cpython-36.pycECC.cpython-36.opt-1.pycECC.cpython-36.pycElGamal.cpython-36.opt-1.pycElGamal.cpython-36.pycRSA.cpython-36.opt-1.pycRSA.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc_openssh.cpython-36.opt-1.pyc_openssh.cpython-36.pyc_ec_ws.cpython-36m-s390x-linux-gnu.so_openssh.py_openssh.pyiRandom__init__.py__init__.pyi__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycrandom.cpython-36.opt-1.pycrandom.cpython-36.pycrandom.pyrandom.pyiSelfTestCipher__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyccommon.cpython-36.opt-1.pyccommon.cpython-36.pyctest_AES.cpython-36.opt-1.pyctest_AES.cpython-36.pyctest_ARC2.cpython-36.opt-1.pyctest_ARC2.cpython-36.pyctest_ARC4.cpython-36.opt-1.pyctest_ARC4.cpython-36.pyctest_Blowfish.cpython-36.opt-1.pyctest_Blowfish.cpython-36.pyctest_CAST.cpython-36.opt-1.pyctest_CAST.cpython-36.pyctest_CBC.cpython-36.opt-1.pyctest_CBC.cpython-36.pyctest_CCM.cpython-36.opt-1.pyctest_CCM.cpython-36.pyctest_CFB.cpython-36.opt-1.pyctest_CFB.cpython-36.pyctest_CTR.cpython-36.opt-1.pyctest_CTR.cpython-36.pyctest_ChaCha20.cpython-36.opt-1.pyctest_ChaCha20.cpython-36.pyctest_ChaCha20_Poly1305.cpython-36.opt-1.pyctest_ChaCha20_Poly1305.cpython-36.pyctest_DES.cpython-36.opt-1.pyctest_DES.cpython-36.pyctest_DES3.cpython-36.opt-1.pyctest_DES3.cpython-36.pyctest_EAX.cpython-36.opt-1.pyctest_EAX.cpython-36.pyctest_GCM.cpython-36.opt-1.pyctest_GCM.cpython-36.pyctest_OCB.cpython-36.opt-1.pyctest_OCB.cpython-36.pyctest_OFB.cpython-36.opt-1.pyctest_OFB.cpython-36.pyctest_OpenPGP.cpython-36.opt-1.pyctest_OpenPGP.cpython-36.pyctest_SIV.cpython-36.opt-1.pyctest_SIV.cpython-36.pyctest_Salsa20.cpython-36.opt-1.pyctest_Salsa20.cpython-36.pyctest_pkcs1_15.cpython-36.opt-1.pyctest_pkcs1_15.cpython-36.pyctest_pkcs1_oaep.cpython-36.opt-1.pyctest_pkcs1_oaep.cpython-36.pyccommon.pytest_AES.pytest_ARC2.pytest_ARC4.pytest_Blowfish.pytest_CAST.pytest_CBC.pytest_CCM.pytest_CFB.pytest_CTR.pytest_ChaCha20.pytest_ChaCha20_Poly1305.pytest_DES.pytest_DES3.pytest_EAX.pytest_GCM.pytest_OCB.pytest_OFB.pytest_OpenPGP.pytest_SIV.pytest_Salsa20.pytest_pkcs1_15.pytest_pkcs1_oaep.pytest_vectorsAESCBCGFSbox128.rspCBCGFSbox192.rspCBCGFSbox256.rspCBCKeySbox128.rspCBCKeySbox192.rspCBCKeySbox256.rspCBCMCT128.rspCBCMCT192.rspCBCMCT256.rspCBCMMT128.rspCBCMMT192.rspCBCMMT256.rspCBCVarKey128.rspCBCVarKey192.rspCBCVarKey256.rspCBCVarTxt128.rspCBCVarTxt192.rspCBCVarTxt256.rspCFB128GFSbox128.rspCFB128GFSbox192.rspCFB128GFSbox256.rspCFB128KeySbox128.rspCFB128KeySbox192.rspCFB128KeySbox256.rspCFB128MCT128.rspCFB128MCT192.rspCFB128MCT256.rspCFB128MMT128.rspCFB128MMT192.rspCFB128MMT256.rspCFB128VarKey128.rspCFB128VarKey192.rspCFB128VarKey256.rspCFB128VarTxt128.rspCFB128VarTxt192.rspCFB128VarTxt256.rspCFB8GFSbox128.rspCFB8GFSbox192.rspCFB8GFSbox256.rspCFB8KeySbox128.rspCFB8KeySbox192.rspCFB8KeySbox256.rspCFB8MCT128.rspCFB8MCT192.rspCFB8MCT256.rspCFB8MMT128.rspCFB8MMT192.rspCFB8MMT256.rspCFB8VarKey128.rspCFB8VarKey192.rspCFB8VarKey256.rspCFB8VarTxt128.rspCFB8VarTxt192.rspCFB8VarTxt256.rspOFBGFSbox128.rspOFBGFSbox192.rspOFBGFSbox256.rspOFBKeySbox128.rspOFBKeySbox192.rspOFBKeySbox256.rspOFBMCT128.rspOFBMCT192.rspOFBMCT256.rspOFBMMT128.rspOFBMMT192.rspOFBMMT256.rspOFBVarKey128.rspOFBVarKey192.rspOFBVarKey256.rspOFBVarTxt128.rspOFBVarTxt192.rspOFBVarTxt256.rspREADME.txtgcmDecrypt128.rspgcmEncryptExtIV128.rspTDESREADME.txtTCBCMMT2.rspTCBCMMT3.rspTCBCinvperm.rspTCBCpermop.rspTCBCsubtab.rspTCBCvarkey.rspTCBCvartext.rspTCFB64MMT2.rspTCFB64MMT3.rspTCFB64invperm.rspTCFB64permop.rspTCFB64subtab.rspTCFB64varkey.rspTCFB64vartext.rspTCFB8MMT2.rspTCFB8MMT3.rspTCFB8invperm.rspTCFB8permop.rspTCFB8subtab.rspTCFB8varkey.rspTCFB8vartext.rspTECBMMT2.rspTECBMMT3.rspTOFBMMT2.rspTOFBMMT3.rspTOFBinvperm.rspTOFBpermop.rspTOFBsubtab.rspTOFBvarkey.rspTOFBvartext.rspwycheproofaead_aes_siv_cmac_test.jsonaes_ccm_test.jsonaes_eax_test.jsonaes_gcm_test.jsonaes_siv_cmac_test.jsonchacha20_poly1305_test.jsonrsa_oaep_2048_sha1_mgf1sha1_test.jsonrsa_oaep_2048_sha224_mgf1sha1_test.jsonrsa_oaep_2048_sha224_mgf1sha224_test.jsonrsa_oaep_2048_sha256_mgf1sha1_test.jsonrsa_oaep_2048_sha256_mgf1sha256_test.jsonrsa_oaep_2048_sha384_mgf1sha1_test.jsonrsa_oaep_2048_sha384_mgf1sha384_test.jsonrsa_oaep_2048_sha512_mgf1sha1_test.jsonrsa_oaep_2048_sha512_mgf1sha512_test.jsonrsa_oaep_3072_sha256_mgf1sha1_test.jsonrsa_oaep_3072_sha256_mgf1sha256_test.jsonrsa_oaep_3072_sha512_mgf1sha1_test.jsonrsa_oaep_3072_sha512_mgf1sha512_test.jsonrsa_oaep_4096_sha256_mgf1sha1_test.jsonrsa_oaep_4096_sha256_mgf1sha256_test.jsonrsa_oaep_4096_sha512_mgf1sha1_test.jsonrsa_oaep_4096_sha512_mgf1sha512_test.jsonrsa_oaep_misc_test.jsonrsa_pkcs1_2048_test.jsonrsa_pkcs1_3072_test.jsonrsa_pkcs1_4096_test.jsonxchacha20_poly1305_test.jsonHash__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyccommon.cpython-36.opt-1.pyccommon.cpython-36.pyctest_BLAKE2.cpython-36.opt-1.pyctest_BLAKE2.cpython-36.pyctest_CMAC.cpython-36.opt-1.pyctest_CMAC.cpython-36.pyctest_HMAC.cpython-36.opt-1.pyctest_HMAC.cpython-36.pyctest_MD2.cpython-36.opt-1.pyctest_MD2.cpython-36.pyctest_MD4.cpython-36.opt-1.pyctest_MD4.cpython-36.pyctest_MD5.cpython-36.opt-1.pyctest_MD5.cpython-36.pyctest_Poly1305.cpython-36.opt-1.pyctest_Poly1305.cpython-36.pyctest_RIPEMD160.cpython-36.opt-1.pyctest_RIPEMD160.cpython-36.pyctest_SHA1.cpython-36.opt-1.pyctest_SHA1.cpython-36.pyctest_SHA224.cpython-36.opt-1.pyctest_SHA224.cpython-36.pyctest_SHA256.cpython-36.opt-1.pyctest_SHA256.cpython-36.pyctest_SHA384.cpython-36.opt-1.pyctest_SHA384.cpython-36.pyctest_SHA3_224.cpython-36.opt-1.pyctest_SHA3_224.cpython-36.pyctest_SHA3_256.cpython-36.opt-1.pyctest_SHA3_256.cpython-36.pyctest_SHA3_384.cpython-36.opt-1.pyctest_SHA3_384.cpython-36.pyctest_SHA3_512.cpython-36.opt-1.pyctest_SHA3_512.cpython-36.pyctest_SHA512.cpython-36.opt-1.pyctest_SHA512.cpython-36.pyctest_SHAKE.cpython-36.opt-1.pyctest_SHAKE.cpython-36.pyctest_keccak.cpython-36.opt-1.pyctest_keccak.cpython-36.pyccommon.pytest_BLAKE2.pytest_CMAC.pytest_HMAC.pytest_MD2.pytest_MD4.pytest_MD5.pytest_Poly1305.pytest_RIPEMD160.pytest_SHA1.pytest_SHA224.pytest_SHA256.pytest_SHA384.pytest_SHA3_224.pytest_SHA3_256.pytest_SHA3_384.pytest_SHA3_512.pytest_SHA512.pytest_SHAKE.pytest_keccak.pytest_vectorsBLAKE2bblake2b-test.txttv1.txttv2.txtBLAKE2sblake2s-test.txttv1.txttv2.txtSHA1SHA1ShortMsg.rspSHA2SHA512ShortMsg.rspSHA512_224ShortMsg.rspSHA512_256ShortMsg.rspSHA3ShortMsgKAT_SHA3-224.txtShortMsgKAT_SHA3-256.txtShortMsgKAT_SHA3-384.txtShortMsgKAT_SHA3-512.txtShortMsgKAT_SHAKE128.txtShortMsgKAT_SHAKE256.txtkeccakExtremelyLongMsgKAT_224.txtExtremelyLongMsgKAT_256.txtExtremelyLongMsgKAT_384.txtExtremelyLongMsgKAT_512.txtLongMsgKAT_224.txtLongMsgKAT_256.txtLongMsgKAT_384.txtLongMsgKAT_512.txtShortMsgKAT_224.txtShortMsgKAT_256.txtShortMsgKAT_384.txtShortMsgKAT_512.txtreadme.txtwycheproofaes_cmac_test.jsonIO__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_PBES.cpython-36.opt-1.pyctest_PBES.cpython-36.pyctest_PKCS8.cpython-36.opt-1.pyctest_PKCS8.cpython-36.pyctest_PBES.pytest_PKCS8.pyMath__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_Numbers.cpython-36.opt-1.pyctest_Numbers.cpython-36.pyctest_Primality.cpython-36.opt-1.pyctest_Primality.cpython-36.pyctest_modexp.cpython-36.opt-1.pyctest_modexp.cpython-36.pyctest_modmult.cpython-36.opt-1.pyctest_modmult.cpython-36.pyctest_Numbers.pytest_Primality.pytest_modexp.pytest_modmult.pyProtocol__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_KDF.cpython-36.opt-1.pyctest_KDF.cpython-36.pyctest_SecretSharing.cpython-36.opt-1.pyctest_SecretSharing.cpython-36.pyctest_rfc1751.cpython-36.opt-1.pyctest_rfc1751.cpython-36.pyctest_KDF.pytest_SecretSharing.pytest_rfc1751.pytest_vectorswycheproofhkdf_sha1_test.jsonhkdf_sha256_test.jsonhkdf_sha384_test.jsonhkdf_sha512_test.jsonPublicKey__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_DSA.cpython-36.opt-1.pyctest_DSA.cpython-36.pyctest_ECC.cpython-36.opt-1.pyctest_ECC.cpython-36.pyctest_ElGamal.cpython-36.opt-1.pyctest_ElGamal.cpython-36.pyctest_RSA.cpython-36.opt-1.pyctest_RSA.cpython-36.pyctest_import_DSA.cpython-36.opt-1.pyctest_import_DSA.cpython-36.pyctest_import_ECC.cpython-36.opt-1.pyctest_import_ECC.cpython-36.pyctest_import_RSA.cpython-36.opt-1.pyctest_import_RSA.cpython-36.pyctest_DSA.pytest_ECC.pytest_ElGamal.pytest_RSA.pytest_import_DSA.pytest_import_ECC.pytest_import_RSA.pytest_vectorsECCecc_p256.txtecc_p256_private.derecc_p256_private.pemecc_p256_private_ecparams.pemecc_p256_private_enc_aes128.pemecc_p256_private_enc_aes192.pemecc_p256_private_enc_aes256.pemecc_p256_private_enc_aes256_gcm.pemecc_p256_private_enc_des3.pemecc_p256_private_openssh.pemecc_p256_private_openssh_old.pemecc_p256_private_openssh_pwd.pemecc_p256_private_openssh_pwd_old.pemecc_p256_private_p8.derecc_p256_private_p8.pemecc_p256_private_p8_clear.derecc_p256_private_p8_clear.pemecc_p256_public.derecc_p256_public.pemecc_p256_public_compressed.derecc_p256_public_compressed.pemecc_p256_public_openssh.txtecc_p256_x509.derecc_p256_x509.pemecc_p384.txtecc_p384_private.derecc_p384_private.pemecc_p384_private_enc_aes128.pemecc_p384_private_enc_aes192.pemecc_p384_private_enc_aes256.pemecc_p384_private_enc_aes256_gcm.pemecc_p384_private_enc_des3.pemecc_p384_private_openssh.pemecc_p384_private_openssh_old.pemecc_p384_private_openssh_pwd.pemecc_p384_private_openssh_pwd_old.pemecc_p384_private_p8.derecc_p384_private_p8.pemecc_p384_private_p8_clear.derecc_p384_private_p8_clear.pemecc_p384_public.derecc_p384_public.pemecc_p384_public_compressed.derecc_p384_public_compressed.pemecc_p384_public_openssh.txtecc_p384_x509.derecc_p384_x509.pemecc_p521.txtecc_p521_private.derecc_p521_private.pemecc_p521_private_enc_aes128.pemecc_p521_private_enc_aes192.pemecc_p521_private_enc_aes256.pemecc_p521_private_enc_aes256_gcm.pemecc_p521_private_enc_des3.pemecc_p521_private_openssh.pemecc_p521_private_openssh_old.pemecc_p521_private_openssh_pwd.pemecc_p521_private_openssh_pwd_old.pemecc_p521_private_p8.derecc_p521_private_p8.pemecc_p521_private_p8_clear.derecc_p521_private_p8_clear.pemecc_p521_public.derecc_p521_public.pemecc_p521_public_compressed.derecc_p521_public_compressed.pemecc_p521_public_openssh.txtecc_p521_x509.derecc_p521_x509.pemgen_ecc_p256.shgen_ecc_p384.shgen_ecc_p521.shopenssl_version.txtopenssl_version_p384.txtopenssl_version_p521.txtpoint-at-infinity.org-P256.txtpoint-at-infinity.org-P384.txtpoint-at-infinity.org-P521.txtRSAgen_rsa_2048.shopenssl_version.txtrsa2048_private.pemrsa2048_private_openssh.pemrsa2048_private_openssh_old.pemrsa2048_private_openssh_pwd.pemrsa2048_private_openssh_pwd_old.pemrsa2048_public_openssh.txtRandom__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_random.cpython-36.opt-1.pyctest_random.cpython-36.pyctest_random.pySignature__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_dss.cpython-36.opt-1.pyctest_dss.cpython-36.pyctest_pkcs1_15.cpython-36.opt-1.pyctest_pkcs1_15.cpython-36.pyctest_pss.cpython-36.opt-1.pyctest_pss.cpython-36.pyctest_dss.pytest_pkcs1_15.pytest_pss.pytest_vectorsDSAFIPS_186_3_SigGen.txtFIPS_186_3_SigVer.rspECDSAREADME.txtSigGen.txtSigVer.rspPKCS1-PSSSigGenPSS_186-2.txtSigGenPSS_186-3.txtSigVerPSS_186-3.rspPKCS1-v1.5SigGen15_186-2.txtSigGen15_186-3.txtSigVer15_186-3.rspwycheproofdsa_test.jsonecdsa_secp224r1_sha224_p1363_test.jsonecdsa_secp224r1_sha224_test.jsonecdsa_secp224r1_sha256_p1363_test.jsonecdsa_secp224r1_sha256_test.jsonecdsa_secp224r1_sha3_224_test.jsonecdsa_secp224r1_sha3_256_test.jsonecdsa_secp224r1_sha3_512_test.jsonecdsa_secp224r1_sha512_p1363_test.jsonecdsa_secp224r1_sha512_test.jsonecdsa_secp256r1_sha256_p1363_test.jsonecdsa_secp256r1_sha256_test.jsonecdsa_secp256r1_sha3_256_test.jsonecdsa_secp256r1_sha3_512_test.jsonecdsa_secp256r1_sha512_p1363_test.jsonecdsa_secp256r1_sha512_test.jsonecdsa_secp384r1_sha384_p1363_test.jsonecdsa_secp384r1_sha384_test.jsonecdsa_secp384r1_sha3_384_test.jsonecdsa_secp384r1_sha3_512_test.jsonecdsa_secp384r1_sha512_p1363_test.jsonecdsa_secp384r1_sha512_test.jsonecdsa_secp521r1_sha3_512_test.jsonecdsa_secp521r1_sha512_p1363_test.jsonecdsa_secp521r1_sha512_test.jsonecdsa_test.jsonecdsa_webcrypto_test.jsonrsa_pss_2048_sha1_mgf1_20_test.jsonrsa_pss_2048_sha256_mgf1_0_test.jsonrsa_pss_2048_sha256_mgf1_32_test.jsonrsa_pss_2048_sha512_256_mgf1_28_test.jsonrsa_pss_2048_sha512_256_mgf1_32_test.jsonrsa_pss_3072_sha256_mgf1_32_test.jsonrsa_pss_4096_sha256_mgf1_32_test.jsonrsa_pss_4096_sha512_mgf1_32_test.jsonrsa_pss_misc_test.jsonrsa_sig_gen_misc_test.jsonrsa_signature_2048_sha224_test.jsonrsa_signature_2048_sha256_test.jsonrsa_signature_2048_sha384_test.jsonrsa_signature_2048_sha3_224_test.jsonrsa_signature_2048_sha3_256_test.jsonrsa_signature_2048_sha3_384_test.jsonrsa_signature_2048_sha3_512_test.jsonrsa_signature_2048_sha512_224_test.jsonrsa_signature_2048_sha512_256_test.jsonrsa_signature_2048_sha512_test.jsonrsa_signature_3072_sha256_test.jsonrsa_signature_3072_sha384_test.jsonrsa_signature_3072_sha3_256_test.jsonrsa_signature_3072_sha3_384_test.jsonrsa_signature_3072_sha3_512_test.jsonrsa_signature_3072_sha512_256_test.jsonrsa_signature_3072_sha512_test.jsonrsa_signature_4096_sha384_test.jsonrsa_signature_4096_sha512_256_test.jsonrsa_signature_4096_sha512_test.jsonrsa_signature_test.jsonUtil__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_Counter.cpython-36.opt-1.pyctest_Counter.cpython-36.pyctest_Padding.cpython-36.opt-1.pyctest_Padding.cpython-36.pyctest_asn1.cpython-36.opt-1.pyctest_asn1.cpython-36.pyctest_number.cpython-36.opt-1.pyctest_number.cpython-36.pyctest_rfc1751.cpython-36.opt-1.pyctest_rfc1751.cpython-36.pyctest_strxor.cpython-36.opt-1.pyctest_strxor.cpython-36.pyctest_Counter.pytest_Padding.pytest_asn1.pytest_number.pytest_rfc1751.pytest_strxor.py__init__.py__main__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc__main__.cpython-36.opt-1.pyc__main__.cpython-36.pycloader.cpython-36.opt-1.pycloader.cpython-36.pycst_common.cpython-36.opt-1.pycst_common.cpython-36.pycloader.pyst_common.pySignatureDSS.pyDSS.pyiPKCS1_PSS.pyPKCS1_PSS.pyiPKCS1_v1_5.pyPKCS1_v1_5.pyi__init__.py__pycache__DSS.cpython-36.opt-1.pycDSS.cpython-36.pycPKCS1_PSS.cpython-36.opt-1.pycPKCS1_PSS.cpython-36.pycPKCS1_v1_5.cpython-36.opt-1.pycPKCS1_v1_5.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pycpkcs1_15.cpython-36.opt-1.pycpkcs1_15.cpython-36.pycpss.cpython-36.opt-1.pycpss.cpython-36.pycpkcs1_15.pypkcs1_15.pyipss.pypss.pyiUtilCounter.pyCounter.pyiPadding.pyPadding.pyiRFC1751.pyRFC1751.pyi__init__.py__pycache__Counter.cpython-36.opt-1.pycCounter.cpython-36.pycPadding.cpython-36.opt-1.pycPadding.cpython-36.pycRFC1751.cpython-36.opt-1.pycRFC1751.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc_cpu_features.cpython-36.opt-1.pyc_cpu_features.cpython-36.pyc_file_system.cpython-36.opt-1.pyc_file_system.cpython-36.pyc_raw_api.cpython-36.opt-1.pyc_raw_api.cpython-36.pycasn1.cpython-36.opt-1.pycasn1.cpython-36.pycnumber.cpython-36.opt-1.pycnumber.cpython-36.pycpy3compat.cpython-36.opt-1.pycpy3compat.cpython-36.pycstrxor.cpython-36.opt-1.pycstrxor.cpython-36.pyc_cpu_features.py_cpu_features.pyi_cpuid_c.cpython-36m-s390x-linux-gnu.so_file_system.py_file_system.pyi_raw_api.py_raw_api.pyi_strxor.cpython-36m-s390x-linux-gnu.soasn1.pyasn1.pyinumber.pynumber.pyipy3compat.pypy3compat.pyistrxor.pystrxor.pyi__init__.py__init__.pyi__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycpy.typedpycryptodomex-3.9.9-py3.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txtnot-zip-safetop_level.txtpython3-pycryptodomexAUTHORS.rstChangelog.rstREADME.rstpython3-pycryptodomexLICENSE.rst/usr/lib64/python3.6/site-packages//usr/lib64/python3.6/site-packages/Cryptodome//usr/lib64/python3.6/site-packages/Cryptodome/Cipher//usr/lib64/python3.6/site-packages/Cryptodome/Cipher/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/Hash//usr/lib64/python3.6/site-packages/Cryptodome/Hash/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/IO//usr/lib64/python3.6/site-packages/Cryptodome/IO/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/Math//usr/lib64/python3.6/site-packages/Cryptodome/Math/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/Protocol//usr/lib64/python3.6/site-packages/Cryptodome/Protocol/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/PublicKey//usr/lib64/python3.6/site-packages/Cryptodome/PublicKey/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/Random//usr/lib64/python3.6/site-packages/Cryptodome/Random/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Cipher//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Cipher/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Cipher/test_vectors//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Cipher/test_vectors/AES//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Cipher/test_vectors/TDES//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Cipher/test_vectors/wycheproof//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Hash//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Hash/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Hash/test_vectors//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Hash/test_vectors/BLAKE2b//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Hash/test_vectors/BLAKE2s//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Hash/test_vectors/SHA1//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Hash/test_vectors/SHA2//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Hash/test_vectors/SHA3//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Hash/test_vectors/keccak//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Hash/test_vectors/wycheproof//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/IO//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/IO/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Math//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Math/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Protocol//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Protocol/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Protocol/test_vectors//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Protocol/test_vectors/wycheproof//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/PublicKey//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/PublicKey/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/PublicKey/test_vectors//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/PublicKey/test_vectors/ECC//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/PublicKey/test_vectors/RSA//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Random//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Random/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Signature//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Signature/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Signature/test_vectors//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Signature/test_vectors/DSA//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Signature/test_vectors/ECDSA//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Signature/test_vectors/PKCS1-PSS//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Signature/test_vectors/PKCS1-v1.5//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Signature/test_vectors/wycheproof//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Util//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/Util/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/SelfTest/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/Signature//usr/lib64/python3.6/site-packages/Cryptodome/Signature/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/Util//usr/lib64/python3.6/site-packages/Cryptodome/Util/__pycache__//usr/lib64/python3.6/site-packages/Cryptodome/__pycache__//usr/lib64/python3.6/site-packages/pycryptodomex-3.9.9-py3.6.egg-info//usr/share/doc/packages//usr/share/doc/packages/python3-pycryptodomex//usr/share/licenses//usr/share/licenses/python3-pycryptodomex/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:32629/SUSE_SLE-15-SP3_Update/c0a089ff2434467f0b883b21e402be14-python-pycryptodomex.SUSE_SLE-15-SP3_Updatedrpmxz5s390x-suse-linux  !"#$%&%'((((((((()))((((((((((((((()))((((((((((((((((((((((((((((((((()))((((((((((((((((((((((((((((((((((((((**************************((((******++++********,,,,%****,,------------------------------------------------....----,))))))))*****************************************,/01--+directoryPython script, ASCII text executableELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=ee0333064ce590c58f86d3c092fe325187ecea08, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=9878b9a0020c2f6a29be440b82eeabd6691850fa, strippedemptypython 3.6 byte-compiledELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=74e90eaf93e8f7abb68be0b67b2a029fa976ecc9, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=e39b0b1cb7bf3beec2a8066a3f5c9b70cc514cb5, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=1db1d017fd0a846bfff5aa5c97f58ac75536735f, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=410099e987a64088b8150d57e155ccfc1beea37a, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=5d92ba560a30a961899ae336e9ca791d68bcb1df, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=41796b813c883a52c774777bb223b13c7dcc8912, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=5c866e7bde139591e44b7548a766c07b23643485, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=3eaa94a5d3af54135aabc71f07db9c28c57bce4a, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=0eb93b25c654cf07f2ae3cf8455aeaf101f17a47, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=c4150a70a86e1d7d8c05899701f9e93ef3ef2a3b, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=076841798a761b732dc643514584032007cfe0af, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=93c3d387903b0d25cbea266f80ececedf7b3dafe, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=48299ebfc4ddacc9d4f09b3b714203ad823c626b, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=b5381fd45afa55df134d320a4282b5c30a87113a, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=63f000caaa1a50569e49c5a8b303682f68b6ce95, strippedASCII textELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=59e9fcbbb47b022d8af25bb028b3a350b221b81d, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=4ce9e95613a14a4abf34db3e49bc7db252671219, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=d596760849945bfbe383d2397a628efddfb6c588, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=e3f6b24d3c62949a6a094bdd46abf7f953bdcff5, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=146ca4061d57dbf7107bcf35029e765879a2389f, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=8cd88ff10cc4925a66a6e2060f764427ed9c4905, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=c2a24dedbdb0650e05a1d72a2c52476cd3a2739d, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=11b6547eccbd7834cef7236a02555c446e91dcc7, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=ab747fd9ebdfd8b0d25fb554c98fc088f6248325, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=21a506113b3a883ffb7fca74bf6bb9f054843b98, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=5b2fed5514eee856d79ef5bd1801501ec3d1985e, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=94e86d0627590c5d05a89bb33518fda4cc20f8a4, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=0ae49b97ca95be7943bb2e0a89805dbd799faf94, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=67faa5d29626db7a2bf20bda90302acbd3fe55e9, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=15c5cfc4c860d8f3d89db28818390dda0772b2df, strippedPython script, UTF-8 Unicode text executableELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=c30cd640ae0a7105a4d0b79b9abb5fd00b58aa68, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=4f441e1fec70e9e391c55476163b9b2144ac3aaa, strippedASCII text, with CRLF line terminatorsASCII text, with very long lines, with CRLF line terminatorsASCII text, with very long linesUTF-8 Unicode textPython script, ASCII text executable, with very long linesPOSIX shell script, ASCII text executablea /usr/bin/env python script, ASCII text executableELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=1c6e05cfe7a3556554a30222fd40c6f2bbb0f677, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=b4b6aa0a9e89d53adb3d2a58a153ae0195a55fb6, stripped #$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX]^_`abcdefghijklmnopqrswx| "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSX]cdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR\p@X.libgmp10python3-cffiutf-80716a75562c7b5983080a29b379a27e7e51117370cd179090e02662dac2aaf43?7zXZ !t/c]]"k%pa Ch.vMm@:o=籂?4s[1,f0G JY B]p ,mv5fy,SP!%Y&FkU"+ll2ỾzLiIJyU: ѩ9[:`v Y ՉB#7mqV.u6dEô Β~u1&YP~n&)lR7؃,8Ȋ§8#qWSi -: 5}ZQ~XiUYĤ}gio^yr eq*lڥGr^aP 1$z\ -ɥ!NkiHey3Z+8eƄڴ+AמPvpӳtVlj;[m:b.#*2nQ(9WGLfS}tYd$,#ߠiגan5Q8T\p[1Rɏ3 Zk1'Aq!TBWfCR؏hC`i(#oL0.T=clx~Ӯ ܏40ru/FֳjGe!!R-f15ևh}ʩT?N7+]i g̛ٖ6"V۲ayV©Sz ܱ?#kPi ;?U9W00\(jΒW!87{j]znhϼt  |*HZy |a j/136 kk`MTwW>W/|66X * J޼7"428 R':.g. ZxM" YՇ"ccҹpT< Ҥu6|!2$1wMN:|sMVS Wd)-sne 1lá-vzJ׬~V&0M<(.R2614ȉTUᙾ=dLf AM7ǫWeٺ}ȀT_r*/9eAI7V `m@fX7cw _"4 LXA}ې1Wܡ^HN ҞWu>̖|}>P&5/O_ ܻ62cD7͢Zmd(Wg-qf^\#1-pn &}Z @GZ0Bhj蛏ԃՖ(:ݕR6zdʜ0ds*^%6sxZJpݘ7zY<͊cV#F\f@&"?]a(g?5O ,8g !^S7sMbNxzk r alJYInoO25#[Er2/ |8!qUn8}PfB@̘|ji$@y80/ &"gJn< fO5B-O}'J{t-6[EK滶ܧRPTD͙h; Ĵ\b{+,J9Ev$0tVK[f)Yh,2}^1ƔJnV9RǁǒӂJq o{" :;kl=ٻ(o@N`w(۽ǜ< _#y D45Gʱc*R浛O8}m"" Ps(1uYgY%ЅɌUK! ؚ? 4d*"[W/[t=oR6%Bv4)8WS7y0Kw7H,~w@6:ky#w$7Ko$ɥt)ۡ:wf blƲގv)}[4Hj7 DVNJ{!*t?Nॵ`YK-d߃znՓawy&5gxI`\,\d0']?5sM)1-BɲGBn%IƂlDL=`,Cp$ z2Yĉ6W:sj==Gގ6'H1ݦ>ͰJU_巁0*41drFz% ATnp^JlMR,}", zYHncM|A'YtL xƢzEq `x>M( 9ZiFxgq6(䀥+/$":kt܂o9͂kgB:Qb9" kO\7#.a`#xdr a!<5Dz+`鉫$~bԐ3 ->SQt3$ FL!Z* nyͨ6"9_.Яh%% at5J\O_>7S P,2K7J]w8,r7j9;nvAD ai~KՄ+&O / !Ӓo5_ ` gCU ɢ-C dw/_jC)úQHHeD#YռLU]aS>Kϼ#kӋd 0ְ(GHOǀ:ex|"%/ƭ!5㷲mlIv${MI82T2EX: ~גeOX`yVEr{RiU(iH [K\x}Vo%=s8wjݹ3YrXnJSBJ+ 9LY0S@.\L. 5HF47QwѾФxX~ W+&hʈX@>T}]VCņK-'=AFi+ 1$i:~ 4 e6w5qO H<ɡsdo<oazW+&=6%XyYFl\agT_^I/ZZ~[DA⪛x YuPvg>ǃ:t%ѝɨC-c%FA*\nQ$#< Bej9t v 7s<7 j^gy`N\ 1:IDMT朻lTVrۋw9-^!XtB Ҳ3[~뱆gu۽RYAg[gR\I{ERYSkIC C8E%4tRk ]iHvFH>//(1*V,UÕ`3np gT4,n.eqBG1cbPMU/E/0AeTFKӻM[qm]gQp䬭;hʢU PkAf,Qʯ T O :-JVꨲ{*z6nP)'1CIlk:cXNW8ޛ (4t*_F:t<:hSD#vѳqK7P!nTEWnZyh zĄR/?^>WHGZG|ڷ%=X涢 8]5>?.H~] ҫ.?8O.ZjqZI%>yCw tP[e;ɇ))T]5ְs[uzޚ{_b`]ԭNTXZ]I[j͸lbqYo b<#ɐ#‹.#c G?t(c3gP!qsh:+ݫ,\/oj^y+"F4-|WF 񞠠}^Oљ%kHRJWVKc|aV5m10x43;E߁T82zyqpv9vzŨ{sg~խ@ BYJVniamޙ1^Iª6&S!5]DrCVlNq؍RepiuS30GfY"S|̕4%m^uG,?{'W} /O4QZ!`K{/3NQ[ayL@Uj C B߲ +B\8kLJԉ$冄uo̰ћgJpY쯫rf?|;~bwRڬ'Q4n2^Z.o/0j c-mvn-;cU;>յ>s\|U I,̬qeuJ]'K]X=/&:xx>Rs6X Vj `1I# acm_b%5+ M|i%=vZVRtAՆaS&-tVϧ*߫.|)Zjΰ1cNٛ~#/cqO/Lw/fL\it$5D8 x^7n,Cb eaC݌Km"$l٘[C5Yi<} cGl/fZ}qMw.;Do |RzvN,76'r[Clu|q8b.d-Go~IXKQ]5>y,a H[:211󀰚 ç*{yA8iuk20hv %1Iq14L\xncML-\CpFRa''~-0N00y{1},NS6Mh1vY-9Sni[QOj,O 칮>C̕}4~7I[nwɋj%QVn#N3U_Vʹ%*[mQ[E1E"stU6q^_T1Eg>bz8sMta.."sGɥ#f4SyV]ۗ$q;,d5{b3:'D7n78.\[9h] &YI8niT}bWF.㶛O:GN/bJcdA3WQ$ɎY# ǀ/ ~S]WAi)L` j#ߟ >RF[4Z S-1xx5b 76yٗd|/O4ǥ}2Wo u—Fa\"Z232V.#&Gʋ"}|v|]JxBBtbppO {^!^ypn]nY]:4%zYgS;O[,ђQMkl(j aOmnedF4E :ߊ$s@Y@!8'!G>32qŘf]+9ЌAL0"&:eJ-1Mݛ=bxTt){lZK B89xNDQVo:MtHCk!h]JN_aܐ+f!q8Bfyj<`8~Gf*  *ZU24gN71c˔/j݋>^Osts`yBvB &5:Fqˑk&@[Q\K( .8!c491Sv)2 ΦsOWo%xO!/ b;eFIF Β#U"۠Z .gѤ .QL N':q knw ߢLؒVjSڤ;#+ xej¿%M1㟰DηE ,/u!l2K_'1'E0:X+6 Pj:(X%DXfɫT*x*!sOYP|UQ%uT]S^y[e֡>I;Aq2W]U[ 'ph2`""`br ng;NNDU|7ܦu9RyA1A:D]9ƺ<>i낄a%-^#>Kl'\= 5㈃] xi+&E  NKs#8΁w\~hfe$U ]A`Fs-)Iukl܏4;^!3pK_Jd ޹0\p(.+-e^[|It'!aI+ ;)_N9XN˛_"M#ȩۉnH#m aY,!ms瓂 u@Rߠz*†| >U.|D2約ɕSzG$bЕ/X S2m2ױ8Ms40l8C_%=mG'*9ľ(gtx ؑbG1s3SC%B9z+8(2N H˔ͽq(ݰ =!Gdt=hl :FDxK6Ss<DTi7d\˨KǦcdw&Q(ӟpJ[uIÑG&~Fp2A_<’~Y }`mQ>x"ٵSpM2t@!Xe 7*yaGދ|EAb+gdžF}pp*;ddon9XJlD8@nj,B* gQXw]]nݒX#hgB;ݲdpB"-KDp)_b{}."1v9Fi4L$Dp"_mMr2|"89kւ>k`QZ5^?TW?6j@^WQ@H).Jؚ}Db:|}HE'vm4K)=cH,$խm Cİ!.u4ʝ,8Y.O(9R=2CQ" M> MP;;q Rb1sq{I!z:(ڤ޴p׶σ(#Qհ̊Ui߅DqI9-O/f='ۋ*Z:a3gpObD' wiN{?𰝽ĴZbQ*T~ޙN@U *a+ Ak$ D*W:?_ JueU7#\xzl}eexy^)K2&=Ԝ[OQuEs @1%,Q#GLJv8@\:#1}G3⻝04nq0;&#?"M~,J/Nh`H9y)?%m6/F#ܒ'}8@+t6 uĮ@!E3_|6ԁ`\fk̮-3|7TE5PbtaB30;Ϥ[R38 |UNv|,u#8E E۞bG_~3M2b [z8;|ͿDI *bPd^ʃ;v 4ڪpsVՎ/zI$j|!begkt{w{32r'FHFpL-2mZ7P$5 f FH$T|ɛ~{dJq|wԝ.gp]NNܪZ( wt v܀xr"uKnm q0mvd3Т{TT*csKFzНw$Zgn oIvz )W_ ^8t<0.~/%/q$+YڪIw:~{׏W!ZT9_t Qt8R5,u sG!^|k1'D-ŀo*ž9Do`cIx(WbXKذhAt6N_6N،ihFxoT6FWic_2[͗%4jԤ}dG=@ie6 ]%PI%:D#'?@;TCn0@WV2C,Nq9A8IUe/¨` |Ja z͜[C8er\pҜJ%r4])C*jk0q$l4g&_ZCfa7~s ŤqmpsE~vϞb**@BGu1쩺kǚ-,`)p2^AE?Y˱%GQ꣕4+7yTB9dІe LyzƧ>5!01rC!EUXI#pcۣצa uGu_1TX+UA*jsS30GVl6kH!ƶδ}~&\j&U9ZGj~ExOK|:$xb"}lSCZIn +Q@9·R=y :pP,8 P2r^({ - OhTdv  1 )il+a~Yk .#f{:Hb#gɟ1~Q0ЯIæw$AdV WiU>KJF , ;fuFGȻ3Q<^n4]ݱeZ[񠱣u y߫lx!Y^nnLH΂Kj?=6h.=C+iˉ͕~=OIԊmSXմ8mw QE[N)VU?)!}}tuH\%1/3FY"%dc*#X}{ON\=?0M2APib`fͤ[mG[I *'j#qϑ|j (-t[97)A_JdPaot=LضJo'$ H'7JIm`|AaKZ@۵ba^% Ho!Ѐ[q8 ~g}1 Sؠ U˞ r}gI P`]V^A&zƦsۤ]d-4ڕ#T;SuROD{ͳxrWZ#EwlZ4NfL8p0Wp":6,#šNU}I^-P1!myr<8RGǩȇfX)!5Y<׺&V)MoGƯ*y5u.XNO{ z> i&qآ<6܀G(3oa.-BƁ考-=t^S Ts/x::${%b\ Bi\~UletǻzB(kůI킂}cّ 1%cѠ2^\SehTU(i tB&C*T~6v gC(GR-+<34h^q]' w_Z+ @wʐ6L[n\weܮ&>bMub6oF!10(gYrDmPNڿXXXO|-,pV_Ӳ w)414$q&~Էt\=# z|98cԹm*"m98N)\jG,ϪdMj!;#쯦6@ d׋h{v 8]#^ ]*pn~N1bsv*i 7OkӀ8R=[ӣ7 Vx#ǩ5 Rgɝ4ۻT_]H88 L%H Pݪ38vz4nDǼrFxQ W^~[>Itr5w2iHV}qz`f*l2kF}5u[@Dn6ZCbYif$"|϶oZ?gcSё_)5YN[ArIIY%ÀV0Ma%ZQ-wASC5۹, WT]͙5E~<3:=τ83M1I0P35TgwĄH颥 Qs""4'88FӨ"׃^7l&YR|!z8(ʯņ*:~1"֧!dH.@l{05O]Í]I 26|DXJ&1:V\@)08PF!%6!$$Q_@plOagD|HiFfK8Q}>oְB<аsWOG424ǒPtDƸrC+r*~Ù͕ΨKAQ{xoЌ.+GT+<, WG" yaw&"K.1hb:k&xG^'3+eOIF>ј |t{ɡ.?Y9AO |4ګ(@ MuOWvW2(8LXp@q7Vk/-Sc6N71T1Hiv he1t978W1QpG<6{СWJo ?wctdl&']C:.KTw!Uɮog%2 t00툄-#1r|hF3t*^I1}4,̐q v~c!Ş$r wˑDg\毟WJPF_FNǤ!L z:ڜRv=Fp)h~ȡaeA .5Bs!SB߻FXͷZ bO~Q[ϬzCl$ 8տ6"9,O<|'& &vr* I-B !QҏÎA\%Ó|OFh_".fK'[YHc/%.9#A orVjd՗;TNC K9atؽLO},h$[ߙa Swx&^/3(|άeIѐTz 'sKOAIPFOC>=s [8ƖXmgRUM2g:jl*`zw&ڒMʿZg!՗PkdPƮ8K?U1 |$QE`ZvWVtI|1zo jikk4 ܵ>"g,'QyyR,#/LCliڷuu3' SʈUV1^xϕޕ&,8{brY&D/؍ni1"^UO=Jt&@L\\*K' eBx) _g|Rzj נ5C->8٭ L%Yc+y!j{i3$=-Z 4 ')y-Wu5|!#{y_deKpC8J|6IAUڏ!Ta̯|=AQVy'%@QҋwwywE{<ٰsԨQ=s'DVIX\ցH7 @S"}ϿUFptJ5%S1C\:UZ*$C$Gefĉdj>2Ϲlq)&7 uE랉oV.*,~?F& @Pgt^JÛv.HKUvǍR؊du핱o0s()a)R'cЫlSNZ87MOsї sx%5GX6pz":>IVҟ`{ uD8\{ë2 d_'cۅzXʧjL9;f:&*OΔ|]?nU ڸ2rQ95rYO;:% (%F@iC}< 5e䡰0O fj}*2d2 `HQ׆AK>57cCo'AQ~Λ9z ʞΕ.j䔛6 b*Y#=/c+I鄖 FM 1{(z߼N{;ʕh9!aoQh:KF$?8 pFd\/{޽oPiwZ;(HiI`*&=.;Vc$%s;rCřgipa&GL#{C^n&eYЅ0|rdYR-v{| FMRzqvϡ` UKJDL6nЫLdϕ d$F5aZ*B: @QqI3Ѳeb-ˈ;s q 7x%y`:k>Ώ}QGMѡ?ۼr /Թz}Ӵʖ:RkdjY,M"Y5ƿ|݃PȜKeWWcv . ~$z4%I3NxĀ9fڌ:_wpp)6p!XS{G5~d>y%JS .y*A}b,GC:&{qh>z jrЬe6 OT neTSFxy5:6TR]D&Z \X" 4J)hbS[eFP6BqVR]kH7.ysXAa?6|сAak7,?emX; <̚65QHiJ$)PJ|, ³5AW A6%2Rh_ p2ND毩G8-ǔ8Mc>D|Gp@7Wm4Gff tvjgNɊ{p~8#}Dd3C;x}w:C}ɔ%ȣ֢i±sny3ߛ+6eds/iKr7Ӡjv9j,ܙPF ndTjƃәY|O+w:O۟*};4f`ԸbЏQ1FV&l=U25*qǝ_ؘ`K!Hx 04rYѤ<*9g,2UOӲ`-r?V`:7X'Y`#nsдAs *τ"ƁF 3.^M ^(F=!oja?>% >nGȫC)b,'~Vm;"໏Hu;N=)x+Ҥyo7Yzs/~fS7뮹MdU1P4Zpwd~&Xnk`')ERy<p觿R+ V!4khj!$\cl C&dloNVUrfIJ.ĵW^<1er<#a{C 7DR!xyh@^)jC6㜀2Spn>5Sj4 ~&1wyF~ѧ!KӁi4vVjldMiW Wnl<1|VkS J&fajD3155II-8jn7 3T1\y٬Vew41-m8yJ5ָsUJt#(H3S-#5H{Mii7hAz2?B#=~ P>!*yN> TUIA΢v>E]hn_*^RVbVBgUZIij˭A]d^J|l~szN8n.wPjdY\H?-G80Y[G&oW@}X'-XxV\,狀lu6q|~%%J/tdՆJ9]>iNc T &71`r(:-=Xu>v"-xB2.1TKfk+;emJ%v}^jRV߼dB:Y߀zo2ѕ 2w[Ft%/haH[Fzf2:[\anڶeoc-pϐ$K-y-o6b7! TQ|bn,{6L3l0) _& ȶne QbLjoRB1>9X Ԃ=,;3q\S0ߥ|/nD ЖA{`TwbK)L4˗'PǫK5+D> z ׶[d xX)E#,-cӥ"(3؊1 (F]3ͼS mo2yl>WB[Zk!/c8ƅj1KEFOuR tEDO@*)y83&V +20//w% PV?[8>b3w W5 _ğX42Cm< )ލ⊚)Wxzx.-_l:g R|@p);RM,!ȁB55}I~0 AoWd|6l!}t\6l'UB ߂Tȗ)|(~:!.J$_((^pA#r*ZnĚuMk۱+Ona ȸ%tm4o&:xo5v^0ʔsuY9+qߨ4 ,~HǼ8$+e~/#8o\Hh?(j(ԛTC1f~, 0D|`ќ?  Xɠu*i݉5f@yeJ9Rn3MξԸv2ʿbw3v9)j~:%2PA 8rt߸Xձ ՝ŐT/!*s3LKD9q`*:y/鍂 .1}AۖUW2j/vRz[G\QrBl!e1,~q枦S~Q_G&?{qn MbLCz0wvNs y(dJ KUNvkphOd&4 Ov3'A^$!%skxcM,y/hvGgwA͖7mxSV,}D2WPǴ A >sbrtƒ^qOQǤj=A޾IG[,e8 ~x[Bϳ?KF_*w;t'veY,t-8NPl  ̺Lс\By~|k/IH!%S?c:Ac sTTp5«bQ(I?5֨"=R~*H BF9-8:9< J<(䧆&Ŧc]AcWynH,pT9?Y9oH(m|pxdynH`OQr HUxgm+bģSLTέ,O@ 0'?|䶥q@n /UOFmJXcAuieWBkk~R)pEw.GHAAoe [3v4tZЏ 8yZ:z8s7?LKE:l'ͼEj^mnChzxx#v+V jӂ#QqugbRfDM17$pm_7R3߯ g E vE D2 7ɀ5={6ֺ]'Uw$= Ne7jH:FjNrԕ aʵե42VBYAn7c]5@5)]v_#p ŷ P]lpș%ήCos2S{/8-W%]VDmA{BF ٛBg89=^.%]j|o﬌v^}j{LOOh7*Zfb3Ľm`PT/#dLCNf~ͩݶŦj[TMR ꒝D|,YimHW??ͱi25C! J VJχoE'4" k` 2DLF&^ [E`5Iv{q"MW^K>vepGb n: imvuf~3a^(")gX!zY)$S}Nw\?<- u+Ȟ>Ugq 藋|Z,y>o$I0;eD1xd.^l9MFy(fL;:k?loYw9p|m*s S6J>hbǼF_Y,JGKm>{~hFiTG=OgywzʩDR)Z4ZI#`ЛPLkn0+v.>r,C @a pk4 @&kOp\yAؽ q8!T89Pu\i@ k4x}Sv%(]9gqcNɠ/hya>bY @]{gjG@B`/3K;qP.ۀi6@ŭ{ =2OՆG9Zi[p^G} 3Ĩb'тڠiP7 ^ۓuJM T+اL7v̫#!JPx"4{-.l+MO|!Cwd~ AE】B g `T 04xnTR!cAwt}]_SDU7_Zy]xTN3݅fqh?B70A Hpm8IP{I<#P֧^voQkl% C<:42p3Qb``zu2M7')F`2U<|-"4\'ٖ^PSIJt+ ]d;[h~ASūS[U䝳BтTJY \3cb{xcW..y>JI(Lkq'eoq|(Lޔ@`Z{;v(T$'ඝBq5-t:3Y`3JN~.$SGT7c/W%3~hgʌP0qISpLJ8D۹-jr ,r_^s 衭O/7P%VZ=qXKZ@Q8=!n$i+Uxx:w0A)k@ˌsl\'g; t\cgP)"''B,Ra`ut*[- |+U- s,^6yC4$?Fb=(FdfHz[~5BYs&?4NsKZFbs\}"e0ߛ/$1R;B<ӴH_ \\vM$Cfiە`~jL~')i5MzHsb`?8+}+ׂԄQJ Sc ѧ!yhŦAθZ_yhNuϽgba-1>q:ѨSE7o%Cx}(=iAx쯇q77bBES:[+<ӡ