python311-dnspython-2.3.0-150400.12.6.1<>,gfp9|Ym^:cbvQjMR{5{Hic; y=  ]ф'Zof7[$Pn!2AϦ+>nξvc&sݰDtBV'tPOWqG ޘf-j2:8V0rdHՏ8v.ZQQ&4o`=P6Q#Uk>[In䷚!$e%'VC/ *% ǖ~|ڶ<ʏ_KV(?4N>D6?6d * C $=^b x    t m ( FtXl   (89,:lFLG`HDI(XY\]^b&cdZe_fblduxv!\w!x(y/z5555556!606<6B6Cpython311-dnspython2.3.0150400.12.6.1A DNS toolkit for Pythondnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0. dnspython provides both high and low level access to DNS. The high level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. The package requires dependencies necessary for these optional features: - DNS over HTTPS (doh) - IDNA - DNSSEC and suggest dependencies necessary for these optional features: - trio - curio This optional feature is not available due to missing dependencies: - wmifh03-ch2a+SUSE Linux Enterprise 15SUSE LLC ISChttps://www.suse.com/Development/Languages/Pythonhttps://github.com/rthalley/dnspythonlinuxnoarchmVV%%66pp||,L,==__R|R   %x'' F Fii1S1Zn""BuBu lߌ==hh`X`%9%9==(/0``1M1^II33llt t DD ?F?F  <)<**O7f7NTkk S f)f6  d-1{1z hr >?$%@@33Q ,<tF B~ 6   R 9.;  u L< < J D j Z++bbzzgPPLLwwqq*  =M=M qq qq ~ ~`` ttww 7 7  zz ] ]nnzz .``%% A v E; 1 1 J J oo8Z }}LL1KKOO R R}}VV{5-5- # E G  B( %/"))##\ T}, N /.#a 3rk\<*iX   GsdoT/A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0fc0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 fc0 e59cbab2a3c557b7e589700183a96d6a25496a8c638ddb6ef0672f06e71b6ea0b374fcba5648b95c8c0789326611c2b6cf93aa1c8b79373a99a9836b90474ee9b374fcba5648b95c8c0789326611c2b6cf93aa1c8b79373a99a9836b90474ee993bc64ec5eef52a5aa11e573205586a74567d2ceacca3532be07ae6da72fd57093bc64ec5eef52a5aa11e573205586a74567d2ceacca3532be07ae6da72fd57046b4e8b0fedfad7385963e2ebda2b78e34163f32d31028c9b971bbde70fb6f5b0ca4760e1c3ded6ea773958a85f9595531964a619528cb0033a1383d7b706fc8fbd301deb0d9a2af533967f90849eddd1beb7df7b5ade5a296d8a89728233ef8fbd301deb0d9a2af533967f90849eddd1beb7df7b5ade5a296d8a89728233ef8a4b04d6108dd00b6afd688069ace5f911946593c76c6a9abd71014205fab5edda4b04d6108dd00b6afd688069ace5f911946593c76c6a9abd71014205fab5eddd5ee9d2f65be0fcc3be5e0ecf023e1624f182c45421a2019d8547eccf2fa9725d5ee9d2f65be0fcc3be5e0ecf023e1624f182c45421a2019d8547eccf2fa97259814915545a9f37e703e5064394f3df84631fe1ed9fb65b629c45f6b135ed8319814915545a9f37e703e5064394f3df84631fe1ed9fb65b629c45f6b135ed831c73604632541595453761ede33725794e00d99fbe21ba4abe2813519cc5c9378dcfdc82b1c3c9af0d9c6eea4ac95236929ae5f6202b30663af451cb07dce6c45371b2d1bab8de180f92401a1d10aa8c0dea7a93ad0cab20f60ef5b313811d47329aa544e13b5cebde64cae1162212e4174f3cd3b1bd2804089091f449d30c6995fbb756ca3fa0013b8f423bbd6847d553166292f9ade4c40176775f4c4513dd3aed20cb2f026b144650f7d57078a0504dbc64a6de507865e064d1ae33414c1a08002bfe422e8701b22442786a7bb8db74c76e8c3ce615ba877ece293ccd14f578002bfe422e8701b22442786a7bb8db74c76e8c3ce615ba877ece293ccd14f57ebd68691591719d49f9e73a9e4610a3b3361eb96e0be42c8b34890c7d3bd93eaebd68691591719d49f9e73a9e4610a3b3361eb96e0be42c8b34890c7d3bd93eae65ebe9d85f25de1fcf49b9a8bb529b455524a33d8f5959e990db1a518b9f5a3f3b66734796e6d1991d0154bc054a7c4c4669bec4b206c413fc5d81e442fd2361e72233070bec4fdd14acab86dcbaa1a7fd798757af8caa9674842a49fa27cd61e72233070bec4fdd14acab86dcbaa1a7fd798757af8caa9674842a49fa27cd6ae691d1770dc7e0f7715838a44c3400bc209736bfaacfb7c51f094a2883f3e3aae691d1770dc7e0f7715838a44c3400bc209736bfaacfb7c51f094a2883f3e3ac6d150a60b3f94ab2d140a7e19858d9d8626086c51ebc3f64124edc285903f4c9221f4656fe734d614c75d2c12f514cc928e3390fe587a495f498603958bcbcd3e658af293ab46876301ab576429e1604188454a4a54a623d6cc3e435e581b293e658af293ab46876301ab576429e1604188454a4a54a623d6cc3e435e581b29ae6c015380ed07d5a543205be55779f3d14e63afdfee6b64295a92dd418a0230e4567e75a52e098e29a5f8d221103002b5743655643311ca193442754a3d769ee168292dd09c8ad2500c09e2ca703d1d71d11761b6d43ff61dfdb1797e00b9d7e168292dd09c8ad2500c09e2ca703d1d71d11761b6d43ff61dfdb1797e00b9d771490bef460922ab9abf3b9df27d32132da156f8d92e99e62809ad42a62f218c71490bef460922ab9abf3b9df27d32132da156f8d92e99e62809ad42a62f218c7b920e387c54bd43e1cabc26645bc61a5d743190b2d99fef7682157fbe0708bd7b920e387c54bd43e1cabc26645bc61a5d743190b2d99fef7682157fbe0708bd1f2cc2b87b501092e99b168424c18ac94a309af9c03b7ef2d5c260efb54d16631f2cc2b87b501092e99b168424c18ac94a309af9c03b7ef2d5c260efb54d1663f7b681766c7cb25f9f664af66f15a8ed0d6f444a1218deccfae76acfe487a091b3fdbd1a1b976ee407fd973e774e5042c7440be94b04dd9ed08afb3bb67bacf5f17dab262ff67dda97764e43e54197e1bc64200c481f69fdda29122b592621172eb89f9fd1bdd193dc3608b6329b0a0627f23215f8a8e10333810d216617797029fb81a0202c82df1c22858ea92da9867d854a33b4ca47c9520d6dea8ce6304b29fb81a0202c82df1c22858ea92da9867d854a33b4ca47c9520d6dea8ce6304b5c69a6b80cb703b5e59c4a0ae6dc85ff218d7a968761e28c1bd49a5a5196c1655c69a6b80cb703b5e59c4a0ae6dc85ff218d7a968761e28c1bd49a5a5196c165c8a968ac523d974981731a613365585e64fd3150b15d1a6b4765e65b3eec1f67c8a968ac523d974981731a613365585e64fd3150b15d1a6b4765e65b3eec1f672a9d4010492150cfb71f7f50363762ec1b867cadba57da13fff40b0a7fd67f3c4576e23ef946a4d8329c7d14303f944ced272d7ec48e84af125e22e3dd401008d5aea5e8848bfd6b6cde13b5d356b8de764a23e406fa3cb56045a83b6b9ddf8ed5aea5e8848bfd6b6cde13b5d356b8de764a23e406fa3cb56045a83b6b9ddf8e0aabad31bb11cbaadab16aa06cce41646485100c4d0756deb18c5161e861eff80aabad31bb11cbaadab16aa06cce41646485100c4d0756deb18c5161e861eff8c1eede67724d655d845eb060a07485611d52c8af5caa10773aed8d39efb709bec1eede67724d655d845eb060a07485611d52c8af5caa10773aed8d39efb709bef41997f06aa33e05715cdc65f6b1d294ae8432363189ac2e6a600297ca7cc0e5ff29d733596ada36bae47bab64dd8696a946678e9caf5659216d3a1677122a5575a1ad8d7e2d3cc8815e1ef1f36c0272898d46958274fb4ce5a8b5615046551f75a1ad8d7e2d3cc8815e1ef1f36c0272898d46958274fb4ce5a8b5615046551f83855d4971f001f8b7e56a4ca56e479d98a3f104fe7f6d7c654ee76642e81e7925816c41b383bc59ae19c0a20f9b19a8c6492e3d45b11d682b6f5e5651f69ff75d1ee6db91b073205db537abacd1e2c1d2837d0b8d933ab80c2d91e0e38353ec94bc4f9acbd916249c3d7916355158aaf7c2939a3012c7f79d9611298db8fe51a6b7f20981bef126f9510544e75caa896049d9ea1338be12c7ad3f02768d5068a6b7f20981bef126f9510544e75caa896049d9ea1338be12c7ad3f02768d50686759aaf118d3b9fe0cc1c37a8705534be2fb38e8c2f0b3d2b3a7e1c80fe6d2203425cb60a46cf5f6bfa0bf9c3fc069d7e598713fface8f6b2ac053c44af07b164a2343dc7f5e1cb520c0fb48fbf8b0c2ae7c5954e9b45b4aa3217f809c57ae0c4a2343dc7f5e1cb520c0fb48fbf8b0c2ae7c5954e9b45b4aa3217f809c57ae0c30dee0af60aba506a770a4f4e7316db4e15b086519f7a743c9bb16cb590dad6930dee0af60aba506a770a4f4e7316db4e15b086519f7a743c9bb16cb590dad6996789d085c09456d13c727516a8c1d4fe81802b8ad5dd2681346499f4fb5eba047bf51957090a466d15b96f507af1b365a348411057c9a1a46c0d955f516a95849b06e6b4157fa2a214f24f525473493620337342b0813a4ccbce474541cf55249b06e6b4157fa2a214f24f525473493620337342b0813a4ccbce474541cf5529f393dbaedda12484e9c339ef0ca509b33563e8483de4b5187ee24aeb492bdee9f393dbaedda12484e9c339ef0ca509b33563e8483de4b5187ee24aeb492bdee46fb7c631e237adeda23761db0033012d987e0e1ca435892503f1c4c78eac76746fb7c631e237adeda23761db0033012d987e0e1ca435892503f1c4c78eac7678202591051ba8acc77b8d0c1a5b8bf557efd55e8a9f9fa3a9b27fda292b2252b8202591051ba8acc77b8d0c1a5b8bf557efd55e8a9f9fa3a9b27fda292b2252b1b1bc92b4759b946f701d00e013018500ae46452102bed321adc2bf430b970f11b1bc92b4759b946f701d00e013018500ae46452102bed321adc2bf430b970f17b538a2957b19707189f27a9997fd5ae842eee9b165e7ffd81cb374b009eb1c67b538a2957b19707189f27a9997fd5ae842eee9b165e7ffd81cb374b009eb1c62364f52d37a6c93b6e0f8944be1ac9d0a8c0c39ec82facd21a3d0d033d4f4975b3e203198e78fb0c6aa6f386c89b3f2eb81bea7be209fe09e60236111874765d02fd9719455c12d21397a71e86d2dc79ed757ae9678ed3f754fd11f247f4dc6502fd9719455c12d21397a71e86d2dc79ed757ae9678ed3f754fd11f247f4dc65d67ca7f1cae1fc8e34160d8ecbee2c7789f8f372d2e965d9617e9d7cf968a89cad97cae716c1f83603b032c36f5072c2c0b32ae9dbe00761606f448fd64e70de7d90371e3cb03ca2cb8ca5008a775fe494c7686e2c03e79f854bd5cdadc3e3d574be9f0df92f31d56f270f3f36498c815fc9242bd957e5b6a57aff43fb09ae742eb4dc6d652c5450e4dacd662ede51aad3550e0f97e00bcf3b9a1751f6f8d084d7c2567eb8d0689132d727883c6aba5be8625d5d7c70abed87364e5664fe84f5a38a68cf3700be79b333f19ea24c959bc38ee7d00bb95a166435559c6c0a1a4ef9a2511b633dde9ea4ff84bdbb7b6526f6fc911d91fea26b3ed73d004777d79663fcfa6edbdc21b0f0e0abfd8c78c2e3d88403edb6ddcb4de76d0cad192f5d3b63fcfa6edbdc21b0f0e0abfd8c78c2e3d88403edb6ddcb4de76d0cad192f5d3b30496a9d0fa7da3261fd2dd631f855e62081ba96833c8f9b2347f25eed70c6ed2d7168a73704769e43be8f1f7a6272b39f9fbbf7e1b563dae48ab2cf03b6b312a12ebd5cf13485d0f0509f01139d1ba07364a24670ceab8ac91a3c0652accbf070da56fe4f0a207729877a53b52172d9a980a3efa78634092c6e0f972bd0e84b787205b1037173c3383b9a2c229b81913da95bfd1e1473414575271a64b477691c9fb3082300cbfc55b4a7af758ff46acd9858601f8fd1e3e89e62e910f9452fa526e9ffcec2060b0aa455c9583a13e96f2c6e9b339a28845637e897a704076efa232ec1ab2f9264cc4d0066039a892bcbcaf519a5080453a83c2ded701b4efd88078ce4e8e0bd6ed0a47daf411442cafd6b9f85ef64263862a899b5a26b875e0b27ae1934bfaccdf35ebf300fda8c4fd8e4cef55f4d8d8959c914728806f37112c2bc7273ad3b1ee44340e64b089b730933a7a79f3168db4624f21d93bc43e3efc6895e9a84b8b4b133dca123040c6a60cc804264e6d887e005b89ebfe39467e4fb00500fdf2bf10435a6707f9e2ebb4fe397b9c58f6a1c21bea5a7c1dcfc12e286ee72a89198b787fae7e9a5688d7b598d6aa9973e954826981989b1e84db10606f6db13befe7172f043d72a38454f4288222044d7ec4b8741af6350afa211320f0e5faebded6a424e2d7b5792a490d0a87c6b9d5f975939fa41f3a1af65f51c0eb6dccbf69990e638afc164d0c36a44f42fa107b0c414f65145904f1d2abd328db3d04427aeb307ba8589caf502224fa2d4797b02a266cf9049331f01497156c706ee3ece581e755faa4937aa4141e278483f857fdb9ba8ea1d9afd751a9be58f0125e0725d94df8850133456382a413e87eca98afaf6c57fa15352e6d91ab6e0ad784d6f508656ad9b9bd9fd003ee760eef84e2e626490c095861320040d7bab67e53d8964a1e98f0efac27e5840e1a1f1f3cc2ec5ef89d5baddcd9fd9f2dc2a87875eb66037f5971f69d24ffc1edd84e4945372b2ceb677c29c8fb4cdc3849458a4a790bfa05dd8b69438f5742ff6b4797108baa82080f5da1f87374e8ccd7214e8801a8250014ce7e73d06aac9211752f03ae7c6105044764c4eb5a4b923a272b8550bd26b236bf0589ba6f35c77db6dfa94a1dffaf52b38c5cbfcc564e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855198b5c6c660bcd3171d08ca4090d03bc1d91f920ce04c124656369ccfe3971c0f08f563ffcfe98e1a90b8f8fe651add0b2946d3dd891d798a88e27ae53fa271eb73e5bbddbbe65b916d8c6127ef0a410793d8c987ae80526dbcbdd73dbfa2358b73e5bbddbbe65b916d8c6127ef0a410793d8c987ae80526dbcbdd73dbfa23581d83c80c6235c04c14790e502996512817daf9437998c2aeaf7fbfa61afd5defc30c2e15ab3077fde9769e084be95c82c27b2a2b74477ab1939aafac677e87d9e25c5f12d85cbb6973bb5256e69937764b293ae20f53a6e868770191a15b9efc98cb50cad8fefbee84a486b1e54f012440b0391a2a599fa543794766fe83014a56df06171bca51a6077749d1b6b22561768218eff31b5b3f3654702a744be08956df06171bca51a6077749d1b6b22561768218eff31b5b3f3654702a744be0898d779730eb6e363cda5bbf8293145a1d8656e50d6c6280cf66bdbbafbf9a32ea8d779730eb6e363cda5bbf8293145a1d8656e50d6c6280cf66bdbbafbf9a32ea3df4c074f829b9ea2339bca9807b4bccad9468e4a1060e51ca569b21a304da913c3d2872ba6ac0d98008667d3c91ec420b50beac9283579a2aef95e5c29554998d5479c6de1c7577077feefdeb65f4acf4456cba9877945cf52725a113f03363c03d04fac6fff2fc307fe9e4600dda0be7bf728d66f50a70db9a12367ca7e31a37a263ac842309d272d1ba0a229f07724cb9b66fff2d20ec7290f3deb13fb20558e003c6c22e982d9c037be2bda41c43311bc96fea20a5ed8498fcad96ab323b4cae16e32c01d4bfd7ec466a9361a6c27bbbbdd429a25405e43b505b2364e71a9c1cdf7d41c80161d38b58c6f734dcd76951d4d103dbee85441ced331eca8b5a8087586748874658224c43be7eda1b5003666809a34e735ce0996331a3f53a7449474b10353f1f6dc19cdfe462c2f98431e7ea502f7e4360de8197b7a167155760ee331a1a7c4811626e1358bb5d99df16489af1a27167d37304b721288f81872c71770de21b25540f1ec1f1d56e7fd1dd90079bbcc31dc20af6c3713ccc02287ea4ab800b4dad678931b4132e226e08ac941ae50c7b2ac8d1d1f145c1b43589882b95453d4d70f16f80bb1c5b2b4bb5f6f91e6035989b811c4c1f62a7003a17c8b96d1be4efec1c59660453bd50f80b3f8b9dea912c81920daa9ef3456b11bb6885cd6d07ffef8221e5f469d738c77a0dbff9867df64e9482234e6a3a7ea5013af4a75b267a8289ac89c1c2831112f46deea5129b18bc4b2b956dd888545dc7169fa33bb1be908020035709114af185d7aa502c3ccc8b254b82345dd799c418f40416a18392f62f86765b089fa63edf1f4c58a2de0dd740c835d9593f07b2293a297c07f9a0550ebf62fc4321534edc0b2c03f46db327999992535015c3ff48bce38a7ac430ae3f4255de03389f18043f31ccd5cb24fd80546f4a372938bde029687084afa62ae26f8dbe23ba39df7a24701d58f39ec67c31f049f9f9b3d16206f7048677158dc464b41c59c34756c7fc183f92465419e9033332a62c535bbca9fa919a473ec1798fa4de29e79f64a47e2c734246e6e069423b31d1935a537d28ed7a1f855c45eecfda8ebb8c3e1e315d4cb952bc5bffb1b4979949429eaf71bb3323428736f3a9bb8c5719ec1737f3c348c86ffa96b50ce06aec90deb050c3e315ef8908d3ce590a3a2dcb3db6ab67746e8637e4b675058ffb9d4d035d358d98e23dad20fc06a91dc2f34a5b04b9f34469fb2ab5dd9fd0dcc5682346979ff9745e0334c54eb9b272b05d58ba8203aa91a1cc40bb30320af2be4c252e5654bc0500b7da3f840f58e0349919b90e9c3f5aa998f42b254fd6c18378c1702e8e815a06671507d8b66d99a5bc1f3d8e3917d74bcb27675adcfd3e9a8f3c754dc01319cf560cb5090cb09506206ff4e1c7b004842dd77b2052742d750df1477a6bc03967c91003595c5d602988175d1024a73fc1625c7143c732d1080a3dcecad1b07b372f9eda0adc543f2dbb7354391458fd5b22a9aa3aad8239c43510441ffd47167ec3f2d5c56d420145210a96c77dd93f4cfced71386a8abec817e9a79101ca39d68701369fc1d18393900005b5bc1370c852daf9cee22d58d441ec0520f86a62c52ea66058861c0fd9ffddb9e2872fe6937b1285fe321cf71d43b3759f83041dc903a793803af9b3c1f49b0aac64ee8965fe2e2d8f7d8dd5b85940c7b37325c1c2379a685da3fd2cee3262b757e0ea58b498bd2954f24f500a0b3b085a0a59ae1701f649d0553712a12df239a997ccd533c4db926d840fd1690450d17793f873249e3076cbe17f480c5ef3188088b8ee62c9b859a3000d761517417cf0530f1ab4d8102b25607f3069f748c8d85d3aac0e3079be87c70ef79e03470dd530d87e331297a8407c2c9a27c022842547e65b226ad44b5ad429211b0f5d7bc66ed1396597035f8b909e462a5ef13cdaea30a6747d783141627a62b9a01522d17c6df421e413d74acf69ff459a6e1b8cce3963a2e1f5b7b5a87196545717cd38dd62eb28c7b950df204a1d054f70c5b086083679716630c98e850a4f9aab654d534b5c8ff747781a881de5fd20bd541f180056f2ee43704c8033a20b9d26b71d489ac07b0a7505942f451ca214256e390d9087d95000ed0be159c8824dc3c345ac8669406cc8a3948bc4a912b294bf5cba063a526f533a9392a7f4cb1c69a799bfe24f39f18a22f6134acf5dcbeb977ce6da90ec3081adc86f8201ae9c34b8435a9f1183fb017061e3332d0609dfcfcdbca9fa0b9052c29b983cbd1fbaa17fc34db1ceb037696ae098bd567feb2f775807c7852cd50340d2a23561cb150326ee9529ec80088e0674857fcc221fdbd00a732afc4b5c74d2d2bb5e47e297b781cb695d2c79c731f177d3e03fa7a203da7cf87b6dbc8895a276cc371c304d3a972c599928b653e41441328afc191961a8d4a78dde735729b4ca284cb7430eb8ff7b8762dcda987a5a2e4cec56aa7d9a366f10c7c8bb053cdeffd2a91f6cc737c5215c233e8c7bd477ec1271860753c6538e29c2bae68f13cb42503e21b5fa9d04680363f623e964ede68e348c3a6222afd6077d8479e362b2ff410518c98e02b678e51ef623e964ede68e348c3a6222afd6077d8479e362b2ff410518c98e02b678e51e7ad00e78fdbdab2904f48468280dc2827ffbd46cd9ec31fedd8873b44a4392c87ad00e78fdbdab2904f48468280dc2827ffbd46cd9ec31fedd8873b44a4392c845cd84d963d3ce5fb309810b68ae10dcc14d7584c032be70c6832456356599ae45cd84d963d3ce5fb309810b68ae10dcc14d7584c032be70c6832456356599aeef3f1e58a4362fad2eec39b69a6a78530ba7abf1ac70d0361162114248744841b0dc70c12db488b943fc41a53eef0634823b927470bbbbd10c2c5c4b4e907f01b4fbb6581d14908e9dbb71d67986e526b7771bc3f2bb040e40ce2182c5444e10b4fbb6581d14908e9dbb71d67986e526b7771bc3f2bb040e40ce2182c5444e101f80fe724ecd7b831cc1f50fac400e5a0afd5eac8779810940ebc9c76d1ed7b11f80fe724ecd7b831cc1f50fac400e5a0afd5eac8779810940ebc9c76d1ed7b1d0e70264d9d333f5cc533968a191a6a2afb92aab5b559a73f9d7be7b89a64d94d0e70264d9d333f5cc533968a191a6a2afb92aab5b559a73f9d7be7b89a64d9434e0013b09adeac8aaed895ce7e007a83f2986dcfe86e1b1d9e520db3c5bbe0234e0013b09adeac8aaed895ce7e007a83f2986dcfe86e1b1d9e520db3c5bbe028e7e2a5479f6b1d587c4cdcd268aabe3ce9025c4dcb02f258bd5280d4891d7998e7e2a5479f6b1d587c4cdcd268aabe3ce9025c4dcb02f258bd5280d4891d799ff92f462ea214de21161e1d1b001c058a5e40f433c3f237de5b647c180cc1938ff92f462ea214de21161e1d1b001c058a5e40f433c3f237de5b647c180cc1938a8118afafd2cc7b18406448fd8489b4659b724f9f7c74e3fbbfa22db033be38ea8118afafd2cc7b18406448fd8489b4659b724f9f7c74e3fbbfa22db033be38efd84e1bbafdc06fafff70ff6713dcd9fed66564532c3265616f31de7b65a2407fd84e1bbafdc06fafff70ff6713dcd9fed66564532c3265616f31de7b65a2407e9e32211ce08a7dcc3aa2f28c5cdc6ed23618702602f29b34491acc9b513aa9be9e32211ce08a7dcc3aa2f28c5cdc6ed23618702602f29b34491acc9b513aa9b3cc46ae08d1390413281edb1481fd2ac97603fd5f360133d1def08c0463391b13cc46ae08d1390413281edb1481fd2ac97603fd5f360133d1def08c0463391b11f4edaee523148391c8ca89d6bc8022b4e130be67429b5bf539238f588d88e8e1f4edaee523148391c8ca89d6bc8022b4e130be67429b5bf539238f588d88e8e82b3b95fe08c1844aae98b973dac43474b4221a17a97e9d3c2f40690f174b96a53fc4d97ac81d7bcad8e16f34706ca977f142cdae9e21aa31e4629097d16249bb38b19a77186200a71452de98c452e6941fad3fe8ef426905bd78c4ee60523e8a254be68eab8af2fa2104f0ddb3b42ca372669f4d6182e77892740d594461306b9beef150fc8e517366399b66b41b87049e2718fb38d6ea0d81e33de9ee94e4eb9beef150fc8e517366399b66b41b87049e2718fb38d6ea0d81e33de9ee94e4e991cff2bb33adbdf9c444aeb96c25eb7e0c034ae55fa1004133f9803138a863db74843da283e0b00f74bdbffb4ec686f97a24c5ff8d80be489316eead071647b2a39894dd98b7f8f083263eb02da63e6a20d2b00b222d18fbbd6e976cb9bbe9e2a39894dd98b7f8f083263eb02da63e6a20d2b00b222d18fbbd6e976cb9bbe9e6695aef78f2dc2e919e7c06f83e2d9bd3dfdf557167fa99983eeb26cc4c4e6716695aef78f2dc2e919e7c06f83e2d9bd3dfdf557167fa99983eeb26cc4c4e671e3f2eee21942296d0ba1055c4903780c668fe8f16922565b761c5f8cb90f5963e3f2eee21942296d0ba1055c4903780c668fe8f16922565b761c5f8cb90f5963f5839f72d8c7b761de4d0a57bfacc88570638fe59aaf6c98a166df1c6e453530f5839f72d8c7b761de4d0a57bfacc88570638fe59aaf6c98a166df1c6e4535306f3d3b53bcd10fbd647ff8cdf591277488104710e5405e2f8a5fff76ae90b3366f3d3b53bcd10fbd647ff8cdf591277488104710e5405e2f8a5fff76ae90b3362b1bb437f2f77c1f65b41a806b41774b24283ce553e3a691a6d75e3f04541ff62b1bb437f2f77c1f65b41a806b41774b24283ce553e3a691a6d75e3f04541ff6a2c039af7216c761d6d25a3bebcea6b84c8b8bbce406534876146b9c3be96ee3a2c039af7216c761d6d25a3bebcea6b84c8b8bbce406534876146b9c3be96ee39628b2499999f5877350254ba95baffe98176c4cb027a6964ba2d7e6ec05ece79628b2499999f5877350254ba95baffe98176c4cb027a6964ba2d7e6ec05ece7d14ea563c6c7e7987dcb74cfe36e140c122752ee5b7cc8d0c70b557bd272324cd14ea563c6c7e7987dcb74cfe36e140c122752ee5b7cc8d0c70b557bd272324cdca0a1191ea165c1d174187aa386b25b5327c3a49ce79a24080dafe2a4528e10dca0a1191ea165c1d174187aa386b25b5327c3a49ce79a24080dafe2a4528e108718238ca7ab2c1f29f4c4f4cc9b4c912423634c21b116e60510287c7623c5508718238ca7ab2c1f29f4c4f4cc9b4c912423634c21b116e60510287c7623c550cbe99ab193cb11543d1e9ffc771a5e7ae5653bd59ae572e44d2c66f2ced932f8cbe99ab193cb11543d1e9ffc771a5e7ae5653bd59ae572e44d2c66f2ced932f8d751d4bca176f5b28dabd0a09980119d3e9eb9b39b11f8a13f8ddce1f5ecdea5d751d4bca176f5b28dabd0a09980119d3e9eb9b39b11f8a13f8ddce1f5ecdea58afc3b62626cad82a9313aa146c4c600c198ba5d6367ba2da5a9794273d2507c8afc3b62626cad82a9313aa146c4c600c198ba5d6367ba2da5a9794273d2507cbdea69ffcfcf67b0d5a2fb8ab02225c1a140d28c68abab514e8cc673cb10bda5bdea69ffcfcf67b0d5a2fb8ab02225c1a140d28c68abab514e8cc673cb10bda5fb04c8ca68bebbd54e15b533ae51f8cf294e56030ab671035d4459ea8f3ed27bfb04c8ca68bebbd54e15b533ae51f8cf294e56030ab671035d4459ea8f3ed27bc285564a8977dbf5225995feaec66b28f0679de0cf785c96ede966d70d2d9402c285564a8977dbf5225995feaec66b28f0679de0cf785c96ede966d70d2d9402a390cf69db9068cf72985836bb3f8a5f12ec69a7beabcba2916e51cac535dd25a390cf69db9068cf72985836bb3f8a5f12ec69a7beabcba2916e51cac535dd25b46f433a54802240102aa1f599ff09842d008ea584ec15c2f1b290f7d53666beb46f433a54802240102aa1f599ff09842d008ea584ec15c2f1b290f7d53666bec73f09eb97456d9ff43f81773e59c7731d1fc591e06f651f6f20137d81cc025cc73f09eb97456d9ff43f81773e59c7731d1fc591e06f651f6f20137d81cc025ccd1ffc780e160aa5c29ebe0fac92b00826abcab725f182c21917cd7d1700809dcd1ffc780e160aa5c29ebe0fac92b00826abcab725f182c21917cd7d1700809d026e02f2dd44e9d0edd0edfa81d84658862ce8253ad75b26f62f00c1e9728239026e02f2dd44e9d0edd0edfa81d84658862ce8253ad75b26f62f00c1e9728239e2ec196783b8f5506bb3a874232b4d61d295ac922f11989ca4b5876bee38e3d5e2ec196783b8f5506bb3a874232b4d61d295ac922f11989ca4b5876bee38e3d53901354eea6e81e335430884fa595739287305c6fcef97321e86f9aba5f4f4d53901354eea6e81e335430884fa595739287305c6fcef97321e86f9aba5f4f4d5911c04032cfa99e2b59983798c0b2ef16261aca8eb9318deab41294a16504dbc911c04032cfa99e2b59983798c0b2ef16261aca8eb9318deab41294a16504dbc3557a7ddc1a3b6ab572ac5b41bccf10c4aab6ce41c44cc8d77450bced8e68fe73557a7ddc1a3b6ab572ac5b41bccf10c4aab6ce41c44cc8d77450bced8e68fe7ade5322076382fca683bd86cc52312736adadad7b06100b13ae2df7cc15c3e78a11e6ef2c9e0946e4041d06d3fbcdb1b42ea60697a050cff77726f50bec735b861cc325314ff629dd3de522e913484d4473121376869225486246d899a15c58c61cc325314ff629dd3de522e913484d4473121376869225486246d899a15c58c4f0267b2c45d117fc038833e983cfba16d8657305ad33737a83e1046606acacd4f0267b2c45d117fc038833e983cfba16d8657305ad33737a83e1046606acacd3667032b91ea60dc961a950c7f2c1b8759195ac3bed6142a2ce0bfd9a84c3a26183f5878329bf55043a3e279aeb0a15f5316106c905ee47d1ed9db860fe260b7c04d78d356b2ed52034d860a6b478d63f3950626cb0bcc0d37fb26310f4aa930c04d78d356b2ed52034d860a6b478d63f3950626cb0bcc0d37fb26310f4aa9303a00299b4e778f4485e9acf279d77238987e58ba1701ecf750b60d3882ca37013a00299b4e778f4485e9acf279d77238987e58ba1701ecf750b60d3882ca3701a6af46ed966b08210158e156bcb9a2bedbbc6fff59005209534a1050c1c7b9d11af4354a8d39804c65d69c341f13b8ca97eb4fe11f9d50b005556a812beae739447f26c6abf772aed2adcb8f4f895e4fd4fce926df89e389ae5a9889b4e54035c7e2713a211b68e511130d905c12cabc64eb9639fb9abb3c7ceda38e599ce002ec84a345526fe50dfab3e9e22a5de2736650c0fe64a3ef7f56e9f4916fad1786a54055c0ed13e2d47b70031ed40c90ab44209daaf7e6772fa836c31ac0e25dba828be1d184deaf6fa6a5f87153073e7d06f55a7a8c90492ae63211a36d278751331b8cad6080477a7bbc73c575db566b6b90c6f5d33ca8e46b06d3fc9c7267406c7c4d9236586eae4cae45900bc20ba13aeaa6837345f0ab5ad3858128e83bad8539e278046b0313becae15e329a63e309515fa82fe910b4f3d84b6aeaecf944f35f09e044ef7d59b2d4d86c78b1ad8596896fda5dde8660d0e41bbd8c786742860875d0087287e3fa303b8530221c9c15e6bc1e6d25788d09fa4259a1413acb1996c32a6341e3ccca0ae5fabafb9225100892f0eaf926e7dbb0cbab33d4706e6ca54bda1cffe9467bf4cd605891f2a2e7f1c660fde7e5f434073ba5c8b39eb61db23c6b0f475aba08e92804be5f12c7a15d903b300825cc6d246e272e68f0b41d433ac2277fe95ac2ff7388f03b421e721056cf39de8c18097f7faa2cc3fc301d433ac2277fe95ac2ff7388f03b421e721056cf39de8c18097f7faa2cc3fc301ece261e9eacf1da0cd3134cfaefc15253f9997ca5945e7ab9526df16c7078311ece261e9eacf1da0cd3134cfaefc15253f9997ca5945e7ab9526df16c70783164c24d8ce95310bfd95ad4db0e8720a6a23c627443724c393a960cb93ed076e73f35f05a6095e6e9b73eccf42c7876d8d95c85f9a3114a8062b26cdc1309e63579a9f132377e6c99c4a23cd6a446f95f3a935fb3bd48319e8fee5fb7086b10cb79a9f132377e6c99c4a23cd6a446f95f3a935fb3bd48319e8fee5fb7086b10cbf99885fafd6b4905746a66c3614887444d496e02ed79bedb185559d1ae435e1ff99885fafd6b4905746a66c3614887444d496e02ed79bedb185559d1ae435e1f1bfd57247d5195ea5cfa0cf8f065862c19ac6e77e6416a45ddcee9338cd4b3fe1bfd57247d5195ea5cfa0cf8f065862c19ac6e77e6416a45ddcee9338cd4b3fe9aa132acc40bc601df83b95bf2a84b55f169c4f4aa06e9dd0782c7f6e72755059aa132acc40bc601df83b95bf2a84b55f169c4f4aa06e9dd0782c7f6e7275505a6f7fdf6a0cc16f5773256b9555ef9f94456c6e55638c5c448752a5d4b543c2ae4a68495c3b4da7b723f96a19e6307c50ac06d28744b557e2290451f203f87346e70f07cbe750ed7ffa95f83afdbf2427c003e9f0d89b3c8ad6f0671f5eae7a56e70f07cbe750ed7ffa95f83afdbf2427c003e9f0d89b3c8ad6f0671f5eae7a5427525ad7bcd1221a2793ccf88490da274cade121453c513c4e34a63d07ee440427525ad7bcd1221a2793ccf88490da274cade121453c513c4e34a63d07ee4406dc9f6b9701fe4d2be4436642aa2a85ab9b1d22670766fa6c23252e8ef13cc8c6dc9f6b9701fe4d2be4436642aa2a85ab9b1d22670766fa6c23252e8ef13cc8cc345dc8af99cce3f0f7da1bdae8141bea504a4217dc59ee43983ee695922fb35c345dc8af99cce3f0f7da1bdae8141bea504a4217dc59ee43983ee695922fb35a661d6ba8cee756acb06ce48dce0805eb50d01548ae94188d8e000c74f6c2205a661d6ba8cee756acb06ce48dce0805eb50d01548ae94188d8e000c74f6c220505e1d1f80450381a2cb7659497b9e697ff39a6a652732502d76a254087e206a805e1d1f80450381a2cb7659497b9e697ff39a6a652732502d76a254087e206a810e00f66e7500554b4fad892b9b01d3c8b700548a5ea66b435b51d6e4fe2886510e00f66e7500554b4fad892b9b01d3c8b700548a5ea66b435b51d6e4fe288653588b37c682525f86ab7f18cb524977fb6105c81071c2889fd8fea68b55e88e20721d9c25035fc9c2fb2aa1773a4295abbb4e9638324ac2bf379aa9f1dc5ff5a0721d9c25035fc9c2fb2aa1773a4295abbb4e9638324ac2bf379aa9f1dc5ff5a8766a69faff5e9372aaaa7885390d98cb12f06a83418c6a56a152be2997d59f08766a69faff5e9372aaaa7885390d98cb12f06a83418c6a56a152be2997d59f02332577712199047e9e69b74bab20bd3302020b45544486db80f3600d7934e162332577712199047e9e69b74bab20bd3302020b45544486db80f3600d7934e166a279ae2d19710a56bd8d85e8314743941f8aade161bfa669a6382a05cb1c0886a279ae2d19710a56bd8d85e8314743941f8aade161bfa669a6382a05cb1c088bd30a7885370637b8781f4b508aa210c1e8d90a7df39a6a2f98329b129a7ba0abd30a7885370637b8781f4b508aa210c1e8d90a7df39a6a2f98329b129a7ba0a138d348bd5a87573f4e58840415a4e99c6d17e1e6d793462405c8486ab867818138d348bd5a87573f4e58840415a4e99c6d17e1e6d793462405c8486ab8678187d2b5e0367745946887ff18e59d95c785d024a022fd7eb3a6c1e937a53bc064995ad9e1e5bf23742662caa15c7a746a2537d3e3d0f026e6890ced3e2db3a87a40194cf902e8c42b5af18bda9cf8e722c73431df68fd5d0af2a158041b89c47fc0194cf902e8c42b5af18bda9cf8e722c73431df68fd5d0af2a158041b89c47fcd7c324489a57905b0c90c5daadfe9e1a3b5372d540d894f21339714364519a35e416d49cc493fa6f273bd01659f9ee01f77607dd2c66b263eed95312d4678346a7ac1348c17c67f651765db95c1234107cb0a3d5b8d2e4bd0e612fd5e2cc0733a7ac1348c17c67f651765db95c1234107cb0a3d5b8d2e4bd0e612fd5e2cc073364e56bfcb82a65448351eb4513e2fd8c2a47aff7fa64178437fd9ed6cd6d64171369eb74927d4abdabb1572fe92de46af1cd28f60a9007e5fbcaea49c5483c0e933f0e6e327ad4cba3ae2a7888bcd2cbc0c0de5df3962ad63f7e2a6fa7291d0b9a6c93d150f8a39caf178d04dcdba77481c96fa00130dba765ecb32df9ca92acc9ed495759f7b53cb3705a66dec9920817f7bd89915ba73a56b10b5bbc2a80d5995fb4f3266f35efb9464f8e2cba0209ceab5c1e39e60d3159010275c834e28963a49fb9c56a9dc7632f8b77b343bafc58b2364d03790ffab4ae25d26dad41f06a74f1b637aef6276f004ff2a28512c980e73b1516eebd00768f395cd27c73e3d67fa5f16160d1cc62ff0c9153ad30ec69db1669b415b1b81cf3818fdd2a623b4da1ec1034952cca3e4b78db71d5029f7e158dcfb0751ed4c3853873fa4be247d6b28d970ac5c257ea1188ff0c17b134792254c81fdc23b48e3647c9575ba4cef2adb6b368367516102d17781aa539b083ea5d7a6e6db66b6013a0f614437cc3c22ac7be2682e3eda972fdaa841ae47a448667d0f430dc7b4fc66708d1b26b80fade6b3d6f93709c3304c7c8268ed397eb83b5a62da6a39f095631f5d31a0c2647c2cdf3f694aef39f6afe596bb55c4ab762d03d748c9b12acd7b076b73c2f0801c3f8b8e59cae22c09b1fcba6d96888bf4c71bdfd15e1e35d62f1d177e88099f9a7997698afa7fe59447fe810f89a83576bf71f8b4532ee9b3cda3bccdf75f3259a81ce60820b1a937050509c5b334efdaedd7156c19ad94898605fbdc4fc71e06dcd3ad2c3054bb28462de098e801f09f8175f580639fa0f1d0a2dfc096b807d6164c3ca9f93ab1a4e9ee500fc593ae0f75374d1c5546f2299634271bed352507a1858535d8dbaeff4393c54faf1905a7b91e87a6a59bde7b734a4d0dbf3dfd366422689694cafb46e8a4a404b9687892356207a6add62598b0e47739358334664209ac26beb928f2a336b15d44795b99965ece79dc002833acf323c536e1a36a3e0c404a11f7ef2aa3e588fb9fbe378edabef1d43f770045bdb15669dbe064e9acd6d4d2269be058565a5a892adae981b2b24c77268df17effd7abeb0ba744948ee993a554a50e0da5cf7f49e71a77923de83ee780182cde03f7edccd2c1b7205170b5426618c23152a74d2af67e1f3ce24fe7c130cf6cc629e0cff55cb318396ab6756b36bcc8a1c068af2daa9175ee2bf9f069e670f93fdfdb4e0b4a97e1eb40d67167f8162d623d76c922c7bd66b22f709182b9a60ac105b3dbd53ef86ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508c3ea3ff5654b329c19d3bc5f7481af623c3dded4a6145585499f843ad3d741cd2561b1f5a6c445fe557f69bbef451837bf2c3bb1aa91a250c8adf26e8ff4d0abd77ee8008ed5ca7899282b76ec58204e16ccfc834c4b2cca7194c69411bc2a67e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85565bdbc41a3358108bc7f8542061b1492517ad424e53587ecf580199fe4ce1859a8d79e9dd4b26af8d635f6fdcc3cbefc5fd6d5102adaa9569d933f3ff9f132693e9dac7a21a1bb7f2f1412da2b330da846d7def3b46a03a0b3026c3a17295cdc995fa3d401273cd0ced8c8bff3578c0badafac4a879920a6c8bcde384d0d105096fe247cc68e2874245d1839eabafd1bfd9cb0ebdcb437ea85de2b79d8296a49a53e247b0b51ca3cec4ed48502bf77221219949813f246e39ca315010305a4f7cb59f8b2a94d263a74baaf7039f712f871a7bb46db18c6c10e78f197863307d36464a578a96e122dad0feb03c5a5124070599ebcb3120f451b7135d59c6e0128fc0985ff3cd25a67cc2c0ed9151dc3b8a877db2236ddf489e4b25fdc4acc4ed5bfc38567917b302f25bb49ce0166e8c6e8d1a74c7714bbf2535fb1cc1e4b03b8786ab399393419092c184ac46407628350a634f28260144621a2756256da4f36affbc0fb1aa79764781a667cfc19399198f4868eaa6fdf6065222fb0b77fb2b0109b121328c110b3ac95ececba767c02f5601dd213b0fff79eb1c53000998aa5e4e550b5e036620ba17eabdd49ab26eb82b6de1562d5d0c2953447f51175c654cc5be766d248b77cc655f5b2c3b4548eb27838d88c98e515bde9e78b4032c8108d70a9e4440527073eb8d0140566bb8e8e578ba6daddba2d0bfc0841f1f299216a93258ce6d57f04ba3340c88bfe89934bc6b364b0bf981c8c1855f86afeb4346d95cf097dd3b2ac385371f8e24b9dc1b33fab1dcf68e84cd86bcbd1e37d6022a4edb9efdef917377e7ae63e40c9c5c1b78234a7db16415d5887f22e8230dac4c3ea3ff5654b329c19d3bc5f7481af623c3dded4a6145585499f843ad3d741cdrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-dnspython-2.3.0-150400.12.6.1.src.rpmpython311-dnspython@      python(abi)python311-cryptographypython311-httpxpython311-idnapython311-requestspython311-requests-toolbeltrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.112.13.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3f@dBzdBzcHcD @b/.@bOar@a@a_I@__@__@_+_@_@\Y@\l@ZZYtW1@WW_W9@Tto@TAdaniel.garcia@suse.comdmueller@suse.comdmueller@suse.commardnh@gmx.demcepl@suse.comsebix+novell.com@sebix.atmichael@stroeder.comcode@bnavigator.desebix+novell.com@sebix.atsebix+novell.com@sebix.atsebix+novell.com@sebix.atmcepl@suse.commcepl@suse.comjayvdb@gmail.comsebix+novell.com@sebix.atsebix+novell.com@sebix.attchvatal@suse.commcepl@suse.comsebix+novell.com@sebix.attchvatal@suse.comsor.alexei@meowr.rusebix+novell.com@sebix.atsebix+novell.com@sebix.atsebix+novell.com@sebix.atsebix+novell.com@sebix.atdmueller@suse.comlars@linux-schulserver.de- Add upstream patches to solve CVE-2023-29483: - CVE-2023-29483.patch (bsc#1222693, CVE-2023-29483, gh#rthalley/dnspython#1044)- add sle15_python_module_pythons (jsc#PED-68)- add sle15_python_module_pythons (jsc#PED-68)- Update to version 2.3.0 * The get_soa() method has been added to dns.zone.Zone. * The minimum TLS version is now 1.2. * EDNS padding is now supported. Messages with EDNS enabled and with a non-zero pad option will be automatically padded appropriately when converted to wire format. * dns.zone.from_text() and dns.zone.from_file() now have an allow_directives parameter to allow finer control over how directives in zonefiles are processed. * A preliminary implementation of DNS-over-QUIC has been added, and will be available if the aioquic library is present. See dns.query.quic(), dns.asyncquery.quic(), and examples/doq.py for more info. This API is subject to change in future releases For asynchronous I/O, both asyncio and Trio are supported, but Curio is not. * DNSSEC signing support has been added to the dns.dnssec module, along with a number of functions to help generate DS, CDS, and CDNSKEY RRsets. * Curio asynchronous I/O support is deprecated as of this release and will be removed in a future release. * The resolver object’s nameserver field is planned to become a property in dnspython 2.4. Writing to this field other than by direct assignment is deprecated, and so is depending on the mutability and form of the iterable returned when it is read.- Include in filelist directories with their content.- Update to version 2.2.1: * dns.zone.from_text failed if relativize was False and an origin was specified in the parameters. * A number of types permitted an empty "rest of the rdata". * L32, L64, LP, and NID were missing from dns/rdtypes/ANY/__init__.py * The type definition for dns.resolver.resolve_address() was incorrect. * dns/win32util.py erroneously had the executable bit set. * The type definition for a number of asynchronous query routines was missing the default of None for the backend parameter. * dns/tsigkeyring.py didn't import dns.tsig. * A number of rdata types that have a "rest of the line" behavior for the last field of the rdata erroneously permitted an empty string. * Timeout intervals are no longer reported with absurd precision in exception text.- Only recommend and not require the installation of python-h2 because it is seriously broken and prevents any other Python software to run correctly with -bb. (See also: https://github.com/python-hyper/h2/issues/1236) This also matches upstream's setup.py which lists h2 as optional dependency in extra_requires.- Break build dependency cycle through :test multibuild - PEP517 style: poetry-core is enough to build the package - Clean up old python36 requirements: no longer in Tumbleweed- Update dependencies to cover all optional features and dependencies in a more structured way and describe it in the package description.- update to version 2.2.0: - SVCB and HTTPS records have been updated to track the evolving draft standard. - The ZONEMD type has been added. - The resolver now returns a LifetimeTimeout exception which includes an error trace like the NoNameservers exception. This class is a subclass of dns.exception.Timeout for backwards compatibility. - DNS-over-HTTPS will try to use HTTP/2 if the httpx and h2 packages are installed. - DNS-over-HTTPS is now supported for asynchronous queries and resolutions. - dns.zonefile.read_rrsets() has been added, which allows rrsets in zonefile format, or a restrition of it, to be read. This function is useful for applications that want to read DNS data in text format, but do not want to use a Zone. - On Windows systems, if the WMI module is available, the resolver will retrieve the nameserver from WMI instead of trying to figure it out by reading the registry. This may lead to more accurate results in some cases. - The CERT rdatatype now supports certificate types IPKIX, ISPKI, IPGP, ACPKIX, and IACPKIX. - The CDS rdatatype now allows digest type 0. - Dnspython zones now enforces that a node is either a CNAME node or an “other data” node. A CNAME node contains only CNAME, RRSIG(CNAME), NSEC, RRSIG(NSEC), NSEC3, or RRSIG(NSEC3) rdatasets. An “other data” node contains any rdataset other than a CNAME or RRSIG(CNAME) rdataset. The enforcement is “last update wins”. For example, if you have a node which contains a CNAME rdataset, and then add an MX rdataset to it, then the CNAME rdataset will be deleted. Likewise if you have a node containing an MX rdataset and add a CNAME rdataset, the MX rdataset will be deleted. - Extended DNS Errors, as specified in RFC 8914, are now supported.- update to version 2.1.0: * End-of-line comments are now associated with rdata when read from text. For backwards compatibility with prior versions of dnspython, they are only emitted in to_text() when requested. * Synchronous I/O is a bit more efficient, as we now try the I/O and only use poll() or select() if the I/O would block. * The resolver cache classes now offer basic hit and miss statistics, and the LRUCache can also provide hits for every cache key. * The resolver has a canonical_name() method. * There is now a registration mechanism for EDNS option types. * The default EDNS payload size has changed from 1280 to 1232. * The SVCB, HTTPS, and SMIMEA RR types are now supported. * TSIG has been enhanced with TKEY and GSS-TSIG support. Thanks to Nick Hall for writing this. * Zones now can be updated via transactions. * A new zone subclass, dns.versioned.Zone is available which has a thread-safe transaction implementation and support for keeping many versions of a zone. * The zone file reading code has been adapted to use transactions, and is now a public API. * Inbound zone transfer support has been rewritten and is available as dns.query.inbound_xfr() and dns.asyncquery.inbound_xfr(). It uses the transaction mechanism, and fully supports IXFR and AXFR.- Remove skipping tests which are acutally passing.- Python < 3.7 requires external contextvars- Disable four tests which fail on openssl 1.1.0i and lower - Add missing dependency requests-toolkit, and recommend cryptography- remove test depending on trio, which depends on Python 3.7 if python >= 3.7 is not available.- update to 2.0.0: - Python 3.6 or newer is required. - The license is now the ISC license. - Rdata is now immutable. Use dns.rdata.Rdata.replace() to make a new Rdata based on an existing one. - dns.resolver.resolve() has been added, allowing control of whether search lists are used. dns.resolver.query() is retained for backwards compatibility, but deprecated. The default for search list behavior can be set at in the resolver object with the use_search_by_default parameter. The default is False. - DNS-over-TLS is supported with dns.query.tls(). - DNS-over-HTTPS is supported with dns.query.https(), and the resolver will use DNS-over-HTTPS for a nameserver which is an HTTPS URL. - Basic query and resolver support for the Trio, Curio, and asyncio asynchronous I/O libraries has been added in dns.asyncquery and dns.asyncresolver. This API should be viewed as experimental as asynchronous I/O support in dnspython is still evolving. - TSIG now defaults to using SHA-256. - Basic type info has been added to some functions. Future releases will have comprehensive type info. - from_text() functions now have a relativize_to parameter. - python-cryptography is now used for DNSSEC. - Ed25519 and Ed448 signatures are now supported. - A helper for NSEC3 generating hashes has been added. - SHA384 DS records are supported. - Rdatasets and RRsets are much faster. - dns.resolver.resolve_address() has been added, allowing easy address-to-name lookups. - dns.reversename functions now allow an alternate origin to be specified. - The repr form of Rdatasets and RRsets now includes the rdata. - A number of standard resolv.conf options are now parsed. - The nameserver and port used to get a response are now part of the resolver’s Answer object. - The NINFO record is supported. - The dns.hash module has been removed; just use Python’s native hashlib module. - Rounding is done in the standard python 3 fashion; dnspython 1.x rounded in the python 2 style on both python 2 and 3. - The resolver will now do negative caching if a cache has been configured. - TSIG and OPT now have rdata types. - The class for query messages is now QueryMessage. Class Message is now a base class, and is also used for messages for which we don’t have a better class. Update messages are now class UpdateMessage, though class Update is retained for compatibility. - Support for Windows 95, 98, and ME has been removed.- Update to 1.16.0: * various fixes for wheel/cryptodome/etc - Remove all patches, merged upstream: * 210.patch * pycryptodome.patch * readme.patch- Remove superfluous devel dependency for noarch package- require python-pycryptodome instead of recommending it- Add patch pycryptodome.patch to work with pycryptodome: * pycryptodome.patch- Update for the multipython build. - Rename python-dnspython.asc to python-dnspython.keyring. - Spec cleanup.- use and recommend python-ecdsa and python-pycrypto for dnssec support- New upstream release 1.15.0 * IDNA 2008 support is now available if the "idna" module has been installed and IDNA 2008 is requested. The default IDNA behavior is still IDNA 2003. The new IDNA codec mechanism is currently only useful for direct calls to dns.name.from_text() or dns.name.from_unicode(), but in future releases it will be deployed throughout dnspython, e.g. so that you can read a masterfile with an IDNA 2008 codec in force. * By default, dns.name.to_unicode() is not strict about which version of IDNA the input complies with. Strictness can be requested by using one of the strict IDNA codecs. * Add AVC RR support. * Some problems with newlines in various output modes have been addressed. * dns.name.to_text() now returns text and not bytes on Python 3.x * More miscellaneous fixes for the Python 2/3 codeline merge. - Include readme with readme.patch as not included in upstream tarball - Fix a bug in the tests code with 210.patch with upstream pull request #210- New upstream release 1.14.0- New upstream release 1.13.0- fix build on SLE11- update to 1.12.0: * The test system can now run the tests without requiring dnspython to be installed. * When reading from a masterfile, if the first content line started with leading whitespace, we raised an ugly exception instead of doing the right thing, namely using the zone origin as the name. [#73] Thanks to Tassatux for reporting the issue. * Added dns.zone.to_text() convenience method. Thanks to Brandon Whaley for the patch. * The /etc/resolv.conf setting "options rotate" is now understood by the resolver. If present, the resolver will shuffle the nameserver list each time dns.resolver.query() is called. Thanks to underrun for the patch. Note that you don't want to add "options rotate" to your /etc/resolv.conf if your system's resolver library does not understand it. In this case, just set resolver.rotate = True by hand. * Escaping of Unicode has been corrected. Previously we escaped and then converted to Unicode, but the right thing to do is convert to Unicode, then escape. Also, characters > 0x7f should NOT be escaped in Unicode mode. Thanks to Martin Basti for the patch. * dns.rdtypes.ANY.DNSKEY now has helpers functions to convert between the numeric form of the flags and a set of human-friendly strings. Thanks to Petr Spacek for the patch. * RRSIGs did not respect relativization settings in to_text(). Thanks to Brian Smith for reporting the bug and submitting a (slightly different) patch. * dns/rdtypes/IN/APL.py: The APL from_wire() method did not accept an rdata length of 0 as valid. Thanks to salzmdan for reporting the problem. * dns/ipv6.py: Add is_mapped() * dns/reversename.py: Lookup IPv6 mapped IPv4 addresses in the v4 reverse namespace. Thanks to Devin Bayer. Yes, I finally fixed this one :) * dns/zone.py: Do not put back an unescaped token. This was causing escape processing for domain names to break. Thanks to connormclaud for reporting the problem. * dns/message.py: Making a response didn't work correctly if the query was signed with TSIG and we knew the key. Thanks to Jeffrey Stiles for reporting the problem. * dns/query.py: Fix problems with the IXFR state machine which caused long diffs to fail. Thanks to James Raftery for the fix and the repeated prodding to get it applied :) - enable some tests - add python-dnspython-rpmlintrc file - add python-ecdsa and python-pycrypto to BuildRequires for the DNSSec tests - use /usr/bin/python instead of /usr/bin/env python for the example scripts to avoid additional dependenciesh03-ch2a 1720691129  "#$$&'((**,,..0123446688:;<<>>@@BCDDFGHIJJLMNNPPRSTTVVXXZZ\\^^`abbdefghijkllnopqrstuvwxyz{|}~      !!##%%''))++-.//1134567799;<=>?@ABCDEFGHIJKLLNNPQRRTTVVXXZ[\\^^``bbddffhhjkllnnpprrttvvxyzz|}~~2.3.0-150400.12.6.1    dns__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pyc_asyncbackend.cpython-311.opt-1.pyc_asyncbackend.cpython-311.pyc_asyncio_backend.cpython-311.opt-1.pyc_asyncio_backend.cpython-311.pyc_curio_backend.cpython-311.opt-1.pyc_curio_backend.cpython-311.pyc_immutable_ctx.cpython-311.opt-1.pyc_immutable_ctx.cpython-311.pyc_trio_backend.cpython-311.opt-1.pyc_trio_backend.cpython-311.pycasyncbackend.cpython-311.opt-1.pycasyncbackend.cpython-311.pycasyncquery.cpython-311.opt-1.pycasyncquery.cpython-311.pycasyncresolver.cpython-311.opt-1.pycasyncresolver.cpython-311.pycdnssec.cpython-311.opt-1.pycdnssec.cpython-311.pycdnssectypes.cpython-311.opt-1.pycdnssectypes.cpython-311.pyce164.cpython-311.opt-1.pyce164.cpython-311.pycedns.cpython-311.opt-1.pycedns.cpython-311.pycentropy.cpython-311.opt-1.pycentropy.cpython-311.pycenum.cpython-311.opt-1.pycenum.cpython-311.pycexception.cpython-311.opt-1.pycexception.cpython-311.pycflags.cpython-311.opt-1.pycflags.cpython-311.pycgrange.cpython-311.opt-1.pycgrange.cpython-311.pycimmutable.cpython-311.opt-1.pycimmutable.cpython-311.pycinet.cpython-311.opt-1.pycinet.cpython-311.pycipv4.cpython-311.opt-1.pycipv4.cpython-311.pycipv6.cpython-311.opt-1.pycipv6.cpython-311.pycmessage.cpython-311.opt-1.pycmessage.cpython-311.pycname.cpython-311.opt-1.pycname.cpython-311.pycnamedict.cpython-311.opt-1.pycnamedict.cpython-311.pycnode.cpython-311.opt-1.pycnode.cpython-311.pycopcode.cpython-311.opt-1.pycopcode.cpython-311.pycquery.cpython-311.opt-1.pycquery.cpython-311.pycrcode.cpython-311.opt-1.pycrcode.cpython-311.pycrdata.cpython-311.opt-1.pycrdata.cpython-311.pycrdataclass.cpython-311.opt-1.pycrdataclass.cpython-311.pycrdataset.cpython-311.opt-1.pycrdataset.cpython-311.pycrdatatype.cpython-311.opt-1.pycrdatatype.cpython-311.pycrenderer.cpython-311.opt-1.pycrenderer.cpython-311.pycresolver.cpython-311.opt-1.pycresolver.cpython-311.pycreversename.cpython-311.opt-1.pycreversename.cpython-311.pycrrset.cpython-311.opt-1.pycrrset.cpython-311.pycserial.cpython-311.opt-1.pycserial.cpython-311.pycset.cpython-311.opt-1.pycset.cpython-311.pyctokenizer.cpython-311.opt-1.pyctokenizer.cpython-311.pyctransaction.cpython-311.opt-1.pyctransaction.cpython-311.pyctsig.cpython-311.opt-1.pyctsig.cpython-311.pyctsigkeyring.cpython-311.opt-1.pyctsigkeyring.cpython-311.pycttl.cpython-311.opt-1.pycttl.cpython-311.pycupdate.cpython-311.opt-1.pycupdate.cpython-311.pycversion.cpython-311.opt-1.pycversion.cpython-311.pycversioned.cpython-311.opt-1.pycversioned.cpython-311.pycwin32util.cpython-311.opt-1.pycwin32util.cpython-311.pycwire.cpython-311.opt-1.pycwire.cpython-311.pycxfr.cpython-311.opt-1.pycxfr.cpython-311.pyczone.cpython-311.opt-1.pyczone.cpython-311.pyczonefile.cpython-311.opt-1.pyczonefile.cpython-311.pyczonetypes.cpython-311.opt-1.pyczonetypes.cpython-311.pyc_asyncbackend.py_asyncio_backend.py_curio_backend.py_immutable_ctx.py_trio_backend.pyasyncbackend.pyasyncquery.pyasyncresolver.pydnssec.pydnssectypes.pye164.pyedns.pyentropy.pyenum.pyexception.pyflags.pygrange.pyimmutable.pyinet.pyipv4.pyipv6.pymessage.pyname.pynamedict.pynode.pyopcode.pypy.typedquery.pyquic__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pyc_asyncio.cpython-311.opt-1.pyc_asyncio.cpython-311.pyc_common.cpython-311.opt-1.pyc_common.cpython-311.pyc_sync.cpython-311.opt-1.pyc_sync.cpython-311.pyc_trio.cpython-311.opt-1.pyc_trio.cpython-311.pyc_asyncio.py_common.py_sync.py_trio.pyrcode.pyrdata.pyrdataclass.pyrdataset.pyrdatatype.pyrdtypesANYAFSDB.pyAMTRELAY.pyAVC.pyCAA.pyCDNSKEY.pyCDS.pyCERT.pyCNAME.pyCSYNC.pyDLV.pyDNAME.pyDNSKEY.pyDS.pyEUI48.pyEUI64.pyGPOS.pyHINFO.pyHIP.pyISDN.pyL32.pyL64.pyLOC.pyLP.pyMX.pyNID.pyNINFO.pyNS.pyNSEC.pyNSEC3.pyNSEC3PARAM.pyOPENPGPKEY.pyOPT.pyPTR.pyRP.pyRRSIG.pyRT.pySMIMEA.pySOA.pySPF.pySSHFP.pyTKEY.pyTLSA.pyTSIG.pyTXT.pyURI.pyX25.pyZONEMD.py__init__.py__pycache__AFSDB.cpython-311.opt-1.pycAFSDB.cpython-311.pycAMTRELAY.cpython-311.opt-1.pycAMTRELAY.cpython-311.pycAVC.cpython-311.opt-1.pycAVC.cpython-311.pycCAA.cpython-311.opt-1.pycCAA.cpython-311.pycCDNSKEY.cpython-311.opt-1.pycCDNSKEY.cpython-311.pycCDS.cpython-311.opt-1.pycCDS.cpython-311.pycCERT.cpython-311.opt-1.pycCERT.cpython-311.pycCNAME.cpython-311.opt-1.pycCNAME.cpython-311.pycCSYNC.cpython-311.opt-1.pycCSYNC.cpython-311.pycDLV.cpython-311.opt-1.pycDLV.cpython-311.pycDNAME.cpython-311.opt-1.pycDNAME.cpython-311.pycDNSKEY.cpython-311.opt-1.pycDNSKEY.cpython-311.pycDS.cpython-311.opt-1.pycDS.cpython-311.pycEUI48.cpython-311.opt-1.pycEUI48.cpython-311.pycEUI64.cpython-311.opt-1.pycEUI64.cpython-311.pycGPOS.cpython-311.opt-1.pycGPOS.cpython-311.pycHINFO.cpython-311.opt-1.pycHINFO.cpython-311.pycHIP.cpython-311.opt-1.pycHIP.cpython-311.pycISDN.cpython-311.opt-1.pycISDN.cpython-311.pycL32.cpython-311.opt-1.pycL32.cpython-311.pycL64.cpython-311.opt-1.pycL64.cpython-311.pycLOC.cpython-311.opt-1.pycLOC.cpython-311.pycLP.cpython-311.opt-1.pycLP.cpython-311.pycMX.cpython-311.opt-1.pycMX.cpython-311.pycNID.cpython-311.opt-1.pycNID.cpython-311.pycNINFO.cpython-311.opt-1.pycNINFO.cpython-311.pycNS.cpython-311.opt-1.pycNS.cpython-311.pycNSEC.cpython-311.opt-1.pycNSEC.cpython-311.pycNSEC3.cpython-311.opt-1.pycNSEC3.cpython-311.pycNSEC3PARAM.cpython-311.opt-1.pycNSEC3PARAM.cpython-311.pycOPENPGPKEY.cpython-311.opt-1.pycOPENPGPKEY.cpython-311.pycOPT.cpython-311.opt-1.pycOPT.cpython-311.pycPTR.cpython-311.opt-1.pycPTR.cpython-311.pycRP.cpython-311.opt-1.pycRP.cpython-311.pycRRSIG.cpython-311.opt-1.pycRRSIG.cpython-311.pycRT.cpython-311.opt-1.pycRT.cpython-311.pycSMIMEA.cpython-311.opt-1.pycSMIMEA.cpython-311.pycSOA.cpython-311.opt-1.pycSOA.cpython-311.pycSPF.cpython-311.opt-1.pycSPF.cpython-311.pycSSHFP.cpython-311.opt-1.pycSSHFP.cpython-311.pycTKEY.cpython-311.opt-1.pycTKEY.cpython-311.pycTLSA.cpython-311.opt-1.pycTLSA.cpython-311.pycTSIG.cpython-311.opt-1.pycTSIG.cpython-311.pycTXT.cpython-311.opt-1.pycTXT.cpython-311.pycURI.cpython-311.opt-1.pycURI.cpython-311.pycX25.cpython-311.opt-1.pycX25.cpython-311.pycZONEMD.cpython-311.opt-1.pycZONEMD.cpython-311.pyc__init__.cpython-311.opt-1.pyc__init__.cpython-311.pycCHA.py__init__.py__pycache__A.cpython-311.opt-1.pycA.cpython-311.pyc__init__.cpython-311.opt-1.pyc__init__.cpython-311.pycINA.pyAAAA.pyAPL.pyDHCID.pyHTTPS.pyIPSECKEY.pyKX.pyNAPTR.pyNSAP.pyNSAP_PTR.pyPX.pySRV.pySVCB.pyWKS.py__init__.py__pycache__A.cpython-311.opt-1.pycA.cpython-311.pycAAAA.cpython-311.opt-1.pycAAAA.cpython-311.pycAPL.cpython-311.opt-1.pycAPL.cpython-311.pycDHCID.cpython-311.opt-1.pycDHCID.cpython-311.pycHTTPS.cpython-311.opt-1.pycHTTPS.cpython-311.pycIPSECKEY.cpython-311.opt-1.pycIPSECKEY.cpython-311.pycKX.cpython-311.opt-1.pycKX.cpython-311.pycNAPTR.cpython-311.opt-1.pycNAPTR.cpython-311.pycNSAP.cpython-311.opt-1.pycNSAP.cpython-311.pycNSAP_PTR.cpython-311.opt-1.pycNSAP_PTR.cpython-311.pycPX.cpython-311.opt-1.pycPX.cpython-311.pycSRV.cpython-311.opt-1.pycSRV.cpython-311.pycSVCB.cpython-311.opt-1.pycSVCB.cpython-311.pycWKS.cpython-311.opt-1.pycWKS.cpython-311.pyc__init__.cpython-311.opt-1.pyc__init__.cpython-311.pyc__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pycdnskeybase.cpython-311.opt-1.pycdnskeybase.cpython-311.pycdsbase.cpython-311.opt-1.pycdsbase.cpython-311.pyceuibase.cpython-311.opt-1.pyceuibase.cpython-311.pycmxbase.cpython-311.opt-1.pycmxbase.cpython-311.pycnsbase.cpython-311.opt-1.pycnsbase.cpython-311.pycsvcbbase.cpython-311.opt-1.pycsvcbbase.cpython-311.pyctlsabase.cpython-311.opt-1.pyctlsabase.cpython-311.pyctxtbase.cpython-311.opt-1.pyctxtbase.cpython-311.pycutil.cpython-311.opt-1.pycutil.cpython-311.pycdnskeybase.pydsbase.pyeuibase.pymxbase.pynsbase.pysvcbbase.pytlsabase.pytxtbase.pyutil.pyrenderer.pyresolver.pyreversename.pyrrset.pyserial.pyset.pytokenizer.pytransaction.pytsig.pytsigkeyring.pyttl.pyupdate.pyversion.pyversioned.pywin32util.pywire.pyxfr.pyzone.pyzonefile.pyzonetypes.pydnspython-2.3.0.dist-infoINSTALLERLICENSEMETADATARECORDREQUESTEDWHEELpython311-dnspythonREADME.mdexamplesasync_dns.pyddns.pydoh-json.pydoh.pydoq.pye164.pyecs.pyedns.pyedns_resolver.pymx.pyname.pyquery_specific.pyreceive_notify.pyreverse.pyreverse_name.pyxfr.pyzonediff.pypython311-dnspythonLICENSE/usr/lib/python3.11/site-packages//usr/lib/python3.11/site-packages/dns//usr/lib/python3.11/site-packages/dns/__pycache__//usr/lib/python3.11/site-packages/dns/quic//usr/lib/python3.11/site-packages/dns/quic/__pycache__//usr/lib/python3.11/site-packages/dns/rdtypes//usr/lib/python3.11/site-packages/dns/rdtypes/ANY//usr/lib/python3.11/site-packages/dns/rdtypes/ANY/__pycache__//usr/lib/python3.11/site-packages/dns/rdtypes/CH//usr/lib/python3.11/site-packages/dns/rdtypes/CH/__pycache__//usr/lib/python3.11/site-packages/dns/rdtypes/IN//usr/lib/python3.11/site-packages/dns/rdtypes/IN/__pycache__//usr/lib/python3.11/site-packages/dns/rdtypes/__pycache__//usr/lib/python3.11/site-packages/dnspython-2.3.0.dist-info//usr/share/doc/packages//usr/share/doc/packages/python311-dnspython//usr/share/doc/packages/python311-dnspython/examples//usr/share/licenses//usr/share/licenses/python311-dnspython/-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:34733/SUSE_SLE-15-SP4_Update/d1db392b0680e4f4026990218e0e2e3d-python-dnspython.SUSE_SLE-15-SP4_Updatedrpmxz5noarch-suse-linuxdirectoryPython script, ASCII text executableemptyASCII textASCII text, with CRLF line terminators  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR}>:UV AFpython311-h2python311-curiopython311-sniffiopython311-trio1.21.10.14.0 utf-85ca5f13c3f91a9f457657f66c8b3195bc95111ff1570fcc07f87f2a3484051a6?7zXZ !t/q+]"k%a I8l/W,+~Ufy? izcWUh~_f'Pf7FTq.f;%ʰ7jEGuJP} E$[2۝C.dV9"OMZS#vxxE|{{Yo!SD[?/?9^q7m$/S)ewu{"ڑ$RaVƜmK$-ІC Hy& C1Sۅ Tq hnnɺ3af0J/bˆ2*&2:nr{o$OI˅.½%Ledt\i" X.8|mn|}O:i nqX j$h!8z!D`$H;s?`VzqS&Gҁwxv{խW12] T104;moWi4TGs;O \Ux'5&uɛPV~iv'n}xepo~MP]豇B2 k/A=(KSH6C(D 0aan`fpԵz@#ء~;"GN(d `@NqCۃy4H ", ʽ-vÇl81XD,A`7| +mW/L{khA cqс҂M߫&Il\N 8{ xםYG3 zUQ^i\w,:e*s ^t|9Cj-| dcq҈|93G {ȸJ =>6S|Y sϜ|^6 vB9M:(ѻQ8' 2xnh 3_OU\x \{?E\eÔlq}~RcL[>w맋EUt2*%!oKE9e8>nUj3gHՃd-a+*VG[lpZqpC@lxM~LJ )w1s +rhZrh̟5({!qb~.@g g\GvD=b:wݥx\]"4n2hPm^@P=V+! 檂{FvmU FT,B/N\+a0Rz駵-Ć[ -o-5Nb@ !lX_uE8?P4< P6;  (kmHA]}!K"]s}/c:[ 17^2Xw*Y@d+'*vw1xݰEϻcI|m)=/ ۜ>&\ ewל"+Bq4e"$%qu!s䜸gurZfw%7 K`>z*.,I;i#5A86SV -ө)l[E`C<泇\C+e|БE;1+8+.n_)V^j PLeI}&/B)uSNiǺ\,^uFW1zD?!tɕ{79㚐^I92sǹ'͇{My8A w5j('U- +u9$jHb*o8)zJ6wzޗr׻#is?i8hjGPd` `>^ÕoTZr!74/R(ǦKoYI;ˏAJrL2Mwr %/XI8GUqss=}\?ZpL@yTКz~oP#IJYZK$Q@mX eB&D:3۪М/^Yz|Z$ }8s4G5Rc#10}id2 Bn&ErF-@++]d2K]&1VD6O3̽~U7=D;Byp&=T{(,LaTn^l-iyÅρUr;,fvWxߘQs9Sf\&G_<|917']<}, ^¿\T%_;#~CݖN /\\ջwZA6_kwLȧ^5gPiBKpA9\S5F#Mw,Tbr33Yk, ~  wX ]5aUih3bc`MVBcx߈_2m~2*hi-\Kk Xs(2h2\bO%.S:,J[9 Ⱥ"0Պb*y_6=R9=z1ZDHM]ΙD7vU>bL"ed=Ev-v ;=`}r8{fg]X'QKuwB|J { y82w]=$l}!mce"6J =vhS0QG\O=L IbƴR/TY(EM|iN^m zb2iXy5'!ҭUuec>֜$}o=kҽX5^Yƭa8P7_oHS/--0@HTJ;e(}_DKCX=E@K=W>|OXE- Xv l>+] c𼄑1 ը1Ftp^C"ߚlyaNjRk| Qo˭q7ٍ̮ѭ>0dɚ(}OlH1^gmwF(QMnCSC&ur$Wxx4ہ5Y9Qbv{NƧ`L~~0JVn{[HBΧ{viC~t:qI- 5vTS-V^[k٪2\$yn.Y{4vQ T U}׳}fTXl)pUz /wIxkӛTp3pK)Ơ63隗'DN vU\ϾÎI,Ul { 8TVT@?=2aGӲa_ a%4ҢC%k0Tl\k {m,0nȫ٫2–ʪX(3b. 5.~8\S2:INdx -Hl'þg5 .ǓÕ_.Zv)ۧ"BЄPctM| 5 7PQ%2+3{5-\`Afs;|DOW@^ oFn;Fֻy HsoH7CU3Ȭq57D= bGfȈB\ǟ)Cj!7fZNfo< 6"v /y^ 6rE5_LցKSny\ӝwa^>J-t@@*}*xy^sϿPWrN%& 9ho@Oh6]^]!}*Z(.gIBNp>Zh&3,kn''Kx0^|az.ĆƎcLXp410*-^=9}1qv`nFGЂ<@OK8NHo%LJL2irqcGRon'$R$/Uv0 ؄Kg+Dj*0a~ 6QQ BCZٚ$ITQ+ A=8/T<_xl"ұaq&A(m]=3zD78CE-9ttHkBl4j<`"{'i!^@|?!0n!.=Q3HpJ:1o[Mƌ\bXN=FACns"iXu>ͩaa3a*W3W3%oĖ hڊOןu@Yغ<2#|?A虹JyN+*fSsrʏ 3C#k9V̊Ek̜EN"ff X7*L9ñYga1`IBRyxJVm~Ò+ä`:Q2K4ҧQL<D$͎HF vo\koCzJ1B_+IZؚIhC [8H Fh xS"ŕ*} z3j;;5TA(bv~^k_\>tkvbJ&J*r F:Lr84ko{"GTB~O-m)'m|535卦,j{sJRMgkyB]> 9z%pqӜjbdP)0AY l$,l#b4Fj)!IqWq>v+64Ր"H" {8ALEs;;jS uc{65t厈ϝ}$_M @jnЯ (U7y9mZ}<]Ԇ Q\G0{ɂ },2m\m$veuI6Q~RpS zAjs5m3$괗uzҕ\v}diqq -4N+@6J=n\o|ELOG7Qcoھj\4AÐBm*#rYpJu(_.DA쪫?'[/*"sr_>Me&ss,*ԶRsLOAv7$lDz` 9&M.qZ6+Tp}zsʪ-e˧}hz$Ba*vYvb?VdP쟱Z Ց\$}e`a}3#5ރ aEX Gj}zD3ݪQ?ȡv|ݼ{lýʾS#Դ}X/ $lǝp%y굳,9iRvۂ_d v6TY}27ȑ/>r.vWc0߈BTEE1tdR~n.h_K,rIVDY4ڿBA tf)d7 bg?UN6|Y^[,~d_acCx8r9ү$5͉z+R E\20Dۏ^Nr;[~QQT CŲvl R )RZ)qj>e#]hXlE/G#x~4"^,Gr|ML3{| Y{h5 ȺZ9\&QflfyѮ_Ac@p"f5ޏHFM6t_%ǚLq՘da80 է z >S9j]gqXKe"ĴN"&l??,d<>qt2׆BKJI>JN4v^ߠF[{󅚍} s4%d oAqՁ ClA!K?}<@G<44H/`s@Y ʣa%Z4 ڊ V:ƴ:g._ǺzpT|pmTibr9XUqݎw(F"-L9G‹C͠/m!mm\+S{~qs4A)N&ol?! çL]ٻ4 ;?8C!]z\ҾZZ-7^[ַݞ^D6<a ^q;o:ye|7̺.,@WĆGaEܣ "tZ#7vXM ` Ry ]кauۦ[k3҇#,f/|oK YȚ2^ApB & (g6ZJ'RaՌ[_4RԎȯeU}s4M ڲ n0(@,zITǁ>LB :L~;.K5$.9> $ (:nMD 7tD5*<KGn#SQêp6gGe P\ܗT\:[y {*Fw Y!7Fjjr@bIKӇazd3M!T( y>B$,\Mko-ӫ flbA7U9EpJU} #y>aȷWHdpoy :r N$aK@wZ/ezR{$[ˑ<HaoDu @hX`2^'|YHM ߨxQ͕Q ` /?)!q";|ʮ=MKɲSi؃5,-#?*le!Nm7XHSkXSJ`Nz]V}pdAwC`^69x`53R.^$btN4> ~Dzyf 5͓Q5 m ufu9:8bD:i 1H=nUQ ǠjѵPC8/hF+,uڔ 4=]:GUI78 &#շKWJɏ7l Q#B9<|[l0;H0aX1C.E0[h3"]\\Cl*g,ghHR)@bLi /iЕ&hEK/ɪcS1 6s3Tc( >m-7' ڋ/1;.EOp_?9U@됐H=A#{QP jFN,m5 9a]+=s̃Bok dS(_@Դ*Dr,M~A &I*̖13x84n蹾>O07uKa\ӷlVU#c >vǣn9k44pmqIE/~mPp!׵2HQJpO~d.,H;s ?J}L1Q  'w+xA[tw& \JY3u_t,\ }$hLQ {jRbaa18 ,4(8 bz'F\Z*L2Bey~^6@@Uxj+ .G@[@gd.Ix,&HצY<4O?= N7返/]0,$׽HL)C+,~_Q_ 21}ݼ;LL ny# 4|߽JO(F_\r{;hiN <49EȲxU 4y#Q]& u. LZŝuu-׸H}Mܦ$}f+|˜$~4aGq^a+'/qSjΰF ~l ;+ަTHO{&Я~?H2{3;lؿݏv ?VO.\VMMDޟfC4ՃH!Qzt].gZ%Laqr 7WFFzT4͔x?*: cVAi\Te>oܛןlٌTlJt:gaU&6pmM;|{a?WXF YZ