python312-doc-devhelp-3.12.13-150600.3.48.1<>, 0ip9|զqRnhf!D!s"ArUͤ јKQ+U"!ɘڕҶyorV'2N+E|hE2pC VV'W3a64nH/\ٝ(o^h[~!sR p %t=;?d  . n<@LPi M M M HM |M IM MMMMM8pڀ(89x:gFzGzMHMI MXpYx\M]M^bcd*e/f2l4uHMv|zq˄ˈˎCpython312-doc-devhelp3.12.13150600.3.48.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.ih04-armsrv1SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxaarch64+>: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[%McJNAnisI?!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큤iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii5da7ce3c82d92a197360c3a6522da6db5ba41ba7b7aa74373cf0feb5b03bf7c6d488b23208c21fe601bd6b2d4ba6c44d334bb075babbf7f0f751318903b6c5d4382828d64e88644e47e695d717ea8432ec1ef79a17f2d209b11aef4fdbfa4bf5b669bed8b4b1d4672f6772c0b63c2c70678dd330c4e7db576c55bcb319b8865b4bd5db0b21f178fd8b16f7d999d0da20a00ca8d271cd556cfb1d26dea91aac88b21a9ea9ad785299a282cccc4b9a93cf9b1f028f65b0e90c0c41deea019953beb5528a56a8b0f2e5da3d6f20f47057cc0325273ff152816c202f8a114cd07138ba9abf87cadffa7027ca298ba11ceb6418f3a9abb32ac988c8d342e7c2b3fb2e277bdba99ffd0fc3356293aff094e234837aaf9fa301c6498c50bd7a525646ce97e48f22946a092e28d4306491653c06183fa76151614d10b8fb7b51dbcca7ad4763d9d7b2bd7a02af9f67cd759f61d68c7b7dba839e676b368b07bea632198b583d4a896c950c9633854df40de1d2805f768279e280b4d14dadeb4a90c80fd0f1af795443875f7184331d307aa28dba3fed73126d1d27baceedcf376de52a30f3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b15a001934886bdedcbabf89f6a81e8253c0c1bb47ac18e9c7b859f0fcb1d92406a4bfafc4f40454ce33b1c3f1a4314d82383523cb08a6f24be78a0e1eff6c10165c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e2a9e5771376ac6bd5bfee1c1e16a7f9062f8cccc5231ab6ef96a3987b5d6801a416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d004ad6ad7e772d6f3c61c65a7fb255e2b36d8bf583044c08ab97e7e5e6b8442dd0fbeb27b75fd2c9163de2f25926bdd72f8cda9e2ed8a97c3002675f0847c9d647e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008aacc80a7392c51d971a98ef3dae6c908d9a14229615c83a5db97521dc4102c1e43e118675c9a437f76a19f3485481b16631505547922f190b149771d934cf59b54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d72565865be8bcc0af888594903ea0112f6c8d923c5726c4081e8c856110cc7339cef0e2d097ec6582b8a0e035a7630ad3052bbb189f3abec9cb29822cd92d9ed86ab7029cabd6297c2a33d33024ab77167f9d7b2dafd5445ee24ca6e13a366426d46b5fd9ae1a8f1715567139ca088de37decabf4f4ef36ba04edd90a481aa64d480c7278fef0b7d6748faf50278bba7f6d78a85a9bce97f75700c9e434209491709d23c599fc95a194340402cec351ecc78b946ea27cff1da0ecc2b1f8b1a648b1dcc10f799cd0f6b65f95c4012445497e5ba3cb9f51964a9468940b27bde98b487218fb1c1fc72e9af6b866f430be2a67fa376392b4db2f4dbf32772671b6ae55c14b6f07e1b54755d7806122f6c6bf06d09609c1847da912255c43decf02383631487e6e91c32e7a4c999fd1c45b3ad8e9ba7889e431b420840c1bd34b27abc5a1c4b70eff084f003ff0ad3df8de3788efbce7fdd52e2320d54fdb578033325bfa0ba08349edf85c9f01e08eee998052b715757510eccd6daff06c5dc089eea5d2ed81becb37c5b720b72fa447813f0c99cf208b85adf71c93917ff7678dc4b36ed4421e85d04bc8938de6f9a58f8deee4392caf8a2db846ceb2edaf417282c6d19f81bf6006e73f74655eab85545c66021a161c3c41cc95f893c21ef7cf78113bb9bff4c6707a38200ac88296d0e5504815ef52f46a4c7b1c5911cc28071eb8019c97007aec7aab7cef52b1973e969426827cc6a097dffe04bdb7dfb6fccc0874e542085fce94c82d5be1120d5199e5d114e18d9ff1c5185f107410c1b2f816a001afcefc69e4aaffa3a3b8ff84d0976c939c28e98c7f42f9aaf9ca63fa8c04fc56f50f22b447c62bfd2c0f436958c052a9802f39756a878c232aaa03455bdbac44c9af784bac1ce1e391ef7b703a8b4fd5334cb7b16426e36b47da1667f76ad25676d8bc48a12b36610e855a3aa78df87198cc5fa3e66b53d714574b6ce033c624d7503033026c16cac94555fade442a9b5f7c78bcfef7933e7bb3f1644b2e9add218e45eab4b1d7fdcc18ee58feb1c8c2e31a284e262efd5777ba53573acb5b412a10c93657679e23b5c547be2b31df419a01148ccf1bf1ef6ff8d448ad93f7c31a549b8784cc9e7b80e02dc172fb8b03d973035536268bfa722e08c89a6d2386a381843324d0f5897741018c4d02d755a2af34a4f266673171d18347a05fde7146fad1df3814c5d5e0090dd3598b5201fac2e8657a1985829ec20dcb635cb68dfe50b55f36620d0a19c4731f883b3c5603fa676231f7eb93dc60bd6f362a632d998c1215acb28f1f2467ffbc7b1e91a642e8853df40cdcfcca11a2c9ca7596b70aed0d59d65607b705c53d1bdebdeb9db3e8f80608e1ce6b85b92817303ba324d940be3226af2b09f33500be6521caa39cb6c68375db4fe0a7bb5926ed96f91db7249fb8443fe4f4d6f67575ce4eab95d0538a0b04db403a578210886b1bd36629b72cad8fe498179ddfe20bc02ff12ff1b4d7118924fdee23ba7ee45f265544501a57a8d59a1bda5d32b957130e84ff651113d61b23ace5ba5f814fcfdcc056d4057190990fa06d1752c8a57db7c175094103d41296e1f950280e0997cf5d6569cac3319543453130666c856dd1ba5d2693ac055d33f4a6ebf95eb7feaa73f48709ea050c08951ca8d174aa3fc0feff84987f7d8e3ed594e8b9faad8883226e595c3c3472f47ac765c93fe7af6e93be44431259061e44e136e4243a971b55f64c051048139f3f2cea6e46e578fcd8f7f82cf133901f2786c7d08d12e559d9f57360660d09e7c7408d6382efc00a8f6f9a9a0715e7c130e298462f2be4a89ad4e32840a6067cfd2ff4a4c477f8cd08d4ac27566d71c84e681355552c591e53377123077f410b71c96556e6bc732908e85becc3f255bd9e3843a5c70b2ab2069d3c36abed3f5d75ee62885bfc9e185a13db3f8d9106be8351b3f809d633a27a141279a112a8c9f4de090a800c7b6dd771ff5a419e1091cb024dd667ba69d139d38082713745f308f8efc2ce37f76a4ac1be53f781625463827571c0160f632b9046d21ce08971109ce141a6c0741fcb007600028161a6419a348cba6891a73f60bd36d3463830f7b34aeba0f99638a97839f27a625fad7e46c1d73aa25c12fab57d45cd1fc17449904b93795237adbb2024e7947f54cb906fb607e64642eb8a099a87d3270836bed42f6a99b1ac8983ae6c822666e6bce8975fefef8d5e481979bc73898266b485d41d7fb65c109102203832fdd83ddee15a835f00ff0dc3ea2a95fdd0430509fce2ade4fc883118fb6b27f538daa687273fa118bb578ef88bd766f32a4f6e371467a588b0c86e575a5b0a93937a395b2556c05831eb67c2d73eb601a0000d6e5b96ab15dabd4be3d189796d968f9889490979e2f1435673c36c208008af387cf39b5132a7a068d55b2e020c9083d189e6d3f7e404bd30c358ca5e498e71ec0bc65e2a3fc91e137a40bdb59769f1fd4e0be98e881bfd704f20043baac4d83ae0753275bdf34de32587f407a51f946e053c1912120115bde33416815b21dbbf1f63fc7eed174d9655eb6c247546d96c68c3747d3090007738f2dd5c8c56da58fb57f7378095d9b821a53e2928453e158c532bbbbc73f09645e9e6939f8ed0c53d248db90e7411cb46357b7c492e7aa38055b99d809527d50ed56f585ff2b271b2a91a5ef37d1fd380b4a8f12ca77ff2f463d84a43fdc079aa4359355c54cf440a3d7fd61fed3bceb5c350891c7a9acb7754dd0543c61860365fa22dc0eda61c44a92b28d620a2a26755db9318ccdeb1935a20dfdbe1f5c1d3d56cf59fddf296a4b44a046a38c0e9a66e341da530e52a7c5654b220d10215e9be24c563e3e1a2388a987182641f9a4029c0cc9d92d643060caa435f447e654db43f9247d2dfaec9eb34b1cc63dbd540e0d4d60b0f589690b7ad75d2101c909daba97397d32f6a23c3234a606ebdb1991cdc1f3ee52a6d4e8b5410a522a9a7ede53f4af3ae472ff81cff49420ac32e78d9c0d3a77097de60a85df463c4ad8f32490c28ef07f1c7c4e66a8f8126269d2e62267f056280d07a10e87bd5aa23ab5307129ea6d8ac396b692c3e6d59c491250cbe7de56a1296b98a7b0da9b6e94d0ce309022819c242f8a8b289b85843f53f70bcae416dbc4a5993ff20624a57c6b95d6c610c6993cef832b0da9f984148acc99e3972fe87b225d53ce6d8d3238dbbad7457b645356099334d8157cc666060f8dc77d1fd18f4dc73c3e0b5038f90819d19a9b032318a05f932ab03184669694032f45914c24b075bc2b9a25cfdf04d05bf0a1600271080593608f065eff2b02260ddba5c34a3dbf34692692823753e02e6529ce5cca8a848599be59c292ecbbe12b96f9c19d923ba03b0987d427d7ddf6993fd625060cfe844d463f3d5569a868a22b3acdfe85434186f20d7cb5114ddd427c16c002a74dfd5acb565cc7d8401935faa5ac406a6eb8774bbc55cc3eda0d0fb80a79aa8a3a796f2841bb738ae17ce7e657bd698c2472451aba24f94d389d6464d86325b83f0753fd20d8f0bef3408cdb41884065b9e027f3a69cc1d76e8c5ca4d87adc91c879c4f9dee637fc2afee87a2b08c04aaaa28dbfdcc9d070ed0e7e744301fc9420b9ce4ac9ab2a912abe0fba784d1815714915b13dbf21fe26a55dc28b2b7915c75ad97899be4dc0ce2ea3efef16388d2d86728845e73767cc9e5f09f823e496e4ec8029ef7c2cff8a5c45bcc8e1433bba6e88e51cbf9cf358debc113c491846b7f3f4c90c1296ed4273c5da391a5d2189408422c3cb4935ba480a670e35664287f56efcb43b0011d0537a2114ed9b1251c69ad0000e65334a04c8ca4f2dfd42b146c1383d8a82d7a8533f7641ccdd34f39a19f580dbba929cc65d932f42ab364ef03e799da1de69de7075dd67e9d8c888f57e38904cfb091b1c897046c8e1544baddec4d4bce9e1132386304977e2666c34494da133d760e821a5b2ae6fefadb5d953502adb923808c772e91d92f602d7841d404b277a049d3ec72208056ce1782a3d6c38b6284e39a90d208cf6a94a1c0674eea453b78452379afd1d8bc1abe07693f416105e7639ca776e939d454af36c315624fa08409b3665f8d8c63bbc94f4bd627f5c64a7fd8363ae3bc83f75fc8c6e771bc139aeacb8c43aecf2be0853fa3d9e80b08f42853965f497dd52f513b24c0d8fdd25989e3a9a9843fa9ecfd4a35b0ed68fed67bb8c3ff7b53f4c0a4dfaade5b74fcc759d180271587d6a9afa743ffbe0b7d5940ed3da7f56eee1270cd50e04952d090dbefb4588ed1b03ec4730919ad8d3919bc5281e9e48884e45ca6c656307cdbcce1861712af9f4f1d5112df639149be4f92cf027367d423e4756bef242e7e27e754fb81a8bb4a7e5779b1454e8a02155e6b94e9b6cee2291f8ab17cbf63eeef70b71a9dd5e328c454a61335db71dc7975ba0df1bb8690d086708ad79d8ad9fb2b2dda1932e8c88e1a17644548eec02273931e9104c6485e11560cc1a926b953cf5f7a438f409146905a1a5eac9a630f5f37d8868d79f7da847d4b4314366d5ee8c99cdb3d0049fe6ed006cec8dfb180bddaa76125e7f503a0f65b3a374b4316342a6ad1b7c157196328f089c879fd2626e610127f289f53047a9d7c03fb733291531e05220c45187aabc125bf8de2513d1657ad1d6c6f19c22b889c84695fcd3f42421b3b3b228fbfb9daa383012089100f1082a79a2f94cc75ac866ac0be3a0663b9bac8e4ad7314cbb41bf085062e52c87a3fc75103aa81e81b246a0ed6d882e49ef15478a3879dc76cb7456f9427c87dd0fec52aae16d4b463e8ffee26c90ea418a5fb73ccd2808463d5c673f4478170450076a99ac0e2a2d123ff55cb7f43d97f4239ef395925550fc8b40cbb114bfd46114fd83647ace5db98eaec944171f388037cf5087115e881de5337bad14caec7d40182e45cd337f4eda051f57d1ca74cacd3189c3c6474b96333c631ae221297013a0411de982dd70e5da169ea6307c92f79d1fca2e449209d0f8b607b361013ebf7ba5a2fbc0be4f01583bbb254ebe0941eaed3154982f7ef875e9e3f96cab7eb46d5c878ce222c6930e369176305071447793fc22303e5bfc3b19fc67c737c4536e6ccc81a30f7e6f0e401de2a33a6618f70afa08c8dca21e0d3bc67020dba6aa6afaf136832cab889e69b721337ba366e500231bf6d8dccf04532516a9ec675a50c34fba6361efca895ed1f7d945b3568456eead9a59faa69923919c07d8277a13de94495c517796f1cb36baa8982bb887bf6949688571abc686bad0cb6ebccecc9749a93986a9275970a8eb6e8d9015b27f184ada7d20830b8d3f69ac648e4c9e2fd1657149fb44287abe68635bdfc61f04003520fcf10ba9b4b0914e62247931b22871ad126b9fafaa4eb2fa6561429a2999ed7e45e846ccd0c87672da3902e5344d39bdc6ebe22d8b889782084e7b62ecc42fba099f9ef01c0e263b2505be88c1b1726b4561624e6ed5dbc1d6f517d2f8711277b3220b143a6d77822195a34b10a1d5a4968a394032656f545a5142e9c992b59f472a90103db8971bf641238486e63bde64ba71b03e9edbc9286c0625fa579b4fc74ee5b7f5b15fa81ca81b235105f6b4c7d8b4dc1ac344e9d4e4331c8a21205312a70672a5d127454f425673fc7fd727409ac02200dca69ebd710029bda70a61c12357e2c8454014b78de02893d876032ded21e02c95e55f10078fde3d5051f6d2ce44fd3dddddea91f3a1c71be52474c9ac2dac5d95cb9a35d882c88a26d2979e18c002eea156da46e4aac8c182ad14dd3e9e2856b693fc3ef4f1b47e0082a8f78c0d02f6784dd6fe6cefdab5150c6226e98929fbf75e73a364bea22bd46690cae3874b14e5cb68b40a13d7b2f7557ce0a2496a37a6ec5c2d3b5725dec1816b0a2b9bc4a8066295e3243b88e6c4689e8af596943aeacd6eb4a4a6f27b5af7a87fc7cfff782c61fe1bf61c6e142db33c30e6dcd24ad01942d2a674a34e31a9a2e7f84bda4454202aa745e23e7d7a612b4099a07ae187646db3f2a25d151b7f36cc6f9aab1cd70627ee7dba398e92f14e26c9c69516d53b4760ac960e870f75d043071c153d52e6723a74e231ac416b699b747efd641908485169eaadf109d7fcbc7b79f5069b668b17be9003df8ade1966a81ea55a0ba272ceea7b7f6631524513ec8c5c218aeb2527f3cf08ca9273203eb6b720d478936a80648619ec7cd05e41486e47b3e20c34b861a85aff7bc841b6eddf5b6fc05da6aeb573f1ef3d7a956ae0f1cd1302e9bc5d37ebebddd5dcd6683ed9f1b7519daada05f9f175d7eb849a679e9113c581d7beb278877101b441bf2deb72967593c8e8698fcd48fafad35214caa2eb3ebc1ca9db6986ba5f51e065a2c221359b19e08c502d463cd7338c190e197ae138423b9fc95f148ac089833f0c06059eff38f78a4a06868a93e9dca165ce9d968dbf3e79969af0c99fb01e6ec084adf3a1a8ad17a49f7b1f768c43e0b694b0346d3c27ba5f3600219e412b5ac46a3712aaa7e90d61945554692693994f5e06196c058d2d42a852abd4e6efc00955cfd2923b0d56ea603ecb41a968a33b2a5d2c062600a860970bffb775d7a02f599d8e611e26a8288187bb222df6896e07e230cd30afbc8fe8cd8d420fb7286aba11e93db241dc6f929c6d32ca8ee2b8751e7f8e98d606f5443db86219116b63ecf142727a0194d394926f2a7ebec696a020567060e95ce8bd7872c8a500f11557a1b9f14cbbf4107beb4bcbed91c5960e4558bfc70dff2250d9affdaf7f0f8644b74f0832895679653b44f90f7ee9219b6eac9ecbca8b17b20f95505fada54f63fe04395a0d9db47e971b132ef8fcb346ddbd50f12a1774387d5a3c6b918fc7eb3f8e7e26c1ee2c71668de5c92b5be12950a7ad9636eee19f7be5d9f9a2dcb9028e6e404f456bc5908fd749e2290d18949045adc5063f86f4958e5e79e3a01f2f868d35ae7fd826f1712908dacec169608ba914c01337cfb78a64906a9df43f92f1e514d40409249fbde1fe4bc54584c4d5ca12071b6af78a0ececcf779f5ad15c70f482719624345c33dd61b6e20079410aefc74c7cf42401bb2d51c7a8ce7c5f1a6ca2953a73c2b59f3476910cfe8be3409e26217d830cc015b83b809d72ff61a7fc4000a141229e2ba896289e51437840254e3d0fbdbce5b1b4398497466846d73d8a66cb06324812791c43340ad5b93dd68cca93c3e0b3512ebc998099a6bd657c8c1875a59697d707992948178698e82f01e6f0c888b077b1b7fa8086307793009b9fb2025bbe6c43f5ff928b3810ecf64ece03b3a433c1d08f9e1656164fd83c0d24a52d39d21a7651d20768d8d57ff4e38415f31ecfb19f44cd62a1672c39a2d8208ecd0fc77bc1de884f11c32d864264778fd5dc05619fc1ed6d201e0fa82801e8c6524551fae4d479f77ac00e062821701b47eb5a5a6c7552a44a08be80ab304688c43f6a7271114ea59cac1e8cac699cdc1a3e0bcdeed9835c10bddfc8113fb0376f0b275944ab3eedce1e862e51f2e45bfee6747e81db66b4f260d86658e6539792f1ed041a123bdfd3932c54b436b177f28e004d2d818f5536766a2f83f7ffa45db36cd2acbbb6ff1bcad0677706ac0c86c2faf75465d89e40cfa46cb5bee3a6432570d2d1d12afaca4a3e0d7b4de95e44ca87b52b184d965c40dbda6904eff9bd2aa4ca0a8eb155a466c41eb69ec6748fb48a0381bd16344de20be9ebc839d325e07a5452bdb80914c139949c5e423feef03799bf5b425daeb4754b072bdf0ee83de7691777a29bfdaf38b12b2d65226b8119cdda4c4ac2b3bb8b37912c040039f4c491ce6fa4d873b498d808d601bcf4c194ee5584c77dc377f3246d80d75045091a7e83d19e07bb652605dd8e3fbad300e6de7a9bef1fc65852e3c5b517cce73fcb3739affc9fdde9877e66ed60d42d20070eb2984c697e5dbfa42a1b9cc2d77862fbe95492b562e081160a0213b59810be588cfabeeaa469585e6f9b7a7fa8fa6c02ebffc78e9d07dffdad239ab164e0cc58de4889f26f505067b541db32113fac2743515bc3b1563a69c0f520bcd042ba793dcf0e63290ad30be2e24d53843ed54a0ad842a4a361b48d06a742bce9d0cfd54e182973351adaa44f2a25af6bb5ac34542c6f14174df143fc7b4a97e8338c864ec3aaded689496b511cd7863f108ada7faa5f27d2fc880db3d94738e550449bdd48978f0d48831c20af3c70e0d843f1dcd537e89421ebd3425f1a74491b6deb8a8e7dc20c3ffb352051421a9d9f691291761496ec5348a60b9290eae0c264d65fc9bcf5939797debb6649f7f09feb37fe028cfb2cb3de6f2082c5ef68806ce5e9679e0692d5758b64b1f2bf787efa1e328c356d8036b53813689a0611901a3403839b9377db8677ed1204d7270488e7e2e8c6691e3d285fa7a202362cd18033f1401b6caa4c3e2675702933609fed9d09467274159ffe30d18f4aaa5b010e26cdded9d16b0f4467e391c5179839cd1c955a883fee11df8a60cb2eb7a6a88c1f4e9b83a1abb002077cd6419444a1634c105f9abf2d8fbd0ecf8af596b47a49ea72a21b8411bcb2cd8a37a338799100a46b731b09b3ff886895aaedb31a90c25ef3f51feb7b24d31fd19e9bf9ff64578a865054154d05cf3b52eff3fb73c984f3e0f4445198017682e9c587c46194327f8e7789565182deda80ed9bcf69d9d148cd48eee710bc6acab12a910b08f1e825857cb387ff3f58ab78a2f47d0feb94ed180658986a7797c6191b794f537993aaab42d16ec6378fe6510601ad66ce64475e4ab4aeba539ac857fb8963b0704b7a93876218ffa2b589c56ac72629aba53100d00c7e2b1987e2c17b39482b33cb5bee4d71b2b33a35abb1f5863ebbdd6b27374597a74a4d86ed19213b5b8bbcbd41437208a2d0a599ed664084ab88857d4c4b7cdaf050c51e9e994e012e84c5c5462ba9a4452aa0065dbcb9210ebc0b5048545e6bb513a9b4a4056aeca12c1421b6483afdfd27ea94baf46a50685315597c146caac5367b5a47274349e75768e0144a8297fedb5f4303b3455ad63fc839041322bdb6d63307fc7f9a58d32562f667c24f393156f813562478772a14a9d081f7baca5ff800e13cb067bf58f1089782a2eb189510ca3847add890ace9d2db33ce34754aadafe79b838762f7e247785214a2cf8cd077145654c2109e8784a1e6983770122a44ff787420553c6d45735d73268b692e909c730400edf9428eb57fd13bfd2ed26e1d06231185f305c3fd7b382f1bace2d3d978f41e6d2e356d076cac12f0947aa44f72b187bb0dc41d56d0a047f819fdc5281f31a8b290bd34ce0494c2164fbf8a6e07551a58fd7b914ab35e20f9f7e389ff39cd2f4c3b9c6a828c5e216136ca7c5d7fd202e217fb3a051bdcd6b8a4acd4378192fd3df3a4887a73a1bbd716e6858c5d398007afd1fd5147e4e06a3b1029aca80863b4c7f0905795e07d771003141194ac6747c62efb3a16777ec6986728b65f26e8116d8536be78897fdc628cb7593cd9b35b976af37a17f216a3bf2e36eb203d3e9724a85377f73f4d209fe5511655a45be1b7fe6db9c3c2f5fab90682643d0df359e5a4236f30e6933af7427eca4d27e2af21175c90cd052fbd08b87ab7b0caba2cf49f3a92732f9a9b612b1c077de5acbcb4cf779bbee710075682811df4c0c26d93794e9d591561d52b541fbd8859d6a35900fd72f21fe82e85f8eaac355a768cf908447b77560dd333632d58fd1901eec7fcda14c9200948bc9a6b0c6f567e48ae14723fed20d8eb70f8e87d7ec049c6e49e6c1e8110cca17d1cdc85c09a019b40afce7eaf7c0681a0dcde8e2546fc1ebd7a24dee67e71fefbb9c5e4febd63b680051a2257370680cb3bec04a685d89a69e50e33d5f212b87744c0b8da98ae4468e8010d71ce9c48aa99d9ea1ba487ae4f03e90c8158ecb9a4b4cd73b1aac58e189a6f6a71e830af5929ddf68165a697350ede245ad29a2c59083a211320396f79223dc12cc995c151b6a83fd573106d50889b9c87b93096ee5b3ea3f9be8d3fa994a026204870f1bae77e6c59e0f83b2f7086c599844cf45e68daff009ea849ce45af150e10e3f3144c66ffe0fc0546b5ae0463f5613498e07e134acf26d7c0f333e9cbb853843ed2368a8cb9673fcbccef3211292622a67420f912f12739c3d08689efdee6a6aff6b685ea25af729bc45e37a81eaa56f49efcb6530e500ba0fae7cbfd75f2e55adcc7d76b1a5163ee5f1505b1a75ef36d6c02ee63835dfc36c5017be9f4e1777210aa588c37aa268fb0549324e4571e22a728f25be2f9e427f7b10e3d99ae95965b6c879a1f3b938abd6bbca18c0d69167dc26ee0d55db40b510e903c5c026f7202b888f1f993577cb9ca520890d2f4235dc195191901c922cbb1b8b5cf56d20c8fd74038cf448019e03fd924ed0365be82143091f11f7f5ec9a7a98970f532551d64c85261b76a1e7383103aefe540a21288af0a97450cb8cd7a727af89abd259c4230914812a83c03fa702b17e812331b18e7369867d400c306713748695d27c98a37dc12f3ef2ca69e38a3a6599d65643c1f99a42fb2175bf6e9795d8d9f310fa25db31361aba5b5504e31e92a58424873205b4f363484957a8fbb9c0321eff9dfcbf4e19216ee5465ef15a33b013799a574f5dcb253a3be7cfb0d42ecef90e463b6145c040cf7507ddcdf662edf043580c92210c7e45950328c659b6999f62a45c756ef489233a0ddec9c5f6bc508d28943a6e5dc9259bbf1c614064d265f20b212b4a0b33012fa07cf41822d3cecebc794777abc16893f78a7e984c9e2257e0f85ecf4e65d1fc9b79daf2fec41e93d1d7da005b931dedaa948cdb0fa5d10c03b89904d7607abb417379acef4558e341007080d025611b4ceea1f01e65c8813e88d17f23ef3d0bf059165e3b0de9cc248225507f5bef21892b63fd980aaba0ebe8fecc67b04cacf7480654564ea7908d7cd09ca7fecce255817cd415454b992fbfe65c89be1b87983214f924563d7424ec63f061cefc2dc913719ea2ee2686e4d2a2efba9ac11c11ad59aff62ec7117b748cb21045aa44d9c0c736c58852e0cb32f4c08d228d3f2fbea94b6e12208954fcf6e3fe3a6e782b41a9dfbc416c597ec8f0b54197f6ab665b8da47f2b8d7d15bffe8375e276f2e4b0bf492cb0640863f3f2e23bdafb0fb20980365919e41c9faf2f41aa9d2143f00c89fb23e13ad622cda5621b30f1b93ca60493a3d145598296db793affb315b4d72cc6ed02383ab1fe8d87e4bf3b911069df55c738f91a171af0f5db7762ee8b5086e156a4371bdfa9f6dbd53062af9ef9601ff65e026dfe29d91fb15c7a6b8b273435a0f658e1dfe504ffa55ab4f44382825a1fce5918b7368983d473a614b2cec88051aa18935e8874eb213401568a9409d91a6566463ed5898edf5ee789586253e5a5e25ee60de4e094d0f19fc373e1506262a729dcc9fcaabb555ec4be902a64934121b5c46a856261d6cc38af016df66b6ea8c36d42e5d484887491d9decac69d469132808ea955fb00145bad089693c8d887cb100b8ad8420407c6ffb924be178da099ce1018fc4c13035844355bcebcccee1e6752e18c113b5c460977f678b1ad17e2e6bc0ad620680f158fd3fe5439eea9b4e9130c2600690883296270956e4e03c760725c25b6532a5c98f8201cb6bec863f079244e9b8d0231e7dd25b1549c6df1d73ae8e2f9f5b6451657c5ffddac078fbc84ebe75fd90a319d0351904ff9cd9aeb3273688da43d95e54cb98ad79a82b70f1d3e9abcaa301d3b3737dafeac6d5153f71641584faaf1e32c14193084e42897fd14afc9f194ff195e8bad5b7b5c70a78c0e62b42e9b4cc79814524a0b8c03e6128d5d1e9e4f0076743635b36ff1cc9135e712fbcdbd1d93dbd626b184f417c923003ac56ecc0a9100ecc666ef71a30bbf8594587c73c3c9be8373c93123baed075db828eaa65b1a81f8f874fa84b36a5d91a9e4136aabfe44b6f124457664277a0b40a3dc83222165afc1584b241a59ce10c586c370422e2643f5d4c16f9eb330d902f6c12f3e3f10ecfcf5aa3df592879f5f694b8a5ec305edea6f97d8ff1feef1d37d086389352d78316c3a85681116fcfd51d797682e42d00df5b2b2bf6a838960ee7975ba04cd32f413f77378cff4cb01151a698b37e3175babaf6e8d030734558d890beab20698ef8bce329758ac61303bd4483ae39df7ea6a283de560bedf1017fd012468b39299e0bf2efd01a6d315b13da87896ff76f6a75b8e1360e30421593c9d956ba4a55ffea15678ae0da100c7715fa6afebd1f8a8076127317481f2338e64cbabc0590b926004fc8408bbf13bd7b7334ee4e45df4f329fb0ff2b7769c2a5a9a7c99c44396ec40a966a68161ade56ec55495e1ceb20c7acfe92278b1d1f25c95be3688570236fd4d3f28babadac667d868f695f70343ec0c24161a6ed74db3a5e31425b7c9ee8c48b32272b69f37397a4eaa83a6c371bc2aae41e14ac9ff756880c2abdd9c52a636fb8b995cf6fba94fea944dd35a16afbcfe16f0db0a13e02faf8e05f13532266256ba32046451ed2ed87541f1ebb0556e4d2da778192a60cc389b021ec0a6019eec44427cbbabd4df66a0c50279baf71be94113e2a868ba1dc24222d28cc6055a631da9937b0738094fc582b667220089e540c6ec77d1b8176ee420d368a0cb49f54ec36b5703aec0a53b92030f79e548e7cf0532425a7af40f3b0ecf8ebc01ed7e94f5c9a173c1d9e6310d8561a89ee83b59ca5a495332eed629a93e7eb9aa36657f62dc76e97fbf98b162b6bd134d260abca439ee3092fc88a1451c9212d65debe3873082684b5bb934e0886067502d8918c3fca0c8a641f79aa6582d3c2adb9f16250df68d4c6585e7c035034a9bf108109f627bd6a7f6f1ca4d1b05fd48f476fbc41497a3e8fa7e2e1c03244ec1f18f26d08a663de1bffd0722ca527d930f4958273d0eed9b0fcdf503aec3b7c69f5af1a6623334146faa9191f7e279c0c0f08eeca9c18139fd6b1e263eec507e9523909dc3fa57ae36ac65c5980d06f8a95ef618d87f12380662fde3d54769757a80afd4a0cf7a7efb6a1128c5a74bb396f18ff0d331db15e2caa43d2b59d0d65d71b405fb04547d4e8f883f6e7956e2752c928171bf36f61d255d011b2fb34b83e9268a7d456138061cfdb30eeda2532319c3eae86a41cc230a7570d5a71d9bf02c143c0fa3f76b9afd4df68d2ece35c2661a6573d88293c86fc0e877ce706bbfb4d562c8e68a83c6873842fbaea092e66862ac2984706ada6298807f8c9d8c83d03c6d9bb3270086e5292ff4c1cb790dc9004b50d08b4f3f846c5fdf55ac23a12e98af885b66623f4d2465093026f3254d5ac52fa57d8237805be1a6d7325b729e5edc90aca429b000b801c111ce5157e27ca3c57f2abdfc750b19e931444eb19a9dc1f31f865258abfd73287bac3bda863e8bfda702ed359fe22489e773fc09dad93d2ce5ac449f8139b3df1bd7aab9fb26eed31db38309e967dd277606d065360bdbce08e9ad34ddfb61035ba8872e5d08ac42de509fe2f09d31a6189f120ff259c76d5643cc6e7db8a0ee59b359b2709c8782e9247bf4ee430c6de2fb2f1973b981490af6250187f53b2501dfb3a3c4a6673750049c176bfe5724d027afa8b3a87cf4e3940050531191c5eda8b522b3d6ccc0bb2bf86714e290771548462c0fee399b7398ded7c5788866fd6995d7c145cdabe670fa2bfe852fdd581b4e8cb342f11845740c4dc9c4bc4847fdfbc5bd309d86fe5be851fe40338e7f2517285a26b1aa7d6dced7cd6bc6746a79e4da51f7443069ab53e424ef5b902ed3ced0c6f70dcd7e341dc7bf86bc98e9a3f2c13ddd013bb343fbfb2f1e5b16b9565f07b265973bfd5645b5f34351a55e58c3de32c1587a663684d5dac59211784f63952ea80f91ddcc5a93426fcc69cd786ec64cdf94fa5df58e48af419427e544fb4a50f2566e1cdf866cc6506f683c668f0f78fb3f2464bcc4b4e39ba6e81590ab7ebbcb7a7b2b5cd73429a35be1623afd936c030bceec55b3adda9c82912a617ebe9742ae2d08fcb3737464d8063ee5bbecb2baea52636bf7d7de4e67c3694b9077a009f2a649da663df19269b7b71087c5efece209254a64b57999df4c7a2480ab62166c8c142b2be1e3c3106100851c5d81161a9e74c8a86e3a190644bb532242a9e2cc40a2e1725c324bbbb5a0e2c72c97fc5435ed6400690ae6300f6df39a95c793421d1d60d97a3e39de505cc5391c1c324fbecda641fa6c1f8fc752a7dcd4a2afae301ef66a96ab8213e8d4bb2d65a686e1ce5f3be2ef3634a017674dea70d422f6fa82ebe8d679829ecd9a4a6dd40c5470c1f9ef227eced5d3c264892386df76030be1e408c37700cee3b3ec16bc87cce3b1ffb1f89751cb66685fd91214d8455e41c88586ebddad2e3aa3239a62de8d00b18f8e86fe17c5b4b9eee7272d37d3b655ffc2ed029becfbbac40e80db20575050057a0c2c524b434ec6eee4cee5e27dcc14e0aa021846eab4ed773fe811e5a91a83346ffec1917db00e86ac41e6d8b8d4f280af04097663bdf3f5429ecf753c54a9fddb5effd4adb4da9d8117ff8b617b136630c7af4832045edc95468f27abecc08d17705f5d26157df4eb39072eb99a49cb66c28c3f07f68390a3ef132d6da87cd7bd1b06d32d277a5614b95941ad456632bb5ba3d1a6541cadf8baca6f8071202b720220164ff1209317029538bdbfa540c07cd731a185198f1ad6867a9f1abf31cd5ddfabf84978f5811a6b4698e7e0d9726e1e3ff9dde7051ae95d6756ed1d0d58d5997151781ac469b414a6a8416d0f656c29a5a5e994a0dc1debfe1e8f9a07ba1ec496e4984e5809d755db0871f15f641baaadf5865d608f3a5bf8bd78ecf6055629b3cb4a0df4d78d5d33c517691049db97c44675969a92c89012ff065dbaf702f48536da9b279092f1e6fbea4d97b63a90c8e56b632d8d5dfb2b9f225fd94eeb7d56345ea25b8616d7bf41b7f0e90869a672378b874e7b365bb55218b3a117769d9bdcae4bdb7bb75bfe3ea7f0bfb57f49e5f99116d9defd60d9c21ad1a8640d51a79cbbad22b6a28e9828c2134a04ba4696bd92176ca539883197f5401c37ec9c2de9595f81f2c6a91616716f1e45fc9ec01bb55b6dfb9c5349aea1c2f23278c3fb01dc6715bd9c4db05a18f2a6e8425b6b903358565013f3dd65f0061280fb7db1f511a66314b2e052da23e2deea77cfb35f407f407412be235d3e1bbc6cb92cc967e7a7922c5d6d3ae943faa8937886d2d0f4e1c73451a3342313ed24cbfdb8aa58dbd604bfb56ef7a97cb12924855d8439461197f53ad446713839ab0e407a4cae8122688db44a1ebc9a50653ea249b07f12502b84598af8d5e25c49daab45fae5f9f2dc003946d70d639b25aa054781a90eb5e76c02154d9d31ba9978312d90f76f2d69f979cdc41f391c9e724d0979af641f2d9163e5a338da760844fd863299f1f92bf46588654e22efeeba9aa0edefc8dc0cd81d216908670edb7f820e13ea642346eefb28569ee61c2fb1c4a18d9af79c46bb86be0828141bee4d3db5b9c3794e276fd89696627c5aeff63812a76b731e7e55b89badb6396667dbe4ab3bd26ae3b19d263e0819339bdecadda416cd571f5a64c3eba624060f6bd7e3b2bdbc77fa837b64d9bcc6f045f7c32392bbca5f52ffca938b114e773fa713cde860a667341a3d4f75e331899d031baae9ded99d6ba4d2ad3bae88bc3d30502a4d77599788ddd28956cf086a6054bcef43776940826eb328dc139111899150951cba0253cbb116cd03cd5e0a5ad2adc10962ebfd420ca643379cd23675641df70ac836da73b077217f15dd24a7fa4a0bac95af7234e0a3f72a38dae890cd27df3d4fcee00a64e40b4c734393eca7f9de6c63a88a9cd4fbe07d61e9b9994c7a9c5a4334140fbf805218d20733fd8f5a4dd4c17dd0ad910688fcd5b8ff38d3769cd6116dee093bf4546a489bd9d417ea8349e6a3fc09ac362e0c6973c5cf57399c2482e371c42b098a614158a5000af9968b8c86a312733580ab2df1680c3649d1ac25149c7fb53156b791e28405e5bffb1c4d8587c8af1d754922f2b1e3cbc96f823c1d7826338c96305cab47db5654eb1b1a0662c7fb473816d1fd3978a33e05806e021b12a10740171daee7a963be0ef803982556a1a33f5b74f46730c21ffcc10ea04acca9b77a26af2a78b3d3e741774d8347f4c8a6f17e19e62fecba669710c58454a01d41caa14a2397805636cf83eb7228461ee952ef3ae0b81c5fe6620798edc7c8829772318628ffc515011c7d2642ac2b0f9cfcc3f83fa8ddf4c675d6efe3090ce3b724676fc5ede2b92db4efbc18f9e6abe809843cb562f2315ec103623409db062ebc39d2fa022c8d86319a70ae3ad26bae7e64b3c8dc635b31f86681f9f2fdd249ab668710bf6d4ca2f896dd61d25de00a4d8ca91f9c31c381e7f3d00197035b29b1a7e647c1ee4e582d6b3b8784f936f6808fdcb27e4f309a0b8fbc5da6d974f820e25b054e49503d4a87cff54a48e0a08a8d8c32423dc556cc2201525dcfefd24cab1a926687d7c8454353afea42abcc57bef773d24e55c7c30c838e0876053be5b8189633b157164c3c608783bb88069896359c1566589dc27982efd8391933c2b8df72d95676ae8e177df193075baf64272029d8201c299a7e7e8f4dd1c0e5fef7736ef6a61e6741d97095d56c5296d4ce6a5ae9d6bc209390a88a806264b5c0ce94f27af0cddd836729635a057b31545bf7cd0e5bee139ede6d244ddf4b6a611e6f3d7417472e7d710c065d602c7ef875fb895219da43477e51b9251bcd63ab4df5ad8df98dfccf01a1555276bb532caf5e3c2d81fb1b8e0374877e443fa59ec9449c4c4c4485e818cf4bd5ecd4bf9fe440b120d84ca8d49e2cbd6843efb65d45ed665a98eaee742f1c9c8533ea6b3a6ef6f25a7358dbe2879f26b7cf2e39b8fc4cfb9986c9fd89a0a1abc95b735e7ce0129898f822fcb01f35b23fd11b224a319ab4ebae66b1570c2a91f38d718949ed8edd72b0ea510141f78b2c168055b38e008cd91403bc873f53cd97703c0f05771d5fcdb67aa72bc75fd5a8eaf38bb190549348c969bc6e773990fc94b9ce81ea6afe5e14680e9bcf63b2feaec5f132e186c69070e97318d400aa150e77c51d4ae923c653e508869cd9c3b66b1a61d949bf77f2b2cbf31c33b61015ee7deadfa68d2c1b91daea681e77f3c2c2a0f13632cc90be3d60c3efa455021fe44343297846647713cd4268d5c785ba8db36557ad0134311df999c672732b4b4a9c6e554205a035ca6f07e98a428808378ef1fe0942376c4ea61129ebdcc4f49b35a6391a9ef5012a6bd58c005d404cb95492ecc06e2322c4f3357e52fc799b7ab6db4ed0a0f164e489097bcf31edf73b8186747b87c30acef85a0b7bbe418b98336a6f9e22c2b8332689d17d780e5634738c675ec9b72b063f2ae91e1cebc6c876e0bc84b6052f2954edc6523fac510e1a8468b8f55e6c65a96107d41a69aa633adcdfb52b34ebe768f6aea3bf3eb2e062a26700e27a0eb7c49b980714b065a7bc54dfff658f1910238bf3f8399429c51607050f8ec0cccafc7a969f11b29d3563526e91bcc893a3bcb4a152a0b35aff061551154e270732248d6298716383a108d8f195cadeaae03ec231ceb9b9e90a7be49a2499b743e42497eb611f4e31dbfc9cf28257847f97b024f83d0c4c72f18c92844ab61bf42c083edc7b437f1b402ffed9fc5ec9a57840dff53162122edc9ec6102a9c1fe79bfdfe608f878ccd110892e5d85f271b9d818784c8be9b8080a8ab56e56043df024747bfcfc04f1525db4b508389c44bd857c5da6936d021f43f00632a74d90ffbf118b6f0ad2943f221f873559da1b7dfb942ad8b211d18ff40ba982109ae36b56b5bcdfa83100eaec8e815f911b36be2a9eb2547c43cabfe75cf2b62d9cf2483326d7d6a50d2edbac1624ea0dea6dcfafcb440ae6495bc082dc21dec206e4bc2680958d8c03fb3457942bff84a2c19f2ade9581f3af74ba10a1c749a13afd3d54f4d783da4433a7332a3c651768a5809d0e1edffe3df4be393e0aca534265190c03dc7f1d969e3f22306c568b006bdb24535b9a3df37ac4f5cf0960d6e2def8ff02d64a8e03d47c12931dfea7e34dabcebeda400c93733a980871571134aff93a13c427a2e83c0d84bb1fa01c9b3ced3a44d2e6ebb6b0bcb290a0fe66199857e5bdaea2bfa7ca92dc7eef40e6b2f5ece7b9157dd0d3c0300ac37eade3a0ec904973be0cce3a7cc902365b78c9af2c35a4bf6bb328a5c559312241103455be0d0910611bdf1a29ff1b95ce443f9aed9d206a7b3c443a964655f69d3d23cfadb6c1bd32c32871b04ac1f1f0b06e426e702991025aa0c41a2962b57b01b1399842b072ae52ce7f31f572771fa34b0cf7c0d3283866cc78d4357702a269ee55a0be0bf076850d0898b8343d63d9b00f3846bf3cc061548de499d114656ec06e50b6844e38d2ef86351e506892a42950ab9be51bf01d3f4962f2d0b2b97686b2bd2d43364cb7fb0c1616e578a825dfe499bd62d505cfb5be23d05d458c74ef59a65906bde8bd8486fc0ab5f696b1058a0c57edbc762f3d772367ec2eaa9c95dc933179bbe7ceeb11f74e649f9aa109382b69e9a654adb51aea77539a082b3aa3e3eca7b66ced6013f8c30f8a7f6256eaf3c0d371ceb4dde0b43e2a239d752fcd51ed4ed0ca6ae298a724847e339e0cde77bc42522300da8851d40407694dbb49181d36d72a4a9ec4dc64ad5b63acc12006e6d46180263fcaf204b067eff5cf8a1fea34271a60b044e14cc3fe8792ada58446aab929c8de47ff4f5053d94f7f1ab29da08905d791990679fe428d8e8d3ded6e0b2a1d4545dedec013e23e83073521993637859156937473036a98429212bfbc67aeee1b8524bedc2c6ec196f5538b3570c07e9af74f86182176353c58a725c4a885829da049b321f3a438f29f80c24dd9d06174ca72becff4a13b296e9b0e099f087bb9e1163d80badfe43bfc3747e520cf8d03c69ceaaf60568f6ca0eef1296f1489c66463a3fbebe1b38886510929b2fcf8573f6f6134fb4318d4ca3e94ef04ea9ce1c5e0a48f8d1ac479d842bdf9a82165bce204ce5b606f66f8564b6f2e9d640cb827da04d1ca6ae71bf4504094f8ac2c358065042649b3c49b4d810fdd67a96362877e4d3e65dfb7fcb28f794f6a26bc4fb6739de323fb8150cb9903f1bd460ab503ab1d00146a6e96a9584574f37402a593b74c6abd2f5eab22a19f711a907ba6e03084a18d3e867e5d143eb7bbf3a0d2b3398c770f96f16be3fb011d12d40fc229d010f55dfc78f599875ffe3191fbad8883dd502d0c278673bbedd4b7e34265512993a672b6987e3f50455544875e41b3071923117c1576982845d97c0a19f63c73224e103154c291fb8cfb78827ee7a4f363ef754ab24adbc58ddd9a9f1894912689d25390887c56aeb7ff34c0892eb1e82cc673a138a02dc99690b1b7a3573b70071b0a7f8ae39bfd6ed9c38a755ed30c8e9183178e529aca6f4f50aa754ab51d229fb0017116f730f7a768fc6968ad161aa1504b4f3df1039e119f5b20e4b0f1f57bac5f75a78dd7020261569f8f322be9b2a6c042c088ccc474fb72465d8c2c3cf6ae589bfa98e18d3fbecb357fed7e9aaf23c37be5a8a352e1dd2b1cb7cbd39bc93cc8bc0016c07bda9855eaca650ca24e8c49e35823eb74f7c51a1817ee7e8caf37e39ffb28b18c2bfad32e5b7ea476d0b06ebc4757bd8d5af4fb541081d5f030066d9aea34f123c6e9aadb42e706e979873872589188e319f355daeaead0bab4d2f2fc2b9f271c5a5c56ce4c96e8407016da09f7e9a1ec66863d956f89a94551c8d412a48337961c36e88dba3f02e1cb56b9ad51e4a941a83f694a14a6f93c8ff62141cd0fe619fa424ef25a3e8de2476042c86dd0361152e1dc779652b5eff3240968039dc0107031e9e71416810bde2ef20e83b3e203f13ba80a2add0704f5bfa2321e98596d6793de96b41948e3b2c536b287c384d9d4d0ea5c5e53d27088dc3da3071990e2082cf002d4355a0ff956926cfc98aa72e97c8ba6d68f8387932292a0d1b1b9f80af758db010d0396c1987ffb0ac16f8bff6207adea25c94510fe3b94ea5cd8e4c11d16a6fbc2a7a9a0e66d4528026114e571eb142cac0362461982bdbf905f41645bfd81e31693432828a58c78aa04e657a904144e55a14c296d72f99e348e4ad36af102ffcfae0a999295e5d90ae7b94e067f3068fdd597df684a9e5ed47340ab2926bb117b13eb55edc85665a1d845b00f52fcf6c22607acdffc80fc1921b8cac87d0e17a2f4d1d38b2d9206905dc5c9e1f853bc97de47ba179a378878602ccc0655b1de5cb2dfad6afcbfdfc6febd005c23bb6ce8b279b478a6aaa6fea99a7b121e26e75031f9fd529a54cc1b4343c29c7cc8da25a0f5bfa2131355e6ebc35b09041b46570034de6d9da944138140e92dc6272dde783be019cbea9e1a21cfac867e222299cb3103aa94f89bddd0571c4c671bceb890e893766d67dd00f97f1d384a22921a524048fa16acbbd6b23be888fa2d93a90eee94db285043d928423c952ba5d61973f00b3cf6f584f83bee17d37d20bbc543d2e486b545f76f8075a44780ae4ad29b805b94415531c3ff322473e3fe85e91b0a255e953cec3eede48e700b613cce593c1f19d633a780f5884c63e10b068baa11b0f52b81c7e315ac83c8defc17d1d36fea8af842ab2df8032668bcc30a0ba92f1c86137f4ef19e5372213f990631724af1985d861bc1c9f8087afe124e093a64e35256a708eb6b713e744b152501eedecb62ac5c34c9ef1b9619cbaf88350edd48ea5a9a6080ff1e15dc936968e280e331ab87cc7477f5412a22aef9b77bff89d901f8a45378a042e04f6d4e50d51b325c8c3091ebe45577a4aa7caee0c299d8ba5bc519dea98fe073f170c4f262e459b162a7fb3f0fadd1c00166a616ea284f47713e7b98c752f410c889af189d6723cb9c951482497388f467d53882da701e8de00f249acec9f16c48653ffb80e21c200618b2c55f9f0b1881aeda7b0d765efac0adb3b4966e31e43e83aae4c35cc0d65064b0c5f813f90eea6d8c093b5077d1ae46cac9c844d3b5054038904486938a01196673cbcadab0f899d5d3b0712abf4f8be2b1209ab5d4c6c065e396d7c39d23e49ff5f9bf60e1148f404faf359ec6466e4c5774dae247077d081786a4fe9c61dacc876195d4589d5c9d8310956b6b89ce6a631f63faa1619704db2d5c3599bcb26f65530c74985f01919550212ee3d13240a6e7aab5028d112dcbcd5b29ed75ea6ce292641927dba9a352f3d5ba29e6863370c4d0bc5024089a37de69b86b03f46cacab96282d1d536710241c3c4884ea5a9b355e5cce1b6aa7965deaa552850e5b7cf55c88f6aeb8f0f7da0013de2fd5b0a7453df7280e075db9bf67c099be8b3d71899137a514036bef21592ea8cf7cddbc5bbfb62f9c095e01d63ab012bc9191fbef6a434d578877175b33b656b701d06f3c3c97e15db30b5e56bf3921829e7ee86e2ffaea2721a64a544cc1d0da1ad27b4abd22409d3303cf0ba7a545c8c315c6dc84fe93d2664f55f11afffc40f46b878d3338aabbba9b61b430c3d864a36a409d9b616c0204bb885ee41bc4928a254da0ecd110a224118fffc24f17beaa50f84eb5b45b01958400c0acfeffe38fb5fb6c6da4fc71631b331bbe0bd633cbf581bc3356804b63102a85e1943b1dc04d85f7046771d0042e78a3be08e9ded88e5047c7f0d6f3295b0b91fdb7a466b0e9dfb50eb9bf40bcd9acad46b5a2a56e24ff7df8c462c353e07c1636ccbe4491b58d3ef8dff22049c1f05daae2a703b6ee7724488e093a60a26f9a0c6d4d4be1d59c63834817b20e498eb023568a4b1dc6ac5c805fbedd41d43091ae4e983c03837222ffb21a335b5fb002024fc4e2c0ad99287f7e602b6e596ed2594429d4d446db0a6db5834eb2c8818dec8156453d65717fbec15fe699d20243e855018a0a7f32b8d145f852736fa78f5d3b75f5ce80e49d87dec28c487d3188eab9b6c6f894e29959b9e30549914e333f9dd364a7622c9e4ccdda74497c2415039865974c035645654f848b1e4100f6f9b5c1b556deb6b52519efea87637003e41daf922d61ff092d1e00a2c9da0f722e458cb7d2ac4ee16990ed55d90b9a20ad621acd2743323f1d6acd54de82ba4cfa889fe087278ed271feeee8bdf7b94ad0420dc372bf4a6119b62d9882e8781f2c8cd37d536893bdd5b722ef19bb0d3c47dab8d0689b0781b6fcf6a4ed596ddc071122b5f2a6ca4a09dd5154c2f7fe6216a11bd9a0748a05c22bc958a56e86fb66df372d38900f6da21984cdb70fea6ba9988411e33c91433b590ad902a588ed0d6aaa9d020263266e8a6a380a91d559239b42f24ca19d39a8319071f35f8a655362ec94d775c4e45268a11fe16c43c7d96755a2287d77c4091d46d77c1a330ff6d021e4919789ac835b38cec679e708f4056a8ec81341a45b7f93399610f737ccbdf8e666d639b1f63fb64b21624734441eaf547589a1af635ccd860dedb853ecc21861cee35fc25348635b52af6f5edeacfc9d6537c2e1843bb718b4b89ea473417ecf42743ae447d0b77d066bd43216f53c257f7adb8c75f30c742ae6f0e1e7f2ad6b84b8deceb1a1d761c4bbd53bc1b0d89291789ab70398ac11e247bfa08899910cff62f9aebef874e07b9d1837c682f78141a687446d25a42e42dbdc4b2715fa5288328c38bc5fd168c6d18027bdf851f8afb32bf52ba195d2fe5ccefb699c625e6a398bf59167f14b181f61839925fc2c3609403bcfa614ea792938d0413d6c0a47c8df45c8c94181d79004494a943e2bd3bb86bfff9538d12af3b2fe1183ff0d18af8d2d7ccc3a6199afa7a3e957d287546ea886468bddd40de885f7d920d15863b42f92f11ff7d561b2cb59328df2033aefb7bedceef05df60d9fa7de54840e3a4118457b8594af20ffd6734bea98bb96c0b6674edda069d0bcbe9a052b6324037fd3ee7b9a537843078cb1abab3fdc8846e7eeb040e69b57e45ce8b66f021dc5a313f5fae063734b76a4a60a1b6a6cf4a119c56e02b78a779dfdc21df8174490a99117286a5dca039d5b77a3e97e16215bd6f8de02e34aed00d9059fd0d10a0b31646c6a8cd10b3daac6d8feabfe23fc8a137553495bc611ba8d890b2cc6303b2b71c676c47edd82dbf3f3e6af03648521bfd04b800229c9d079b110870a0605e2987301c9f6e352e888386c952f39f33f9d8c9419d2123be22a53a20f942d8efff72ba54da745380ada6c008934dcdf52b5ca1e7b074ed228f9f8eae807099799efb078d1111ce7651e274303feb9da25f6853d043065112d50110d7c20e77361f2756d888299a6d678999c4bf75babf91b6809cadf47f2aa69ab152beeb56ff7ca8dc30983a8f1d4d6fec3d162da6111353c5ef3d7d13a83c752cb946c7b238ea3e44eda31d9d0f83c9d5f7ca941bf8d85681a5642997d030df4be9e7a3213edf60123a24b9db0becea9d1ddb701f492ad532d5f3abe8daf73f5cc624871fa0153be80273d955aff183a5eaab6cd3217129809dfe297d22ad1011ce11ecdd97814af558bb2af502758eea58bac79d3cf65afdbf71ce1d1326c8b951fd74d1ea7bc6012788a2ad5cb7b6571cfc6d5a106768ac3d247b937a91f8b8c44e81ab359cca4e6c703bcee20852d76338646ce3d8ab50cbe304c24d8f7143203b8e9db0b89b13a25c5c1d7c9175eeabef40336cdce705819e740372ccf326bd6fdac4c758389e46667201a0cf07ae5c674a85cd7f10b90be59c88cddadf7c41fe5f486d9ecf8faab1d3a4116ded97e1d876720f7a6376ebdbff357c46de3f40840837629c2c83a9056c790913d1cc32bc495b41cbec5aecf41d5892967dd583d91004e3f8d7256448fa334e46b417ae6b0eb32352addfda06ece48dbcfa0afc872fd8eab7ab1165c87f68a49dd354a8705625492acce36e195601bdcbcfc842b3f0af6f9d503a46cf24d73a157d20b1dd8205194c69e2a134347f18172c5fbf022351741015610c5ad5471828fc509e4f4ad841418d56e852d1815e1e0aad37d38dcf41915c81177ca68cd924819da36005cedc24d0545f3a54ece57777811ce1d99d8309a47d3856686ccbbedf208a8ff2b4b163cf75214c1ae2dd838a8fd0b45bc34d90f212000a1480723bf3556e60a42cca47e269bdd02a19cb1269d216d4bf1fbc21bb4fb33776ef3ab6072daa3d32c596f4f79692aa39622d019a3c707abd0b19c3f2ebb7cd2dff087e9b7crootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython312-documentation-3.12.13-150600.3.48.1.src.rpmpython312-doc-devhelppython312-doc-devhelp(aarch-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3ii@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@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- 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