python312-doc-devhelp-3.12.13-150600.3.53.1<>, i~p9|bRKXn&00>E1Ve{=WB7*L+J!/Bwbr LEC]`ѡQ^e D7)졀eUg+󢼶*b^zpVC5߸Ivw:{*iX[%cOLz;?ϼd  . n<@PTm M M M LM M MM MMQMM<pڀ(8!9ߌ!:!F~G~MHMIMXXY`\M]M^bcdeflu0MvdzYlpvϸCpython312-doc-devhelp3.12.13150600.3.53.1Additional Package Documentation for Python 3 in devhelp formatTutorial, Global Module Index, Language Reference, Library Reference, Extending and Embedding Reference, Python/C API Reference, Documenting Python, and Macintosh Module Reference in format for devhelp.i~ibs-power9-15 pSUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxppc64le+>:I9.}6 4%hc]*fTZ8Z)<A] DLJ&H8.L;9;1Sw?4$\rLokw/:Du0`ylu3r7/OvaBI<~ jZU`'KSs6)XCpb/&;J}9kpq7G7N9KT<)K5L  vQ0>@Ac~Jz&'z+1&7m1GV>/N/FL 7#3,9yB1[Ye_b/?]HBlq)q0u9@a$G[L#A-Y 8FoxQE7z=$hL,h jhe$0f;Z+.[yUle }*d;dv.ä'ch](1:J7QLlog7-A(HV3)"7t4SiFM5'D\~1KP@CА;"qY7&SRB?f01CYkG'jed<v E-g'ookd;?bKMKp>2n&ӹ4CZ\pm/!>QS>>"(XYsDj83iC~7tUE22H[-6?"'5h% sBXCߠ*V2~1<>?Z&urJQHW"D*$3R<]h(|H}Ee< :`H2 7!$HL[%McJAnisI?!V:ePEd@h.zj&aA;|_Qi<Q[z&,I'pC<Of? S6T& {2 !`iNJ_8`j6I[+;h0:K0ΦsISwCzHT^o-C+mafM?@.'Uy;>)NB] _jJS|pOs*a'dƓn8IN)2 <fRB:I2t)_Gv0MU+7\D3/;3'QlTVhB^ܞna) rMYu8KvX!`HƷ-AAA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤isisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisiseb3463b987e781a9e66b2fd43f58b6968c3699185598cfcde564d072e78e65e2d488b23208c21fe601bd6b2d4ba6c44d334bb075babbf7f0f751318903b6c5d4382828d64e88644e47e695d717ea8432ec1ef79a17f2d209b11aef4fdbfa4bf5b669bed8b4b1d4672f6772c0b63c2c70678dd330c4e7db576c55bcb319b8865b4bd5db0b21f178fd8b16f7d999d0da20a00ca8d271cd556cfb1d26dea91aac88b21a9ea9ad785299a282cccc4b9a93cf9b1f028f65b0e90c0c41deea019953beb5528a56a8b0f2e5da3d6f20f47057cc0325273ff152816c202f8a114cd07138ba9abf87cadffa7027ca298ba11ceb6418f3a9abb32ac988c8d342e7c2b3fb2e277bdba99ffd0fc3356293aff094e234837aaf9fa301c6498c50bd7a525646ce97e48f22946a092e28d4306491653c06183fa76151614d10b8fb7b51dbcca7ad4763d9d7b2bd7a02af9f67cd759f61d68c7b7dba839e676b368b07bea632198b583d4a896c950c9633854df40de1d2805f768279e280b4d14dadeb4a90c80fd0f1af795443875f7184331d307aa28dba3fed73126d1d27baceedcf376de52a30f3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b15a001934886bdedcbabf89f6a81e8253c0c1bb47ac18e9c7b859f0fcb1d92406a4bfafc4f40454ce33b1c3f1a4314d82383523cb08a6f24be78a0e1eff6c10165c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e2a9e5771376ac6bd5bfee1c1e16a7f9062f8cccc5231ab6ef96a3987b5d6801a416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d004ad6ad7e772d6f3c61c65a7fb255e2b36d8bf583044c08ab97e7e5e6b8442dd0fbeb27b75fd2c9163de2f25926bdd72f8cda9e2ed8a97c3002675f0847c9d647e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008aacc80a7392c51d971a98ef3dae6c908d9a14229615c83a5db97521dc4102c1e43e118675c9a437f76a19f3485481b16631505547922f190b149771d934cf59b54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d72565865be8bcc0af888594903ea0112f6c8d923c5726c4081e8c856110cc7339cef0e2d097ec6582b8a0e035a7630ad3052bbb189f3abec9cb29822cd92d9ed86ab7029cabd6297c2a33d33024ab77167f9d7b2dafd5445ee24ca6e13a366426d46b5fd9ae1a8f1715567139ca088de37decabf4f4ef36ba04edd90a481aa64d480c7278fef0b7d6748faf50278bba7f6d78a85a9bce97f75700c9e434209491709d23c599fc95a194340402cec351ecc78b946ea27cff1da0ecc2b1f8b1a648b1dcc10f799cd0f6b65f95c4012445497e5ba3cb9f51964a9468940b27bde98b487218fb1c1fc72e9af6b866f430be2a67fa376392b4db2f4dbf32772671b6ae55c8ac6a4eadaacd75948268b9443e38139de6284e1da81c236b4414c9250de3599e36283859c3990a8c6ea14fe590783fc1b4c9b1c9ee626b88f56118e9270e9e6d74c5b162a66b72cd82536a1ee055e1c603d34239765ded3009d1e69f724538aad8276d82819fb007e14618bf59ade4ba9806d6d88ad1bd730abb44aae8c7611181677b1f7d21039a390a6db3e79a59680194166a2b5e8fa71abe7b5fb25086489073fb2a546b80ece73de70b3932d94e9089711dc1eae300147dbab759f6793df6007fcb3d59d050ff28f318ea704dcb2bfe53ade146422e124ed24f576ead46997973115bd9f39882f3d3c161dea757f4d39043231ba42112ed340a0c3efc54df74500a0cf79205d786eeca9383570114bd576c4f929238735332f4565cadda58944afa0666acf08d0fbc0e91bb29d29d5b5758d716a9d157aaaf3d178b6d75803e4ab7d4eb1d30fb8f14bca6d0e702f61fe95fa7c4219c19d4a008010f46a9268c233936b7b6453af6fa8ebdff897018fd46b2ece305ed72e928a39b66389aa553d8ecc5a4b3819884f820d9514145d74c7bed2a5ce6acb7348ef64119b47f4fb3441587261583cde00f9953db7be5103fd69812edbfe35df15b56cfb79771efe0f5aed02f38fe89173ef368b2a96e5d65e5ae1e1a7b0621654d3f80affd3778f1e94628fcabdc207f3fe872cb622c0365969792b10e610a1db7606abcb00ecc73b4edc9a42ec909e6be398cc0f66af4189d44f8832f5fac40386b68b291b3afc83d1d588f1d84bbccad7b3b568e4c14458ce70edaa0c3f05e994084c776bd7f68ae160ca630508de25c8d3d86627b567337785a5e0c8810442b0db1133e26439bdd377efcd79b4cef90faf25078a8556d861733803f252930e7c693d0ff06a4265c8248cdbaa525c7bfe2b927ead3e0a8bffa0b6ba129eb2ff73f74dcccba0cf908fc4e0b1a2b4d5e7552afdf597438d179323be2d9257882ebb4ee329ad3d1291b60134306f369448acdcba5ffb0d87af7826792b8b5f9bc81777e8b1449b8c3f0f42b888994e20313372d60a60d44ce988f9aa94c9f71c013ae959546244e1d5e30741edd350d244f0d3d585579851d19e76b80281928d21b13e8c42d8234c8d5f8039f165641c23b3a7eda3da4d8fdbbe38c6b785c0d153c5d39c8251e37a520e3370c2c4cb1417633cc4499bb68f8cc56f9c0b0cbd6875a4243ff787557b7c36391db5df248628ec72d8a78341d25e87422828e83ed658521d671db6396232706f379ebc018d09d892ad216a49a5406099ade884a305bd942b5dfbcc612e83f5136a18a8c6813d32889c025e1481f099db81df3d5dcdb63a1b06372cb515171771e89e6787e2873a86188b8acfcd4375159f6d642124fa86befb892715111e31b0b37a53fc07502ac1268e6ed698d28619008f3418db6afa9114268f199507fa44402b320b482c5aecc77e22fe113c85ff935a4edcfb7035c3c35746da65ff1f8babf781113e1f65559d67810f4370c21fe7eea08c88f46546047311f561efa021e3d2708498f8b03d0ec570be12b6d6fae87849043ee3588ce7eb850e7cb73803d8700cd59b2a15f6f3fa1d9df2d74cef2fc8c89133ffd15d5661e9a0abc19c271d7b5a0eb59c7695436adf1f6ab8726be88da64334b6d09ca7f61e4a395aa98f3783f34571144a3c2972567899667d0dd39351616f9047515c5623ef91ae158975348d37782093ab3ceb95e7f86bebbee5b389da9c70192348f64d1548b7da6898c38b0d1563093b53f9e96b0a045115ac0cefe426241978443b4d6bbb28e77ae6c545270da503b057290fe737cf4e67fe1ad4e1290ca4867451a4ebaa42d82ec250a086f714daeb690ef517827650367c8f63cf4dc1d9ee923523bad04539c8704d4ca1784e679e82a78569cba9e3b6c903748079105e2b99eba97c6f0bcaa3a1ead26c4cdef7533507dacf3b0646fe2e797f39a793358159d03b707c6882407e2dbe68a3dc03fd53874007ba992a2c6ab937dfad4de8fb0b418b0fa6b236059dec2ea8e067151736b55881c17b43a61dd77cc2d09e0d05396422ba266e73339ea6f3488749d8cd85284accda544fb5358bc532c2a26ebdfe00803e50a4b1cda7ef8bed7573da4f329a1ee7f6f6a4f5f4fc8648403d3ed9b1aee47f8a6377c558ace6298908372d6036297bb57782e1555bfd695f6b3469b195186222ecd1b814d783f60d3ebcba8a3f1161032a5f3e6db1cde58277812dfe8bfe413bc538436f8448faf31224561cf5f0fea5dc556b29927af5196a3193d811eb57d06353d1d619c8c24d38ba4dbeddc46e8b82b372b3555893bf46a7a16070a4bf9bbe48fb067a0558a8f1fd79d35bff147d882ad51c9ad9cc18f52a809e7a3a40ef935e731575158274d847a4a3b744ee278659fb7b8ab5aa249fc3f67e8329dbc21452568b45d0548d46a87c328d4dcce378b9d1bcfd0579110e437b0ad7fe9f7d3b8eaf3291dd94f49a85e8b8fb1574ad3396f1871556dc3d990b95a6b050e8d0f4cb1a3297381662f51e2fd8e70ee4c2b48226092ca73c7a2b60e0bea082cd901c60a0d68fbb0c1016b899684236318be1eaa3ef44bbaedcc16cf3c55ddd69e5daf2372d8391e8cf8617c8d9ef246d60946aa9919abdc398c8b682e0be50bf2621b28e4558ce87435ee669bef639fe8526c7f982535af1a0b30d9c142ef9f8580c22eb54070681a8a4ae9e193e46136111f0a0736ed9e0f222853ce39a28a2486412de0bba054a6d22251dffe610357bbb00494e6a73512948f739fb436451138a7734361de07f40ee6f914a094707915cd9af1552f70f7e48cea1c6a70fbcc32ef490b3af4623439f5aab7d8e077572ab714d29d7143fc0a056c5edbf61c47481ed3f2cafb7a77c61534503c0fd80b90846685be41e478acf3608ec6282b5555f9142cbff920faf93e908a5796b4aec931e696e0dc0f9aabbc4f793d6662ec4c05e03705a15e291c670ddf80a4fe6e0143e095241a078612ad2637d6f0d8743019a828f879d610e70fb5728e11b901e472b6af1c26d40c524c90ba59e738bf3c05a24715c1fbfef82dfe17db0de6eee2cd3437305130e5243106c511b91ae13895d1d301880adc433138dc0785b6c5989f829c59b17d690eea693acd290a80b1100f76939b992c99e9bf79cc41237f71ff8575efe8db762275c81070019309d7f5498267c6740be3e213eb8707395f4d5d3fda952571fd0d74ca1f5c64279bd50b2eac6638461577c337cfee975827fed49e438f6022eeae2610f6e823b84bd248bf28969b7dc0010f641ee9e7b541fbeae7711fec5b5f28f9cdc938d3c09e426d094376e539ea4221ea26bad2bad56361d00f657537488b053f84dfd50b6d4c93ea532616399176eac8e490c1cbf8d2592dd34c13b76ce83a094a37a082ebd38161a4439d88a926dcddbe6f9c0245a8c773307d0e8925629399c645c36177915c0bd5a789b2d4a37fb7c5098f21b1aa08b0ea13806c49b33b53e1170a1a1f838a51319b06f9fd5a55a67d08b197ae5b5f457f23a2c35c9bd62e39255781a9635e24d153bddd1df793da43c604375498e047f164efb35dec6af812709965c46580c1ba669baabcd392df679162df482ee234076c528ed993799da85bc981039b3c0ad28aec154ed327fb7c4a6304050a2c6f698abdac8634f170e6b966c4979a76eb405efe6b517bd1fa9e943c616252deacd410f48c59dd3c810bad040bd41988a68cfaf88b9462ee47e7aef95bfa700bf0fa83a9ffab14599b3a52e4e42020d13a7a4cef5d9256f75b4d5ca39fa80e804dd86ea87ea3b24708aa646605b99b3ce4bbc9d6e87ab2e65c8df0fcd8e022644b70068a60e713c7c47e1cc5d40e33449691436b5fda6fea8d787474118ed4974c5fa60b4447820b5a79830f85da07e292151532da414dd6941168232170ecbb75b808e3bd2e47de1948faf03bf1433f9ec727b6b181554e004a4dafe278d084561a02b4f92dc0eab97e6b324f44cd722cb08b652bf7c0b78ec72e14c60700df33aaf9440690afb88ea080029f06d4e87ab1f225e2cb03d9ef09eea1d4b4ab674bd0fd53b66bc98b0a171066bf7e8e3aca79fe6143c20d5dbae77887563dcce2238f020fb0b61ad7ca4d8ce171738481c95e0a5fa568c79b3dba2e2c597c93d9b82919d403456881d0b0c0b00462024c94f35fb76ad2cce5c7585939b8bd53ce86b8cfda953d23e246881607c3f4362e344f46ca118ce2a2e0023df541ac4b4a90ec6d81bd360139b4058866f894564b1e457524fa27f8523db3493637caae0a696a2171f0843177ebf8e7d2c7ce574c118ad1b91a6ddc92d3d7815d19e99060cead1ddd275c157d4d1fe2f1e22276b6862686c85c6bda4a2692ff6f41d387267abd2d121f70798159afadc3f9c750b924a850909735c6bc10e03cdb583aa96865a226743eef8d126fa0096feff8026f6382a83a7391555b3f49471130c8343d48fb1a58f4f4af915d905fc55b4e03a3fd265ffde4faa045e7166fe326270d50ed4db8d132a2eebb5d00237aa908c81a75dc88a08d9d43eae3aad9e5d680444b1dddafa72f40dd460d02305a95296ffede102dc6a3d11ef6d0578dcb57c1c90aea1138482ce1774ffc965207a1ec8f57259586657da8c0b83f27cf38e376c7f0f55b41fb0d987fe7fb8c2713df27bb931b24208c34bd35d62889af84e780df69c71fab3b956343f4f030cc189e364988f7a9db3b586cb6a8ec9b224d09538e6168682c1cc2aa6121141b3dfc8e3f8c5dfe58045e53693001a21db9f171cac8bd5b0c50b7499b5424a2061d493b5aa7217a7af5be38dc98e5511d631bc9d934b148a8a01ac2c6eef597216637e9d14b3711b89312880ed2322bf9546a711d883844f54f75c585d223c485bc556e64023632a0911357c796982810285a202e22a06bc09cfc9614410665b25e6cb454ac322a94beb0bb4462834a9e7e97c91e4621d218c8df5a09f6242034154769d294f5e220116fa18586c2b72be59f418e288decb033a4f1cc6c9a37195efa2596d3fad3852557f06e42f4fd3c261a1ba1a9366769dd9081b66293e46927e78984630a8cafa7223dcd22d7edcb007900711b86d1c1b2f5b773795a1f76aec5a717a1e6923ee065e576260138cd6b969215999251a924ef09e8472bc83fb3355fddee6616ec3e003f5fec7e8e99fd4aeac2b27b6dc0f1d8bb62f2029e78795cd071cbf93ca9eb1f4ff6afd47d2507215e3b4124b4f9a988efa62329511d68cfb60e73eb844e38d8c31cfe37b94c6fd57a23d23e257ec68d6734f678c76ca4f0d27d14869762a60c4cfbfbf387c64dc0364241477ba9ae68e2e168c24424affe0826c013388d418e309a69e0b7e6f3069a828fbc85591de794076c60c7086633dd54c2316e640664f3c6468c3f12f035ef3f065b9d7fc7a849d1c19a2a00b42e18bdd399c37c75e89978b8399b41a7eee5943c9dca615a63df5648535ed5b9c6976eb4160778ff0181a095b5c99666ecf41497a2c3cc7d97824573f832d9f2c29752e3730597aa73503575be6e34ef80ce788e703b567ba06491bf57d7e3541af1d7f4797a791f6805c1e35f1d996be1db5eef2a5da2bd0e6eb29e503ff0610aa477e79e930abe586224c3763e334e37847eaed3b8438ca4f2509a1ae9077bba45f088e6504eecccb58038b18f592be0bdb78f7444cd7d9f286eef421a8c40c666c395a6b69cf67f11a8908329f8253a08289551230e2adddb0e3a42ff955be8eb1fcaa6e994938b3b41f97f7ca72946e11c41e43ee0a033aeef36f1b5f710b93a8f5bc57af1e95f81c0858a3dd37f0a0dd1caa15d17900c71cf1279d1aa155601648079671cf5b38e63fc45514aa8f8af017f8ea855c5aeea5507b4734d333fcd50d10ba2043fcdd0a10bc3f4dea939a290fe58ecda203d1532f652709c66c82186c5aa0d453d6c68b4cec36ff35ddfb58938c5fb70e6ba30ba1a9ba1bd36e734c3a67658524a9a08f3fa3a4f7d01b1cb1ce716707ba3cf03b95688e2cc09062764fe59a2913583e65845c245ee0ea6bfe7a9682325731f1cb2952a1c401c9c7dbcfcaf3050077b8890db79749808571828bf96686f9a47887f711cff14330e42615384392c3653cfc3860d2dc8eddcd5c17090bb98c5fc6c13cd5f671f04774edbcf9ea44bcfc97f848ac2caeaf2b75e655da4e44de4453c8bf35bb5cc740da28cb41eee8d22a3da451a4d3b5769846cd846c61966f0f479faa23b7655dfcd6f76f01ebab63db649f650c17bf4b1a4247d285369fb5309b4c873710e7e990695e79fdaab41c66f575d670ff7704d2101f096696ecd3fc326a3e83f789a446b7d85b801a72fecb76e0d1eaec9f8b153b1a5f1f1b5762fc6382ed72868469b940fb3cd27235528baf48de8fd35e65132398456ab03d665f00f150337ccbd61c7f7b7d018a0915beccaa04aa9e617f2312a9fc1feb8097d540cbefe28120a4b27e1c73c4790389235c9184e7116344eee9d822755346ca04f1fa701807b7367fac0ad0ceaf241ae9b64b82efa80fee31e818975d982448fda6a0548def2c9c8220bc33bb1468c29f399c5f082461ea567263ebfa3635a8fd0c0fdedcf43d9c634bfbb50dd71a400aa7184631542a570db6b6f1e132cfb52b1630cd622ab4d71a4e79cfce32cdeb3dbe840681ee1ec81173029443131776fa4b57e09da0e7df75abfd5061224489b5e0273f1160200260e51c69be9fd458f1b28dccf886c07b1b5a7e5ce5e25f6d5ad2abf7408caec818c90b1cef81e0f395ee0b52f54b728913b69c45a2e6436bb40ab5703112e799acac3ca1e7cc260cbd623479afd3732e2a2ace5c1b8f9f0f5955948d803958c0a77750147669d49c092a8be27fb59c55fd83ca2fb4af03fdc81739fb7051e18dafa56b97eebc59ee2109f2e972b3cf6dc7082f95572fd27cf06305863cd82765f99ffdda48dad96afd67e16264e0101f98dd3e2e9cd75d839d11effada107de7b879a7265130bf7fe10093106ecec5832c19c2925f0d93761996de5ed851ff48e0c3dd8b592569d02b89c93246392ba2965e20e55a285aabff3a9f1ae918a79ff526733a2426890381b65f7829dc382d0ceafce3d6c5c0193cce601644e3c7be6e1e4e2939f8edd2cac4648824f30d49992c3db3050e95ec50750a207071aa0fc6c86755f538bf689a39efa2be58ea0f647545740330a575e19d295aed12fbebe32ddc5e60a75475cdc0887be1d1e3e445df0c613b0ec411d747cdb42300f93560ee38ab9787fd7c70dade347ae46aa6c22094dc897303e61b669e1b66bdd9ab1b1136be6efe63c0a5cf80857bee0ab38fbcfd7d933ede0dce98d144ec045872d6580122f03e40a9fef53eda11eae12dd2717899b687b3552b273f3e1973958f49c95e22a20cf06f6d2f6da5bb39472534d46382a435699d0b1a03a4993dcab31eb838c2d5a67acb2c4f9b346e56c64b0bc4cab190c221b309857edb7ea4d81571053942f7c612bb7c3e7c1c8da421cf1652cecdd4afa2f48bdcd3f14527fdc527eeb6078c451e47332c21acd208043dd78cf13f8e0f5ba2c8c4e3399048de91dc3ff57138f08a4236b5d5da23f5ca42134a81ae4907630aaa252759913aa2328232e2363639ed6fc012439af19e44a9670996a48f352c6e13a89557d31a3d2b37b30ce59daebb58bc1013a5fbbdcc0260504c8d58481a28a815e497699781550eca2e45c21ad26057bc2839439b7b928ff3ed6995c6723e47b7f2b5f6e603102d5d731c3791654f6fc9b32cc56471d3d1406354f9a850d97bdbeee7bb50a42d9ccb6dc3d9dfa3ec74cfc4d4e9d8c2fc43a4de30c79e694b183b328884aba8bd7de01f98a3e09a89466438cf2e6feea268b6939422884418e4331c70a4a9d4a958288966e60d95846ed896860f4c73b7ba4d78f23a784acf94a10ab29c62130486aa220bebd3026d3583e19c7a4b60ec273d04d68e8b90a01225be748b3f69abf3d460d4adfe78b6b6b421ba8de43e9f4ad05e64544c37f89a730ead045de1ee6b3bc18728a84760380fe9f18367509bb0289c79be1967ea75ae3efc480b642afaa9c4e7184709403e666ef2019389e3cbded390b78e21f5ac998c2145f2a627428aa08c6dab1560215803224b17cd5443ee894ad9d20b2d6350b1aa1c968cfd8d230274b515072cb8ac721e512f50f8d095a980d34b9e18efbbfdf6fe5a79e3a3546b19b37e0de4fe4d4b55e2f0235944e9bb649d3b91eab3260f63924fd98dbb5f4427775ab3e6e2f4717148ff2b8a2d624992bd3ba28d6872bf09c90e0eaf5ce7ee13d2681c4d13be1e46b8e73459da13e58adac4200362512d72d8b09269acbaf5479fd20fb4b58b531f076b7ba471b651107b33d06c2232422a01ce940ddba041bf874686c692b8b4e4b5aae76904a35dccea08785b5a0cb4b6760a27af2c5fc9899b358dfc0681e49b28e5cabd38bfd9aa7dbb275b0ac30b08c6f98afc9b81e7ee0214a16aceb82b51b5c4549ff5b560cd0530757db7ea76d09873c6ae3f9d52ece8968d957303bf82d9bc35a7ead4f1893d1818013bec3b0322b83466f91c6032137e87212a46d2220f62107f32e932c3f65240c8b479fde99ad01db0041b78567cd72c0eea49b43cf597152099b80bbe86760fd159482850c4321424369cb6b77e38dc446c4754dde12bf0eac726c7ead2cd204c331ba505b9d857bbacf831e8d6a292c54658bbace6c3f833773583872b255336c371d0b0416496057a391a0700c71d9a8f610783d61171c7cdced78ecac88803abc8635a60279e50cadf609129a0afb3635e24d1505eefa64166e12efa38a20959e9cec89d88832531fa9a9e39062274afb7ca3a88974568ef4609a95cb6342ac540c0c15bcddcafe106a980240af0733ff01247b19e8889b7c8dc185a17f09671b36179ba2ffa91c93ddcba42b7870619118e461c6db26e32466dc2fe9a174251db11e8e2e9e33e3d2179c40b45c35868aa7a6d5743712aa61f4fc6bb29fab29b0332c17f8afe1ddadfa72db06f92e56beb6941bad237ce66239729509f5cf34a524eb32cef7facc352f24310d50534f3d9b7d5f5ae4a0ca4912b73740923d5e1b95dd8726749cfd7aee6a44e231265a768956d3206611ac380cda4246444c98ae050d2871a94cc07e7556f40d5fc549f875d802eef98aa7fdba107ea866af4c183bf0a283dca05dd41f0a20eead493629f1892336166ac9f6a13835ef400073a135f2351cc3e103bcee437824d36fd5cf6e7feb15946a6ae295ae8c0f764987f34ea066caa5cf65c66f4d72c9ce3b7ab7eafad4ee39aa8205bb3bb1ecb8fadbb9b2bb051926dea6642934002ea7b61b6f88218d1c9dabd163b8ba508789bd1443bbbc5920eb40665ba38920612ccd614fab9617958cc17d13481db2d0042eabfb0be23e8547a582ec308f31c5af2e3f2e56e3936602bb829d93f0844ada0907b3336042ea7aac3226fe44bd7995dea4477ce021469d1c36a8116f4e456644dadb8d8d5bb599369b8bd4bf2ab158c087d6ac19bc99faa8911e8f156aee3f1fd052cf29b57aaa0afc24543b9518abc8f166ac552bdadd44199e3aa063bcdcc3e5ea8859ffde15ecaa0bde98186d0edde6aad85d3314c5f3d6b82e032db1e9c7b9f5cb4e3b8121b5c118ec8865fccb2a2cd687018a831e983097d677759b580b9b5df406afc4dcf13fa5a14ba35a4507d471293b9262b1d897f071ffdaf274b5fa90d05646f5455ddf07d7b0877d9299883409bd240bbaa616338a623bf35af432ea22d3d6549ac566805140d227f7a6a2cb585774777dcf384c995a635a1e42307d361bb4cd4a120742abc79939d893296847e39703ba51c81ebcf6415cbac376c5496a38a18d2cb88e609e86bf7e7d3b400e8e9ae87264060099a971a7f3e684ecf072608db88ec41dfeea68090089df8c583d2351136d2d7a8a64591fa692c6f119a7b29d510edbfa95a04a1c9739f2ef8801acf5c636cc72301ef477942e145c8ba81f57e90e09ea8641d7422a63496f3d8c1d9977cb9ae49aaeda8969be349a9ec1ee026da14991ea6a242fd6e49095778473c54536df563da410b036e1a1d3cd5a1ff5aa6ebcf8f92dbbab3fd153ece30fc0b0f088c81929507d2ffcd010ca1085dcff7c63032ec4b96a47eb5d9e3b81f18f2c0aef2870881712fbbc14421ea0acf8969cc7ac5ce0f8e6e2dc3567501a038bb39a8316d2147af4d7916a465b9bc5ceeaafee0f9c2e6f3c8a83ce745e4d1503322df9410d02f19b70954662855922e9aba44a1c6b0a4baa000b15e9af205cb62814a07fc57a157e6592d979f04ff3d7de38b18138176ab831cf8f0e934531e5649796062ea5f86074c93ba57d1f416ae89f56ca5f2326d0375f007481fdcb53a847c38deeb919303c2778ec923eb72432ee817cb1f466027c9458afe7844ee5356112e6f1e8aaa5b719a6445edf829fabad1d6a84c6a7385a30e9b13952766730b96879d9acf7b74f27fc5691bca570d8bbfd300ed5353e60e63e3ec451a3394749e082c9869676429c9a182908d6530a0c619d775ffd863fd320eda680a876569db71a1d47ad4160a7f28575c8f7d7b2acbb06f204acd121fd3b887e9c01f8eaa0e36609c115198e04049253c5be3d026870c7cee7aab6e75520b286738db38f443b47ccf811325ead0030a6cf30cce0b341e0d6ef9be10b55a9012871376ba38c261652ab48ab9c8cd4dead30687999bc7750cc40d5d9d16c295f1214c5ff83493ecf332b442e0d9712ed73c6ca0bf4ca0c4179b074b255c4ea853c8dfc50604ab9145972058142a266d75bebbc4825c48ee06c2f0b10e09a36c5f2706a53800b633c63e8ce410b85a82a4bc06ccb23b680c1c1d373227d028c15788d7a56a504f135d8f6b285fa66768369141c3a06baa0f8768cb00c3b8c42899a22f0a592eb86149fe06951d0a6bae83fc09d95e7287995b27d6a0f94b14f28e54f0d281129cbb7b20cbe67629ca5b2b5a2dfc4db63be57a9979ba91b314c8a8af6ac6ac2dcb504b68d61b0b0d2ccadbfb84acd5cd5c8293dbb74b9e49f5917c8dea48f2ed2a8ea57dbdf8aff6b6bfb1c11a6b097faf8e83c3eb130667a995bc06f7e2ce8a6ac51f9295a37c59b105aa46e0921c62a5f1b8b321d30bc3421df06b7d3fe9b8bee246da22e5e5c66fc01d904cc75db424f5951f633dd2b486caf6885732db23e60ae97335183805bc38b287f47c80f64655e5c52619ade25a4efd725cd08b701665fcbca2dae90483fe030ba980d13742cb65962b35c0acc9dc5801c6722ed637fd3580592591d12e40d71cdbc6e78279759da76d672f8a0b03f74ad5c7ebdb6a8a35a8acf3eb818c2a711a6ef5dd67501bc8cc6951f786a21e303ac6e87769f77d976d5cbe91f418007a3012564083922490bebc07e717deede65fdc76d9a3cc0ef854c4d2fb3088ecfb808f07ecdcbf7edc4a9b49c5f4af4c2e23c16510fc10e93a376e4103f6faf623177673260d7690b7bb41cb491c761b0c6b1746e6fde55dd392b58a17de31e92a018a1b5972d03a0c4503ae2a5bb604b1318928233447538c1c22b3670d0374fcf42c3596f74b9762a5153c5fddf6931b45c246befd85776566c92091e071ef285afa2713de48f8d52a41665e9386302b985598b39d59e437931b15086f34d7f3a6fb8ce74aaee7e6436b77267124dc69082a37f38bc59fb4c5094512a088d0e1e6a7cb672111a1fe50570e14555b41a84695fbbb1eee650c3f270e5676fd724bc2275e83c7824f76ed6d049be3dea241f42a781f346312e2013e5d99f54730778ad996605cb7506d7e87985cf2e69304663d83b67398fc92def21937e78159e3cafef681014a13e9490762a997b92fa753c94d5f4021c27839cf2256656fec451346f7d67f0f4f33d583366c65342f3c8c4d6882dab42ef7ca40ef59fafbddda242eb180db3b4876dd4680fe10e0fc942029d93f6f14531318bb9eb135044d2f07c1717fdb51f8566ec2fa1c7b847102f2152fe70f2c46173c0a03679596a0120fc6069fbc4128ca3c2163c58ebfa6015df524da0b3546644cfc089763e5b50970f1173fae245bd76451a3045eac828151b0d3387f26a35f8ce3180566ca0a7b619f09dbf32644fb5e0f6d69eefd7296700110912c832627c88b8efcbd792729c1922aa1beb3afebba6a89c56ef1d8206ebe147b27f7bf436510ad01a46975478926eb7879ffdb9c61a9eedb4150037f6e3184bcbe54ee2480fca5ed93924f7e3d05c77ac992b9f020ebd0e909ea95e909e350953106f09f60aa0a36fc033966719e87165ff03d348513b8ddd81b8efbb32b7c1a5b43f0b490b021df1d3a33784b92b424b27a2f197dde160abce8e7b85b23da7c49670a672f26c87c5e602e55b7edc2773ca187da4fb5c28eb0fc4c680b356b06ffc93691a2cbb15f9023afe9c48e76082bb58d854a940d53a177b74d99036a10a8b13d38fc35d413329195afdc8d3e5b4216c4c7e60004b24db6c0394a8c64f91d2f2a479cc72958b6a977046725526858f3faa9e5d65330d06195f35866908aa52ddabe4f707a6f07bcee8cd366dc9edecf4bd81ccf160981b1c9b08b470586163f9639d3c917da7e4f4650884d9791396f90f97140b6480dd13a968e5ba9a5c79a032c6fa4413ca600213cbcc124f5cc172b6a58b3c5a895454b7d49f1a45db5cbf56886ade8b2fab796afc0fcb8f407dd1bc9f97823fe2b132507fb4f2803501c3030e406bf2efc46295290cdb622f6222f9457cbd6b6a627b72a16c4afe8dfc73ccc318b07ddf488a57d7b32f81e719d17d4ff03ef8e0dc5eae7d8c9182ceb788685cec52f0517987626bbea2a871042ffccec2c70d4cdce5718d09d184935237be259138edcc7451b2ad992a864464432cc3eab9beeecc620a1c66394d7565d6fb88b2acc3dc132931f7fb125369c9a2fa6f0822d1df13c5f7898ef94c2c8cdecc9562ab2c547a2d10e9190f94f021b60c4cd5b8557ffc589b1afd33a1fc2afba30bfa4c86659bbd3b891fe4e2193690171552cedaa9f359ee3109c53e77d90d9fa2b2ea94adf7b0476bb9bfcb3ba7c61eb7840c81199bfe9e8f6c5789880b8e9294c96e87250ecc7f224e66533e3904c570d92d3119f4ee12cb01451f176d4e1511a2791a80ab0d0691395e5f2127a4a6c0880fc50b3bf8384011f6c4f6fd6d23dac798ae67970937339cc981e5aceaa7e8441c15164e931517b7e2a52379a52a060ff97383a49ef924281ee5c3c0e18eab713fceeed93433e6edcebcc7c21c5efa8b80b336c5026bed5933095297abb3e8242e16872656b6f3dde9ae39637022f6b99a45e629788e28b6f36c1cc51c6a7ede0e2678d3128ef6159a709a1a0d8e392b87432737eb7c0e248463f3fde5a9c5b8c030c29ec096749fafaaf1572846a3f54cec4940b3bd4abb9e95027c56c1effa5db88ec7d026c56548ed42b42bbb11099fd825d078b4e5c45534df578de61f5ff6863b8be6c8268903d2ea72e9ae8a561c0e2abffe62af8a3370a085b5216ee8eafcd64023d478f9ae1dfc29e62bae8f4ee76a24f55cd6956c422ddf25081967e105df64dab62d7524c56f77030aab1186e843de481695ad822f2bd7e1b9716b4a20e3f188722b58597a5691777711204c4bebc32392c37c33a09359f4ec902232d530a5d42104cbde180c41af580a9fe5e4874120639b16d9be7d7dc8e1760c510aab7cac32de5b97ebf5c9c19f451164f30a5dac22ffeffda75899ca29a79047b9bdc591bcdda966d5007e74fb4806250dd5f76f549b8060ed2b5e5ab15e2434433470d92554bff88a678cbb4f6f4924ce2763ec49591521c49d12f4b8fe47473254c8f611704c320d5d4749f3fd83c506284a3bca03079126aebdf8f710b8b5631288c07910d8e714546ca2127074c7858060f02cecd4ab133c10fdba29e78e32a758f4c035c6e8a6ceb26d15be9eecc4a429976c7fc9819473fc2a2e435b62984f142770ef6366ea69ea5c51f3a4e104f032f0bfd40edbbbd94fa51938e4998c0bb5a6a91ae6def3a5e1f303a4f99436d3153e9c01b57d5623baf80b2bafaa8caf34b8fbdb98c93988c0aa17e1e381992db2729a533ee193aed35eabd5c155b39216e897d5b2e2a183005df0edba25e0487160d036b556a51293779ea1df10fa03f3b88d25e8236b82642d5ba3405b33724dcb6c8601a67d1d567650df4d038d9e77d7fe5c5b541746520bb61dcab4ea6a05e97e27adf7ac9ec0ba488c511cd0ec45d86481d76329d04d3899e59b8410ca84ed65a1209ac194b6b172782ea7bf49ac6f72c871b59185d7da94ee38d0c6e99d1ff535daec145d6610a831537ec49a549a64e680080b89bb4221d46b9a44a0928fac88b6ac6354487ea74711d51e3d2a5396e9e1fce35f50dd4933c50ca033ca84dc84f4d140dda800f4fd932f210586b284ce9eca28198a083d5b08a2fec14fb73bcb7fbe0b02492951d09da1cfc1b16d7323254f2d9c14bcfa65b8c79901fc59f1198dd5e34590d3fb320923ac557c1f06cdc7f7c38b451cc70dd3eeca5e3fab09c9be3b5388c865674003109200303aefba643a555977dd3292f9df1f7a99b5738dbe97f215b66da07f276340258fe1b5445702f76330a1e582cac916de8f496c08fa6593bb4be08608e0844cec8aba0a662701937eba759a8a841b5ea762553c66635d88e52ad99fa6a3be0d895deff458ce6426547fbd59cf5e4af44443e7be37378641658f723ea22d00749ae1dd6687c136a5d035833f2f1fc552a1264283a6d33221a23188e24db38435b9d20d01e55e3a4ea81a98302c38347200c160773365d1fbef3f3fec6a4f33e23f5909b8853424cc0069d7311bf389b90f65a8afd3739ded86af15f6f4af9bd88afcfc4d2fd14f763b7c7c5ca89216a0fbfcb5b23f2e41dc5428f0ae0dc1891966be36c13e759f767f445cdf3ff2b2ece4f133786d9ebcad6577ba7f0187385c9bc933bfa9032715894bbc9c67279a17fc9b21ef081e780b972d14093b02eae816cb7819ae83756fb32d9c3e22004857ec27d4b390be3b92928b572cfae28cf0052573a12547e46990ce0f4f9c6526996d7310191ed33102a3ddf5271340ffec606248ec1d922d27eace314292e88f478c0608a2f19b9baaeee38e130922c2c176827ffb30b0bc98909a85f621a3902f1d87f10fb1f79750b70efa7235be598b1eb0399fa4b923061ef2ea4d86edb75dd8efd05612782eb2a9a87c38cefefafed99622b5e69db0e931986196f7d4aedd7d6a62a0b83dc215b5a2e799243dd8d6377984fbd48e5379b8231598430a294a0dcbe76ff491c788811f55936d279a8f9b9b998f84c337bfbf33f1147da795e966b94a50e251ae74415ee40fd969168a219bf116b5a8e304e779e3907f88ff892564e04777f5a10cdb482199d24e92ddf153a14061c4d798f5efa7b5faa1288619477d6505726b9183ab5ceaa62a76fe05ff957451164aee6c5eb1952e85b0cb4da7972c06fed3ce2b8fceef29bce7d1801bf399fc2343cb543961ee53c381a5afefea911e2f0043db98dfc171db7ea2ca0d74849a3c17143740dd695a0eb223959fb7ea6e1fabfc1d544ac838215cdbd5e24137e4ac2ae11c5b18b673e79dddd38de9af98e7b115f77fc8a6e61eb55a80b1eb5568bd78c4731595c3fd703c7b29a6af5b429b5a8380d2a245555520a581f195722fed59035083fa30c39e4167c4a552f16a0ea0731f1d2ed0bcfa2096adf198023c8fb1e8b1addd6b7fa0c938c59f269f2bddf3c1c6bc7d580045823c0dc4d0b63113b47425853bb3a753f83dbb139db5aeac43ae1b88f677234f8e4b245864208c0ec992dd44900558767d754fce3a15edc243010e3f749f96282e63d34e4727db30a7e3072816a71698866a227a3a007637abe377ec1f74f6654663d9593a878250ebf6eb1213e55264eb86c0123598b5c11111e56e24c571790d6134e84e02197684b116e127fae0c0c3143fc71a77b12add9fd732c66a7ce72891682ca4e4abddebecc2d2e0716a3aecee8f463847a44a979f18322097d5d4ba9282f1e7cdf029173f708d63268519dd47a3338db25c19b4c4bab1130792f3cf77da5b22db108f19f80651e2b51f2eb37412ab31e6e8a32f640f7648a8332aec43f378c312202897705cc022273af65d8653bd2c31c014aa9999c293e4e444c949b5517929fc89b2e1003cfb9640faecf55c18780908fe6903c3bf0aecb2332ebff5db47f10cbc46d02b9acaaf35b35ea9e3045d3f38fcd19188d7e987fe4c3503c5f54efeb65e0707935e03023e52ca758f7d34857c0125975d984455254b3408a2ae3187fca4372946871c76c2b49a871aed461222756d97c7ddd8dae7a657240bf932e3d4f28be860a878702855aa4f479df02a395d7a28f51e61a7ec4269bbb2c6f0196eb590f16c6e2733e4504d5fc1c903eb3fd8ee78bbe4254a4e1b251b23ddf19da48be073359e3e68e4a0475d41e336ff182484836312b0b9666f765a902eeaf6a88fda59bca44e870d7d4a3572dbcbd290d05453f69e5fbea0e0b20edb49347f19a30bd5222a396e38def39784dbeb835576921030ba2a9c5225a82d9747a1b23df7a594c9d7c4fa6363a0b2e4479859d0b33f45367d50fd8e9821c4d705d32699c82589947fe56db375cd01c7b1e444c8f205642738bd1826cd3cb1364c3049a0997d6906e0cc25da4ef88d96233f00578f2aada93511290bc0444fd67042c5a644a4df7dca74d2657708982872731795aa89e16feadba1641e14dfc1c90bb86722284b578f7ce2edc2291876d77e83c239c4715339dbf97b5f44315e90eff4e87cc12b70c7cf83f0604de26ef8f6cdba5470a13735877910364e99552f9aba033858c4e6ea73d214369d6e2919e35185cf5ce75a42743029ffcb5f9886b14a9e445e65728d538f272596d6d5c6823bc0e02ee1d196cf5b9084e623913dd2a239e5743211ca156e91bc2e052a44aeb13bf36c4ced7b330ee56a7c4ce5e1ccf82563079a3458d178b5f2035b5213e1a374adbd6963170e9f05f362c5b6ea5ce685708fd054d8aeecd186d610651746630a4e1038a522b6f3ab6f6ed1ddd3cd2d2df8643b0b8e1d361a340cef8c960d9e87e4355cd879f2693a505c09606ba3b22554ff91a588bbee9dd992f5cb197977065cbcba69116250b9d91d8df7045a65fd92b6fb851f3832d888ea4304b418524cb11e6640610e4faf97e6d28f86bbbe4b6786de5199ff6d847c1e3973f203d326886ed3ad64a008599159f373d76809992b4b98a61674a14a8578e779856e00439e34960402255e629736596463187a1845b65e233ddecade7228137afa4bb8ee8c2f12920993d594e750abdf42aec135b2a132538878550f9a7dd76d5c8ade433ba24e255a05a49886a28e371552cc95ce079065420212859a81b7e7f633ea48115af49612e23a712a9ae74840f8eb9b4217aa0f0cf0bbed95dd387dafd066eb57dac6a15ff392c47be9fd0890634a4c123b46b050ae8eb16e25fa5b70cdf7cfc5b5a5cfa18c26caa8500be14cb5a66ea9230e9bfd68d67e97b97f4f1d65aebab0616d4b06908f0374117a29569a2c9351325a270e31bdd5894a216f55f9614da18fb779c6623948521fc5fed52e7d738908eb27373dae7ea1ee92f061c354cf57aa701e150dc6564d3ae18bede3d42cb25ef11447c83ac584fa90c594ab7ff41229a5527c9c85dc4c5c8c201cc837a614e88582b4f36ea513a9f15129b64318828a2a7002f8ed41dd20b198b0267bc79a5abb8af01c637e6aeeba15c01b036fba30f5239799c4ca3c243096f0f276883a48c257bd17db5e22c74c8de88e7db21469909a7adef3c094af83251770e8290455d3ad2faa507b4b6c5dec4e0dee66f3367533d59a2af767621bbdd448f5fa30d8dd8072eb258a4443606cd6060526df8f0bba09a95326f2c4b1d82706035a3777cd88f80fa5f37a54e8bf8929793650e3afd22fd4255bc7b925a439bdd50237b6d39223792eb2a1496f6be156786bcbc3eda3fd6d30988a450d7888b25b3655f39fe5d5b553079e016b5a38062ee9a0eefe77701166a08df5d0de318a4e25c990863b8596f98ae2954bd3118a8aa7a7ad1e47bc4f147f8b3cf79109bfe9ec1172aa45eb81825a78aba7e4e315ede156ec4fa09a62731d76f3bc301f1ccdbf057d87fee78581161441b7829b7c3b04e6e2987bd71795057c9b34256666fc666d6738fb4bc87939fafada716a04beef785401f52a7837dda7602e015deef37994831392b21a6d8c3a24da471c4ea2195c54cc76f4af1b3b547c4eab75a275511f2f96108a5f60fbdefe0b739f33230a4dc4e895dc775f8efed748da07eb9304efcb85ae28f3b1bb9d7d2ef1f9c463fbc2251e1d16ca86d8267631ce2b862604a28adb5354622909994c513b905451ee790195c92021459cd78721c773c6bbec5e27b9fa112354de9157fb41f5dd4e70469c7f6c4a64add644eb6fe66f9a3254a64df691e585192967d8d9ca0ebc4c88017ed730d6fdef8052af5aa023013bbd4257aa24cfd83f8aee31e8941f7f0a85448336ad5613829e803720c873bab9f690cdb7d8b101d17dc78c3887f1a117f480931f0773a6996acb68b1bda4dfd3b4b99259aa65f7fb8cb5e45c19e3d741221bc3c080b4e4e13389b1b14149c550f19d81fda25bc846618ed2113905011eef62e9023f9da22bcf0dc8abf9f1a723d0d00d828938a68723913e5f83d93367f1c8d052af45c035c6be7abc53d2d78d7c6047b9d1f802d5bc24560818ea5cb12c96a98934acefb5c31317cf0cd1c33797ffd1656d638de37344565a19252d74850de864ce28534552c38871de0df4eddd134f812dbe3983d5ef98c2baee720a80904f7fe033b9aa9abf7513cfe5b2a5142e90122208d3bc76ac20f088fd2deb6a6f307d0c123d63a1a4de33f113dfa246b1446496b9d7e34affa70aaad8026c0479cf8a83536a5a8402e5c732d4564a9254aebdebcc7263d9c6cbaf90e8447b1452596b9bbfab03639b70f4b311e22057d4cce2147ec4ab0f5d031d98e6d6c18793036d299d0f31d3ae74a53fe6a826188cabfa5bf5a50ca94898be397349d7cbab6793b3e8c23a8cfc05bfb52e11b663b581519a12b6cbda44fc4cc2176b767bee2f5430b0113fd5eff848505450c117e760a2c54ff3c6455fdf9b672b228240a0b99514e3dd64a459c76ccbebbd82d47a44aae975dd4effc5165c48b6dab47062e29919b244078f43887ab2e7b681a13839d149a247fae4947c95397a79f6976e319526afc0d8755b2d6185fe3034c5050b746534f03817e2db84431e070ae93259358a0707682bcc6a1f43e4ed7a69d4d0d9ee5c7b573bc2e6d99dbf1d12981e999e825cbe82c174ac91efc2ba1a0c749dbec92d6c14c48b23494d3164cb3254a71e4a45022703865d3e68b1441f00939088ff1c30b1bad30a978372b9a092dfe378e885fcaa5f5dcdf5e8e493888b8d8e0746dbf727d5f86bcb6a2ffc5ac78e2713cfe38d1f7c1e0d9c8294bb2d2f462bc92a824b1e143ed385ce2d480e22d924a77b53fd8169d9ec7475721735bfe258c763cd5109a3b2e720c6398d6b2089add088918707882a3b23b1debec730f33dd8915ebc3035a760fcbf928c756f48f119401f718da2bb8ceab89cb55c47fbbe34b1a1abcb334a7684081330a4090f1dbfaee725ca3c60f0cb970ff4ebbbed78e155bae5126637a781ca39039c13c75170d10e64b8d7df0a7c07c1b63b255b0a8a50e3e2ddb4d0141457569d368932566321d8b9f6a05a5b10b71aeeab17993d367f1a2970aa5ae89c47f62ac6c5ae0ce79beaf55cce1ce13ba677b811662c4d1c5f07ce2d95dd23beb150f6f9b0bb4ee22ab9369ffde247f8819652a50ba77729f137f7dc21fa972f41cf260426ceb38af590db493d35890bb74d5551cb81f80aff56191a1f15698b5b44c89c9eb43fd99c4f2750da630abdc62194fa37ffe47001c73faa90c4985d9179942ed7c516b7f1a1ae8bf9635e37bb272731d74db2940851ed7bfd3ede35e48c7052fc741f6eba9337b2de20a0392a86df90db285a6affa65c6ce10fc0c3c6e8704918ffce25b284edd69d40f8d472a3adea775bdec73a6f2c2fb436a47fc7ec8f4eed465b651f4fc97dcf983ede50630a3b0be60412358a08878fa8df90583e046e579ac05e0100c84e8b66692368047f6bc5edffdd07eaf383288035315cac44f0abb333a0b099f945131c2bc8d287eeccef7e892ca0f45bd992b5bc4885eb6796fe84719ec8f8f0a37d0433d05c885174e77e5a3eae4541f896f848ebcb84ec9cf00ce7ca78cda6cb840d069d6990481a4b3de7182e63c10f586c380045809eb5183ccf093683e879b081b4f52ea825777708bccb7419f97c0167b119ae1dedf6b37670fef3c5eabd9187327c31277e465e6e1a320e86305b5893742a3a33f1ab5fed68abacb8d4316b0a5491a69cd95602c8efb01653ca37b5c14dd3a84067f6e0345b247d7f20cefdf018a024f18bab8133a2081bde16d82d0638fcdab7ac23ace7cbfccdde441c53c8aa2b950a5af07f2c720e7111cf380c2dff6c2c04223177ae700bbdbd38271f09c4e385ca9f3324f8db7ea648f891acf150a1e0117b0e16a42d38b0035a8b4ac0a10c417e6e4a64126c8845a4e598eeb508337b92ca9d3118744b5d5e398f6118e7be004f7a99fb071ee9bbea95d0985bb7e53678f328d1b8161ac142ca4b09e0bffd8ce20f14805a0dd76f8c176b8139d7e71474fb4a785fca1a7fc45c2ad1dda68e742a211d50218a13af4cc4258909810514e77d46746ed71f3b5b4eb7e40b0c40135dc4d8b82e74df41e74eee5ac475f85291424ce543c248bf07706898392256042096050ccf05390989cc06444a7b85fec1a6a3b8c0e61d08a7aed6913a9076bd86112c86dc5aca7f3c70ca2d5e97888e5f30fb7cac5ffa0b107deb677b14df1eba8adc5c279393670e9d6d2e48d84d73f6af006a11345625d6a2761417293c259351c7b36bcafcaf180efc97b632a8b9bd697b36f3312d83c86bdd495c409c7ca3dd6a2f901c2620411168d920356b0a42d76b394c70a9176ce7a9cea63bfb3498adc5380439b64bfe1a8e475ddabe65c087604bc258dcb24d10d01d242c20012bb6d64b45d158a4c062c925fd73b65566a61a8d95535cea5b159c4470ba54e9c2905daacac4c95d92ebe61885ee441f8d53ea417aaf4abe34bf9ec448e78a31f3fa66db6a95eb05650edf2926dd20d7d0c793c89c9d3503bf4eb284019073a8d45f6a644a343aef97c7e52ec15981c6ff595390b9dd976ee0909e22734e03e761da4a29982be3c8b1465c0b072fcc4d9d7ecfa3a25e373f73620c6c70f138b5fb4d263bcc9b6ab37ffa5443acca55e61aeee6d93460b479f1df53695da2df6318581c0ef51fc70fead85078a7f290fece64f711f497a15f2cdc1a0b75964e6e777153a9ff5bb19cd58f015731787cba769d3d0105ee5391d8d6ffc7d9c1f087dfe987f1d8f7545780d26028d1b0574d73d24a9ceb4c2ed1774b978749ba7dfddc7306c7f8ef78081e07bb3b1536c55e90d781be42ab0340a4fe434ff52e1ea4e01cf35207434dca397b2f13d9298b75f7058d3db44f59e2094553d21bf3f46f7aafd0181eb0e3a66d92bb7bd83890cc6faa0bd19e19dc998cdf697fc0e01fcd5f5da7bd2944ec0f68814690c697c7f26897c6c7b4802cd6d4892ed7e10f6cd496932abc7bc91bf238b66fb8660215ce452ad806483100c0e02f8d4cf9c6b55ec0358576b482c9d609832a03557edcbf25bdaacf14cc430924b1132037d92b478b4f81bbadb6ece118f5a95daf21a27968741e3c70314ac0c0a2e9e74d0dd2c8a44f4a61512a64791aa60499766158706c961daa29c9350581c259940ea326580ad5a5e16a6216f9afe9a2b1354358d695a501930ddc757efbe31f18cb7a7de90e6fa0ccd68f811d3fb9556e4032601d88cec2e4a42b86054775254b921e026e2711749d37dce2d1efa541bec76f823575d571cf774dfa0a0145a33fa184fc1294198faa217f3baa25d983b2733c9183c6b1a15d605056b85db5c4f2a866e52fae766771fd2557235103fa909d2ca44afe4ee48a4092556e33622793af85f2d95bdb3e13677149359337895ed6988dde11185539692ba0183274eedbade6595d89c0b73657f89de5fc8224342919ce6eec691044b601990e2045e695786c714ded32ed62450cbe07966012c7adb10ea77a5489d189fd4d5833cd717b58e76125c5223cb4547a7cfecc3f7e6ab3dbae2b7575f86e80a72b9c42c017ab7e32b649c11cd2a7a8bdf8199c78eaa9d3109041ee8563a6e59d295a097f97867fdef5a2a8192ecd1615a7c212f60c8923c3b26d992aed0124c5a14c2b05998b5e4275e92bcefb9aaea402d882f168724c6afbf08f85422b42314a3dcf5dc6f82d0c4e6e913d0d138c116980c76b028212c5a7c010d2275c243b34551cc5088f84dd27d2a6cf61362b99b18bbc84b014d40da05eaccb5725e59b5faa7079c20b2d354fac99afd8a4fe972e4fe4b3defffe55e27c59c30594629d538b9fac190d3c4f4103dcd6f14fab44ba175a9419d6905e6cce22cd9a5306ece9ff969b32cd9a41c1dfcfa9b55f51069bdc780dd92647db0d6f8e4c6395818025dde238d8dbef3a75603d82a2d589d65c2aaf92bbd22a333a4539fb9e1e54c222ac535fe693f2c6db5094522d36d1539da52eaa7787de2db28816214eb5f626dfcedb91688b0fbfb72f5184e0368933a012809cb1669f200ab40453d35b9b10ca16dc33acef439b49858f94c1a2cf3dbdaeefbbdb9acd73cd465912096b5151454ede23adfe41f40a8ba8071f33d61c75aa4e8bcfcbb6bb8f6c060f6f3b92000e00952136887a3503157ee5eb12e5b06be70dd15f08b70f4ddec00ad825cc1370a7f1de02079b950053ee0b441d10235652ea03b4a82dda0f3c6f032aa17d44dbe45f92e2d5fe18705da596037466068bba08e09b7c85531aee4b46567e412074b1eefaeda8f35b237dc4f3bb60558c64b1f5f08e897e3ee8afed896fa2a33f88f7420a0040b8ef167590b54ec97e5c671ad69e8d9193833be1169dbade535cfbd08ea14ad656ef1059dcf7571e5caa82621ddead382b62ffe5f2bde6500d738270184803dd0c8df77243eb8f97e51f6fc8a4b5cf383a8dcbd84d8e7d30ff7bff23303dcfddb4d3615eb898fe966afb3c7c26774d847802745477363eb8cdaf5d87f4bc1478eab122f072e552630ebd0a4829b828192d68f3cf0336462116b15e6007d51847e41b56165c7c976751a6634ffd8e88365435c9bff32cb6e0077374e18361e71f90b820bc47002fd02d3e2cc868392ab143bc7d64e72eaac1dc6ccc0016a96604b9e816e6c71ab00d02270a0c994b2ab3fd3c87bcb4e3dc50cb95468dd67b24eb66bb92cff69193f06fb61ea263edd9b3e6cc3d1791d468ee4bcee7a4fb0ca4a59a26ef8ed884ca54bbecb03bb65239028b443c40554cf4522d5efc26bb7e9f260ff04c15d96b26443a75b63999635bfa9d69048f7596a574a5425ff8ec5d6e95dca12a436bb861b2c0295c5eccde70859f6683bd128edd24b31628b79764268921c19e9f10ddcf379765c4e31ced05bc6bb769980336ca986efc263bdaed9118fb138e09f3cc3c637cc0582b91d2cc6b4ba166a548e73e3d19bcf52f4f9fc9d73c0281ca8997cb06cc870b2a9c77393cc0bb2b379f096f1b0f247f74cbbad0d1b99cc88d189553575f0ec1c8a82de0473b7af4dea1bdf6d481843678c432bd1a5b2e45e6c714f53f5ff3ba7c182b308224011959e26cc58f26b9bc2dd7eb557fcf6e5293a7b7822a92ac5990688fbfd95a3b296255b1109d270e9343e6f2a042cacf819358f77a994dc1ac7c00961e8cd025b5cac79a0f7c3ceea7679726769cc63add569f3c8770e1d3fd4b8915ca5e7ba9739528a65d43b93e9f51289fe2a877e9a8c6fd2491151369aef43f522577affdfafede5fb70cb6b56451f75e9b83452a02d00c3ad01088fa2c9b66ddd3e5dfc2fb0ef60dd6f7abe2d345c4ba7cc39f553468075bdf2e1a9913a641120b755rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython312-documentation-3.12.13-150600.3.53.1.src.rpmpython312-doc-devhelppython312-doc-devhelp(ppc-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3iZ@iq@i@i+@i+@ii@ii@iCi@i@hhth:@h@h@he@he@hchFh'(h?h@g@gRgu@gR@gPD@gH[@g5@g6g6f@ff)@f@@fըf@fafafIfff|f|fy_fb@ff@eZe؈eԔ@ee@e@e|?eV@ee d@dd@d˖dD@d dx@dw6dNX@dJcdI@d!@d@d@c>@c@ck@c@cS@cck@cWcRc#cccb@b?b@b@bzSby@bs@b?@b@b a@a@a@a@aX@a@aa@af@a\>@a,@a(a @a` @` @`g@``r```@`N@`/@`"y@`!'`_T__԰_ _v@_u@_P_|\@_m_O@_N7_>e__@__A@___ @_X@_X@_X@_X@_X@_X@_X@_X@_X@^z^z^z^z^)@^^^^@^(@^3^@^'@^H^|@^h^`^>^>^8 @^8 @^ P@^[]f@]f@]]]]W]]c@]]]z@](]]]@]V]w@]i]g@]W@]Ik]6]!]G@\\9\~\@\\@\7\+@\\s\b@\b@\Q\C@\4\4\,\2\\\\&@[[@[^[ @[ͻ[ͻ[$@[ā@[/[[@["@[D[;e@[6@[4ZnZ@Z@ZZԐ@Zx@Z@Z Z Z Zz@ZxG@Zhu@Z`@ZLZ"Z }YYX@Yo@YY@YY@Y@YP@YI@XӸXƉXqX@Xv@W@V@Vm@VVhVCV }@U@U@U@U@UU[%UT@UT@UCjU@TeTBV@T;mcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.commcepl@cepl.eumcepl@suse.commcepl@cepl.eudaniel.garcia@suse.comdaniel.garcia@suse.comdimstar@opensuse.orgdimstar@opensuse.orgmcepl@cepl.eumcepl@cepl.eumcepl@cepl.eudaniel.garcia@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.combwiedemann@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eubwiedemann@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eudaniel.garcia@suse.commcepl@suse.comschwab@suse.deschwab@suse.demcepl@cepl.eudaniel.garcia@suse.commcepl@cepl.eupmonreal@suse.commcepl@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@cepl.eudaniel.garcia@suse.comdaniel.garcia@suse.comdaniel.garcia@suse.commcepl@suse.comdaniel.garcia@suse.comdmueller@suse.comdaniel.garcia@suse.comdmueller@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdaniel.garcia@suse.comdaniel.garcia@suse.commcepl@suse.comdaniel.garcia@suse.comdaniel.garcia@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comkukuk@suse.comdmueller@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comschwab@suse.deschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comdcermak@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comschwab@suse.decallumjfarmer13@gmail.commcepl@suse.comcallumjfarmer13@gmail.comcallumjfarmer13@gmail.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comdmueller@suse.comandreas.stieger@gmx.decallumjfarmer13@gmail.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commliska@suse.czmcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comstefan.bruens@rwth-aachen.destefan.bruens@rwth-aachen.demcepl@suse.commcepl@suse.commgorse@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.combwiedemann@suse.comtchvatal@suse.commcepl@suse.comguillaume.gardet@opensuse.orgjayvdb@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commliska@suse.czmcepl@suse.commcepl@suse.commcepl@suse.comjayvdb@gmail.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtoddrme2178@gmail.commcepl@suse.comjengelh@inai.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commimi.vx@gmail.comhpj@urpla.netjengelh@inai.detchvatal@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comtchvatal@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comjengelh@inai.deschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comjmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comjmatejek@suse.comschwab@suse.detoddrme2178@gmail.comarichardson.kde@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgdimstar@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.comjmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comcrrodriguez@opensuse.orgjmatejek@suse.com- Add CVE-2026-3479-pkgutil_get_data.patch pkgutil.get_data() has the same security model as open(). The documented limitations ensure compatibility with non-filesystem loaders; Python doesn't check that. (bsc#1259989, CVE-2026-3479, gh#python/cpython#146121).- Add CVE-2026-4519-webbrowser-open-dashes.patch to reject leading dashes in webbrowser URLs (bsc#1260026, CVE-2026-4519, gh#python/cpython#143930).- Add CVE-2025-13462-tarinfo-header-parse.patch which skips TarInfo DIRTYPE normalization during GNU long name handling (bsc#1259611, CVE-2025-13462).- Add CVE-2026-4224-expat-unbound-C-recursion.patch avoiding unbound C recursion in conv_content_model in pyexpat.c (bsc#1259735, CVE-2026-4224).- Add CVE-2026-3644-cookies-Morsel-update-II.patch to reject control characters in http.cookies.Morsel.update() and http.cookies.BaseCookie.js_output (bsc#1259734, CVE-2026-3644).- Fix changelog- Add CVE-2026-2297-SourcelessFileLoader-io_open_code.patch ensuring that `SourcelessFileLoader` uses `io.open_code` when opening `.pyc` files (bsc#1259240, CVE-2026-2297).- Update to 3.12.13: - Python 3.12.13 final - Release date: 2026-03-03 - Security - gh-144125: BytesGenerator will now refuse to serialize (write) headers that are unsafely folded or delimited; see verify_generated_headers. (Contributed by Bas Bloemsaat and Petr Viktorin in gh-121650) (bsc#1257181, CVE-2026-1299). - gh-143935: Fixed a bug in the folding of comments when flattening an email message using a modern email policy. Comments consisting of a very long sequence of non-foldable characters could trigger a forced line wrap that omitted the required leading space on the continuation line, causing the remainder of the comment to be interpreted as a new header field. This enabled header injection with carefully crafted inputs (bsc#1257029 CVE-2025-11468). - gh-143925: Reject control characters in data: URL media types (bsc#1257046, CVE-2025-15282). - gh-143919: Reject control characters in http.cookies.Morsel fields and values (bsc#1257031, CVE-2026-0672). - gh-143916: Reject C0 control characters within wsgiref.headers.Headers fields, values, and parameters (bsc#1257042, CVE-2026-0865). - gh-142145: Remove quadratic behavior in xml.minidom node ID cache clearing. In order to do this without breaking existing users, we also add the ownerDocument attribute to xml.dom.minidom elements and attributes created by directly instantiating the Element or Attr class. Note that this way of creating nodes is not supported; creator functions like xml.dom.Document.documentElement() should be used instead (bsc#1254997, CVE-2025-12084). - gh-137836: Add support of the “plaintext” element, RAWTEXT elements “xmp”, “iframe”, “noembed” and “noframes”, and optionally RAWTEXT element “noscript” in html.parser.HTMLParser. - gh-136063: email.message: ensure linear complexity for legacy HTTP parameters parsing. Patch by Bénédikt Tran. - gh-136065: Fix quadratic complexity in os.path.expandvars() (bsc#1252974, CVE-2025-6075). - gh-119451: Fix a potential memory denial of service in the http.client module. When connecting to a malicious server, it could cause an arbitrary amount of memory to be allocated. This could have led to symptoms including a MemoryError, swapping, out of memory (OOM) killed processes or containers, or even system crashes (CVE-2025-13836, bsc#1254400). - gh-119452: Fix a potential memory denial of service in the http.server module. When a malicious user is connected to the CGI server on Windows, it could cause an arbitrary amount of memory to be allocated. This could have led to symptoms including a MemoryError, swapping, out of memory (OOM) killed processes or containers, or even system crashes. - gh-119342: Fix a potential memory denial of service in the plistlib module. When reading a Plist file received from untrusted source, it could cause an arbitrary amount of memory to be allocated. This could have led to symptoms including a MemoryError, swapping, out of memory (OOM) killed processes or containers, or even system crashes (bsc#1254401, CVE-2025-13837). - Library - gh-144833: Fixed a use-after-free in ssl when SSL_new() returns NULL in newPySSLSocket(). The error was reported via a dangling pointer after the object had already been freed. - gh-144363: Update bundled libexpat to 2.7.4 - gh-90949: Add SetAllocTrackerActivationThreshold() and SetAllocTrackerMaximumAmplification() to xmlparser objects to prevent use of disproportional amounts of dynamic memory from within an Expat parser. Patch by Bénédikt Tran. - Remove upstreamed patches: - CVE-2025-11468-email-hdr-fold-comment.patch - CVE-2025-12084-minidom-quad-search.patch - CVE-2025-13836-http-resp-cont-len.patch - CVE-2025-13837-plistlib-mailicious-length.patch - CVE-2025-6075-expandvars-perf-degrad.patch - CVE-2026-0672-http-hdr-inject-cookie-Morsel.patch - CVE-2026-0865-wsgiref-ctrl-chars.patch - CVE-2025-15282-urllib-ctrl-chars.patch- CVE-2025-11468: to preserve parens when folding comments. (bsc#1257029, gh#python/cpython#143935) CVE-2025-11468-email-hdr-fold-comment.patch - CVE-2025-12781: fix decoding with non-standard Base64 alphabet (bsc#1257108, gh#python/cpython#125346) CVE-2025-12781-b64decode-alt-chars.patch - CVE-2026-0672: rejects control characters in http cookies. (bsc#1257031, gh#python/cpython#143919) CVE-2026-0672-http-hdr-inject-cookie-Morsel.patch - CVE-2026-0865: rejecting control characters in wsgiref.headers.Headers, which could be abused for injecting false HTTP headers. (bsc#1257042, gh#python/cpython#143916) CVE-2026-0865-wsgiref-ctrl-chars.patch - CVE-2025-15366: basically the same as the previous patch for IMAP protocol. (bsc#1257044, gh#python/cpython#143921) CVE-2025-15366-imap-ctrl-chars.patch - CVE-2025-15282: basically the same as the previous patch for urllib library. (bsc#1257046, gh#python/cpython#143925) CVE-2025-15282-urllib-ctrl-chars.patch - CVE-2025-15367: basically the same as the previous patch for poplib library. (bsc#1257041, gh#python/cpython#143923) CVE-2025-15367-poplib-ctrl-chars.patch- CVE-2025-13836: to prevent reading an HTTP response from a server, if no read amount is specified, with using Content-Length per default as the length. (bsc#1254400, gh#python/cpython#119451) CVE-2025-13836-http-resp-cont-len.patch - CVE-2025-12084: prevent quadratic behavior in node ID cache clearing. (bsc#1254997, gh#python/cpython#142145) CVE-2025-12084-minidom-quad-search.patch - CVE-2025-13837: protect against OOM when loading malicious content. (bsc#1254401, gh#python/cpython#119342) CVE-2025-13837-plistlib-mailicious-length.patch- Add pass-test_write_read_limited_history.patch: Fix readline history truncation when length is reduced The `readline.set_history_length()` function did not previously truncate the in-memory history when the new length was set to a value smaller than the current number of history items. This could lead to unexpected behavior where `get_history_length()` would still report the old length and writing the history to a file would write more entries than the new limit. This patch modifies `set_history_length()` to explicitly remove the oldest history entries using `remove_history()` when the length is decreased, ensuring the in-memory history is correctly truncated to the new limit. This brings the function's behavior in line with expectations and fixes failures in `test_write_read_limited_history`.- Add CVE-2025-6075-expandvars-perf-degrad.patch avoid simple quadratic complexity vulnerabilities of os.path.expandvars() (CVE-2025-6075, bsc#1252974). - Reapply patches: - bsc1243155-sphinx-non-determinism.patch - doc-py38-to-py36.patch - fix_configure_rst.patch- Update to 3.12.12: - Tools/Demos - gh-139330: SBOM generation tool didn’t cross-check the version and checksum values against the Modules/expat/refresh.sh script, leading to the values becoming out-of-date during routine updates. - Security - gh-139700: Check consistency of the zip64 end of central directory record. Support records with “zip64 extensible data” if there are no bytes prepended to the ZIP file (CVE-2025-8291, bsc#1251305). - gh-139400: xml.parsers.expat: Make sure that parent Expat parsers are only garbage-collected once they are no longer referenced by subparsers created by ExternalEntityParserCreate(). Patch by Sebastian Pipping. - gh-135661: Fix parsing start and end tags in html.parser.HTMLParser according to the HTML5 standard. * Whitespaces no longer accepted between does not end the script section. * Vertical tabulation (\v) and non-ASCII whitespaces no longer recognized as whitespaces. The only whitespaces are \t\n\r\f and space. * Null character (U+0000) no longer ends the tag name. * Attributes and slashes after the tag name in end tags are now ignored, instead of terminating after the first > in quoted attribute value. E.g. . * Multiple slashes and whitespaces between the last attribute and closing > are now ignored in both start and end tags. E.g. . * Multiple = between attribute name and value are no longer collapsed. E.g. produces attribute “foo” with value “=bar”. - gh-135661: Fix CDATA section parsing in html.parser.HTMLParser according to the HTML5 standard: ] ]> and ]] > no longer end the CDATA section. Add private method _set_support_cdata() which can be used to specify how to parse <[CDATA[ — as a CDATA section in foreign content (SVG or MathML) or as a bogus comment in the HTML namespace. - gh-102555: Fix comment parsing in html.parser.HTMLParser according to the HTML5 standard. --!> now ends the comment. -- > no longer ends the comment. Support abnormally ended empty comments <--> and <--->. - gh-135462: Fix quadratic complexity in processing specially crafted input in html.parser.HTMLParser. End-of-file errors are now handled according to the HTML5 specs – comments and declarations are automatically closed, tags are ignored. - gh-118350: Fix support of escapable raw text mode (elements “textarea” and “title”) in html.parser.HTMLParser. - gh-86155: html.parser.HTMLParser.close() no longer loses data when the