python3-idle-3.6.15-150300.10.72.1<>,Pf7Yp9|WV͇qrcYC%2%[墟AQ;-px3VᛶGϳ( =Jpy\ nr|rA?tlDhTH!5Q?EK`^d9̟mo?.Q59Ɂņ 5 Fx> Zx#o2|vEvY8p 8gp2da(3P9qUxXDRIh&}GU͓) :(a{R5*đ2T:QF>A?d % V48DHa $ d$ $ $ $ $ $$$€¨$8    (78@9ϔ:bBmFmGm$HvH$I~$X Y Zp[t\|$] $^bqcdœe¡f¤l¦u¸$vHwH$x$yhz0@DJCpython3-idle3.6.15150300.10.72.1An Integrated Development Environment for PythonIDLE is a Tkinter based integrated development environment for Python. It features a multi-window text editor with multiple undo, Python colorizing, and many other things, as well as a Python shell window and a debugger.f7Yh04-ch1d4>SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxx86_64 * 8]J((Hx[MN  lf`}OIUj$%x!~((+&(>+V  %P>%PY  wOWw616..7v67v5,[60   ^g  1LL(p( 0g 0eJe:::545 ;2t;?  --.M( `(R R LQ>wL;3<99 L1&,&;747*** ? ? ?e4e];_$lMu Y(, "!4`J/l::8VJ,=#2R:"33+"+  **(("" ",p+,((O(_dadkk  k s F s66 d  a N a\\ee f5W)Wa.e+J.e: : 878k:7:Q)Q$$$ ` &B&&B<_6U<_V r ( r""6N-k 2i8"%tg;w! u dQ#xf R8 vH-P q%E$  g-UemB  3P%wH$ y :Np0NRdCxj \03fV:+' <(%x!: fA큤A큤A큤A큤큤A큤A큤큤A큤AAA큤AA큤AA큤A큤f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6fff6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6ffffffffff6f6f6f6fffffffffff6fff6fffff6ff6f6f6ff6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f7Ua2a2a2a2a2f6f6f6f6f6f6f6f6f6f6f6f6e75df0b77ff61253be457af636d5eb7c55a3ff2b6a733beea844d2b294972ebfd22eea091d1f8f7b11a320cedb5acd822469c0c7ad3629d1f50f6fde6194593dc263472e71b9b557264dd066c5f06ea76d0935d25b19b92e9ac7bc49de82f15763485c7ce263c2c8e1076c52d6044dc008a75794aefd670dd259e75b1288c343251aa57bcef1bc9567a229154ee1370395c03cc241fb814555731338d2b695aac7a0cc61079c6e2df53457e63b413e0389f2c0061eb55e80229da932c8f8dbd61abddb32c2275993c297df1b56ce5d8b34eda35f823dfc27577c2b18c26efcf8531067a78ad392f25631aba1d885f40786cf5f47854577162c9f90ff1f33164c7c98d566a13fd599d1c11a375f387fef69b6c595c4f18c5d88c188a860be0e55bfe9c9b62bf4a4b1cb8419282f78bc98f4cde453a0d6bbfce8a7b76177a1af94ae74eb8119aa88532734a84dd782830f8f5cb4dff01cfa4372b1e4afa35653134ad97f34e64abd93e1e32aff017ff8914e3204a76044f1486bc9fbefa07bfdbb26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb765042963d5f8d5d1259e9874a263a6621ca6dd1d57608faa5f28f7d61f349583e07814a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aa37484901eb40eefa846308e1da3ff6f240ea98f769a2afc3cf4fdba00327ecbef9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65afc11c3d934f8de7d3285f616d0a9129f8113b158157501829c2e452101d067a49a59e2abf1840156e9db8f85a38822fd56ab79a139eb95ec86f1fba1bb87326bfcea17dee8413652327d3d1f7565ac6b32b392a5e424947ede2088e27600346909878665b07bcb76fb3222ea1b4947a553ad0af76fc12b31651d1707980791dca932fd307c4bdc223ae39165f413b2a530b2dbf6323e8a272865da6627535ea3c7d72d323257e4c4c095b611381fd9f336d80fa7ae9104e7b03d14a7df2d9ae9c89a3b513501ebace8e428aea68dce39d0af9f29196e08fc9ea49c99605e79e72fc5037f367472c50ae104f86df35c0d5967968e352d7ea2b944f5909326076bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df893f8058df4fec56eb20ff67ff84c86fd3d9697e2384c5a290ed696f6d3187aa45f8f55514d26791588de02fe685af0ab129174b32ab93efa39faf6140b6795d9de46868b71b5154df51d5f213acc42aaf44a1ce7a4dedfac268c17cf594c66b56b042f707106a3cf28aace428511040b296dbf8a5b27b00310616046312c77ab3e46868b71b5154df51d5f213acc42aaf44a1ce7a4dedfac268c17cf594c66b56510104b175e6e30d2a51b60a94dda27b5d7eddbfb3329d3d494348ddcbd9854c20298c0e3a065f2cf93dbcc7f7767b077facc420e4b7fa35584830250e7b3748510104b175e6e30d2a51b60a94dda27b5d7eddbfb3329d3d494348ddcbd9854cca80b30ff4683c78c22aef8677a3ba4bb775d353f369853d81142ffbcec26fda3599400b6c4f4a5b02765c94bb81999d3f8d1d17c47db2cab0971a80e59c5aeeca80b30ff4683c78c22aef8677a3ba4bb775d353f369853d81142ffbcec26fda0171714c610b83040781b7284a1758a65296063f3a56eea84383e43dc4bb978e0c9d7add213542d0c922e03fe3ad1186fc42bfaf5adb97dc3b23a6af20ab88cf0171714c610b83040781b7284a1758a65296063f3a56eea84383e43dc4bb978eb83ceef43e8ee1480b55819c65b32fc1ee065164dfe53ccf07d53480f7f786397fbf4190f9025149cbabd5c64a4181f1eadb00cc227272c457a373fd80985a59c88f874f301a7fc9206b4ea6acbc822564e28c69369b645854869a0c391570ddca442d285e7eac228cbdbddf65689c7ac2d726d82aeefd3845d37bcad35c0d16bbd38ce09a124ae8bde2cb6bd580bd381ef50e97a48d9eec23eabd3698968580ca442d285e7eac228cbdbddf65689c7ac2d726d82aeefd3845d37bcad35c0d165261505df3afea900ea410616c9a8083e7ffc7be8035405da1167796709d70469fd25d460c9610f3f76673428612309483d7430942ac00a326ef5168006043be5261505df3afea900ea410616c9a8083e7ffc7be8035405da1167796709d7046e9eb1a87415a6e4918b262854ad6fca01b7aaf86a6eb3c29113458f9c9e0d7d2c27e9967c483c7adab2d1933fe45376ced0d3a13774391f827f5a4e47bca6d85e9eb1a87415a6e4918b262854ad6fca01b7aaf86a6eb3c29113458f9c9e0d7d294c5d565ff0e30d2b8a4f1b7fb57695db1aeafff9984c8931baa6387bddf2e56eb4fd9b6b96cabcfa04e944feb142e3e0af26456331bca34a2cae4db2231889994c5d565ff0e30d2b8a4f1b7fb57695db1aeafff9984c8931baa6387bddf2e56cf7cab4b7756e863b4fdc3c10e03504f6455f999285bb4c250dd0395e2a5f6763dfd063946da735385c770a2bcc6f35c3e111694ced4f07bf3527f109aabf642dbef3ddd7c42bf11db1f7d23b6fcc9b5f0e6c85dde225faeb2c5c3f67a3788c4e3321ee55032036656af5f45a74d44a41d115d412b6d5ebd3dcb1a56a2b6d380699ee24abdae0c39c7b2c49d69b68abb1c1d4bf7b79cd2b58914b09acb56db87e3321ee55032036656af5f45a74d44a41d115d412b6d5ebd3dcb1a56a2b6d38050cc3fca1094eec54506423bc0749d2c96bbb6d5744846672b75f7c2bd77da7c3413e8ce46d837ae2193f1ef5d52cfa08cf5491fdff2b6931df2f38b886442ec50cc3fca1094eec54506423bc0749d2c96bbb6d5744846672b75f7c2bd77da7ca58cc75a8ea7f72fb982a2ad7ef4c637df1441c375e6bb56a1f43d214961b3b029abdea245f4f578cc506a2908202e5379a846b47cff289d30127d0be3d263c3a58cc75a8ea7f72fb982a2ad7ef4c637df1441c375e6bb56a1f43d214961b3b06cb82cbc0b94a7edf834bfd14ab283a70a71454cb9190f8ce07a1bfbcedccbd778db25d4ed53bc117be91331e8c37f91510f2656ea0bfc984035d4d1a94a87e66cb82cbc0b94a7edf834bfd14ab283a70a71454cb9190f8ce07a1bfbcedccbd7eeddaa52b9ff1c4b2b35416c16a408653d109d8e07ce123a4264bfc5f30f1d3d2142e352f0bafaf5029d35618ddd15f321c015e43b2027570e6ff92b3b457a17eeddaa52b9ff1c4b2b35416c16a408653d109d8e07ce123a4264bfc5f30f1d3d4ced4af240ce747c36545c2cb292e74ec5d8c83ad8d0935e1d6a10d63fc714e94b1529539263a04246364f0de5f081f55158272b921bbbb0aa107bcb5fd6ef9e9560a67881b60c6948d245531ffc86e800f296f2e434c006033b21d2bc6ef45b31eaa16302763378e21a6449bfced257ae91e23c2e4534d49822e1be29968b6631eaa16302763378e21a6449bfced257ae91e23c2e4534d49822e1be29968b6631eaa16302763378e21a6449bfced257ae91e23c2e4534d49822e1be29968b66e62d473cd47401180d2a299c924806530d9078f336e59e461c0e7cccbd8fe892e62d473cd47401180d2a299c924806530d9078f336e59e461c0e7cccbd8fe892e62d473cd47401180d2a299c924806530d9078f336e59e461c0e7cccbd8fe892276e4e71d4b0e0fdf20cc7c35a7d7328bc6543200a90eb231d9a198848fee89e9a79cf24fdf51b52c0413a0c852ee235aea448d3b9a99c91c7be6c8702a868b0276e4e71d4b0e0fdf20cc7c35a7d7328bc6543200a90eb231d9a198848fee89e710c32261792bcfbb4e534b260ce22df63b6d46a76110fae1135984932ec91d52fbfcbcd00fa355d8970d49622f5546e9675d46a26584da79c48c4dbd1461320710c32261792bcfbb4e534b260ce22df63b6d46a76110fae1135984932ec91d5297f6efe8b41294201f612db1daa53133842448b4ae54c48af2faf6ab250ce3bcc1d3fd4bf407ae764c4f3e778db3a69e3cea7c1949e7376815a31e9e25b137aa8fa93c10def0694c7ee3b8047361d06076c29a2e49121e43fa534191957214e944fff93d9ec1e16c612803527b031a4bab42d84118fbb1352189457790f39d6e3602d821ed3da7dec51132598ca8b6b22ccdcec562489c301ffa447de81b25f7f5ec786542e2f4344189d8aacc1e6e50ed168ca1836d9f06eff31a8580d5e1fd78d21ece3ff94089cf12c1ae6446a1dfe5feece0943e806c9f83f8f0b39c1b5a9a65feff15263b1951e1fd2b7ceb54ba28cc272d8a2de88c8e78d04957966eed78d21ece3ff94089cf12c1ae6446a1dfe5feece0943e806c9f83f8f0b39c1b5cf95a3d571db173d1b4f771cf3d372f1f0b942ec1ea213015e874c3911602c47fc9aad1c4836d6ad9cd00df971139033ad5e9e6f122b47216d21f9d78da3bef4cf95a3d571db173d1b4f771cf3d372f1f0b942ec1ea213015e874c3911602c479ce82b3635f21ac26301456f62ad20237740c54b03a3bdf69b9a04def2dc8bc31c659017bc2ac402bdb9cf45ad701e4d86e2befa71ecf4b6259ca0ec90940dd79ce82b3635f21ac26301456f62ad20237740c54b03a3bdf69b9a04def2dc8bc3d8653070322b92aa51a03fff19b46500f72472d01959d890ac001232fe01b1b80f07783fddebdf7d935fa37dd5b808351313a948840305a35e470277f726c7e9d8653070322b92aa51a03fff19b46500f72472d01959d890ac001232fe01b1b855f7a0bc3cd422a4a19da2e6bf0e2527eadc6d6ae8d9ab545fe4a0fc6617c65905ca8bb66f2d79174a5b0b4fdae3f3ae2d78b48ac013e01b2dc46c5d3644503755f7a0bc3cd422a4a19da2e6bf0e2527eadc6d6ae8d9ab545fe4a0fc6617c6595b8005756dbcc36d8a919cf16fd0b40a5b4459fe2aaa2df900d0f18a3a78432f5b8005756dbcc36d8a919cf16fd0b40a5b4459fe2aaa2df900d0f18a3a78432f5b8005756dbcc36d8a919cf16fd0b40a5b4459fe2aaa2df900d0f18a3a78432f29c0a55cf69db3e0106d1c4d86ac4626e04fa09f91c7600ced9e0da90037558ef69fb9472f4a3d59da25866e29f32ec0872aff65e93045ab6768ec09aa91217d29c0a55cf69db3e0106d1c4d86ac4626e04fa09f91c7600ced9e0da90037558e52c256f37df733bbb3f1d3208062fd65f0b45f6cebf44ecef7484f386c0aaa5d7136a504beec0d67c8eff7ac17a731446d9d62da971d4205391ad1743007df5452c256f37df733bbb3f1d3208062fd65f0b45f6cebf44ecef7484f386c0aaa5d9fcdadd6da789c87c7a796207f0bd52df4ac2a46beca13f851499f25cca2616e9063b5c1ee5eb98ad2fac39bea9c9609b2055919c25e5587456c46027520d91d9fcdadd6da789c87c7a796207f0bd52df4ac2a46beca13f851499f25cca2616ebb24c95e4493f70145ca0cc71ae491a912b4ae6f17fc078840e20d06ba63ced161c7f07889102b6cb4e49d48602dc4568783ce3a51eeb24f374df1d7eea9963d19e7f21d99c8e5e1f80ec17f12762b269ef14752cd36262f261fbe87fca7b0db03f7d2ed47d0edff5e498334081074a014ec974f28f5337c7ac9b0ba4960727f3ec98e1a81eb02e9b9ca6a4b27d3b79a9f5f3d2bef75979f954a991b304a8c1703f7d2ed47d0edff5e498334081074a014ec974f28f5337c7ac9b0ba4960727fe38a8bfc38dea56cf19cf628ea2536919e13526c3fc9a98c9f6aeab056880e016401cc6560a182130c4936a5203809e60bc7a09370b63ef6b805399cdc7b00e6e38a8bfc38dea56cf19cf628ea2536919e13526c3fc9a98c9f6aeab056880e011bb64584b53af7837d2c7928015351da1feca134b28a7995af02e845e6c3e0c93a24c9ad30677ef5bb6f508fae6681d69d62c9d89e5a31f0123ece5800ed83101bb64584b53af7837d2c7928015351da1feca134b28a7995af02e845e6c3e0c95c5d251f73e9b190f587300b69b99038b61004846c205896ee7ec9fa8676994069348faf08405ca0c38c2af2ea2ff03d39be9aaea828e99aabe3a1dcfe14ddf55c5d251f73e9b190f587300b69b99038b61004846c205896ee7ec9fa8676994054f22309956d4b42bce739dd25b581372464eb6f0b9f6715e841cb9251a2f1c654f22309956d4b42bce739dd25b581372464eb6f0b9f6715e841cb9251a2f1c663c52cb7fd59962c2391e4bc28bd33b42a1bb41d92f35a00cb381008f6fee81ff5563931fb5972c576e813d611d426536e7c0caeb439153ba8cb77e767d442a930240eb5079f02b12bd7ca18b2e88ee39973a164e5974ea6b6573ec942fb241a1bc638a463958c28f916df6c0c088dfe366c0657bed643d46ff3e76275907ffc6323c7637d9751bf24f82bd8a4a2ff4cdb2916a315e6eaad246bc8ba0467bd24f3be48ba9c77213ce8fb28be493a6edccb2176a1eff1d4de223f7a20df0b5d0bc67a62fac62bf8682cff47c040a721699a508b4f7ee05cc09a167e86e834055728f2b1cde69245a3bb16dbe3e80d32fe856987d33e1370671446aba302c53b83d2b68e6e6f33d8da76a49a80200e5bed5d76289ddbec9c7ee2f2a289a656615128f2b1cde69245a3bb16dbe3e80d32fe856987d33e1370671446aba302c53b8332b81d564fa0184c9c755eb9e6e18df178e1bd2dbc99ba37b83c1169e4cf7e6760f4167509f75363967efb40a7935388bc8dfd848cb9c78e4162deb6383b754832b81d564fa0184c9c755eb9e6e18df178e1bd2dbc99ba37b83c1169e4cf7e6775a6cb8394261a0c9405724f39b8b1f8e73867d6f04e48fb143e46bb56e8fec7e97770bb75180e90ad48eed229411637762259a1b1248d2800e24ea8ca244b5175a6cb8394261a0c9405724f39b8b1f8e73867d6f04e48fb143e46bb56e8fec7e62032860fcdf3606b1a2cac4a4cd122e50044724a908a5596ff50f05d778922408e4dd6de633ddde23cdc9e804c5e31b7ca7adb21d463d23dee661668d193d92b1ef99a9d86608df9018034fa55ba7423f9a90251b1f487bc4ee90f1bafd74f5e7dd4487a48ea77753212dc9b3fc924d2612f3ad4b05f69affd393e1ebb1d58c6b18c3367bd411f11a9d2a5bc1e5c4188a4d5427d2674cbcdaff0543579b9805e7dd4487a48ea77753212dc9b3fc924d2612f3ad4b05f69affd393e1ebb1d5871a58ae281fddb37075e5dfe0c297f188d6652c79bc791cb29225d15230b17e8a0612f44d9b32c1fe236d6961dc7bb40c2f79c0332100a0e9bab307512292fe6688d85673828d06df1e534cca2f3de31c447024f88a97608e01ffca96ccbaf2e0d4d286cc3d8efaab3131c07678b17d7b393bea02d28f78f51d2944f6692144186edc277a9859b5c21b172b05e999b184ec2a3a029f0234220403b54d5e4d39e0d4d286cc3d8efaab3131c07678b17d7b393bea02d28f78f51d2944f669214419ceb04497a5727b777dab0896bffe1f4a1dbba0566ff58a3fcd5a5770805ac6c9ceb04497a5727b777dab0896bffe1f4a1dbba0566ff58a3fcd5a5770805ac6c9ceb04497a5727b777dab0896bffe1f4a1dbba0566ff58a3fcd5a5770805ac6c0dddcca4c86956078cca051cf7006f48b389d25d525beaeb6ed6bb8a319839090418b2ca70b1360115eecea2ca2639325d49057a48b9c80b06ce74ca9c8dc9b50dddcca4c86956078cca051cf7006f48b389d25d525beaeb6ed6bb8a31983909e859b20a760043a8cb29256c6cda0b8e8a34b27b500561ba1a6823fa491c8fcf15f68964f96f51a87ba0d506c6c30e53e653eb9db375439f6422f09a36ea35e8e859b20a760043a8cb29256c6cda0b8e8a34b27b500561ba1a6823fa491c8fcf1e4a4b449203c6569c02679d5ddb87e3740bf3d214083872804bb3807c83b07ee6e5ca66cb3133a9af591c4eaa631484d3a94eba3c7cce79f835c3c2dc22f1321e4a4b449203c6569c02679d5ddb87e3740bf3d214083872804bb3807c83b07e0df491d12935e5aa1fea004fc5f2ae015f2e41a1c8fd307121865984b229a2e2a13f568cd3421fd296935feb5e8018c9a8773dc4795a977f5d6eb874deea19a919a681b49acabcfbab2b7105c7ca4765bc5d342c62816c8a828e6a60e86a1ddf6356e36be49fe779ca4392d5a652c80b62db36646406fce1e32ba19a75ccf9816356e36be49fe779ca4392d5a652c80b62db36646406fce1e32ba19a75ccf9816356e36be49fe779ca4392d5a652c80b62db36646406fce1e32ba19a75ccf981c46d8358e3d5fa32d24d7d3f6282bd074159768fe7c97e6c2c7d66abc6cde55cc46d8358e3d5fa32d24d7d3f6282bd074159768fe7c97e6c2c7d66abc6cde55cc46d8358e3d5fa32d24d7d3f6282bd074159768fe7c97e6c2c7d66abc6cde55ce3ca2973f9bc21d68121536a5a0ed3c2ca5276538746ae8fde2dc997bd517622e84d3521c612c6d98fb4aea47e543848296d7323f02f85dfb252be968281057ee3ca2973f9bc21d68121536a5a0ed3c2ca5276538746ae8fde2dc997bd517622146aa05ef725c718e1b65f0e8bc4431344c890df8aca817dd778ffe5125b2911538e4c96033cfd5eff73bf5fa63075bb7a1d36e9a603be9d959a71c1c365ab04146aa05ef725c718e1b65f0e8bc4431344c890df8aca817dd778ffe5125b2911f6b7f2268041f7a9159fd5831267b318be026f9f70db06955d74084b5e5f0a1d8627833d042bc43a0591b48268d7e063cddbd24ff94f294c9861569543088386f6b7f2268041f7a9159fd5831267b318be026f9f70db06955d74084b5e5f0a1d72c8cc099a51b322492be9c7b8396b3998115d9df75e4d855bc52c0fcf6491fb72c8cc099a51b322492be9c7b8396b3998115d9df75e4d855bc52c0fcf6491fb72c8cc099a51b322492be9c7b8396b3998115d9df75e4d855bc52c0fcf6491fb09b592c045a057c43fd0666053f1af2bf0a66d2a9fce41dc4694c9a9b2e2acc409b592c045a057c43fd0666053f1af2bf0a66d2a9fce41dc4694c9a9b2e2acc409b592c045a057c43fd0666053f1af2bf0a66d2a9fce41dc4694c9a9b2e2acc4a16c6bea3799b9b592e2d30afa3be1759a3f4703045b938eeb930969103de3f434a58dad8c933ad1a12fcc769d63b33d4acb5fd4e5fb11fff9eb339f0820225da16c6bea3799b9b592e2d30afa3be1759a3f4703045b938eeb930969103de3f4b8afc2cd0383c897da16cd84f61d7a8905ca6645179b6d58f79043bf2f04710be81db63467a0e5b67438668bbe4788cfadd2c4069ce42a96e8385ab386fd8e9eb8afc2cd0383c897da16cd84f61d7a8905ca6645179b6d58f79043bf2f04710be614f387dbdeb17760d9bb4cd50ae3091545f1285b9be0f5ad4b9a8c9eb930e96cabe6c0114a39fc378d91238279ed629b1a1ba65a3a9d792b4dc75b318c39137ffddac56236387d1143a42f07be881b625621be976faf3034b6f932fd79fe53c8eb28ef7addf5a664a7e3addfbfebe29040a8695e1db515828305aacba2ee4e28e8243b6a3f3fe92243ad474f808c12dffe608019627d48bc2e4d7b39185b455d580f5399568b375efe24fb7db6218d9264822dec25adec25c6d9640b854b65020cef86b5c31e96a3439d09252183f3eef21d4a103a4a909538bac3d0f1d4e4de42667bb690368459585dca6bffecaef498217ff74b9266cac74bb8af98e26730caf7524234fb85e08f01beb716e1a34aa233051fc0c3798a6b085aeac5b4663a7a35f40aa5d22c7fa74a889838f5c69631eaad0a9f4b70e6a439999d419630813aa76a1d93176dc33843b9e5bd4e6165886162d91b19e080e9c5adb30c05da1fb2a050c4e7c354b1434063e2a661edfe08852aa8a23a6f1621509832384856e9e38f992c807348eec7ddf175025ec6c149c20a7c2f597c99352caaa03e45577142ec668ee870cc3b09b7ced4a0592a9a2da5f7ccf8a314b1ed906fd7a30248db8add0abc885fc629c6746aca77cd40026b2dac8d7edb93f1fcf6ea9d28334f4e583b43fdf9bd4a731d70e074ee597aba03f3c8c36302bdc7e74650fb1fcc115c2cee869bed6e5169e410c4cebafab702449b8743c6614c0c90c85130b1ec7d1595e2034eaa93c2ca61854038e64197541906b3402c448b176e34a5af9b6b09b51f28a5d49a8a6775fad9bb944b47d65da733908b432b6cd0038ba99e7e3975ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26f690842feab34887e9863ee013180f93949b36cf3ac9643940968ddc1acb443ea7600c9cf97163c89799bff4dce3996f68fa6efccd4f66eb3867b754762f8cceb2fe1e3de8fad3c95d83407a829abcc028b8b02f85e4661c9c934129af1ea98ee037eff39bb5253b3bc2048ba149f43deec680fdb1f7dde421d9514ea3b32ba37b21cc6acb2a24ace550fc1a55852ed068fb2ecd13011ffa3ba5291b7346d0d8e97a030281647351ebbe56d9b72a581af69a9feeca7a8f5d09a9d3179963c0bd81f83b170583a900f3779f0cf8662ccd25479ffd2f063a6c4fde668a198ee015a3977f0d2c6a8e87db2ef7050ea10afb3a88b064bf5ef95439924e4246411433ffa2f718e123fd1c4e536bb4a471978515787ee9fbf7806a92073a787a733a26101d297127132c5e9634499f41ad00e125ea308343a20b278bee9e9225eb5cbfe6188362a0bc7db8b94c3dd313b97c83ad6d10b79451fd2a8a4bd773cd392b228f8efbf4c316bd701b09a72b084a08248e26a346c6a7636a142391a8b3e674828d3571081638216299fbcab7f7672a25fc7ecdcc793562273f13c8c28a311b6cff6799424894ca22b7e339b76ad42ec2cce5c50b6e77f163d45a2960999db0828d3571081638216299fbcab7f7672a25fc7ecdcc793562273f13c8c28a311bc821163baea9d0eb80bcabaed99d7a032aa6fdd9f480b6acd5cd80a1cb3d810cb90bb2207592d51fe508fd462ed0ec023416a542b378fb1b5bea56aef2f08357c821163baea9d0eb80bcabaed99d7a032aa6fdd9f480b6acd5cd80a1cb3d810c26d1df33e96e5167e8e20ac72584da4cfc545342a875ff3997cf038d0bd4b1b5ba5433bb590c288c4756b1efc748e9f7430605caa223de74eca84a80def316fc26d1df33e96e5167e8e20ac72584da4cfc545342a875ff3997cf038d0bd4b1b5efad63418a795c7a88bde28c09b56db8091b734f98afbbbe16247f97673596a7259b8956ad1e4ff663fefb1125dd7cc2b494a562890f9f6901e3288d3a5d0cc2efad63418a795c7a88bde28c09b56db8091b734f98afbbbe16247f97673596a79e82309a2a01d7b8204af0f71b1cf902574d151ad71e0758117a4e09a8fe1661fdea56655c52643c2918855f7e85c0f7ed8b1c3bf26c7d98e927d3a53f630a329e82309a2a01d7b8204af0f71b1cf902574d151ad71e0758117a4e09a8fe1661c928ff0dff4eb652c76d8892be693f38fe7c162006b39e48c35388215fab929bca5450300dc522ca09c8fc0d8a1d2c0a43401795d41b79a0bea2650e6ff96fbfc928ff0dff4eb652c76d8892be693f38fe7c162006b39e48c35388215fab929b768e5c9767d6e2289fab4507439bb6b81630f0224398ae14e3ee305c00e4976f6285be23acda5693f0214fccf40051d117148d0959e81be0b7904f58a96722c4768e5c9767d6e2289fab4507439bb6b81630f0224398ae14e3ee305c00e4976ffcd0acea60ddc4623028e5baa4955b9db481ba953955c884a745d33eb421f4bf36916506117a7a94d41c52e8cc8588056f1abdc8c9869b95a3162df167c69a68fcd0acea60ddc4623028e5baa4955b9db481ba953955c884a745d33eb421f4bf8e1f597975a494c8f501b486c5b7eb7c9892db404ecba59ecd4c103f18471e3532977a87a16f5595e11edb859a4d927aed61bcf927aeef63bb6bc7fc4aba71c18e1f597975a494c8f501b486c5b7eb7c9892db404ecba59ecd4c103f18471e35a586a99364a22ed37422210dd1de0235d6a77f330bdc47d493d9590b10e5187406cd1066d25d4b01a3147986a794adb858c3e28c01c38ee7ae1a52c524d13fda7596e4a5875970b7a71c9b814362bdb2f7cf9e55545a72005f85f1fce253e995deb8f66e7ab596e4d35a9f587349fd03257b81a3124c4ee9500b64fb234e64753714121201c7d7d7b429a99c95a7c32ed66dcc62afab9649a2647c6945bfddd6deb8f66e7ab596e4d35a9f587349fd03257b81a3124c4ee9500b64fb234e64757b151af0cb54e6cc0238dcfd616e0db8f40579c433dc5af60fcb83cc1608ef136437497efdb7c4f03dffc32fa6bbec0faaf9bfbbd5b8f8fe0af04e05c7b73ec57b151af0cb54e6cc0238dcfd616e0db8f40579c433dc5af60fcb83cc1608ef135078095a57ee827196221935cfd279af959c0a3beee858fdbc4b0bfd2f5ad6dfcf94ca7d0b5105bc6ffd70e18af16d9269c3f7f2a5f30ca6b7aaca99fdeb9d0a5078095a57ee827196221935cfd279af959c0a3beee858fdbc4b0bfd2f5ad6dfb976b164646e5c734bbb376c7d062e248f019a2d11c9bcc617e9652be56e2f2fd886b06f30a4a822822d917957c07710986736e761e3ec6bb5e3d53f97d7f771b976b164646e5c734bbb376c7d062e248f019a2d11c9bcc617e9652be56e2f2f752999d4de06e18da5d0824d442519289654495ff0bd85ed243a1614aff35910d74937c4790eab5a05694928a2bd7324bea6eab839a43d331eea1889e39e6107752999d4de06e18da5d0824d442519289654495ff0bd85ed243a1614aff359100761510d9c14cf56e742c8e4f49538b5a36ada5a4506de6845480247097e20a0616cda3a0e71b5ccbb1709820788284702fa2f11162c5283dbc3c9828fcf54680761510d9c14cf56e742c8e4f49538b5a36ada5a4506de6845480247097e20a01fd0992d1501d7d61a0954987eaea714bcaea55a259def486d3a5a5f61f88973d993dd48196b8b1f064faa59d6d05818bf21c8749b22ee1d4292547e78e9d02e1fd0992d1501d7d61a0954987eaea714bcaea55a259def486d3a5a5f61f88973b9dbcaa43d8b3ee6c0b8487a87ab44d175ce61325da9936c4dac473256e538d591bc5392724951e99e0c6198080a00cef2938cec6e8c63080b55459e48b984eeb9dbcaa43d8b3ee6c0b8487a87ab44d175ce61325da9936c4dac473256e538d5b23f58c8ba4151dac74261ffdc1612fff61be4cce475f53bfffba4190dc13e17677da154e125b414c4dc56e1f4bde0dc50a6a037e204af019f90f80e02557104b23f58c8ba4151dac74261ffdc1612fff61be4cce475f53bfffba4190dc13e17fe2deb156b9c254f6f0567f831c7dafb0ba1e488547103493928b1fa3d703edbfc81bdfc20d5e782b8ebf2b56c70d27a64a34df03707e9b09ede37e1cc6cfce2fe2deb156b9c254f6f0567f831c7dafb0ba1e488547103493928b1fa3d703edbb3150c2b6a400bc79f7bd1dd2dc24dbb44a355e9f04550c579f5165247edc2b1e0cd1ecc0da8ce1d0db66038f136be6b7eb23112f105ca834886c2024a97ad53b3150c2b6a400bc79f7bd1dd2dc24dbb44a355e9f04550c579f5165247edc2b18a6a06b7dcbfb83ba87399d6067ede21cd1fab9d2a6b13e5977473a06f23734ec24c9ccae95c6a9649bb5b00707da40f648a1435c054538f4d927b516b5335e68a6a06b7dcbfb83ba87399d6067ede21cd1fab9d2a6b13e5977473a06f23734e2caed248aaf828ed88f2946a80228eb491ffe662db01dca60ae16fa60525f4428f14dc3d1f42e228edc3f50d081cdcc5ccfbbbbfd5bc9c8480813b112eca52582caed248aaf828ed88f2946a80228eb491ffe662db01dca60ae16fa60525f4420c6aae5cf250ea4ec2ebb0f1cb4df838c7401c8ad053c684dc7dbfba85cfce387c0ce0ebafa9a2ced5cbbbcbf2d066da59fb7f595436af6b587bb0fd1af89c3a0c6aae5cf250ea4ec2ebb0f1cb4df838c7401c8ad053c684dc7dbfba85cfce38df26e36d43269dcbdf17d53e68c6bf57312f6dd3237add442e3bb414849e51110908369297e419b52aebbb5b7de2f53d82f7c257a01df9d89b18d2560dbb96f9df26e36d43269dcbdf17d53e68c6bf57312f6dd3237add442e3bb414849e5111de4d337f69d5857a0f43705a656f7229b3081226f8c219b4bd9f36e21f5d49581659e879b45e1e542aaff919f04d8d03d813583d68b9d4a5986fddaa8cf5ea80de4d337f69d5857a0f43705a656f7229b3081226f8c219b4bd9f36e21f5d495821155b1a8eb28c17bfc78a461c11ab38b431fa4ff06a5742ec42d27145240962929895b3e3804a5ba60a7fd93bf6b0b82fbc843f62f42617329284dec36b037821155b1a8eb28c17bfc78a461c11ab38b431fa4ff06a5742ec42d271452409625e06e744f0d70caabd54a584922c59d277fd78e3da96892e3e7d97464a0c7062a31142137571a23e93a08c5909eb371ac4dd60daa68b821a32c356d2d5b86ac65e06e744f0d70caabd54a584922c59d277fd78e3da96892e3e7d97464a0c7062ca6d72b1744c602c339eac764f3749080bcd9577af555a98c2f1c7f6201cb7bbfea0db84d31355075dea9fed3f6442bd8d52e05a71ccadc2bf832e1a2e5bff4dca6d72b1744c602c339eac764f3749080bcd9577af555a98c2f1c7f6201cb7bbdf5322b740aae7f9476230a52b8e8d8bb9e352a1f3948a5afc0225e483fdf12fb250364140f44c7bbd61008891f31cbeb73e46d4ba31b61b2b075917f78ef13fdf5322b740aae7f9476230a52b8e8d8bb9e352a1f3948a5afc0225e483fdf12f42e8309391793a9241ccfe9f19875a70dc0508a176e837b6f7d13f4c3f64d733a76bdada627465cf42bb890ffa108773ce84e965b8e9e25d182dda180b7237a7794e376a49649f54de72a0f1ae748eafec4217dae1ee11bf72b6d8bd980bc170ef9910f2f6807e99c3a3190b03099b6b2656a79d4c251449358d90165b49a525000ae5caf0b606915a5843b3f4d2e7feb697df32b0e8af63919984126c401c68ef9910f2f6807e99c3a3190b03099b6b2656a79d4c251449358d90165b49a525b690198bae8b4ee2e9c526afb0f05bbe53aba4ef1a8958da7f29431fc0c3b559c0ea41e7739d7ebc5638771a2985abbc378d6d9a81f5d87030e2cfd7ed62877bb690198bae8b4ee2e9c526afb0f05bbe53aba4ef1a8958da7f29431fc0c3b55957c6357daa9216613c7de2d741ceb99b21e66393ee21fa9a835d830984cd8ae90ff2cbde24dcfed8a0401d3f60492309894000f0a235f5ee0e27a1165eb5f70157c6357daa9216613c7de2d741ceb99b21e66393ee21fa9a835d830984cd8ae98bb0f7e308784ea3bd960dcb2de4760a8b253b946c43b434f294a03669606ced931c84372ca5b01b04e42df0a1545778bacb74c701997b71bf1c937172dac1ff8bb0f7e308784ea3bd960dcb2de4760a8b253b946c43b434f294a03669606cedcc41b1ce3c6ba988738a6963e7a85ba773a33be3701db9ea8b256f73d61cef78402816c484beabfd9927de57eaf57a6a4fc140d7701d629c2c02d969520fb11bcc41b1ce3c6ba988738a6963e7a85ba773a33be3701db9ea8b256f73d61cef7863d3178cea7bc8e82a101ec3bf1cb5221cc2e935e2ef69a687052002cf150d1a320fad80a8c31b2a3c08d099f362ff16cc1afa94624d9020a5dbcc70196027c563d3178cea7bc8e82a101ec3bf1cb5221cc2e935e2ef69a687052002cf150d1aef97cdca3c7911660a158556b44f27fa53fe0f85d6698d2c1ec217ffbc9e557c4a94a648b9a467df48bb9a4c6164e39c9a504ac2eee2644d71d29624da83e896ef97cdca3c7911660a158556b44f27fa53fe0f85d6698d2c1ec217ffbc9e557c8b5bbab1d60ef195b308b3d963b1fa852aeb9721f7b9111f7f0469b5fcc263d0a1833a221fb2b782503fe55ee7cb36e451b7f269d8a5a3f720570beaa95fba188b5bbab1d60ef195b308b3d963b1fa852aeb9721f7b9111f7f0469b5fcc263d03edcbb56aaf77cd3625f9f3ed82a72e59398d316426a06ae6b7736f754bec6cea22c04c7eb8a32c96592546fba1e7f589e1158541d5d980e17335f7c2f8b85b53edcbb56aaf77cd3625f9f3ed82a72e59398d316426a06ae6b7736f754bec6ce8f7329b8e3dc8a815a62a996a490298f858d6b70a5e5f95eb22fabf598da059af1dc395bea32c51c25927a4892858c587cde8259da38a4fd0dcf0a1aa18da5e98f7329b8e3dc8a815a62a996a490298f858d6b70a5e5f95eb22fabf598da059afaa7ed40f05b3d3d074cb05364e38bf771e38295cd9afc89c0fcd97d0d38c339291691d87cfb862652d7e964f45bf83f25a82b75df0972e91bcd972fe0609664faa7ed40f05b3d3d074cb05364e38bf771e38295cd9afc89c0fcd97d0d38c33901254cd159377daa4c144a2337aee115d635b738d22b5942c3aea62da7593aa11db7ea27ee71cc3ec2c450142b39c9e5f99596e5fa1ef54a079cb69d0c11cccc01254cd159377daa4c144a2337aee115d635b738d22b5942c3aea62da7593aa12aca7861405f3c26427fba7b97e4206634a8a1bf218848409af661def871401144f3ebcd12c075d72d7a4cb1b9f034ff33ccb331e6998a34e78a5d86acb953592aca7861405f3c26427fba7b97e4206634a8a1bf218848409af661def8714011038284e5a968e041f7bae98c7f5db6d22764f8a7cc67a05ca9c22b579c3422d3d8a935027fddf02329fe53986a8122e50e1ac47ec02d44c96a4f06438d490d98038284e5a968e041f7bae98c7f5db6d22764f8a7cc67a05ca9c22b579c3422d302e46d89e1a515025ca0726b490e1c4c4f79640a280cf73225d67ef3e7c2295761427e7777eebe33137a8fe3719c9ef24553b6773fd97e8d8e5593fadfaa08f102e46d89e1a515025ca0726b490e1c4c4f79640a280cf73225d67ef3e7c22957ab673831998249cee9c6d6842151177622500b7d07f988a0d62f25b17eba90ea5346a62672c9b8250cf506deb1842c00ccbc09752d8a237e4300320dc076d273ab673831998249cee9c6d6842151177622500b7d07f988a0d62f25b17eba90ea9326857960da3c7ec05f8b1ab3db75639d14b22019594fd870d742402945400a2c8e4bf2fe4f13828f26222fe08bc29e9211e06e530648d62ff30dcb2e3579ec9326857960da3c7ec05f8b1ab3db75639d14b22019594fd870d742402945400a42e3f03441a0d392adbfa04d789635e9921b036c9123a89a9051a65254e9bb6b8de0dcbc80e20dcad7887ba23cd8c86146f4e6c576c61ebf877422eca22df75f42e3f03441a0d392adbfa04d789635e9921b036c9123a89a9051a65254e9bb6b2706ab067034c5fc6d31c98a0f40c1bde354188a89fae15140c551486d9ce6443adb0d99bbc5041331963bb4acdb56a522b64534ed0ab2ceeea48bf08753435e2706ab067034c5fc6d31c98a0f40c1bde354188a89fae15140c551486d9ce6441c71d914a921b32d8a357cd489e86d2be5edef3494047d5ef07a17538c7a85d2a54c2bf3125f85b2111227c7130181d4b585651b66c0e0bfcf15b813233d74891c71d914a921b32d8a357cd489e86d2be5edef3494047d5ef07a17538c7a85d2442373159cf919a8a3c26b3b980c5a57e89fc6414348da8e95cd0f4db88bda22db4259ab90fbd61cab95992f43c7e38eda6b487dd76bd03864fc90d3eb3a965c442373159cf919a8a3c26b3b980c5a57e89fc6414348da8e95cd0f4db88bda22c1db8e5333c6a5ed65d8522763e9a5a7de12ce12484f57c4b412d037cb1583e53bb221c027bded7ad53db8f0058bbfcf7d1b4cf6f2915389b2f43c28fa8e3fdcc1db8e5333c6a5ed65d8522763e9a5a7de12ce12484f57c4b412d037cb1583e53f6abec7727827e3b3804c2ad511c37a5757a0120813482ebd81820f93b4f905017112301471ac6657c0dccdb17305454398bf061ae0d50abc70b9f1c156df133f6abec7727827e3b3804c2ad511c37a5757a0120813482ebd81820f93b4f9059a6b9abd033ef4a474ffa1f931eb72040ceae257dc4b41270413b085ef17af2a9a6d1bcf7e5bd32cddd84189e9c61f0542b85c7ad39d57eb91c21fc504b12c839a6b9abd033ef4a474ffa1f931eb72040ceae257dc4b41270413b085ef17af2aedb3d1cb04fe3b1a6430493fcb90d843948ea57665f99e8eb56119be853a0f0a302e427589174f08250c0fa64b3d404b57fed5eb3c81706a4ff918de2279b472edb3d1cb04fe3b1a6430493fcb90d843948ea57665f99e8eb56119be853a0f0ae07368dcf81d8c6d6f1a8f1791c448729c3ef6565dbc244627a03b144fe9bbd3e07368dcf81d8c6d6f1a8f1791c448729c3ef6565dbc244627a03b144fe9bbd3e07368dcf81d8c6d6f1a8f1791c448729c3ef6565dbc244627a03b144fe9bbd3ef2c6008ac5101bc091fd8d8830d197ca53665584c78dfe5426abe81301f17a00a1be30a8c26762fe8475bc0f2505486a5543af8af7624499738796d0386ab20ef2c6008ac5101bc091fd8d8830d197ca53665584c78dfe5426abe81301f17a0876760709cac47bb75e23be24fba5244a0111057291382ffca89a26c1424afc0d4d39dae3d900cea7719f3d8c1c8ff746d4924a04b7d05dc3e35472a4de7a0b2876760709cac47bb75e23be24fba5244a0111057291382ffca89a26c1424afc035d51cff126e590530a9c76899dc3e0e2e7a3d8d5719bb8800e4ee78ea392a41d18e080bb681a6d7b480c803498e8d637527edd1b579246dd9d6e724350b640435d51cff126e590530a9c76899dc3e0e2e7a3d8d5719bb8800e4ee78ea392a4122c35a5f6d92e5b51ed6b8f628afc43176c59273339f3acbb92e985e09ebb2433437c567728223ff1a82351059207464c4edf24a545bcf771357d9302b03480022c35a5f6d92e5b51ed6b8f628afc43176c59273339f3acbb92e985e09ebb243e14a14ea6326eb7f5b358d98418ebfedae6148b8e6ad5759859942f9f42b91dfd834ac4c724cdadd9eb782b8970fe33c2ac612d9021526659efbadeca0ea5d47e14a14ea6326eb7f5b358d98418ebfedae6148b8e6ad5759859942f9f42b91df6c9626928213003b3819ede11ab16488de0b6aeab7a87bb29ac5dd04d98832da87af5f553fe109977f01e43fe741bc350a15f3cad3fb5f2e09220744193d391f1e17e29c173171fcd763b2139b6629df2c0ce6792b057db2012edd3e0a49ea7743421286ad234a4240f8d4bc09f67bb58da0bf9d9b07bf93010989ef2c17f2f8cdae01f8da8411c2190dc4efae37e0496503a57445ea8b3d43a9e5fc50d74f7030ab335b5312af5ca57b26945c7297bec89f31e90d70e7c8cb0a2283599ab40f5d2d4ff90ab4bc9ef0903585d2fe7f4272263535af1dac98dd4a7a31b5f1759b78d40b3fbfcc67c431ad234b516d1825b17498a5dfc77ef1957d0fee36d311aa6df5742e1340743cc9932f3876bafe243e3053cd3a5f060935201708181666667462c048c689f82c3ae6b5782a18776762f88055b80ae77a92243b6c0606e004f00aea254728b67ce3b77880b3bff50b4fa66ba25ed71122d3453fa9319370783f4b14a1bc6adb09319e651fbd51cefbba97a2633e548c3c3a13c1a311377970e4e793bae777b06206a3e368053a2c94218cec72b03ff462aa22b09051c2dce20607730edb3911e3c72b8bcb0f11f27cd131cd54caa619c9afbb9f62a7f77c6dd3aa8c8a3bebaa05f55a03bbd904bda7adfdbc7b82443abd2b007e96c4fd35231881dcf94b0a44fe355f2acabfe25d8d67871402bbc19aaab37c6ff955575f1def57a0f52368c104b2a3b3551b3979751168b1ac42b7eafa1c8d5319bc95dc30e35a9f45b223d5c7e7f3bbfd8bc6495b1156c40b0ce3747ade0aed7b41aa23ac22d74368ba175175b9c14315f9d82fd7ddde60ae93d2e5572e9a647de7e869eb559d39df8c1ff38d177943f245b87f5379ee5ea93399fd6b5f7bfa882e6ed8caed3800137d48ffcf86ecb71afe5a24cd9ed381571f23036438ba8a97f502326a001464d2ef94de500cb053cd345164d696f7f84cf38fa522c77327ab04d32982d4cea5fdba68fb9e361541820d44eed003c317f4ef14bb9df3406b8d2c53ef7c73097d2c8187a17ae6a83ab6e2cf935a1309ada7dac041598e77bc618b0fa3e1e39288f4326136cadb4fab81fe31223187136bc3d9bdf65a9d67fd152e50a6e91d152088e94e1faa3df4b900cf2904458bbcc72045dd3d830c317fe2c9d9c1c66319fe7810ed91786b503de80701a291a4f9abe54c9e101c19c0917b709e62f3b8c48f3280ddc7156fd22f58360c617e25c8d145931a9aee74a2fa7c209779c2a2435bb75863215a3ecfdb268f52508ab001d6c52431ccb51595109ba013a4322ae5fde71364b4d201b1b691bfe21a91fe6c0257d6c1ca334b0f7898e8c69238c6a3d836f26771782f53685da5987a1bf57f41159e8a38352131656d07ae3dad883aff74861ca976307358c0ea3487fc783717abd5516059b9c5f88114141e684f24b52dbc02c8e59a971b1666cd0f41cf768c0837e8abe744a7f6a559ef9ede58e39e9bad047053a0dc5f27a31ff163452166c9db4ece043f7c77f985bbafa9e0ab7c528b32bc9b74d659dc4d5323e7b6d2d718d4eada7d0cc73efc350dff6da7d9c5085ff5c64232897f6ee0a09258a41a35f153f47ff0f3b8fa97ec67be9e133b134a46b23cf2c635be3116415fd388e3a1c1581bf1a77d7f7f0aff3a725bed01d8a3a88b85b65322b2256d3d90c746ee6194e0b46afd1b0c7a873ea24716a242e91b093b93210ab422d5c638d7a57feacbdd99357b3b0a90dbf5274570ce229553dd85ecb87d114bad1e615f4f9aa0c0cf01ebb5c2b116638eb78cbe4304517c1fe16da359e01f3cdfdf3f7aead4283e8b8e1107522b72f59d4c4f3ade4c5a90f03398bba5f1d3ebb705df137a81f0cc627dcea2cec72ee6d5610e734a231e2d997f442002389b3dadb47ed8134947c664a32ef637f43afdcbd1b5c1382339ae48e477969cee58822d528ae73bcb689154d92631f97b478006a7944600e510e8f647672359066df3ee2a8bf2fce14fa15037adc10d974719b9c3608cb1e44264a834dc230d397725f398d905d0746321d543c56644e5c89af59fe3fedb61a84ec601c8786daf0564e978c97c0e14095c23f9a08bb64950f9cb541b074b3ac0550b241c99a566f61929515ca97aedf99f73568df3dfe93078ed22cb54892b6c617c8e7122ae9b675af5389f5634b9b88643ad2752509f416aedfa2a81542bfcae1d871416a9bc216ad2ede3d418de48e8a8450f93de08256aa2388948ebc852eff97903ee737a4118785fa3f73759574d39d20591919577d9126cea7ba540483502cfbfce0ac87198cfd6d0ec7e5eec68834042ed949875730a35764c83ca0e9b262b9ad0046cbb0af1101a651fcb88cd1cba38e474b863abbb074b260a0296437194c674ad031297b060e590387062fa29455c2c7131ed9c7eaeb644db7bf504b395504eb46f2ab40b2587b84b971c4cdbb6001eacd1a452fef7db8d7c49ec7c2cfaecb92c5953ab48f1ac131615c7e9815671a743903aaabd4453a7d7f97d98e9ac69099676f38aba5a6cbc607f196bfd7b691554c4e3bbaea46b2c8fcdc5178b2dd77d794938fa52adce719d4948a92ba1a689068cec1fb6888d033e0ed1efc442b3fb93de89fb0988c73f8536fc5099afb761d2b69ec101c239c8c193336f2b6994f5aacca9689f32249db20a8dac36934314b7d5ba391d94169d63c66300aa47014a5c2dfc9bc0d6c3fb234dff4e4b60a6527d4cdfbb8c416f99df447acba7570e479457fec822f02dfbd78096641cbd6b6d997d18e82b8c31a01648a2be05a654a420c7b691d7a0ce7952c84b687d7387b271fcda7a8c956cbd0f58343f2bdbc30aed247a1aef9f2032e540101b46a674456967bf626b0d34a86f5f277f16699b17c3fd176c1b259959ed235bb9bb59d54731203c9c33c2e0e431729ea34280f0b51c476c951da31291f8f646630d56a7da6602a3365808a57c797bcaeb2076b6412093b234620aee37ce8be16100880af85ba6752e3652b2678b7ef122e13c385a135cbbbe8b1d87efeed43ddd3e0be9ddd8aa24b267b61fac42870d0bf5c92b0f2a5fe25ddf95729f6cba8a9ac48c7c0d1c2fdd7a7532586f2ea46be7d55a95c96f5bdffc7869acfea19c33c62a23ef9515d4f2f9e5b93b38b905b59664d1da4cfe90df4316370fd33e3a69f5b6371d1ade46bca444c14bab9284a21fcb75abf82243eb66fad0466b1d737cb51d6b957a8ec2acde3a01fbffc5a256f1b0189ee127902c0022ba8a8660b6b824801612ab1772a04800d886ea4361f9bd3a01148a0d6627692f4ef22f93361cd19e4e279510c45a522ef10ff6650daedef66d754b3202068593d714c7bfe09dcbf9e0525a59faa09b1a2b1de640cd57ac1182488554201e30bc180aa461a708bcdab3efcc019451b46351c61c2468ec9e4e0710e1441867b17a238159e89017ff6bc76b4d42d3e133d9e8809159423616094ef8df925afde07c0920da1882853184948c4a03aeb4dc99d50c363722fdf48c7c995feaf4c73b7b4c978d33747dcbdf14ae5654bfc807b15799c63fa694529bbf957aa2e3d3e66e624810c6ad7e81015f43eb4c41dd7ac5f2d77161f75c9163965d21b2df016c01202c56010e873a7353715e43429f763c89df40f8abd187ced93dc1209703237acc8e0413a9b1ef07775f45c18847d0a3d5987f13edc3287fa8beff020087d2614966840987f4a1e858d8b3051dc7a5afcb2a0f30edd1d05c1084a10bb4d2c563f089cc20fca49582f334d861cbbca4a01c94e81976926a667aa9936ec65cd80b2650d2f0f3434c2ee54f0be91939259add06ef7fd4488b992b184ebc4233ca856f1fcf817d4a0204dd34dc0833d46fa1839c862fafb8830eed0a417f1d8b60d047d8c958f624ea5649483077927067c93c23259048e90348fbdcca2b672271ee2a3759c5b73f34a0bc9b3764f83e3ab79f2182c1e277ef465907f0be250fe49a0897a708735972b6803cac22055ed760a861fce4036c6c8c30e4ae91de1da9ff290f44187d24df84aaca6995a3538fd8e6a126ae3096b743b854108908f25aedb8cd9c067cae60e41482d56af14cb8249cf8e5a96565c24986eb3e32bdd658c238b484e096fefe347488e1a22f9e99667cd0c288e6c9d2d33e969507af34a1634cec335e7c097c5421b441b9d84ae74c37c7da0d10aba5a048b59afe384585e0b38c5cd8d2a1b536c960f92f4724a628d48215c3881abddb32c2275993c297df1b56ce5d8b34eda35f823dfc27577c2b18c26efcf8c7d72d323257e4c4c095b611381fd9f336d80fa7ae9104e7b03d14a7df2d9ae92fc5037f367472c50ae104f86df35c0d5967968e352d7ea2b944f5909326076bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df89ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb7650424a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aaf9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65a4fe845553b7ffbd7696ea3bf437851cbf73df723573d3b35ed7a699f9f4de8a2/etc/idle3.6/config-extensions.def/etc/idle3.6/config-highlight.def/etc/idle3.6/config-keys.def/etc/idle3.6/config-main.defrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-3.6.15-150300.10.72.1.src.rpmapplication()application(idle3.6.desktop)config(python3-idle)metainfo()metainfo(idle3.6.appdata.xml)mimehandler(text/x-python)python3-idlepython3-idlepython3-idle(x86-64)@@@     /usr/bin/python3/usr/bin/python3.6config(python3-idle)python(abi)python3python3-tkrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.6.15-150300.10.72.13.63.6.153.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3fff@fIf@fz@fuk@f:f*Ee؈e4@d@dVA@dRLd>@d@c>@ccv"@ck@c[@c$e@cbb@b@a@a*@a*@aaaayay?@af@a]aLl@aLl@aA@a'@aj@```t`[``@``/@``U_T__@_v@_0@_0@_@_G@___P_P_m_O@_N7_L@_?@_>e_>e_=@_@_______^^g@^>^>^8 @^0"@]f@]+]@]m]y@]v>]8H@]8H@]1]]@\\8\@\E@\C@["@[6@ZZԐ@Zx@Z@Z@Z Z Zz@Zhu@Z`@ZLZ"Z }YYX@Yo@Y@YY@Y@YI@XӸXƉXXqX@Xv@W@Wx@W_W@Vm@VhV*!@VCV }@U@U@U@UU[%UT@UCjU@TeT;mcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comschwab@suse.demcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.deqydwhotmail@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commeissner@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commmachova@suse.commcepl@suse.commcepl@suse.commcalabkova@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comtchvatal@suse.comschwab@suse.demcalabkova@suse.commcalabkova@suse.commcalabkova@suse.commcepl@suse.commcalabkova@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.compsimons@suse.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.netjmatejek@suse.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comjmatejek@suse.com- Add CVE-2024-6232-ReDOS-backtrack-tarfile.patch prevent ReDos via excessive backtracking while parsing header values (bsc#1230227, CVE-2024-6232).- Add CVE-2024-5642-switch-off-NPN.patch switching off the NPN support eliminating bsc#1227233 (CVE-2024-5642).- Add CVE-2024-6923-email-hdr-inject.patch to prevent email header injection due to unquoted newlines (bsc#1228780, CVE-2024-6923). - Add CVE-2024-7592-quad-complex-cookies.patch fixing quadratic complexity in parsing cookies with backslashes (bsc#1229596, CVE-2024-7592) - %{profileopt} variable is set according to the variable %{do_profiling} (bsc#1227999)- Remove %suse_update_desktop_file macro as it is not useful any more.- Stop using %%defattr, it seems to be breaking proper executable attributes on /usr/bin/ scripts (bsc#1227378).- Add CVE-2024-4032-private-IP-addrs.patch to fix bsc#1226448 (CVE-2024-4032) rearranging definition of private v global IP addresses.- Add CVE-2024-0397-memrace_ssl.SSLContext_cert_store.patch fixing bsc#1226447 (CVE-2024-0397) by removing memory race condition in ssl.SSLContext certificate store methods.- Add bpo38361-syslog-no-slash-ident.patch (bsc#1222109, gh#python/cpython!16557) fixes syslog making default "ident" from sys.argv[0]. - Update CVE-2023-52425-libexpat-2.6.0-backport.patch so that it uses features sniffing, not just comparing version number (bsc#1220664, bsc#1219559, bsc#1221563, bsc#1222075). - Remove support-expat-CVE-2022-25236-patched.patch, which was the previous name of this patch. - Add CVE-2023-52425-remove-reparse_deferral-tests.patch skipping failing tests. - Refresh patches: - CVE-2023-27043-email-parsing-errors.patch - fix_configure_rst.patch - skip_if_buildbot-extend.patch- bsc#1221854 (CVE-2024-0450) Add CVE-2024-0450-zipfile-avoid-quoted-overlap-zipbomb.patch detecting the vulnerability of the "quoted-overlap" zipbomb (from gh#python/cpython!110016). - Add bh42369-thread-safety-zipfile-SharedFile.patch (from gh#python/cpython!26974) required by the previous patch. - Add expat-260-test_xml_etree-reparse-deferral.patch to make the interpreter work with patched libexpat in our distros. - Move all patches from locally sourced to the branch opensuse-3.6 branch at GitHub repo, and move all metadata to commits themselves (readable in the headers of each patch). - Add bpo-41675-modernize-siginterrupt.patch to make Python build cleanly even on more recent SPs of SLE-15 (gh#python/cpython#85841). - Remove patches: - bpo36263-Fix_hashlib_scrypt.patch - fix against bug in OpenSSL fixed in 1.1.1c (gh#openssl/openssl!8483), so this patch is redundant on all SUSE-supported distros - python-3.3.0b1-test-posix_fadvise.patch - protection against the kernel issues which has been fixed in gh#torvalds/linux@3d3727cdb07f, which has been included in all our kernels more recent than SLE-11. - python-3.3.3-skip-distutils-test_sysconfig_module.patch - skips a test, which should be relevant only for testing on Mac OS X systems with universal builds. I have no valid record, that this test would be ever problematic on Linux. - bpo-36576-skip_tests_for_OpenSSL-111.patch, which was included already in Python 3.5.- (bsc#1219666, CVE-2023-6597) Add CVE-2023-6597-TempDir-cleaning-symlink.patch (patch from gh#python/cpython!99930) fixing symlink bug in cleanup of tempfile.TemporaryDirectory. - Merge together bpo-36576-skip_tests_for_OpenSSL-111.patch into skip_SSL_tests.patch, and make them include all conditionals.- Refresh CVE-2023-27043-email-parsing-errors.patch to gh#python/cpython!111116, fixing bsc#1210638 (CVE-2023-27043).- Add CVE-2023-40217-avoid-ssl-pre-close.patch fixing gh#python/cpython#108310, backport from upstream patch gh#python/cpython#108315 (bsc#1214692, CVE-2023-40217)- Add 99366-patch.dict-can-decorate-async.patch fixing gh#python/cpython#98086 (backport from Python 3.10 patch in gh#python/cpython!99366), fixing bsc#1211158.- Add CVE-2007-4559-filter-tarfile_extractall.patch to fix CVE-2007-4559 (bsc#1203750) by adding the filter for tarfile.extractall (PEP 706).- Use python3 modules to build the documentation.- Add bpo-44434-libgcc_s-for-pthread_cancel.patch which eliminates unnecessary and dangerous calls to PyThread_exit_thread() (bsc#1203355).- Add CVE-2023-24329-blank-URL-bypass.patch (CVE-2023-24329, bsc#1208471) blocklists bypass via the urllib.parse component when supplying a URL that starts with blank characters- Add bpo27321-email-no-replace-header.patch to stop email.generator.py from replacing a non-existent header (bsc#1208443, gh#python/cpython#71508).- Add bsc1188607-pythreadstate_clear-decref.patch to fix crash in the garbage collection (bsc#1188607).- Add CVE-2022-45061-DoS-by-IDNA-decode.patch to avoid CVE-2022-45061 (bsc#1205244) allowing DoS by IDNA decoding extremely long domain names.- Add CVE-2022-37454-sha3-buffer-overflow.patch to fix bsc#1204577 (CVE-2022-37454, gh#python/cpython#98517) buffer overflow in hashlib.sha3_* implementations (originally from the XKCP library).- Add CVE-2020-10735-DoS-no-limit-int-size.patch to fix CVE-2020-10735 (bsc#1203125) to limit amount of digits converting text to int and vice vera (potential for DoS). Originally by Victor Stinner of Red Hat.- Add patch CVE-2021-28861-double-slash-path.patch: * http.server: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //. (bsc#1202624, CVE-2021-28861)- Add CVE-2015-20107-mailcap-unsafe-filenames.patch to avoid CVE-2015-20107 (bsc#1198511, gh#python/cpython#68966), the command injection in the mailcap module. - Rename support-expat-245.patch to support-expat-CVE-2022-25236-patched.patch to unify the patch with other packages. - Add bpo-46623-skip-zlib-s390x.patch skipping two failing tests on s390x.- Update bundled pip wheel to the latest SLE version patched against bsc#1186819 (CVE-2021-3572).- Add patch support-expat-245.patch: * Support Expat >= 2.4.5- Rename 22198.patch into more descriptive remove-sphinx40-warning.patch.- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use OpenSSL 1.1 on platforms which don't have it.- Remove shebangs from from python-base libraries in _libdir (bsc#1193179, bsc#1192249). - Readjust patches: - bpo-31046_ensurepip_honours_prefix.patch - decimal.patch - python-3.3.0b1-fix_date_time_compiler.patch- build against openssl 1.1 as it is incompatible with openssl 3.0+ (bsc#1190566)- 0001-allow-for-reproducible-builds-of-python-packages.patch: ignore permission error when changing the mtime of the source file in presence of SOURCE_DATE_EPOCH- The previous construct works only on the current Factory, not in SLE.- BuildRequire rpm-build-python: The provider to inject python(abi) has been moved there. rpm-build pulls rpm-build-python automatically in when building anything against python3-base, but this implies that the initial build of python3-base does not trigger the automatic installation.- Due to conflicting demands of bsc#1183858 and platforms where Python 3.6 is only in interpreter+pip set we have to make complicated ugly construct about Sphinx BR.- Make python36 primary interpreter on SLE-15- Make build working even on older SLEs.- Update to 3.6.15: - bpo-43124: Made the internal putcmd function in smtplib sanitize input for presence of \r and \n characters to avoid (unlikely) command injection. Library - bpo-45001: Made email date parsing more robust against malformed input, namely a whitespace-only Date: header. Patch by Wouter Bolsterlee. Tests - bpo-38965: Fix test_faulthandler on GCC 10. Use the “volatile” keyword in faulthandler._stack_overflow() to prevent tail call optimization on any compiler, rather than relying on compiler specific pragma. - bpo-40791: Make compare_digest more constant-time (bsc#1214691, CVE-2022-48566). - Remove upstreamed patches: - faulthandler_stack_overflow_on_GCC10.patch- test_faulthandler is still problematic under qemu linux-user emulation, disable it there- Update to 3.6.14: * Security - bpo-44022 (bsc#1189241, CVE-2021-3737): mod:http.client now avoids infinitely reading potential HTTP headers after a 100 Continue status response from the server. - bpo-43882: The presence of newline or tab characters in parts of a URL could allow some forms of attacks. Following the controlling specification for URLs defined by WHATWG urllib.parse() now removes ASCII newlines and tabs from URLs, preventing such attacks. - bpo-42988 (CVE-2021-3426, bsc#1183374): Remove the getfile feature of the pydoc module which could be abused to read arbitrary files on the disk (directory traversal vulnerability). Moreover, even source code of Python modules can contain sensitive data like passwords. Vulnerability reported by David Schwörer. - bpo-43285: ftplib no longer trusts the IP address value returned from the server in response to the PASV command by default. This prevents a malicious FTP server from using the response to probe IPv4 address and port combinations on the client network. Code that requires the former vulnerable behavior may set a trust_server_pasv_ipv4_address attribute on their ftplib.FTP instances to True to re-enable it. - bpo-43075 (CVE-2021-3733, bsc#1189287): Fix Regular Expression Denial of Service (ReDoS) vulnerability in urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server. - Upstreamed patches were removed: - CVE-2021-3426-inf-disclosure-pydoc-getfile.patch - CVE-2021-3733-ReDoS-urllib-AbstractBasicAuthHandler.patch - Refreshed patches: - python3-sorted_tar.patch - riscv64-ctypes.patch- Rebuild to get new headers, avoid building in support for stropts.h (bsc#1187338).- Use versioned python-Sphinx to avoid dependency on other version of Python (bsc#1183858).- Modify Lib/ensurepip/__init__.py to contain the same version numbers as are in reality the ones in the bundled wheels (bsc#1187668).- add 22198.patch to build with Sphinx 4- Stop providing "python" symbol (bsc#1185588), which means python2 currently.- Make sure to close the import_failed.map file after the exception has been raised in order to avoid ResourceWarnings when the failing import is part of a try...except block.- Add CVE-2021-3426-inf-disclosure-pydoc-getfile.patch to remove getfile feature from pydoc, which is a security nightmare (among other things, CVE-2021-3426, allows disclosure of any file on the system; bsc#1183374, bpo#42988).Update to 3.6.13, final release of 3.6 branch: * Security - bpo#42967 (bsc#1182379, CVE-2021-23336): Fix web cache poisoning vulnerability by defaulting the query args separator to &, and allowing the user to choose a custom separator. - bpo#42938 (bsc#1181126, CVE-2021-3177): Avoid static buffers when computing the repr of ctypes.c_double and ctypes.c_longdouble values. - bpo#42103: Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format. - bpo#42051: The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities. This should not affect users as entity declarations are not used in regular plist files. - bpo#40791: Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely. * Core and Builtins - bpo#35560: Fix an assertion error in format() in debug build for floating point formatting with “n” format, zero padding and small width. Release build is not impacted. Patch by Karthikeyan Singaravelan. * Library - bpo#42103: InvalidFileException and RecursionError are now the only errors caused by loading malformed binary Plist file (previously ValueError and TypeError could be raised in some specific cases). * Tests - bpo#42794: Update test_nntplib to use offical group name of news.aioe.org for testing. Patch by Dong-hee Na. - bpo#41944: Tests for CJK codecs no longer call eval() on content received via HTTP. - Patches removed, because they were included in the upstream tarball: - CVE-2020-27619-no-eval-http-content.patch - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch- Add CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch fixing bsc#1181126 (CVE-2021-3177) buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution.- Provide the newest setuptools wheel (bsc#1176262, CVE-2019-20916) in their correct form (bsc#1180686).- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- readd --with-fpectl (bsc#1180377)- Adjust sphinx-update-removed-function.patch- (bsc#1179630) Update sphinx-update-removed-function.patch to work with all versions of Sphinx (not binding the Python documentation build to the latest verison of Sphinx). Updated version mentioned on gh#python/cpython#13236.- Add CVE-2020-27619-no-eval-http-content.patch fixing CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support calls eval() on content retrieved via HTTP.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function (gh#python/cpython#13236). As a consequence, no longer pin Sphinx version.- Pin Sphinx version to fix doc subpackage- Change setuptools and pip version numbers according to new wheels (bsc#1179756). - Add ignore_pip_deprec_warn.patch to switch of persistently failing test.- Replace bundled wheels for pip and setuptools with the updated ones (bsc#1176262 CVE-2019-20916).- Handful of changes to make python36 compatible with SLE15 and SLE12 (jsc#ECO-2799, jsc#SLE-13738) - Rebase bpo23395-PyErr_SetInterrupt-signal.patch- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Fix installing .desktop file- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Add faulthandler_stack_overflow_on_GCC10.patch to make build working even with GCC10 (bpo#38965).- Just cleanup and reordering items to synchronize with python38- Format with spec-cleaner- riscv64-support.patch: bpo-33377: add triplets for mips-r6 and riscv (#6655) - riscv64-ctypes.patch: bpo-35847: RISC-V needs CTYPES_PASS_BY_REF_HACK (GH-11694) - Update list of tests to exclude under qemu linux-user- Update the python keyring - Correct libpython name- Drop patches which are not mentioned in spec: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * F00102-lib64.patch * F00251-change-user-install-location.patch * OBS_dev-shm.patch * SUSE-FEDORA-multilib.patch * bpo-31046_ensurepip_honours_prefix.patch * bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * bpo36302-sort-module-sources.patch * bpo40784-Fix-sqlite3-deterministic-test.patch * bsc1167501-invalid-alignment.patch * python3-imp-returntype.patch - Working around missing python-packaging dependency in python-Sphinx (bsc#1174571) is not necessary anymore.- Update to 3.6.12 (bsc#1179193) * Ensure python3.dll is loaded from correct locations when Python is embedded * The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address). * Prevent http header injection by rejecting control characters in http.client.putrequest(…). * Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. * Avoid infinite loop when reading specially crafted TAR files using the tarfile module - Drop merged fixtures: * CVE-2020-14422-ipaddress-hash-collision.patch * CVE-2019-20907_tarfile-inf-loop.patch * recursion.tar - This release also fixes CVE-2020-26116 (bsc#1177211) and CVE-2019-20907 (bsc#1174091).- Add CVE-2019-20907_tarfile-inf-loop.patch fixing bsc#1174091 (CVE-2019-20907, bpo#39017) avoiding possible infinite loop in specifically crafted tarball. Add recursion.tar as a testing tarball for the patch.- Make library names internally consistent- Disable profile optimalizations as they deadlock in test_faulthandler- Disable lto as it causes mess and works with 3.7 onwards only- Sync the test disablements from the python3 in sle15- Update to 3.6.11: - bpo-39073: Disallow CR or LF in email.headerregistry. Address arguments to guard against header injection attacks. - bpo-38576 (bsc#1155094): Disallow control characters in hostnames in http.client, addressing CVE-2019-18348. Such potentially malicious header injection URLs now cause a InvalidURL to be raised. - bpo-39503: CVE-2020-8492: The AbstractBasicAuthHandler class of the urllib.request module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager. - bpo-39401: Avoid unsafe load of api-ms-win-core-path-l1-1-0.dll at startup on Windows 7. - Remove merged patch CVE-2020-8492-urllib-ReDoS.patch, CRLF_injection_via_host_part.patch, and CVE-2019-18348-CRLF_injection_via_host_part.patch.- Fix minor issues found in the staging.- Do not set ourselves as a primary interpreter- Add CVE-2020-14422-ipaddress-hash-collision.patch fixing CVE-2020-14422 (bsc#1173274, bpo#41004), where hash collisions in IPv4Interface and IPv6Interface could lead to DOS.- Change name of idle3 icons to idle3.png to avoid collision with Python 2 version (bsc#1165894).- Add CVE-2019-9674-zip-bomb.patch to improve documentation warning about dangers of zip-bombs and other security problems with zipfile library. (bsc#1162825 CVE-2019-9674) - Add CVE-2020-8492-urllib-ReDoS.patch fixing the security bug "Python urrlib allowed an HTTP server to conduct Regular Expression Denial of Service (ReDoS)" (bsc#1162367)- Add Requires: libpython%{so_version} == %{version}-%{release} to python3-base to keep both packages always synchronized (bsc#1162224).- Reame idle icons to idle3 in order to not conflict with python2 variant of the package bsc#1165894 * renamed the icons * renamed icon load in desktop file- Add pep538_coerce_legacy_c_locale.patch to coerce locale to C.UTF-8 always (bsc#1162423).- Update to 3.6.10 (still in line with jsc#SLE-9426, jsc#SLE-9427, bsc#1159035): - Security: - bpo-38945: Newline characters have been escaped when performing uu encoding to prevent them from overflowing into to content section of the encoded file. This prevents malicious or accidental modification of data during the decoding process. - bpo-37228: Due to significant security concerns, the reuse_address parameter of asyncio.loop.create_datagram_endpoint() is no longer supported. This is because of the behavior of SO_REUSEADDR in UDP. For more details, see the documentation for loop.create_datagram_endpoint(). (Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in bpo-37228.) - bpo-38804: Fixes a ReDoS vulnerability in http.cookiejar. Patch by Ben Caller. - bpo-38243: Escape the server title of xmlrpc.server.DocXMLRPCServer when rendering the document page as HTML. (Contributed by Dong-hee Na in bpo-38243.) - bpo-38174: Update vendorized expat library version to 2.2.8, which resolves CVE-2019-15903. - bpo-37461: Fix an infinite loop when parsing specially crafted email headers. Patch by Abhilash Raj. - bpo-34155: Fix parsing of invalid email addresses with more than one @ (e.g. a@b@c.com.) to not return the part before 2nd @ as valid email address. Patch by maxking & jpic. - Library: - bpo-38216: Allow the rare code that wants to send invalid http requests from the http.client library a way to do so. The fixes for bpo-30458 led to breakage for some projects that were relying on this ability to test their own behavior in the face of bad requests. - bpo-36564: Fix infinite loop in email header folding logic that would be triggered when an email policy’s max_line_length is not long enough to include the required markup and any values in the message. Patch by Paul Ganssle - Remove patches included in the upstream tarball: - CVE-2019-16935-xmlrpc-doc-server_title.patch (and also bpo37614-race_test_docxmlrpc_srv_setup.patch, which was resolving bsc#1174701). - CVE-2019-16056-email-parse-addr.patch - Move idle subpackage build from python3-base to python3 (bsc#1159622). appstream-glib required for packaging introduces considerable extra dependencies and a build loop via rust/librsvg. - Correct installation of idle IDE icons: + idle.png is not the target directory + non-GNOME-specific icons belong into icons/hicolor - Add required Name key to idle3 desktop file- Unify all Python 3.6* SLE packages into one (jsc#SLE-9426, jsc#SLE-9427, bsc#1159035) - Patches which were already included upstream: - CVE-2018-1061-DOS-via-regexp-difflib.patch - CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch- Add CVE-2019-16935-xmlrpc-doc-server_title.patch fixing bsc#1153238 (aka CVE-2019-16935) fixing a reflected XSS in python/Lib/DocXMLRPCServer.py- Add bpo-36576-skip_tests_for_OpenSSL-111.patch (originally from bpo#36576) skipping tests failing with OpenSSL 1.1.1. Fixes bsc#1149792 - Add bpo36263-Fix_hashlib_scrypt.patch which works around bsc#1151490- Add CVE-2019-16056-email-parse-addr.patch fixing the email module wrongly parses email addresses [bsc#1149955, bnc#1149955, CVE-2019-16056]- jsc#PM-1350 bsc#1149121 Update python3 to the last version of the 3.6 line. This is just a bugfix release with no changes in functionality. - The following patches were included in the upstream release as so they can be removed in the package: - CVE-2018-20852-cookie-domain-check.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-10160-netloc-port-regression.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - CVE-2019-9947-no-ctrl-char-http.patch - Patch bpo23395-PyErr_SetInterrupt-signal.patch has been reapplied on the upstream base without changing any functionality. - Add patch aarch64-prolong-timeout.patch to fix failing test_utime_current_old test.- FAKE RECORD FROM SLE-12 CHANNEL Apply "CVE-2018-1000802-shutil_use_subprocess_no_spawn.patch" which converts shutil._call_external_zip to use subprocess rather than distutils.spawn. [bsc#1109663, CVE-2018-1000802]- FAKE RECORD FROM SLE-12 CHANNEL bsc#1109847: add CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch fixing bpo#34623.- boo#1141853 (CVE-2018-20852) add CVE-2018-20852-cookie-domain-check.patch fixing http.cookiejar.DefaultPolicy.domain_return_ok which did not correctly validate the domain: it could be tricked into sending cookies to the wrong server.- bsc#1138459: add CVE-2019-10160-netloc-port-regression.patch which fixes regression introduced by the previous patch. (CVE-2019-10160) Upstream gh#python/cpython#13812- FAKE RECORD FROM SLE-12 CHANNEL bsc#1137942: Avoid duplicate files with python3* packages (https://fate.suse.com/327309)- bsc#1094814: Add bpo23395-PyErr_SetInterrupt-signal.patch to handle situation when the SIGINT signal is ignored or not handled- Update to 3.6.8: - bugfixes only - removed patches (subsumed in the upstream tarball): - CVE-2018-20406-pickle_LONG_BINPUT.patch - refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - Python-3.0b1-record-rpm.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.3.3-skip-distutils-test_sysconfig_module.patch - python-3.6.0-multilib-new.patch - python3-sorted_tar.patch - subprocess-raise-timeout.patch - switch off LTO and PGO optimization (bsc#1133452) - bsc#1130840 (CVE-2019-9947): add CVE-2019-9947-no-ctrl-char-http.patch Address the issue by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause a ValueError to be raised.- bsc#1129346: add CVE-2019-9636-urlsplit-NFKC-norm.patch Characters in the netloc attribute that decompose under NFKC normalization (as used by the IDNA encoding) into any of ``/``, ``?``, ``#``, ``@``, or ``:`` will raise a ValueError. If the URL is decomposed before parsing, or is not a Unicode string, no error will be raised. (CVE-2019-9636) Upstream gh#python/cpython#12224- bsc#1120644 add CVE-2018-20406-pickle_LONG_BINPUT.patch fixing bpo#34656 Modules/_pickle.c in Python before 3.7.1 has an integer overflow via a large LONG_BINPUT value that is mishandled during a "resize to twice the size" attempt. This issue might cause memory exhaustion, but is only relevant if the pickle format is used for serializing tens or hundreds of gigabytes of data.- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746. An exploitable denial-of-service vulnerability exists in the X509 certificate parser of Python.org Python 2.7.11 / 3.7.2. A specially crafted X509 certificate can cause a NULL pointer dereference, resulting in a denial of service. An attacker can initiate or accept TLS connections using crafted certificates to trigger this vulnerability.- Add -fwrapv to OPTS, which is default for python3 anyway See for example https://github.com/zopefoundation/persistent/issues/86 for bugs which are caused by avoiding it. (bsc#1107030)- Apply "CVE-2018-1061-DOS-via-regexp-difflib.patch" to prevent low-grade poplib REDOS (CVE-2018-1060) and to prevent difflib REDOS (CVE-2018-1061). Prior to this patch mail server's timestamp was susceptible to catastrophic backtracking on long evil response from the server. Also, it was susceptible to catastrophic backtracking, which was a potential DOS vector. [bsc#1088004 and bsc#1088009, CVE-2018-1061 and CVE-2018-1060]- As we run in main python package do not generate the pre_checkin from both now- Move the tests from base to generic package wrt bsc#1088573 * We still fail the whole distro if python3 is not build * The other archs than x86_64 took couple of hours to unblock build of other software, this way we work around the issue - Some tests are still run in -base for the LTO tweaking, but at least it is not run twice- update to 3.6.5 * bugfix release * see Misc/NEWS for details - drop ctypes-pass-by-value.patch - drop fix-localeconv-encoding-for-LC_NUMERIC.patch - refresh python-3.6.0-multilib-new.patch- Apply "python-3.6-CVE-2017-18207.patch" to add a check to Lib/wave.py that verifies that at least one channel is provided. Prior to this check, attackers could cause a denial of service (divide-by-zero error and application crash) via a crafted wav format audio file. [bsc#1083507, CVE-2017-18207]- Created %so_major and %so_minor macros - Put Tools/gdb/libpython.py script into proper place and ship it with devel subpackage.- ctypes-pass-by-value.patch: Fix pass by value for structs on aarch64- Add python3-sorted_tar.patch (boo#1081750, bsc#1086001)- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- move XML modules and python3-xml provide to python3-base (fixes bsc#1077230) - move ensurepip to base- Add skip_random_failing_tests.patch only for PowerPC- update to 3.6.4 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed python3-ncurses-6.0-accessors.patch - drop PYTHONSTARTUP hooks that cause spurious startup errors * fixes bsc#1070738 * the relevant feature (REPL history) is now built into Python itself- Install 2to3-%{python_version} executable (override defattr of the -tools package). 2to3 (unversioned) is a symlink and does not carry permissions (bsc#1070853).- move 2to3 to python3-tools package- update to 3.6.3 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- drop python-2.7-libffi-aarch64.patch: this patches the intree copy of libffi which is unused/deleted in the line afterwards - fix build against system libffi: include flags weren't set so it actually used the in-tree libffi headers.- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- fix missing %{?armsuffix}- distutils-reproducible-compile.patch: ensure distutils order files before compiling, which works around bsc#1049186- Add libnsl-devel build requires for glibc obsoleting libnsl- update to 3.6.2 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed test-socket-aead-kernel49.patch - add Provides: python3-typing (fixes bsc#1050653) - drop duplicate Provides: python3- Add missing link to python library in config dir (bsc#1040164)- update to 3.6.1 * bugfix release, over a hundred bugs fixed * never add import location's parent directory to sys.path * switch to git for version control, build changes related to that * fix "failed to get random numbers" on old kernels (bsc#1029902) * several crashes and memory leaks corrected * f-string are no longer accepted as docstrings- prevent regenerating AST at build-time more robustly - add "--without profileopt" and "--without testsuite" options to python3-base to allow short circuiting when working on the package- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.6 (bsc#1027282): * fixed potential crash in PyUnicode_AsDecodedObject() in debug build * fixed possible DoS and arbitrary execution in gettext plurals * fix possible use of uninitialized memory in operator.methodcaller * fix possible Py_DECREF on unowned object in _sre * fix possible integer overflow in _csv module * prevent HTTPoxy attack (CVE-2016-1000110) * fix selectors incorrectly retaining invalid fds - drop upstreamed python-3.4-CVE-2016-1000110-fix.patch - move _elementtree to python3.rpm to match its pyexpat dependency (bsc#1029377)- Add 0001-allow-for-reproducible-builds-of-python-packages.patch upstream https://github.com/python/cpython/pull/296- reenable test_socket with AEAD patch (test-socket-aead-kernel49.patch) - reintroduce %py3_soflags macro (and better named %cpython3_soabi equivalent)- update to 3.6.0 * PEP 498 Formated string literals * PEP 515 Underscores in numeric literals * PEP 526 Syntax for variable annotations * PEP 525 Asynchronous generators * PEP 530 Asynchronous comprehensions * PEP 506 New "secrets" module for safe key generation * less memory consumed by dicts * dtrace and systemtap support * improved asyncio module * better defaults for ssl * new hashing algorithms in hashlib * bytecode format changed to allow more optimizations * "async" and "await" are on track to be reserved words * StopIteration from generators is deprecated * support for openssl < 1.0.2 is deprecated * os.urandom now blocks when getrandom() blocks * huge number of new features, bugfixes and optimizations * see https://docs.python.org/3.6/whatsnew/3.6.html for details - rework multilib patch: drop Python-3.5.0-multilib.patch, implement upstreamable python-3.6.0-multilib-new.patch - refresh python-3.3.0b1-localpath.patch, subprocess-raise-timeout.patch - drop upstreamed Python-3.5.1-fix_lru_cache_copying.patch - finally drop python-2.6b1-canonicalize2.patch that was not applied in source and only kept around in case we needed it in the future. (which we don't, as it seems) - update import_failed map and baselibs - build ctypes against system libffi (buildrequire libffi-devel in python3-base) - add new key to keyring (signed by keys already in keyring) - introduced common configure section between python3 and python3-base - moved pyconfig.h and Makefile to devel subpackage as distutils no longer need it at runtime - added python-rpm-macros dependency, regenerated macros file, drop macros.python3.py because it is not used now - improve summaries and descriptions (fixes bsc#917607) - enabled Link-Time Optimization, see what happens - including skipped_tests.py in pre_checkin.sh run - run specs through spec-cleaner, rearrange sections- FAKE RECORD FROM SLE-12 CHANNEL apply fix for CVE-2016-1000110 - CGIHandler: sets environmental variable based on user supplied Proxy request header: python-3.4-CVE-2016-1000110-fix.patch (fixes bsc#989523, CVE-2016-1000110) - refresh python3-urllib-prefer-lowercase-proxies.patch- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.5 check: https://docs.python.org/3.4/whatsnew/changelog.html (fixes bsc#984751, CVE-2016-0772) (fixes bsc#985177, CVE-2016-5636) (fixes bsc#985348, CVE-2016-5699) - drop upstreamed werror-declaration-after-statement.patch- FAKE RECORD FROM SLE-12 CHANNEL Due to being fixed upstream (differently), removed outdated patch CVE-2014-4650-CGIHTTPServer-traversal.patch (bsc#983582)- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Add Python-3.5.1-fix_lru_cache_copying.patch Fix copying the lru_cache() wrapper object. Fixes deep-copying lru_cache regression, which worked on previous versions of python but fails on python 3.5. This fixes a bunch of packages in devel:languages:python3. See: https://bugs.python.org/issue25447- update to 3.5.1 * bugfix-only release, dozens of bugs fixed - Drop upstreamed Python-3.5.0-_Py_atomic_xxx-symbols.patch - "Python3" to "Python 3" in summary * This seems cleaner and fixes and rpmlint warning- FAKE RECORD FROM SLE-12 CHANNEL Issue #21121: Don't force 3rd party C extensions to be built with -Werror=declaration-after-statement. (werror-declaration-after-statement.patch, bsc#951166)- Add Python-3.5.0-_Py_atomic_xxx-symbols.patch This fixes a build error for many packages that use the Python, C-API. This patch is already accepted upstream and is slated to appear in python 3.5.1.- update to 3.5.0 * coroutines with async/await syntax * matrix multiplication operator `@` * unpacking generalizations * new modules `typing` and `zipapp` * type annotations * .pyo files replaced by custom suffixes for optimization levels in __pycache__ * support for memory BIO in ssl module * performance improvements in several modules * and many more - removals and behavior changes * deprecated `__version__` is removed * support for .pyo files was removed * system calls are auto-retried on EINTR * bare generator expressions in function calls now cause SyntaxError (change "f(x for x in i)" to "f((x for x in i))" to fix) * removed undocumented `format` member of private `PyMemoryViewObject` struct * renamed `PyMemAllocator` to `PyMemAllocatorEx` - redefine %dynlib macro to reflect that modules now have arch+os as part of name - module `time` is now built-in - dropped upstreamed patches: python-3.4.1-fix-faulthandler.patch python-3.4.3-test-conditional-ssl.patch python-fix-short-dh.patch (also dropped dh2048.pem required for this patch) - updated patch Python-3.3.0b2-multilib.patch to Python-3.5.0-multilib.patch - python-ncurses-6.0-accessors.patch taken from python 2 to fix build failure with new gcc + ncurses- Add python3-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- improve import_failed hook to do the right thing when invoking missing modules with "python3 -m modulename" (boo#942751)- Build with --enable-loadable-sqlite-extensions to make it works as geospatial database.- dh2048.pem: added generated 2048 dh parameter set to fix ssl test (bsc#935856) - python-fix-short-dh.patch: replace the 512 bits dh parameter set by 2048 bits to fix build with new openssl 1.0.2c (bsc#935856)- ctypes-libffi-aarch64.patch: remove upstreamed patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- python-3.4.3-test-conditional-ssl.patch - restore tests failing because test_urllib was unconditionally importing ssl (without really needing it) - restore functionality of multilib patch - drop libffi-ppc64le.diff because upstream completely changed everything yet again (sorry ppc64 folks :| )- Update to version 3.4.3 - Drop upstreamed CVE-2014-4650-CGIHTTPServer-traversal.patch (bpo#21766)- Add python-3.4.1-fix-faulthandler.patch, upstream patch for bogus faulthandler which fails with GCC 5.- asyncio has been merged in python3 main package; provide and obsolete it - Remove obsolete AUTHORS section - Remove redundant %clean section- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillapython3-idleh04-ch1d 1727084377  !"#"%&%()(+,+./0121454787:;:=>?@A@CDCFGFIJILMLOPQRRRUUUXYX[\[^_`abcdedghgjkjmnmpqpsssvwvyzy|}|     ! #$#&'&)*),-,/0/232565898;<;>?>ABADEDGHGJKJMNMPQPSTSVWXYZY\]\_`_bcbefehihklknonqrqtutwxwz{z}~}      !"#$%3.6.15-150300.10.72.13.6.153.6.15-150300.10.72.13.6.15-150300.10.72.13.6.15   idle3.6config-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defidle3.6idlelibCREDITS.txtChangeLogHISTORY.txtIconsfolder.gifidle.icnsidle.icoidle_16.gifidle_16.pngidle_32.gifidle_32.pngidle_48.gifidle_48.pngminusnode.gifopenfolder.gifplusnode.gifpython.giftk.gifNEWS.txtNEWS2x.txtREADME.txtTODO.txt__init__.py__main__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.opt-2.pyc__init__.cpython-36.pyc__main__.cpython-36.opt-1.pyc__main__.cpython-36.opt-2.pyc__main__.cpython-36.pyc_pyclbr.cpython-36.opt-1.pyc_pyclbr.cpython-36.opt-2.pyc_pyclbr.cpython-36.pycautocomplete.cpython-36.opt-1.pycautocomplete.cpython-36.opt-2.pycautocomplete.cpython-36.pycautocomplete_w.cpython-36.opt-1.pycautocomplete_w.cpython-36.opt-2.pycautocomplete_w.cpython-36.pycautoexpand.cpython-36.opt-1.pycautoexpand.cpython-36.opt-2.pycautoexpand.cpython-36.pycbrowser.cpython-36.opt-1.pycbrowser.cpython-36.opt-2.pycbrowser.cpython-36.pyccalltip.cpython-36.opt-1.pyccalltip.cpython-36.opt-2.pyccalltip.cpython-36.pyccalltip_w.cpython-36.opt-1.pyccalltip_w.cpython-36.opt-2.pyccalltip_w.cpython-36.pyccodecontext.cpython-36.opt-1.pyccodecontext.cpython-36.opt-2.pyccodecontext.cpython-36.pyccolorizer.cpython-36.opt-1.pyccolorizer.cpython-36.opt-2.pyccolorizer.cpython-36.pycconfig.cpython-36.opt-1.pycconfig.cpython-36.opt-2.pycconfig.cpython-36.pycconfig_key.cpython-36.opt-1.pycconfig_key.cpython-36.opt-2.pycconfig_key.cpython-36.pycconfigdialog.cpython-36.opt-1.pycconfigdialog.cpython-36.opt-2.pycconfigdialog.cpython-36.pycdebugger.cpython-36.opt-1.pycdebugger.cpython-36.opt-2.pycdebugger.cpython-36.pycdebugger_r.cpython-36.opt-1.pycdebugger_r.cpython-36.opt-2.pycdebugger_r.cpython-36.pycdebugobj.cpython-36.opt-1.pycdebugobj.cpython-36.opt-2.pycdebugobj.cpython-36.pycdebugobj_r.cpython-36.opt-1.pycdebugobj_r.cpython-36.opt-2.pycdebugobj_r.cpython-36.pycdelegator.cpython-36.opt-1.pycdelegator.cpython-36.opt-2.pycdelegator.cpython-36.pycdynoption.cpython-36.opt-1.pycdynoption.cpython-36.opt-2.pycdynoption.cpython-36.pyceditor.cpython-36.opt-1.pyceditor.cpython-36.opt-2.pyceditor.cpython-36.pycfilelist.cpython-36.opt-1.pycfilelist.cpython-36.opt-2.pycfilelist.cpython-36.pycgrep.cpython-36.opt-1.pycgrep.cpython-36.opt-2.pycgrep.cpython-36.pychelp.cpython-36.opt-1.pychelp.cpython-36.opt-2.pychelp.cpython-36.pychelp_about.cpython-36.opt-1.pychelp_about.cpython-36.opt-2.pychelp_about.cpython-36.pychistory.cpython-36.opt-1.pychistory.cpython-36.opt-2.pychistory.cpython-36.pychyperparser.cpython-36.opt-1.pychyperparser.cpython-36.opt-2.pychyperparser.cpython-36.pycidle.cpython-36.opt-1.pycidle.cpython-36.opt-2.pycidle.cpython-36.pyciomenu.cpython-36.opt-1.pyciomenu.cpython-36.opt-2.pyciomenu.cpython-36.pycmacosx.cpython-36.opt-1.pycmacosx.cpython-36.opt-2.pycmacosx.cpython-36.pycmainmenu.cpython-36.opt-1.pycmainmenu.cpython-36.opt-2.pycmainmenu.cpython-36.pycmulticall.cpython-36.opt-1.pycmulticall.cpython-36.opt-2.pycmulticall.cpython-36.pycoutwin.cpython-36.opt-1.pycoutwin.cpython-36.opt-2.pycoutwin.cpython-36.pycparagraph.cpython-36.opt-1.pycparagraph.cpython-36.opt-2.pycparagraph.cpython-36.pycparenmatch.cpython-36.opt-1.pycparenmatch.cpython-36.opt-2.pycparenmatch.cpython-36.pycpathbrowser.cpython-36.opt-1.pycpathbrowser.cpython-36.opt-2.pycpathbrowser.cpython-36.pycpercolator.cpython-36.opt-1.pycpercolator.cpython-36.opt-2.pycpercolator.cpython-36.pycpyparse.cpython-36.opt-1.pycpyparse.cpython-36.opt-2.pycpyparse.cpython-36.pycpyshell.cpython-36.opt-1.pycpyshell.cpython-36.opt-2.pycpyshell.cpython-36.pycquery.cpython-36.opt-1.pycquery.cpython-36.opt-2.pycquery.cpython-36.pycredirector.cpython-36.opt-1.pycredirector.cpython-36.opt-2.pycredirector.cpython-36.pycreplace.cpython-36.opt-1.pycreplace.cpython-36.opt-2.pycreplace.cpython-36.pycrpc.cpython-36.opt-1.pycrpc.cpython-36.opt-2.pycrpc.cpython-36.pycrstrip.cpython-36.opt-1.pycrstrip.cpython-36.opt-2.pycrstrip.cpython-36.pycrun.cpython-36.opt-1.pycrun.cpython-36.opt-2.pycrun.cpython-36.pycrunscript.cpython-36.opt-1.pycrunscript.cpython-36.opt-2.pycrunscript.cpython-36.pycscrolledlist.cpython-36.opt-1.pycscrolledlist.cpython-36.opt-2.pycscrolledlist.cpython-36.pycsearch.cpython-36.opt-1.pycsearch.cpython-36.opt-2.pycsearch.cpython-36.pycsearchbase.cpython-36.opt-1.pycsearchbase.cpython-36.opt-2.pycsearchbase.cpython-36.pycsearchengine.cpython-36.opt-1.pycsearchengine.cpython-36.opt-2.pycsearchengine.cpython-36.pycsqueezer.cpython-36.opt-1.pycsqueezer.cpython-36.opt-2.pycsqueezer.cpython-36.pycstackviewer.cpython-36.opt-1.pycstackviewer.cpython-36.opt-2.pycstackviewer.cpython-36.pycstatusbar.cpython-36.opt-1.pycstatusbar.cpython-36.opt-2.pycstatusbar.cpython-36.pyctextview.cpython-36.opt-1.pyctextview.cpython-36.opt-2.pyctextview.cpython-36.pyctooltip.cpython-36.opt-1.pyctooltip.cpython-36.opt-2.pyctooltip.cpython-36.pyctree.cpython-36.opt-1.pyctree.cpython-36.opt-2.pyctree.cpython-36.pycundo.cpython-36.opt-1.pycundo.cpython-36.opt-2.pycundo.cpython-36.pycwindow.cpython-36.opt-1.pycwindow.cpython-36.opt-2.pycwindow.cpython-36.pyczoomheight.cpython-36.opt-1.pyczoomheight.cpython-36.opt-2.pyczoomheight.cpython-36.pyczzdummy.cpython-36.opt-1.pyczzdummy.cpython-36.opt-2.pyczzdummy.cpython-36.pyc_pyclbr.pyautocomplete.pyautocomplete_w.pyautoexpand.pybrowser.pycalltip.pycalltip_w.pycodecontext.pycolorizer.pyconfig-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defconfig.pyconfig_key.pyconfigdialog.pydebugger.pydebugger_r.pydebugobj.pydebugobj_r.pydelegator.pydynoption.pyeditor.pyextend.txtfilelist.pygrep.pyhelp.htmlhelp.pyhelp_about.pyhistory.pyhyperparser.pyidle.batidle.pyidle.pywidle_testREADME.txt__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.opt-2.pyc__init__.cpython-36.pychtest.cpython-36.opt-1.pychtest.cpython-36.opt-2.pychtest.cpython-36.pycmock_idle.cpython-36.opt-1.pycmock_idle.cpython-36.opt-2.pycmock_idle.cpython-36.pycmock_tk.cpython-36.opt-1.pycmock_tk.cpython-36.opt-2.pycmock_tk.cpython-36.pyctemplate.cpython-36.opt-1.pyctemplate.cpython-36.opt-2.pyctemplate.cpython-36.pyctest_autocomplete.cpython-36.opt-1.pyctest_autocomplete.cpython-36.opt-2.pyctest_autocomplete.cpython-36.pyctest_autocomplete_w.cpython-36.opt-1.pyctest_autocomplete_w.cpython-36.opt-2.pyctest_autocomplete_w.cpython-36.pyctest_autoexpand.cpython-36.opt-1.pyctest_autoexpand.cpython-36.opt-2.pyctest_autoexpand.cpython-36.pyctest_browser.cpython-36.opt-1.pyctest_browser.cpython-36.opt-2.pyctest_browser.cpython-36.pyctest_calltip.cpython-36.opt-1.pyctest_calltip.cpython-36.opt-2.pyctest_calltip.cpython-36.pyctest_calltip_w.cpython-36.opt-1.pyctest_calltip_w.cpython-36.opt-2.pyctest_calltip_w.cpython-36.pyctest_codecontext.cpython-36.opt-1.pyctest_codecontext.cpython-36.opt-2.pyctest_codecontext.cpython-36.pyctest_colorizer.cpython-36.opt-1.pyctest_colorizer.cpython-36.opt-2.pyctest_colorizer.cpython-36.pyctest_config.cpython-36.opt-1.pyctest_config.cpython-36.opt-2.pyctest_config.cpython-36.pyctest_config_key.cpython-36.opt-1.pyctest_config_key.cpython-36.opt-2.pyctest_config_key.cpython-36.pyctest_configdialog.cpython-36.opt-1.pyctest_configdialog.cpython-36.opt-2.pyctest_configdialog.cpython-36.pyctest_debugger.cpython-36.opt-1.pyctest_debugger.cpython-36.opt-2.pyctest_debugger.cpython-36.pyctest_debugger_r.cpython-36.opt-1.pyctest_debugger_r.cpython-36.opt-2.pyctest_debugger_r.cpython-36.pyctest_debugobj.cpython-36.opt-1.pyctest_debugobj.cpython-36.opt-2.pyctest_debugobj.cpython-36.pyctest_debugobj_r.cpython-36.opt-1.pyctest_debugobj_r.cpython-36.opt-2.pyctest_debugobj_r.cpython-36.pyctest_delegator.cpython-36.opt-1.pyctest_delegator.cpython-36.opt-2.pyctest_delegator.cpython-36.pyctest_editmenu.cpython-36.opt-1.pyctest_editmenu.cpython-36.opt-2.pyctest_editmenu.cpython-36.pyctest_editor.cpython-36.opt-1.pyctest_editor.cpython-36.opt-2.pyctest_editor.cpython-36.pyctest_filelist.cpython-36.opt-1.pyctest_filelist.cpython-36.opt-2.pyctest_filelist.cpython-36.pyctest_grep.cpython-36.opt-1.pyctest_grep.cpython-36.opt-2.pyctest_grep.cpython-36.pyctest_help.cpython-36.opt-1.pyctest_help.cpython-36.opt-2.pyctest_help.cpython-36.pyctest_help_about.cpython-36.opt-1.pyctest_help_about.cpython-36.opt-2.pyctest_help_about.cpython-36.pyctest_history.cpython-36.opt-1.pyctest_history.cpython-36.opt-2.pyctest_history.cpython-36.pyctest_hyperparser.cpython-36.opt-1.pyctest_hyperparser.cpython-36.opt-2.pyctest_hyperparser.cpython-36.pyctest_iomenu.cpython-36.opt-1.pyctest_iomenu.cpython-36.opt-2.pyctest_iomenu.cpython-36.pyctest_macosx.cpython-36.opt-1.pyctest_macosx.cpython-36.opt-2.pyctest_macosx.cpython-36.pyctest_mainmenu.cpython-36.opt-1.pyctest_mainmenu.cpython-36.opt-2.pyctest_mainmenu.cpython-36.pyctest_multicall.cpython-36.opt-1.pyctest_multicall.cpython-36.opt-2.pyctest_multicall.cpython-36.pyctest_outwin.cpython-36.opt-1.pyctest_outwin.cpython-36.opt-2.pyctest_outwin.cpython-36.pyctest_paragraph.cpython-36.opt-1.pyctest_paragraph.cpython-36.opt-2.pyctest_paragraph.cpython-36.pyctest_parenmatch.cpython-36.opt-1.pyctest_parenmatch.cpython-36.opt-2.pyctest_parenmatch.cpython-36.pyctest_pathbrowser.cpython-36.opt-1.pyctest_pathbrowser.cpython-36.opt-2.pyctest_pathbrowser.cpython-36.pyctest_percolator.cpython-36.opt-1.pyctest_percolator.cpython-36.opt-2.pyctest_percolator.cpython-36.pyctest_pyparse.cpython-36.opt-1.pyctest_pyparse.cpython-36.opt-2.pyctest_pyparse.cpython-36.pyctest_pyshell.cpython-36.opt-1.pyctest_pyshell.cpython-36.opt-2.pyctest_pyshell.cpython-36.pyctest_query.cpython-36.opt-1.pyctest_query.cpython-36.opt-2.pyctest_query.cpython-36.pyctest_redirector.cpython-36.opt-1.pyctest_redirector.cpython-36.opt-2.pyctest_redirector.cpython-36.pyctest_replace.cpython-36.opt-1.pyctest_replace.cpython-36.opt-2.pyctest_replace.cpython-36.pyctest_rpc.cpython-36.opt-1.pyctest_rpc.cpython-36.opt-2.pyctest_rpc.cpython-36.pyctest_rstrip.cpython-36.opt-1.pyctest_rstrip.cpython-36.opt-2.pyctest_rstrip.cpython-36.pyctest_run.cpython-36.opt-1.pyctest_run.cpython-36.opt-2.pyctest_run.cpython-36.pyctest_runscript.cpython-36.opt-1.pyctest_runscript.cpython-36.opt-2.pyctest_runscript.cpython-36.pyctest_scrolledlist.cpython-36.opt-1.pyctest_scrolledlist.cpython-36.opt-2.pyctest_scrolledlist.cpython-36.pyctest_search.cpython-36.opt-1.pyctest_search.cpython-36.opt-2.pyctest_search.cpython-36.pyctest_searchbase.cpython-36.opt-1.pyctest_searchbase.cpython-36.opt-2.pyctest_searchbase.cpython-36.pyctest_searchengine.cpython-36.opt-1.pyctest_searchengine.cpython-36.opt-2.pyctest_searchengine.cpython-36.pyctest_squeezer.cpython-36.opt-1.pyctest_squeezer.cpython-36.opt-2.pyctest_squeezer.cpython-36.pyctest_stackviewer.cpython-36.opt-1.pyctest_stackviewer.cpython-36.opt-2.pyctest_stackviewer.cpython-36.pyctest_statusbar.cpython-36.opt-1.pyctest_statusbar.cpython-36.opt-2.pyctest_statusbar.cpython-36.pyctest_text.cpython-36.opt-1.pyctest_text.cpython-36.opt-2.pyctest_text.cpython-36.pyctest_textview.cpython-36.opt-1.pyctest_textview.cpython-36.opt-2.pyctest_textview.cpython-36.pyctest_tooltip.cpython-36.opt-1.pyctest_tooltip.cpython-36.opt-2.pyctest_tooltip.cpython-36.pyctest_tree.cpython-36.opt-1.pyctest_tree.cpython-36.opt-2.pyctest_tree.cpython-36.pyctest_undo.cpython-36.opt-1.pyctest_undo.cpython-36.opt-2.pyctest_undo.cpython-36.pyctest_warning.cpython-36.opt-1.pyctest_warning.cpython-36.opt-2.pyctest_warning.cpython-36.pyctest_window.cpython-36.opt-1.pyctest_window.cpython-36.opt-2.pyctest_window.cpython-36.pyctest_zoomheight.cpython-36.opt-1.pyctest_zoomheight.cpython-36.opt-2.pyctest_zoomheight.cpython-36.pychtest.pymock_idle.pymock_tk.pytemplate.pytest_autocomplete.pytest_autocomplete_w.pytest_autoexpand.pytest_browser.pytest_calltip.pytest_calltip_w.pytest_codecontext.pytest_colorizer.pytest_config.pytest_config_key.pytest_configdialog.pytest_debugger.pytest_debugger_r.pytest_debugobj.pytest_debugobj_r.pytest_delegator.pytest_editmenu.pytest_editor.pytest_filelist.pytest_grep.pytest_help.pytest_help_about.pytest_history.pytest_hyperparser.pytest_iomenu.pytest_macosx.pytest_mainmenu.pytest_multicall.pytest_outwin.pytest_paragraph.pytest_parenmatch.pytest_pathbrowser.pytest_percolator.pytest_pyparse.pytest_pyshell.pytest_query.pytest_redirector.pytest_replace.pytest_rpc.pytest_rstrip.pytest_run.pytest_runscript.pytest_scrolledlist.pytest_search.pytest_searchbase.pytest_searchengine.pytest_squeezer.pytest_stackviewer.pytest_statusbar.pytest_text.pytest_textview.pytest_tooltip.pytest_tree.pytest_undo.pytest_warning.pytest_window.pytest_zoomheight.pyiomenu.pymacosx.pymainmenu.pymulticall.pyoutwin.pyparagraph.pyparenmatch.pypathbrowser.pypercolator.pypyparse.pypyshell.pyquery.pyredirector.pyreplace.pyrpc.pyrstrip.pyrun.pyrunscript.pyscrolledlist.pysearch.pysearchbase.pysearchengine.pysqueezer.pystackviewer.pystatusbar.pytextview.pytooltip.pytree.pyundo.pywindow.pyzoomheight.pyzzdummy.pyidle3.6.desktoppython3-idleChangeLogNEWS.txtREADME.txtTODO.txtextend.txthicolor16x16appsidle3.6.png32x32appsidle3.6.png48x48appsidle3.6.pngmetainfoidle3.6.appdata.xml/etc//etc/idle3.6//usr/bin//usr/lib64/python3.6//usr/lib64/python3.6/idlelib//usr/lib64/python3.6/idlelib/Icons//usr/lib64/python3.6/idlelib/__pycache__//usr/lib64/python3.6/idlelib/idle_test//usr/lib64/python3.6/idlelib/idle_test/__pycache__//usr/share/applications//usr/share/doc/packages//usr/share/doc/packages/python3-idle//usr/share/icons//usr/share/icons/hicolor//usr/share/icons/hicolor/16x16//usr/share/icons/hicolor/16x16/apps//usr/share/icons/hicolor/32x32//usr/share/icons/hicolor/32x32/apps//usr/share/icons/hicolor/48x48//usr/share/icons/hicolor/48x48/apps//usr/share//usr/share/metainfo/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:35633/SUSE_SLE-15-SP3_Update/49d100f4782fe3fa552c67d6b7bc38f8-python3.SUSE_SLE-15-SP3_Updatedrpmxz5x86_64-suse-linux   directoryASCII textPython script, ASCII text executableUTF-8 Unicode textASCII text, with very long linesGIF image data, version 89a, 15 x 13GIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 32 x 32PNG image data, 32 x 32, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 48 x 48PNG image data, 48 x 48, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 11 x 11GIF image data, version 89a, 16 x 13GIF image data, version 89a, 14 x 11python 3.6 byte-compiledHTML document, UTF-8 Unicode text, with very long linesDOS batch file, ASCII text, with CRLF line terminatorsPython script, UTF-8 Unicode text executableXML 1.0 document, UTF-8 Unicode text  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRPPPPPdixP&~ljH򚞷utf-8d7feda96950ad4cac4b2c534e4a08ac2a0de0ceedf9a470493afda767d006a94?7zXZ !t/~'5]"k%a ~SРQi0! (cyV*e4kJb6SY5.59/]W#r"N^VAa};d`֤Zy׭ W ެ /l䱰Xo/~p>\~ L6_ih{̭l/9jF'Pzv$59CקlJ*L2`_̊S*1n{\X݇?b !*/q8r.ScF3P$BS?'M\;֫;p8@v>p"8sn`RWE̢Y3x]xɆ$@eb:B'ĕH#po~Du)\0LbrQ&ꖂDL3 d&6\eJeo&%7ƅmC_[1 r°FB[,/țe? mVۋ|&(7 ~p"?R_|Γ靛[zLrrV6& Z/πxϚ Wk{c/ɫT<ږF\7Im\Џ}(CBň.(ύ7g"#7**^{ƙC,,?r ̶KΑӎ >>dEjNUG4JN'~+O Ny4c#d@kK}g3O.dJkԧ2Wߩxyi_\Uct(FR=ADzzq,2inCPWKvxxAk"[K:bfsk-TK=Irv#C;GMaYHTĻɺnf:`e `p Z+ۿ>d/Ӳ 36W~׌]R٫xdPGmHK 0MIo%_t9,m`.DB4+ m+[[Vh^!1] .L9; {Cl+גf3lYe(sR\n T|6!b~]5>{tlUlf#Ro5be[>kA"ѕG.DdNU +c{DL͇l@\uѩGLhy/6(չ1pp!R~ Q2nOZ\aW5考=o,['F0ϧ @l.[92/ڤETtL)]}Ŗ~lv9Gh7րC5/$xj_, )bADU[fMUMV=Gq_~⥪pkzG#ks:7 孢9MSe%usg /sPk,LJzW4+r9`` 'pϬ&|M;OW]inqeك]zd"tj;ڌvߡo28Z `ނ<npR[gy9XkC$.UeYs iԪDYgajEI㿾~: KT'tG&nͲcE@I#JT,] kdA\p/ZwL)O#=^cz~3KPQ *nn%Cϣ4LAP)lN̷#pJxn=.ڃ~ReCt03ΰ:0%AKRHL g gՁ6jYQ"T$1Ǡ 0~64qDz91vnU d\10)crb Cfw9pE}41v6Cר-JC>dI">O79@lJx {i}!Yv!D{貫^>4's! *ƪ$t֡3-~CҾJ\lsbDo>Ƴ5m_~"+u sɸἂ3h]l$Jik-[g 59PwE=p]z1t:/3`Uˁ/tAPv^$hO#ee_tA)kouk85,bL6Bs.Ig5֮YaXw)XvJQ#ݚj>RʾW=jpebkz5pv, dx\S~L jww e$NJ F/zgRe#ӳ)uJOIbr7{ *KTPyCn Vx&' 9^KQFHXL@j$U5Η|FMuauȋX sT$616O"mٝ+5>L ѝJs]Sc!UR#siKѓS0`-VX$1٨J\p%k(7ǂubzgo,-֒Bn 0(:9wbf$7U gO␜RJ`6$)GE%[V.nҕ\>SFjowe9~Llr,hҌk5ũ=څz*sBݨ^+wp\qN>JA\ױVCB6 N\U(=NjDi.:k4@&.}T];hyNYl } \! ci,HM *9h5 wdȽZY&>:_'͆Pw9:-Þ&Y5EqݟSJ*XJsǑ2]Pz7-zIUT_{#8|ߌ(#1>!enuBir~zWºw9Ú-LҰ 3ÊY6.N՞WEI{Gܨ]6i zVctA&5'TϬkoxu~g 8Y"hXy*ug51l:4 05/@OuJb< N=-xzXr.1QY}(a'_v@u2l20Ə|*wr^ߒAK+_:wy)ȋsMs(y7|P+b;@ }ѝ5.Iu$]́kyiI1NSe2?l, ]kkGM0 chnmS_ "X! -3|Aٖ%w[.:aR5qgJ\^NpU)Q&_V $[,2h{kɺ欏"ij-'`a&] 2=Jwҟ7ȼ 0*bd'P%WgpjEœcW5Z# Ξ5=/ Ztd p <~Nwn&aqо1م1{]ET=No6X]YhS(`A}$I}82s28_Fm_Դ[/*iBZ `Z쨏3a^0AɬX0<;LjOV'rg pJ`6lN΍0OƷ<\>$NMqbL[fZJ˰yc{cr6zRYIn mYT1y!kr> 9FpsKo5hUI/LjRH ;$^a, <'[bw@rcLjTSDK!M HcS$C%*1gB;v}VW3-  DEl1";CXʱX96 `̧Rǂ>/5(mvbw %J. ki$Ǝ*jeu;*B㰋ϢgI%m:*(,L3qgvD)鋞I"2;j,+Ao >8C :؀{ݮx10Unk[q|I1:R&04^@|n4+L} AlO \(nf">]SαX" x! t{d:H}wgۆ:vSz D8|n~[˩=̫Ed1+ٻp$5+0nlz" s+ g@ 1;ܮ$Ñ|} _uO-up2q0lbS|y`#qԝԥ3_&Xdpmw1uW&D̢,\3UěZ"5;ؠ.C+ܢB!Pջ$m1ԡUTQ3YG{T=)f'M|N+P3|C̯돗pS=w0(Sܤ=^w)z'Q-ɏn8:47HS|L_oJէ02o7Q2apq3<sKl]$ F_POI~uLtEժnچɭǷӧ\;.0 jݶFk@~9s?ݮqՏQ]g#E\.ÄBgc&D0[ 6q 57U?Yz働JKns6"ʑ䇐/-",eqZpyFJ#- w+Pni>aR6gEenc0~VUofh4 L.nqjjqzGi~h2tiV2ͻT xpjS}nBgl/IR@BדùtPd9Rq bx"T") ?fq-ωIl`%#?>ߑguez:>}֪hT&0ߨC~BTl_(6LPNtTUrZLªX.XrWO+loaKte]3j ;! 8TWڈ0cz2Qem`#,@a%B?1V{mk:1g Ms֡=_'k̒H951o~$=e>t@)H õɒj Yr2]+[i5v?ݸ_~o ^K--;I/(c9 wi+(B {%GU@DOzx@Y@6]oTc9S1SzXzBS!z/hG??{%#A+0EZ*+o(LFnB 0HXjzr!%83uN8f htd=ȶ:zI$8g-sdpir{q(>D٦t+u="]S7cCqP Hp@=@ْ 3Fav쐲ݺv|]ܿiɑ[Ʋ_ ܣc0TI>l ~jil#)bY(~h 7*]&$̌_ 'Ghfii^e;獒i'up Ǚbׅ4 d&D8&\fWj$J@h 08o|Yd$lWb!/}M N`Qgfɗ4h,gS _8Z!WKecrBQ,x5F2,@#7x=+x?`GR;:+F`!6hE8 1<{5*&(91T~ad*b/OOdj5F s:w]s_l#~K>k((؍ޗ0wsmHbAyKhů[lE(FT%R9X4пbylּZu21 ޞ?]J:Ts/\(cz(,KJw~ +ţМr$P3,,A1H, kGTAіx -E4bDUŦf`t*R$d5SQ8ó\ڝ_-66󡪦_dS)`?["&:><'rJ#`<@ƭjhZe_!TPIj ${sdϰP31ϝ/Xy=uѷf-LΚngV*6RA+2/qS/.UqĤ~Bp:Y(s&Ǵ}#ݒݫ4f~=%?pY [÷4:˿h+2V4-,mx5B4d(^_pv\ж0U,\F<`/UɲLS[JL Xr(<`ۜc$(^#8-|&5`^ !_a C_Ozc~݈K 6ېrdXdt#> GMov!y~-a#Zno4h@dו akt}^bEӕp.1,=S6WPk3/#zٓB᜗iu=o3rばTWimXbب((udyb$ (a2Foۛ Y<:D2e"6ۉHf}4<܌ 6 c J xuHʍiO_vQRti֟/$G=UM O[E}9s֖hو 菘4FT ْ~!Cy/b=mz&}iPg`e׋(:d:KR8iB/,TacA'}4뱨J~EtnE.ٙI)[}V4]̓1+S>=sF,r '6`)dSV+R L !P jZ {N4U=LP̹>K5ى@院A$x[낖._ 8BgG