python3-Sphinx_4_2_0-4.2.0-150400.21.26<>,Adyp9|B5yr ~ VR[D*Z68$!p( cZ*ksd%*E[wS$N4PtgL|%u4[$<ئ0s¨aO@D]! 9˱4֎j+ޟ% I[zٕziܷu]jiblpj ]sWH4?$d * I *7 Mj `8` ` '` 98` ` !`3x`IX`_8_h`pq q|stHtLt[(ta8thS9uS:{sS>@FG`H+H`I<`XAYA\A`]SP`^0bcʐde$f'l)u<`vܼ,w`x`yzt Cpython3-Sphinx_4_2_04.2.0150400.21.26Python documentation generatorSphinx is a tool that facilitates creating documentation for Python projects (or other documents consisting of multiple reStructuredText sources). It was originally created for the Python documentation, and supports Python project documentation well, but C/C++ is likewise supported. Sphinx uses reStructuredText as its markup language. Sphinx draws from the parsing and translating suite, the Docutils.dygoat31SUSE Linux Enterprise 15SUSE LLC BSD-2-Clausehttps://www.suse.com/Development/Languages/Pythonhttp://sphinx-doc.orglinuxnoarch# python3_install_alternative: update-alternatives --quiet --install /usr/bin/sphinx-apidoc sphinx-apidoc /usr/bin/sphinx-apidoc-3.6 36 \ --slave /usr/bin/sphinx-autogen sphinx-autogen /usr/bin/sphinx-autogen-3.6 \ --slave /usr/bin/sphinx-build sphinx-build /usr/bin/sphinx-build-3.6 \ --slave /usr/bin/sphinx-quickstart sphinx-quickstart /usr/bin/sphinx-quickstart-3.6# python3_uninstall_alternative: if [ ! -e "/usr/bin/sphinx-apidoc-3.6" ]; then update-alternatives --quiet --remove "sphinx-apidoc" "/usr/bin/sphinx-apidoc-3.6" fi #5oyyRpRp%%>>QQ;;ee9900 1 1  DD.i.i88EEc.KKS$S$II$$/r/rS7S7~~ B Bqlc*,F,, > > >_FFddSSi$P`paf$ RR$$II0]Oj )$$66((..G8!<;;;MMVV__99bb'$'$||Y)E .(+$dFF{{!!g> MM b b O O$X$X7 \ 3__77""AA 11  +k+k8844aa ; ;&&&&Km@@33!! I- x [[L%L%`j)/7gY$ >i ? 4KC!B &uGcBBhh S S] 5 "!!PS BS* NI iE!NCcKhe49Uo,S&8C C  C C RDyy7 K "Z j `F"3 CnJ@ ?;: CyC\-T L F'QjM.G)C|LthCK E J#SLa~ts B 8З N #BOV"AFcoH | #pIZB3d$S^ QCU LCP J wC BN~N BGNJ }ZC( C  C0S; bb((I(I(R V|6D==TT\\   UUaa!!wwh  `z3; 3i-3=# "' g# ^NZL'S&`DDqOh^aFLov.` xpOuk+`:A ' U   TA } "4 dd ]^ 9~%c]ZZA] DLJTN(/:\o/lhR*oG%zmkrGMes1f}b q{|/)qkxM/gi!9>< < .. Y.%8%8""x'MOO<*<*rr,`,` JJ   VV++GpGpiiFF>s>s// kk   2x2x7 @sJ5& xoF hY3,A%9 j>r#))4 H@QQ++PPss..|{D=4`r,#&A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AA큤AAA큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤AA큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤AA큤A큤AA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤dtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdsa=`dtdtdsdtdtdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtds`a+1"ds`'dtdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsa=``'```dsa+1"dtdtdsdtds`ds`-edtdtdsdtdsdtdsdtdsdtdsdtdsa=````a+1"`'`'```ds`dtdtdtdtdsdtdsdtdsa=`a=a=`'ds`-edtdtdsdtdsdtdsdtds```ds`'dtdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsa=`.`'a=``'`'a=`'`'ds`'dtdtdsds`dtdtdtdtdtdtdsdtds`a=`'ds`'dtdtdsdtdsdtdsdtdsdtdsdtds```'``a+1"`ds`dtdtdtdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsa=dsa=dtdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtds`a+1"a+1"````'`dsa=dtdtdsdtdsa=dsds_`````a+9K```````'``'dsa=dtdtdsdtdsdtds````.``a+1"`.ds`'dtdtdsdsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsdsa+1"a=a=dsdsa+1"a=a=dsdsa4a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`'a=a=dsds`.a=a=dsds`.a=a=dsds`'a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a4a4dsds`.a4a4dsdsa+1"a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a4a4dsds`.a=a=dsds`.a4a4dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a4a4a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsds`.a=a=dsdsa+1"a=a=dsds`.a=a=dsdsa+1"a=a=dsdsdsa+1"a=a=dsa+1"a=a=a+1"a+1"`Pcds`'dtdtdsdtdsdtdsa+1"a+1"`a+1"`dsa+1"dtdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdtdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtds`'`Z>``Z>`Z>`Z>`Z>`Z>``ds`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>ds`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>`Z>``Z>`Z>``a+1"dsds`Pca4`Pcds_____ds`Pcds`ds``_* ds`Pc_* dsa=`_* _* _* ds_* ``a=a=`ds_* ds`dtdtdtdtdsdtdsdtdsdtdsdtds`a+1"``a4ds_dsds`ds`Z__`Pcdsds___```````````a=`'`ds`'`'`_`dr`Z?__a+1"`.`.`ds`ds_`__``ds`ds```dsds__ds``ds`Z_ds`ds____`_dsds`_ds`ds`Z_ds`'ds_____`____`__dsds_`ds______`Z___`iZdsds__`_dsds`Z_a+1"dsa=dtdtdsdtdsdtdsdtds`a=dsa+1"dtdtdsdtdsdtds`a+1"`dsa+1"dtdtdsdtdtdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtdsdtds`a+1"`'a+1"`'`,a=`a=`a+1"a+1"`a+1"a+1"`a4`-e`'```-e`.a=ds`dtdtdtdtds`'`.``'a=`ds`dtdtdtdtdsdtdsdtdsdtdsdtdsdtdsdtds`-ea+1"a=a=`-ea+1"`'dtdt`a=`'dt`7b33b2b8d58f778645784586910f6f85079af71177ae6173c9616df02eae283a8461b1b505ddd876b1b08efcd952cd0aedbcc86810b6696f7d39aa7e5cf68b1915e486d081aa09dbd3bba8d175959856b47144e0fdbb5c4b64f9b3ec3591b98659cc3067dfcfa74a738c6706987fe35d7fa625412488c8805c94b51a605275d7bac8145b37c218c7fff64c9318109f46489fa817a00d0d5c8a8e2fca2308427ee4259efad017eeed2fbe442da7f8116c88374fa294c821eb610449b2308becf101ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b385211ac360693750de7e6c0d8d23e2cd1d144b0e7c7f7df66df232896e9162401ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b0b7720d3c44e1ede4c344a8e869e4334f1cb7cf32b94edae8263f8ac1175c0e026704aa7a9fb7bd1e074c0b514d45d006caf987ee480bdfd869a3a3485fdf99264835fc539651ad458669f5221916fbd64b921f8212fea6593dba5c87414f6d500c22e67f05f20443bcee7849f51e1b94959a189da46ccccbd10af987ec9dd26d2329adb786977cb9d3750ebb1b8d8bc17d49183b1c92d9b46de1edb8c483b31be7d20e51e393152b2f22f1e34c5704b25af73e52cb6228421a84877d85fb598692448a7b47ce81d875a97f17cb14dccb1a3597107cd9310c37aab143a50d5a9692448a7b47ce81d875a97f17cb14dccb1a3597107cd9310c37aab143a50d5a963cbd2f655acab965c1a40196f9e3172488e0eaf84e850b1e71f2862b7846219f1802ab16a5a614342044a16541fce75330016f2134d008fa088f2dba2db00279691201800d7460510eb220d307cd8160bbb5490e44dbe9aabc4eabe099d8bb33e971cdeaa3bcd8e3b7cda8ffa7d5aa56914f3240013a7756924f92ca07c8930e44b817b21b91962e0104ec81eac7c021dfb3d440d9ccb9f88bd3c92df74707e82cb3dac3c5fb53030e4a255c8dac4a3f4075edf4d308416d71c38605f56847ee8c0e0b2792f63ec661cf2ed909714f34c77ce616e166590eceec543e1b6ab0f626b4c3bc2a70f9ed9ab6810310637172ffae061820bf77628400adc620b1c5d210185749c167d5431c62a93ac317005c07a7ad845ea99158671f470d8469cd68f22a6c42f6a6b81eff68a2bf39a5e1ba04c69856edd9706ad8a846371eafbc173833b303b331fad5176753b77e8d075950b3bb5426f1b904a542c7148d97f62f27f11739607ed0262952f484fcea83c7ce8087c78b8b8c85a141872daf017e00a8e7dafee9bd1657bc1d7e0a8b281af246d3dc826bc2fecea194d27a87e90ed9e7ddcb512658ddac0659c1b5052027b77986866827d01f14e7e10af98b9b9f2f6711f66dc7c5a61319cea43ebb14b7ba3abb1d669ece5c4fd1d9e982593c8053e8f9fbcc10c2f13cf160668e2c6277324ebcad3cd970f6ee9e1fba9e476272502a2f72ea54accee55f86c1538cd872dbce84e86a913d4bf013769a333e6a04d0a84335487db2ad6130834ff2b70f3cb174dbde1bc6e10e0a5978d7bcfb1c7326f4ef488ebb7970809dd4d6f7423c692a48722f87b9cb91160946d3df8e4333664c1de5f9d5fe522d10f0d817fecbfe1a766044af77f56c16f8a5bcda92b4e937efb8d1a95b3c1ef3a39cb0a984404951464276f9163d4df205109e48338b03f61962c5b1aa1322881562b25986627ed588ce3f47e61f7a5bdd11d47fb161ca8ce862dc43f443d4adced9f0ead8e7a3933424ef5be5ff548e11af8e0758b41c601165c48845b2f3b5d0465b4d906da798d4eb89f7e7203e342ddfd199368c58ef798051e63acaa346f25ed6dc29f7d6fe43367ef6b5320d1b279c2de37ee086f773b9b1cb2afd580ee7f3530ca0bfbe22ee3a6e36a84658bbb3ef9bbbea17e754d6b0625e536d4df8256858581332117c7817f061b352b122c3e720aef1f351753776b38982e9b12e63239f55833e2036f1f737f1ebf5fe9dfd2ff157c13d1e09b304a7f862872224f5198a44cd372e1705ed54eaff6dedb5e2a3a64dd33a590a20063c2b714d121ba947748ca7ea8eaea24632e516e7ddb0f9913b4ab5c35283970064f9004c8d95d0bebc4141b01cb30ad52728a5749a4e790e6ba49ee2f42542e9eac36c4fcf94037e6406adb387d7823cc49139859b0f181455c4db03ab73b9e8cfae96f8c911e722b4d4ec3f38e38389d65258654f6797f91509225d1a2c0cf2d3a431c4af92c3709b598cfe3c126a8ee1d52f923b121ed28542ace955e430f90990e084ed49bb1a2c3e364b32ac4b736d7c2d2d7336067c8821b314e4fe7641cd0c94916830194573b771e870c0d433c930252137fdfc36fb49c758ad98f8397550d6eafe47204afb5f133aefb4f0b131b5275250b718b2f595ee52bb1a2181c104cdc514960d0d7e0829020f464bef3f0cb4b16d1136787f0bb816d4f112611a79785964a4d1561627ab55a503bcf0fbcad197c6758062dde9064ecf490ba372b8a523afac8a9a74d23dc7472ee5174fdfbe2f77f7dd1cd78a1f51ed6c374c3316ba99d01ba190169a95ca709826ae6f80bfc3386740d2e6809c07b605abb42b16bbde38634021ef24ac08b62fda7d2bbf1c07232ec6b6d7837262d41dd1f10a942fe022d3f627d0915930afc1a0cea6e7b555b356dbd0a5a000f63fb22453f35462b6d49d3c5202d8076556be780c47877c40642bd02e71df07f7b88872d0b0fe97a9589342e39016e8b2e9b331ff24d3f99a9e2f80c19a980549682f1c3bc61fa056eda67e774744d9da3beff5a61a2ca806979a5f5ddbd003e36373357ae7f611ae3124af58f886d25b75f9aca1d12871254644c6d6d400c5a8894b1409ac384681d6c3efc1ad117ab00a179e4c22a607972f5eb926a33aea5aad3b60fb7e9fa364da59b4fa75bfe1686a5a087d81f21a1ac5526ee5fa14b48e2714676a533444890acf0ca32a3e05f7dd3597eccafaf81ea98d873813a010846a12ab039aa718a58dfd9ddeb132b6857657899d50ba24cbe8c247b20f32f62c791887b077be52505b1c683848b4d413355fd0ae702a37805f0270475442cdbf65a4f4e19a31a9c7dbedb10da8b4e14174c5e15242a42ce8aa1b8e803e64224010a06e2bae9779545ddb53967996c55876a502750b8ce0a84a2836e1a5f9fc0cc01dd2e944918cb643cf10004f5d62383dcd7a0b4d5714a3ac96c10894cff789b2f7ab42ec47263f5861d49b80b8130c51d3ed3362ae15d608e1303a87cf8e3e554a3d8210a660922b05285e8baf18506b3f2ea3180fba53a6ee5dd08163703a8da617b8042b6aba9ae1ccf3cfb1d94e7ee9cff14a10d391a958ebfbcb152dcb6dbd3fd463aad99b1c5e1fdba1f7a327b5d8cc7bf781ad9922a215751582750ceb018f95eac5923fd0d80c525449196af6294dd4a0eaaa606091bc5847472adcf34d29ab2a50739921ede8838d632f78f8dae2b0edfc7e6689a6c086609ece283c5cd2cd8b4cd01e8b7879b67a0d96a1c3bc77f276013fb995c93b3803f153b7b985b24cb2c1d2d2b15084c4087b2744816715313dc34977be2adf036738184d58e0aed2cf421a4121e8a7cc5ecdee9721fbafae625f66a7b0641ac25778a67a82cc8249aaec0b9367b9fae0d942c6b085271341e1186e8e2d8b8736aedf0e1e54417e1b9f727a7a2b48ce541ad89a48793ad34dfb0959cd3b474c622d4784238ec8a4f3e7a3c315dd00ebb05fa3946d329c7001254b3e310f84e3762a372f1581d6ba19e1ddbad7626a709b72edaaaa179d2def7b109612e44937947ef77aad1176f80901a0288c54362ce44b963c1f99517efcc489118bcae45edcda1ae606f43dd50480f0eadf4ebe6683ad751acdd6b895b638bbb356f63fed56218346da2d799afd35140d0ccc602d697a0b67b29f3bd516c5063ad3157c8e36ed98e3c0ec64ff026ec5179ee706289e4990346e9527a113d8ba56a58300e7a410105e3cf480875dffb0cf227444ca3ee27f48b436fa781236e08746d080c083b103465b44109eb42e121701daaea751142d380de0a46f742450ebcf1309f7d6dfb3dfc27d26ddf94f6898370a35020d3c7b7ba2543e7278cfaaf825922bdc5268bd8240dd64844fc176d2d8bc8719bc804d0efa1461f09a8818266f8b285191aac95d9f34356b7c782631a8033901f03d3ad1920b9060e65a4cfa12bc7186520a7696497d6d48a33960726a274f98fc0a3dc97085bec41cf2b48ea1781a84a7f0b75bf49b692ce0eac949d7505a63295e6db35985e50467fed2cf00765965fd13b0b4df10b232259870eace5b358e4a7af9085b0ca88011f0bcffd11391115de437c7206adfd4d23202e90b1f82788842e2e37a3f59455613270a5655e34d1e0e3c6a387780a0dfcbd17b64255cfa0efea1c3bdb482995c68fcf8b7a3921958a1ae7204b0704659e928a7464746c685203ff387d12df93a2732d8106015f07d4c16ec99c11669857b8109b239a30cb029dd435b1d879a1446c03ba76c83d6af47d4cbaacf4f3b34668a69b662ac4b954fa7a377dadf4b0e6d1c39452a06ac6394eed5fd9468957887677a7358ed4797da9f84c9400cd2fdce5ebbf9538ddce3e1b2210dd3e257c5443802d03f5ce832a9da32e8f5ce3acbc8d36f16ee7f6894dbb917da5f1b042f690dc22a2280b37db97a1d5fd594885a1a90e51d2e5d0f0d307c2c304f5c9af1084339f112df9c157cd17f5e1565f32a1fa9d4f9716f9db79caa1220f86d8fdcfb1b6c63067da38e1823a5a730a87714b85762652cd554df6bbf112d64b6d52d30f6fc77b814f57d2038fd97436a55e443f0bc3de4250360bd337c88eba4f7cb1b962690d1310b05998d16783a5985d8b5f80ac955824cb306fac2d57f94437015cbf3c3e08023a1ad75fd139440a29ef9bfaad0e22bfea267326e8c27f73b4e392be0413a0b910a8a54129bfdc5cdac39eb48d3ee3bbdffc0cb01b654f54d9d7ef1ed8b83022ac30663d7583230d2301f6921f08f5665f4ce6c6096d89d6ab422820cb7477d76239f8bb0218df7af669bda118d5b4d6819aa67d718fb053004a5cf0383b4583be0917f265975a9488576cf5897950862eec99b76b9d62623aed48ddb95b779ec7da6a7169f57ec08406ba8202bae51c27177073cd2431f29cfa2c106f3d2cff9ccaf6ac128492b7a50ef818a15d71367fcdc5f5708728d33d50529f84f664cd927574a3f26ab766c43ef6ee2fa61e59c22ce982154327baf914a6708151fe6c3a249e82513776c5224feb2580cd576d4976f836e4ec7ac93ff7ae62136359010d3a02f14520e20e8f291693872027cc3c9f2f2541e5d3b22667fff7731174da0e6aab911ccb23d6d4fc054e9d89b3e53d54979473010bb22667fff7731174da0e6aab911ccb23d6d4fc054e9d89b3e53d54979473010b93e1ee9cab61f5ae38f3b513c9ba34eb1cd0adbe6c13b76fdb9869e3f5254bf50b552344d0171cf701559427d586a478f48aeb2b9642286ce2b08891ff8e5dc459814f483824fc4868566267908bae3dd46d8b1a3758be69d8b7fcbb8317ad2bcdd2e2747731eb09e2768fbfc2f48a0e2eed2caf7ad0e702cfdae6bf44e6852b647b69574133965e03997bca3ba320b9aa49cf981be0acca802f59d5c301819d515516b33927d52965a76df86d7404a9cae0752ff53b94eded62164c601304dd16bddfcdfa5bd076a48def890008557505952f406be4d0081b78769fb5fe68a65747056befd93baeb378efa4cf7680b47e08308080a48560094da8b8dd51baaf59eea43a00a80f802ac3d078fc4bc8e6be98c37a8aba799c0bac14ebe3173ba4a334d099a2752c09899f1248180ab49354d3f72dad5eeca7c3a8e71d0b5a0b8b8a52ddedda7be0792168bbd7fa61fa9e7b777256d68f341bfb9615b52d32b47aef12a280e3383701f6b6607e6330416dfe15b4d89e3cac36fe89b91d88fdac61533ed92ea7a681555ac1af0130d7d6d770bde3e7a5723bab4f3d4e94e36c47171dabadf7b03793c89e341aa045bd4883c2ab64884277cc3e4d5152f8d841e3f8f950b8becbf209eecfeb4d84a1496f82aeb76d546fdb0c5ad72dd24380f48c763c8890cf36ebda8d8162a6164065f28d506ba8b24b3e4622bb98158d53760e6e3f60ccf1a4e6f8f9ea152e28590b8b3ff98604225ec660fd0d4e58361a52a03a03050a379ea2ce2684993c6d41e1d558ec145b3cf6bd4cafd1c47143c16b4591dcbabae01f2b02b11631261729c5ef0c5168a0975d8fbad57bb5d01d6e7682c143b32266ba00b279afa293ac07ccb6b0b5502e6bc4ff4883f61449e91e622f99ffa1b4a9e9f358c2674335f342363419eb45d4e0b50684d317d354bafe9efba28681c0514922a6310dbb5abe997ee52ca7a4c0c78d18513a57236c8664c2f55c087f76e4cec306423522d83a70bbcd0e8c07ae493f7abe20bd9aa8d19a10bb8e9f133216563b7a21efe1ea5f129a6e4e05cfd6a33f39df0acfb2f816a6fb15271d0c80eb2449bde56e7dba35adad96e2bcd610ad588a12d056e12ff45aaff8d046a4782e55a6f0816583f7f0a8b4d56cd00fe49730a70b0d7853989000ee18ac5804fcacb2579ec5c059c13a26c6b254e32362ce383e08e2d5731b26bb9407cd5660cf1eb83013ab027b1159b3f09cc5688ab6a262ae1c9ef2288cb9915c9f7e4a4f350c31e9362b20b07d8bd9840b200319287e07d94b12c8dd4be8cd7bd1b221bdf345afc621dd31938bdc7c0fd9a144d7800413c6b6f3e8ab50c02d31314df63f8a24bdb6d098cdebc3c801d004c8254144aebee67a7abacaa6f3e5e71a89949573f44e62e776cb98ee22ada8f4b2e1bc3ed25a694bbc349649a464915699fbe609b9189fd92ac406a5bb1dc21c82dc0c682197deb2eff2385758a64e5a20fee8ace5e5b9720e152b16af52c7137ce8e06b3a78d5578856efe1289bea8a8a7c62a3d545177265de5e8678e0f932fa5d1a1b442ad269aa7d31e9e72cb56bce5aaf1c940a8a3531dc771facad25345a45a3bdd06161823b109166c7cd2a0ece3dde1a841c51ea3a14abbb2df16dd830fb3d158ca64487dadfff9210180e2f730d0d4cb380bade0d9e327f9c810f72caee1383c23d4d809765d15806fefae4f90cd5c17aa8841d844542ebcb201e822887c87b9655677d441c9d113fd0bc5023c9ab91824a1f8e844b7dd2db2c20cad2fabedbdf31f0317db40cc0acf19e5a33f4a96a8ed946346d08ee064c023492c373d78e418a0977213a8510590b8e8b0a55b3f444052a4d9935a98d04758c0329729c5f42cc0ea2bc8c116b1e1ecdbacaf31922eae5d0c10e932cb1922410d2444e5c1d3c83c568e42d2001cea0521545bd03a6a4ccba670b0886c6b9a4174ff5825124834fe64a177db8f8a1283230ad620accda36a577645333db2f906cbcfd143d5b1494c5013dd74d823a355d6d865cfea3c95f1024affc720b503500411c8050643d11fb5c1555ac067c7cf5dadab3715c82ebf79165bf9bb7b4cac44cae1b5652de95269280de5813b12192eeb05d2a07ee1e1ea17cf620860bf90e9c2f0f29b5ba7db5bb2e21470415e379ee066cd17d5550c211f5521733df158bc6f9aed0b406c7b347f033d48bd37e3c86b09d17955a33b2cbd8542843de8bdc875aa0b7c6974d41cb734d7f334739598ff9313a28eaf9a5ea6580e0dca09b73a574246b1de0aff0395ec75f5ec540f8e02e1721eff78274b2d3bc359b6d02a6b28b75647a888013966ba330c5768319426ca07be049b24625e22fa861a125453fa5d0d82054dfc9bfc1cc4c0fdb1122e37c98b14c29621e933a40dd160790c7e0f475c68101cd466fd029a954bd446093a0624722f99fde7949b3a65d35e661bcd9cb0430fb9768deeeec4f5058d2e291a7e7469e3931df31a6d569729a3e28dcdbe3ca2e9d3402f110f908092b58cbaf16dff6699782e96189bbf2aa4209cce594d6c93dc94d5a5cd5a5206605cfd895ac82192b17f4581b7e8dd894087d5661e1af6c65f31d5d4a8ce78f49fce063b67650528f404327a795f7858a7f200d4f0b4294e5f08b4ed113e16bc932c00fcd32f695120793e308329bd90ce7837c03b5ffb888bb344b7939f162120ba328b02f8340c52f601d578269707d411d7e00922955f081bfed84169478c5f7b4f96a1c8340c52f601d578269707d411d7e00922955f081bfed84169478c5f7b4f96a1c695f140fa0b19d8272d66bb1c9da3582e41ec93f116ec2ea851afe1aa771b866695f140fa0b19d8272d66bb1c9da3582e41ec93f116ec2ea851afe1aa771b866e057fe277690b422be8e98538348fe33749045613e8f0f8ae36f1b876f82602965155fddd3440dc95f92cbb4c8597efd9cc52cd9ffe7a41005c20afa491bafee525b9364c656daf61560d9b428ecd88a6c96548b8d4fd1ff012659bbb7dd28cf3a803fe1c49732f10cb000cf6921a813724cdd1eb7e49fd89ecd37adbf9d3c5ddc8d6898cc867ea42faf5fccc35872c1c24015d17df680864fbc99785199e7b14f69aaa9d94dcbc018f65506b69044383d83981ca37c42ee917fc12d6950dff8b0cf1f2f8a778359f43e154d2b43a53f5db3761dfdbd79aaea2c50c6c8ede491f17c3e68f7fdec80f671652f0db5b35858fefe05df3701d3b99a3e0f4bcdccf63bbf0302e238b464c7f8c68fbc2c013bcf1d0d0ead898c0773a37afdfc81e2221515f652490bd59962d801326f3753ce37d196772a01a78d886ca6b4ebd5ed2684a26551e587e7c961a44242f5e596939cdf1e932fe7b3fcb11f8024b227680d73f2d005d40f97b8ef4c21cd60178d322f10682f0c7895adccc4e32566aa0f28effa4aa777a90b18f4920d83650ab6dd75760e9bf0baa9ab12b60254edc5dd5b5430ecc9b2459714eae8278df0f3178531df4d8bb7cd05dd22ce00caec600a876dd3bf4708b6552132712e54bdddbaa1768aac4a0156cb5d087e1ca70dc4091a212ecacfe5139aea9ac6ab0ccb5e7067ef1a96531ef9c647b58c52b100db67370daba0fef94d98bd633d2792d7f2f2ee2a27c638d841feaf110dde6d9e3d445d9afd30966e936faa015763940436151228e07c0b850e89b9d3d83e92746fcf8fa400033edebdcbf4a5cf67ee43c9a657077cbd13c04ff17e38aef9167c9cc496a462071ab2d6234d8be18dfc0f3c0f431690d8ed8991a06bdf8983d5cf9dec7e645986c3accf2fe2ec57421a60ada167115a213b6a93f435359a0edabcc4839ad3ffaa95ba550f082bc0150511ae0a76ea1646f38520cad34c73a5e1e134551f7833bdc6599f61d2c4f6577ffab89b460637f49941ff40b1b274c75bb17ed0507647c044f79d9e3d1eace6b6fb79fc988bae93560552df11a4b38dff3ee2a028ef9cece8fdb5ee2363c68ff64872d8e2ae1ecd6ac700cb5453a7a8b368e11db57a803e5dba6ca38284f43b2f6e77f4eb92d6e3de64a4934bc7e091fb0581af706d3c4b8146a948ab97ce6369a77795f6f668bd78426b71651a6476a92381f6e8184ce8ffbf51c7ec2105195bccf3e3102a06fa7b1cd01d8c8992e244fc155de0e546781cdb53f4b073e6033a2b940e7c4e9b57e7c50b53954f2ba04385b03189e546781cdb53f4b073e6033a2b940e7c4e9b57e7c50b53954f2ba04385b031893c2e7e9ff2d30b7097234c3cde374c0f2ec65750f3ff3f0d3ff83a4c13cbb072c940194d5a00c7eee09763952696b5fc38d230ce063893ac9fca875932914ee86cb941eaa0287cc496c49085e8b4e40746da9ebd01eafa7ec6e4859bb0884e7c97f043f450301bcd548b5fb2d5dc74adb37338e54e826811739e9ee8bea238f966eb0c783eb6c7e0defa40d5bed46ad584dafec31e7d3d09f2b24fab06eeebbfe5c1239c7b59a40a384154224cea9c791093734498d991de8fbcd54e8987d9af696001cf09c15c5834a040eca6dcaa2846003d9c6802b1a1582370c6965f1790665cb7659cc6ae09b942add264f8563ad09efa68c4bfe617bf9d798b283028d35477cb634a793836aedee3f9ffca8bafebaf471130af52bc6d3845e5e549e2361c68e7bf08d245c285c72200e711ab5439b2ea7eeacbb905b6fee71ab2cec1a3bd3e6f8926f1e437b05b9b7237076270a0203fbcde12620d6f57c51d90ad9dbf25ede14b512ccec7ea36d84389a3f09a7bcb12dc9abfc229ee969f5d8b664c27099926ef9183db7f4fd94a87f5c3e4b0bc29074e70b01fce64be1afce6ac06474ae01eccec5ec6f2d0e4c58c8c4fd98350cf6f8d4687d09636110f0f46631eda4d70cbcaf50976ec781ee06b6c9fcd6d0ac0f4258e568136caeda2731eaff757ecf2a83ee0311fc363f67e956a01faf9a599154c41f499043d302342404ae046af7755f3150cd8ff295241b05dbbc67eb18e437d22a055f4a5f91d0773c1e1c7b45333e8c030c6eeb91d78be9e7e7f0b8e1c33718eb45dbec396d59843b77bf350eeab4839cf808c061a39a2d4824c081c9e4fb1529c16cc38ffa2db35998b6a0f234bdddb3a2ded40e66be64701434502852eabd32e42b74b9f0fc9d6917fd3fa14b78608fa0d46d6d0a75864a34fa558724519482e4bde23f8cd173dd193851dee366427e9d3b2bd71c6ac595cf9292b026e54a7d0d94a3c46eb28afeaefb205621b6127403c10a681054173387642ad49d326ef5ed3e588f888a3608a1a1f9bab764de3a71c06d8e7ba6da1d2a4c71faf2754108b16d96111f1305ec86cb15fb6503f057bf11df098450510e21e46abeab2da0d357f390a91b2216b86e6577b9ea17b87d3d046bb3d0ea223f5f516ff5bcbb2fd677f0415460875773757078f98d25278670649aae02d46180ba76ca982667099af949790592a20d9ab608ea940ba5d56060683029c3e695132c723feda503135c00e6a49b4267c7ae4407774ff175c088a68d62da0d81561d7996a7bd172d69b9f3fc793fa46ea69c20e6a30ffefb42b6addec95e64a87f5443cf4213bdcf51776048ec0bd99fed71d47fff173f91bef13ec710e90a9ba44cfab08aec821b0d74b8ac630034c7477f48cd6c789c0e120c08aa53d5b03ad5d6464857a4396b8753837915a7e86e8bfba6cea47138d525d9370f97bcd76cccb44d17613ee9e2d0f23f60e4e4b8e06264b0ef964d6f049ea932ffc85c99859b8fc43b851e5c428e9498e114eabb165f349265ac7962a7de784139ff934c13c4c91fd0095976167ef6cfd00e93477fd9a68e13eba5c553607db6b3177328422c291645ef90021855c4b8038774fbc81e1a71474841d9c7ce98c992897b998d39c4f6fa1a65ec8fbc876bced03d86ffbb90935e22c3a49643cbc9adce55816be872cc046297bf36cc80263c8c414f0ccb39f1e2987bd0cc0c94f6f7f6804556da36a97409a66d8e52170a7df0cdd338954f2ebdbb076ae33158b010999b15900d729d8a2617492705ebe0e21cad3bee3f4e5a427a84cc763341c69a5726d76bde5193878d67e6e415971f64c60826703031f0c525493a286af54e7b146579e77977e70d52c609a77a2d2b9297a280385cb1bd5564f1b1c7a3175e0867ad5947bdc02febc212e09ccc7a7c9a34cde107fc966974c81236723f440bfd6c7f22329a468762089b0e7b0fcfbd4f9176b4d43199e3d2ff3a91a1f4790786db076daadf2a50b5c4099c49facd0fb31b045a193f25fcd68ec7cc195ae39a559ca46711e397be8a4ca75a97c4cef972a40dda5ca5fba9b04e7ed84d52931002e709c80bb721522b6a792b2f1c6a0b0aa584d675f2fa2a907a23d6fe3690891849f83dc4e0c26b44cd67eea3054fc78803607568713ec43892938920a1f79922ced98c5f159ccd5dc8d672b28343f19835e2b2a60542bc86a677e88bd4f9c6b8d2b63b0b259b9e0138b38919618f4080fe7d49cd717914b6a7b146abad4deee2dfa03e29041d7a4661d264447e470a6d70b14c0b4207847e90ee41138ddb448340c28fb823ba085681bf024f427e90ce9eb6a65c914ecc9acffbeb3eb1debf702e204d64789b13421360f4e7dc4b74d9f568b0bb9cd6678cbf971c3fddfa3f4a8bb86e810e710331fd685f5c882a9abb8a7cc798e51cd076e9b9b6e4e26b8d3cfb91d3d89f3b9c22fd6649ca28ea792f4d1800f77aa406947baf29002b25cacaaec4e8a8f20a0e9dc8e266317a25acf4db0887fe0620663f3e9af604559683467a8a78735103bcc1d70a4e777d9b88a42eb03e6885ee4f6ea4d47e89a17f4b7b32a0322feec69b11711014c99df03e391699e27fae76af4af6aef06f1d2fa387120cd20ecc64cddcf68e0546ea3104d51b624bb24002c8db58b3e2794efcdfde3cb5abda3738c05e31e565a005663910e44e839d90c614aadf89d8df05643b5769953fdcd91e08e7c400c660ba4ad87b6868f4237a1d87632cddec2c60f8dfeb1a4cc28084e8396ada88e786847c3e2da41b828389ad7d59f2effa268fe498f8e5187020e8430b1b152aac687f9c55b633c6586010c5b76c32139aa370adb91b897b9adef273488dc4726793fff483ba8e1a9d83ec9cc4e6cc53cd0510749cec6139f162310e2a951a38ef4ff1dbc357e61c0c9b001bd9356694c82bc3e344d0fc1ebd464078312e1b67ed2e8a34803012d715c905e88d90a01f1bda1e0cc4ca06c05fda550aafe36894e795ec8993fc9aca1b72909041b31d6ebb84925fd29109e36572bec531167e0eb3ee5bb13ab50ed0642d5ab2700bdbc5d772a1f4c8979c0a2a7abf1259c2a363d4eeb529bb9c47147aba8400cb5da87b30207806eedee00a2a74e8975dfcd77b70b21bc1ae9fdf46fd452f263885e24d46c9bbe853952631b32fc60eea1b5a307984fc56265b25fdc6629712829f9809e88bcc62901e35555a29097a2c9a41f664c003a792fbd16ea09e1b45a7fdb1506f45aca4bfdff7e17880cea31ab239a57c96745d5ed1f30ad1f72e1a0a309e7f3c79cdbe5538f570040554f1dabd8b9bfccea1798a5b87ec13d164a9364ea880be9964690d1c03170782a41e6e5443d46a5bbe5d54456fadd5592ab729c40e5839d1bb8c84a90eb35d228a555d6c735fbe525753b76462b819971e380a9aad29d99ba2b5f5368875adbd13bb258fafdb8d741942fdea54c8ecbc15e7ee9baf543bdf02477cf97184c1f2ceea8fd83ad8af8433ea6a603f74854b05cbe3029f243a9068bdd9c551aeea5a5de0449d4eaa6f2ce107b9c7a9dfab47ebaab2bf08beb0716d23f94e54d14966693d2156312c38f75933db6326d3292a7b280c3b37c5c5eae8e419825afa25af0600244eef4b674bd14da3a640a502dfc9270208f41b7ce4089689e2328b586f55ed87e353fb9bf88c8a59cb6308bcec468cb2b73abd8fd9fd13106b138aa9cb7b31a876d9a91fe1d6d337df2624a81923969a11ed843ea2add9e89712a8ba9280ffbc2288f8b2fef553b0e231d3bfbeb2a039ad994af6bece395616a57135e74f97adb1f8af2f47a7cb23f4330a73f3885e38c7833297a2b31aa60ce806ab18cefbbeac705de040e7f4de10d37e7b776ac0252196422ca6450fef06c0eea67bb2967c37f363852ef1201aa011c5990903320a39c2effc0ccaaa55bb437699a7335cdc3361464e01a4a26ef2ce11c87d87c1f771f898041aff34d53b97b5256b525e43781e9153526366e374c7e1c12b64e37c0126c6c94811cb7c891f6ab89899c96a2fe6c187257c26d7e34b2b02e34e7c18e405fa7de7e789f4fe581c388a937bbec1030ba54085bb184b74015824703eefccfbe4b84ada46cf68ad681fc633f408dd8861dbb17dc9abf50e52aeef271a52876d5ecf118087744b6e854426bf39e724c4fcf7c3bec100e387be2663db92ea42a260b779802977382fab03c02d1f0dc48c02b6e9df08ee73f7c48e018c784f842163d757417c313829ee351190dc1097f26f6c84a679dd490e6e80f5ffb7404dfc0514e878b94a49964771b4b3bf090230df67c19586056dd2d9905c3befd12de4f27d7c304449b996266851f6a8e07ad4f0af0dfa1ffdfe1c26dab4f0cca2727eb5c367a20b9ebe949b717e45bc56a9ee0d50f93196e456fb856e1e4724f2cab18ca0a7b7101d931d46b6e3fdd628a9998cabe4cacf90f2dee052dd4622daaf121b4effffbcd08758e28e96d26b2049c7f432eeeb6f8bc279dd00d8fb9d29d5224d6a4a93c329b40f5a0271a469a06f5776ab44e7df9adf598eeac59d742e9976be733700ef89831d05079c6619363a1fb8330f69841a69cb13230a540c300a53027028b6bbe8df48f67d616a9d1f8d024d37c6c3113e49a9e09676497fe0943c4cba91a2f9bda4543bfc9622ec75bf7e3e5edc2de0c889a92a8daec1ab22c37324787bd462bec39dd99a2773b86d9c53c511d3c722e76d70bddf80cf2a0d3231f065d5030bee72bcf8bc022f421fab1d76f7c1d96340d64abe3ef8e2bd302aa8e1e2aca507e45734c461454a117b690d6203d6a8b4fcb91eb5f779eff6d4a98f2a0bc9062beaf4c42f3e8796b6b1de35851ce790176a8e2b84a16db32aebf9b1c55c74411aa5bd4c22571ced2ce33d4c8665d0fb6f91be54320e59528f017b48a417a3f5bc04f961b80cc432f4495a511bbe944d33af0b2127a9574539443b80e43d93d73c2c86a88265a2b89d6967c174ffc770e07352e8e6923c5440f28e8e02a910bc2b30f61ec04c5c19ca6260c47ed3191eb428b2fd8983fc11bcfc81255f403b1db5c7fa98093d4ed7e9b17d2d5adf84ffded862b5ca8eb5c07cd3c6b2be0cb165025abe5e29a6b0031ae8fb293f0a9e7fd063709f9343fa86e738079f344b2eb766795b5dcf281fc87a2893f836cd6ea943dd3843b0b167c60debf7acf10083b70c0385e56effebc3ce5b9adf73390368c671281f57aac0dc5f0be3719f8a39c3a3f19e6d6a6f6d3bf5b68674d01d2213fc73ca4147d5d370fea11b35c8ef4dc46ad72d31ecbc78f0acc49adff13f180c35c350743c7902dd8df0b9dd051e60d6edd25fe2d83573b42a027fa176ed07160b02bc92e7ccb92415a43731e5a44a2e763383005f5206606a7caf5e98912bb5bed9b54ea4b15e4d8bd9aca19758600146c4cdb8dc738d31a38c60ab87c1ec5d6fe8fdffa7f64b412c0ed0a5153a5d1f78998050068ef305a3634aa1d6e22a63327c1159885008f0a4e771a134f84affc6c73c96deef1e9b20c835ece0ee4db86c369b1b802c65016fd0bf83f1e20afa4ab1c0516b49514dbf058ae0670508699d6da0df3bd4b1be4acabad93f057a10ac4b02722d108b6f9d71e6220a95567bb01c7fa171841faa44d4da00b36872cf61123e287e0ea8dbdc407b08f6d8bc174537f9beab341a45e265716f2d1c15d949ad0334a221c29fc1bd4bbeeacc98ffd66421f1af6a849a0b7e446ab01d170b18eb33b438a0f5c776fbb6302fdc39d9ef03203e403046d0d0ec2f95c2f05d00a81af9094248e2c18e92ae2d0c3b40e7ddec04dff10e3d036a02ba831510f2786c3d56244158cbafbfaf3c14d31268c527e5c5441eea92de2ec25890bc3a582eafd40097a1a03ce0bb850ec72587ccdcacc7941528ad29089d0c3c1281b1c8e6d45b137a3b3fd99e501654fc9a278b92e910aaaef2798e2d2b0badb8e1a3f9ae4f5ad463d34801d963ae85196439b16ed793e3d92ecfdc5ca33b871b5763be08500766aefff26b4faf74d171212f9bac0b1f85c20ffa7795a07327402d3ca279fbc0d1aca543b046ddca48f5b3b5912b93bef7d55650f09e9c313ea111234ced70051200e9db2a294b717d88cc53e3148ee6fc50e4e238c8ed585a42c5b7264c283a96553fa3c3fc65b9a0d484cfbd58a58717515a4ff027e6c100324dd1874c8cce849a179706c49e037ea11049de8a9205084cafe3e2ffa2bea520c4b43472596598f9f0b2b6bfc7a3593631bd19a89a1ea23e95ee5e256bbf7825a83419a60c8737e348d23a21f47defe8b374a72079172f77632e58bd3d8411ef4240095f91512c16f2a6946b1991201a4d96352040e55465f7646478fe0ac99f0d3d7139a2dcc4be26f29e19ac8e383013539403c94f9492ccb20ca054155a09484de4eec75c6732c6213c13f438c3bfbbd7a98edc2bb604b9da6aa9d0d71edafb44610f1889c216903b207255e01c48720c54eeca01e9180d7582e1d80a9c7e79c71e865fa8e3973c8c605b734a06f5481438e22c6c3349b4e58f71c1a7aa7bea7f0dcea4615e25399e23d50e382ff199531aea1574822ac406c9e081fbc68e7ceee8e9d8d2842d9f207e258793bb4c129b88f68c372b2c5d9f0c30871a49dbb04a3615bc6cc36f9e033fa45c96f26f60197b89cd4f93e846e2410d6c86b6433ee38647dd1d01de55851940d4c64165f106ee014ee6c92dcd50eb4433943936dcb55d56a732d1b34fc6d5df16aab5aed2c377ec9379c2db8f17d7ee2fac12e7e62bda2307942aad47748d6c657ba05c27d7d9b20d4d63b59dc262c19be8c63e79aabcefb9ab49f77ef62efb3649ef138ed3f45b8b50545d79522e2c5c4ca75580187acc9bf554d27240f2a4ac64b20f9d468d15bb8a3b6c82b6a1bc87e0e3b08c6270af1be66aeabdbc817525c30bfd82dc4d83de2735983cb90980106cec4ced31b56dd1bde3437042b607551704d2942790620a48744fadc06bcb0e730ea2e406062632bd4fc4bf9222acd6b3d92318d8bdba1afc7f9ba05fc15d1caa8240cb3ea99f5a3b9baf9369d9a5646b5cb8a7fd938009ec3bf427c339872216d663ce264a92926c39e7ee32b1753c6fc4ff4247360c969b3c18006f338a6cdbe5a2c5d378d914e9b6c10546a3042371d253f3b1ea9510020b16f4946a443fab577ce2a9989bb6083ab53a98551e3525330bed53675e170eff04b8d575986176f601108c82bc342fe9a10f2b64e175beb464c3125cae21e12705f65f166854690e8d9e47543142f085405eb9a297e2d32735af180672f3005c03546abf8d48c8fa34bcbd437513100f737adf08618bb446fded11b483cf448ffbd719e229e89ab56bf532fae13fcf6509ce375b56b71c406e9346f1f60f13ba8d1193ffae9aab567f4e62e79175e6aef2441c75ffcc46aabad2ccbf1243eabbb10bced9132fff5c472a2e909dfa38ea184257fe5671bb36f1f5c74d24969aba4c34d246291cc231a8881ab178202f7c14440b6f31501f661917de0007e68bcd6a10d19facd69f33caeeac2d8f25f1eeae6f82e2c14dc031a41980abe3d6f9b590b22b465fa4e17afcceebbe4f5b92aa3444298e13d041a7c96a85c7d50fb9fc87a6c1a4d778c5fd9e33f05ca34e806e14d2c47817cfeb46a1aec3db10f03250b019ea4cf800923ae21b564b59075beb2efe433902bff480caf8d546b666f9369fb9fc5b4f67914a7bf1babce90465ecad104f874da943b1971679179918a6fc7a623bde15e113b81c25c046828f6347bf55a4679f484a94196786a0de93a7102867a4368131bfda791048ce419dc72549e064dc3769751cf2d602232e64c4fa3a86de27adff177047d491838cd626fcbcd96bd21852490db997495201576eea4ed8ff2519388b47ed56f5486c90f1c14c79069c3bdfceaec5841a8efd818ee91fe818249129035707e975a5b1f39d20973fdd8a884341f9bedeed3794a418906267a3cf9049fdefa26bf8ab8394705e4e3bc13324add7972c43957359f857d2627d1479fe29d0f0ea6cba7fe7c7cbae341077e7ed1db53a456d06f0dc670f6d45a5020220cf433e2cfc5023bab377f2fd451864b23d8141fae389a8178dcb590a42e26339ad6127a68c0c7a2744ca6682efa706b94f9ff6374718420165fdd8bf4abf5b61b3c9b1e0c6b9432ef1f685b8df4ba76a49408deac5df540cc22d1783d3e234369cffb9e3b453453bc4dd1a0c351b1b08a3cde849a203bbf23c2d6986b11ded7df62acf55567f3e509d7207c07d11ed63cbc03cfb6c22ad5045da99bd8b175cde4c4b257ce9f22928bde4055b64d8f0d7aca3f96ba5bffd8ff1c249f3d1e601cbde13b9996e703c2cf65cefe500e932aae2e8292c774d638549d7a3a121b2193cffc3eaa967c1b59ef0f4a7fa5bf9ffa31e9901fddc4d16352625614b85e77e9dd708ed8022e01817457ca7574101fa585372aa1895515cee74ca86ef23a8d33efd82ec487157c6e319866da351b898f4196e117fce6969d3c2dbaae5d3ce30466a5656df53a5885e94a37ec20ed581ce2b2b91f4c7a98aebcd3e143c18c57dabf8756b0da71f4e2e419c4034ca493bf88a7fbb9b79239701e78e3a99eda857e95446d123a1050d72f024f85a7fd33dd3d397eff246ef3a22d6ae1a28a076e6d5085ec022b853346960a6de4c342f3e2eadfafe584316e35d64b7f669a1473ab5e76aa05c4ea833540dab3c8dfafc4c61f4e21d12324d70c9b8f3d65dfcffc127db381b79ce911edcf2be4142047bc745f51399abeb84256fbb15906c268fb1afd8ddb0349122c5e2662101aa533f608b27c60e50812ac36f2dbe9c2998f450d8f39427c79af581a16825f9b0d1de42e6790638af5366ce1a1ddb1e83185805bc23bbcca435f830b1417650e2aa2964a1dc0d1dd6fa72c0e6bc8fd3add914ad0cb6f838caa854f3b70aa75f50246cc1d85295e0fff3cba355834b7040b5d802c1571503ebf35d698766fe15d1b2bccfe1bd2fee73d25cb346cfebb7e0dc961823c8dc3e4db79c625c5d98ecd98dd0ce7ca755823f8115a73fa3101cebbf823c69c7a8a026fcff8e22830ae540581484fbb7ce4567ffe2b1865a6cd24a7f61b555c2f60ff17b42f6d7cbe37db75a3ad3632794392888a50ff6cd511cf7bf7575a4aad3c9f279d46f49318814eb9852b90e01c57f6a41f76524e413eeb6585c386bea833b009e3f6cb5ac776e191500b43067a534889b1623adf0924f750f955da4d6ae963302ed7193fdd75dba5738411ea7af7fbfd5ce92aecd15b03b37fb88fd3ad411e1c6aab280e793b02ce06293563fa8b0dd90039e173b9df0027784ed0d2c2c56cfb1e4884a7ddfd9fca1096c885287ceadd2485d4056d6ef95cd43f4c46cf9ac3144c5821e58327af361b6149584e315cef75d7d0c11ebb4a4b826e2761a14b3b002935c2c92f622b0564393ae5743d5a2f44769ff8ea8706605b9c56f43d20c6e0458f9f24dd39a6eb22ed36b24d93e4e940c067c6fa19ebdf0b521ebebc36c94d16f46dc59be936b5949d71837d2e0c4e680966a44a1a20543c48f079fc0399a6697cb3288861cd63cc41d260c24c0d12a84bf3cd1e74fbaa00ee5fa9fcdd396c5eb83fc594dc1d5c7fb62bd694c7089da862a72d7c08b824d1053b13c49c95bc3bc24694dbcc3ed84857ec1e9244e55e7412f1e10200703234c3badd129d240e585ee12384b86ebf55fbec864be05a8be70904bf2786425115242941b194fa2ae0a6df77b39ef54df9dc82a3f663ae3c2093b4bd829aa93567554cb79c1806fc0910e13e2260d9807a96f6c168fdd63ea34895fb84a3cfc3da1fb61c2e8ca997a2632dde2a7bd204a4d6133686386c3735c2d9cc9c5c14361462bdeb3adaf7e0956446647fc12353b8426fee5b48d9b1d8cec660ca1908edfb2f609fe03c3e39be370bb44f12fab736fdd70712df4528df52150a22eb4a9ca2b2782d0309383668e21374c5651b4ec6ee70118cf811b7dce35eb0ccf25679fdf584a96063dbf56ccf8afa9481b4cdb7d49d3322da560c2065f54f9d7b33c6674bf8e881eba8f992edab04b371de1b8268467355fb4d28b50c99907e29fbc39c4f86096634ea8aa0caf12ee163ddaf68d173ec5190f96f83b59c37ad26667a596429cb2607f6d59af011c15f14cdf335eb14fb2c1a650d02f4954618b6c90d72baf99082805efdcbd08f99b51597bb765083dbf44471d288bd97d240756566948e51e6befbc608124143f0f352b7db056dcae88c4c0fc316adab168c6ea8bbd6edc30e9674e3b613f97b37db201c731aeabc9b666b828a1a1ef8a6d8664c481f16e5eed155b29061ef0d9f399fd1fd4d17541f03ba9accdfeeed58da00e0041480c4c8a65f9d635c758849f773c0a39b2921ec3c86c49788f965a3146e97ee92f97993f6511eab6bc6114d379011748dc427901256b58ba4f76071513ad092ef6ab922e635c6a8321efd90d5b83a918a337eb21509e66269f92de9458fa3e8c2d62395559a33ef32cc76e6f15af36d45c58a6ecc333f8a5cdf8271b3e7b3f9470a7c47a460dc45af1f45f3b2fd3a8146b4de0ef9c140863b1f4b68f564c8a911afa40eb5c109a568deac99cd17b19e5e9bfd604ef315a8b2ac05e5a4b999bfe397644f2120fb065100663e0811ba0cd8a3f658d0de3bb94eb1fe6602efd24c0eb9c30131a96e293fa036bdbfd28746db6cb5da9f4be167e12c759aae298ea856781ca58110700c7f882a51943eba3b70f9dc15a60b19670403a455f6e06b51ef6c72c3ebfc3cb9ac5d2c2e1a1a6b31b261407a40090aeef6797f51140a05c18c88472769e4ee97d4a4f2e738e97c53ff23bd94e086df7818a5115d25f16d82a65f76ccb19f3bb847ec2538b91ad82e09ee760e125501b4966b7280b3852d99ddf6f550ef1813c6e62d29e37b9a925bb6aa24db6f08e401d4bff07c8e6a9efb42938aa8c8785729bc70cc08d9708699ad003fc34c261a8eec9b30c360ed7fe17d467161e7ae609cc68ae00c04b1bc4e17ed3cb18cf9da349419439cb9cb4064af20e2913348cfa6e60b0386e1afef0e1acc0665312ef20f0f9c366496f3f2be7cba0b6794c4c60eaf497967288f9f083964f0ea513cafdcb1af97ec089d2c8465d5c2ce45ec36aaf9514f8d4f36c3f1b83e47aa88289d4a5c3aed3ca48a1802df122c7446f6fe61ac29ee7f559e63f793441f2cd121536c20bbfad76815902316426ea2062e35a0e5036c4a0fb1b121e33f767a6b87ca94ac81a62b44dc33e00cbb089c331e3be24959fc12cfc4030938ed8a7d3d8513ae30d6965c2976768391565dce6abf272e1e8fda08b9894b0c29672765c0c456164c5490a341ddc5ff23e2d47487b87f5e7dd144b4720bd03ea736f38533c3c114a56f4e99068b4414bb1258e72b6dcbd74bd2a4d7ca2f87b9b32ffc5c6660f94dc52b8161207b3391fb5032e90996ee02c59b25ec63f85f3a892af492eb5c7a12bb821c417ad85d6df2863e175c981a943bffea9d3ad78b8217335423ce4167628e55b5ab26f5bbd6769143b64197fbb8bdec3e574daaa6deb281e51a7590bcf1e88f39166f4039a0321b79768a02152399ab5b6f3de384d5f8b8649d07448ae3e49110a1653dc844b252d4c40fbc258cc4cf41c1d9d0726510fefa4f677b066a14c6f6932362f34fe7a001bf3a76d9268c0db255f5f3f2e2f8c6362c350f901ba131bd2bec2dddf3586ff86ea878806e47a91ecbef886a3938e8fd73230d212243bdbc4b3619f1aea6a9d5d015ef60f0818543df372cd72ce3850ff13008ee517b95988b7e2a92472545cf95ed82de0b5a5a9a47ecefaca07210f0d3ebeda93be07019063a81fe651d0f03b61df6fedbdde87e29fb42f70357f0ed6e438f4fa7339bcba84ab656f6a54bcdfca38d2fb0efc31ce33433f8544b44908190e096cb9235f43d557476171fa4f333adda93243fcf9a4bd1964de150bed7608182e8a1f26c9e65072a6781ea6f5f2c1dc247df83689f5803f2e262c59a66f84aa2f753994fdde668dd78ffd707a510d2c6dcfb2243267a73f567f2359aae9eb245f8effee5bafc6551237e202e9c958842ea59123cefefd2a770afd5e0ee9255340ec52a1e67e20fd51f915f977c350e12604de916c86a5ba8dce03d2174ccc1f48b05098ee3adc8c451e87cc4227020daeff157f9c246c0ec05073ff0788962fc07b2d1c3c23c72605b662f67ceaffe5e0e54ab82b6bd14075ada776fb1638ef735fc812bb23630f8f3bf58dbfce59bbaff6b52dad15ace3aa5d04abcb759e3b23301213c592b5613821d6af38ed76ef549c06153cafc6e1516204ecf34957e1eab649fd531656302020aa235eacd1337d5520ae324e001c6014f463f5f7f0a774c20dfe0768d0b0d301622b024db5da08be399121d3243d2e7b718cb388dce01f696c2cbc5965b6cd674763de2b552b0e0defbace445a1aed1106aa1f68f645a28b2e891b28f462109eeeb3e15a3f53d711ca071f37ea9c3dbc034276f783f9d4c67146957d1dfc2565beac1529bfc81ac86c4ab21fac50b7438a1fda2c3391f116d9a62ea2b76f00a2cb9657e813e89733a9196980f3d6195d08b81a06a8752f752043c632b0c1ba5d53e1e83b642c2c2198bd66dbf1a639731765af497b3ec94e9c48632068b96f2db69fe0de96e01c2ef6d265f0a0bf0a7818984a5d848e35c054fc08d05bfa18faa3071f7fdc00247bee2847a8eaf45ddbf04d97b92e6fb7ef5e71d4d137ff2057f49bc006db2bf5eea715c3289f8691adc8dc6556529f2427318b6b634b85cc70eccc02dc86c453e07d02488bf225e67bba3dd37b38a33ed7f97af54565c764ad2d8af57d508aebcc64f0c6fc3e30d699dcff102c032ec6696dc595d83ed9e4b5d4389e79e3d48d03756b2bbece4199b58fd0cbcecf359704e69ec547b464df8ba341f74336b6e15572d7d7bc6457c67cfb91fa94168224c2ccf87fa383388cb272425fad8f44564b9de76926db430134ce801308cd3efbac9e4cb720b4e0d0b238d7728daf0f963e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855bfd961e699c0574cda2f3a79829eadb441ac02dfb7752f9e7011428a1f8cc01875d07489f001a6b1670c1976d656250473ab4626da78a0222f327d7d33206f634fbd924871738b1d35e9b146987044ee62a9378f583a94e2b60d69eb2f366f369fab1727d7647e53c099d91b37cfcfa9e536ca790cad898a2eb221dab8814225bbafe9e8f8c539edf9f72ed56df3d88a3f24abc53dd06a89ce746ade1ebd0da216f90a93f826d2ef43655e69a893fb1d5329fe6ddc8a1475f60ca5a715187937781ecca955cc2694a392dfb3969cb18a001357822dfe4d4d4b4cc71a3c4a869507db236dc370fff9e9b099e00f3b88ea970fd65b280d4d79cdc34bf658959d1ba67e689713593c9bd9ba91f41f3c953936d71d54b976ca37f7cd370e62895785e7d692d11f2fbb5ac33498c7348270615966c84d345ec8e35de19168a18585af87168beaa82b18f5c00bfe015b13baca208c5c2801ebd1667ee06d73c8dcf9e74a1e6bfa8c7b4474cd646e042228f8f9c35e87cc53927719cde47ebe0c633492c87ec72f8223a1b6052fa3d6019c7cd30aba27de1b1cc5ecbbe2bed0709387b0e23a8948f49e0ccaea54dba72954ed75a9f6094f84f1dcbf9fd09aa93d0eb5bccce0e702cad3e050c8c261bb7fa1bcf2856dc75cf9f30013a55f9aaef60464da9b80c49ef6fdbc82ecb00d75b5e958a57ad0fb515677658261fbfdad9ac279112b1a09f3212e273fa3dad09188eacd3f23adb3d6a18af4e9bf1d98ca1b8d0e0ec06e021de8cfeaa2be05cdb3f62bbc5d6dbc0b778b9d4295370527e37e8aeeab2335cbe909baf614181ae9efbdd3c7ba5ff72b6efd22bc5b451e6a96b3251ada6c52ca05a27eaf9e642faef2c680cf649d0f84d28cdaf64c3cb45b817936a27ff1729031a2ce660496aa2374e1c9e1518ad119d7b8262f7daa6f9224787d50e97e83a7a2dd60496446a2f789f54541a5a9890ff758be52b7bb57032c4c28507cdcf734513f4200bf5f93ec75e8f161393dcccb78ab4d4f12bda4cc0faf45adbbc0dc45e42a5778312c3ca4bdf482ba9636511b7427cb3c1b56f2cf1dd798ac9b808bc999d4dd4a6b8f5d411d9d132904f2ceb765253841c91e4a433ce3853e808f03bdf392c3b209edcfcf15fc985fe6dcdcd13966849ee082aa890df7e69fc9f729c28443fb8f09dd7edeeee2ba75103086e271589285a027d8c4975d3274b436f5beedc4ed1fafdb15d4aa3f67f6fa41a29dc0ab6f2f5c58340160cc6787f1ddc03ab9d026dd887755a81810c6fa2890774805d27fa2ae4e3150d98e4e6bd7d16cff77cb4fa227243188e669178dbeba29c984ba1ef99a4004bb81a78606f0d9bbd215bb4b98a051918f6a5617202b9ae30d49cb76b275697ddf42b5563daed651b22508639195c3c5810d9be485cfb03941bcaf4cd7900bdbf54d76303a19c4b07f5f882f73b1dd59d8fa7c9e72c2a0fe2ded2014f4f572369214dbcaa613d4770ac4b561a6b89db855a23970c4adb6cfb11b7a5aed3e101c65d8c7b55909d4770ac4b561a6b89db855a23970c4adb6cfb11b7a5aed3e101c65d8c7b5590954f71b326beaf1b478a06c6e3886da534fdc006c3901722e0f9f46f7f2dc56e1df74481c4c7ebcf578d0d7231b63e205773207a21b2b307e6aa3e04b776f448226533ead749d7fc22dec7896adb20043a899451f4c9ebc84c6522e288416f135f9aaa3df3b5016e4ebced14004a2ccf4a545101bf545d0db2d46cec96c1ad0ae77af41343b9ec83936c6715baa47e1ef10e828bfc32e4f6a4ae151b4c6d4a0176d7b36b5d1ccf320aa1676e03027488205d54299ad5a54371528a8c109f25511f21c67402e71b2abdda132705a549d0e76d63c9732fd691e125d45579e07dac02c3223bd9affe67e69820fc871c3b6af78f27b8d5f0a0192cf9b44749c2c9693b612742d2d4f3c24f3e1febb85d8b2bb2fc0bd5fda9c69e1a9744461e10776e7819faacbdb8b82a46c9ec55de736ed14858aadfb87d197543c7ef18156ff46dd0dc3010af5c791ebdb113aecbe60154b351073e5792432efb2858551c95f7cff2b40a4ee2616e1e3d9a8302862d8471c38fcd794247303e60a550345f3486114741ccbdb83024114505be8a088e04cca142731f5c37955973fe6b3c8ac4ea348c33a90b2873fc57010a22155fb4367a75442a960af4ff29e56c4747532d1df0aa9c87a46c538613a5a1bb0e29d5f69b515a9dd059b77580d1e4f78fbb14cc4462ea8c84e1923054b0542ea4920e22e68daab94a352eb34a9fe9e824dfad620c7e15f4a572986db6661b99d73e54dd6ba1702e2823d6e5cac4d5d40c2ddfef24cfee4c2a6a73df5a82c74c633e866acc205e3a8e0f73089038c9cd0070f8807bb19a3279956572633160a0204e0816760a95fc1ebf8e81f0c84d3c64c6b44f29590ced1ac6882f238acad591eee5e84f3cb9841a368cfc2a3dbd2c46031d891b949c0904d25c578cc729b2e38dcd697afeb8574564f6a8a54da6257da6f3c75d4fa554c04998ad3c8dae1a087e9b6c3be116154d667b95e7988a377a7d91f6d0c1de412699babdc855b2a9c09bd37a851a88219294f4c8f2d63e4a754d38fc426a38d05e69e3561b04c5eac17e182f02c69dbf151e67113fb5f8ea55b5e4c4b6e54fe7493df0e267c4f12bf33d46133b45be6af04d3c16ae108402afe9218d46907f0916760b23922e0e206396ee22db9c682e4ffc5bb58dc8a4ebd5779f7e01a03fb52388f45df45635163a85f1496f6dbb2798030e227a6512eeb18229138e18d9c735fc009316c26039e7e5c4f71d0c03c8de5a9e15b251467b5cb6f661101504214e2138b7d7b239743649729b69f4e169e293d0e98f45d4d8ed82173789eb6b13f270513ae6bf875fe98192c534cb5c91d2f5b3cd641d1b681ee57a9f27cc6fb1dbe68a4e921e663bf6961b8e00c9b029b6ec38926ca41b1bdc75987d657b20b980ce1ec90c3a5f373feca2e12355a47b00577e9e8c4231138c00a41a8ef5f1cd542f458472ebe11863e9927745cc0ad9a48e1d445590f6b2c216d4e7793e16d9fb945a92840f725a6eea1a1782d50af67c0981525357ae2eb438ac602e89b586c169c3fa8b7922e7e8ce2e4e611de8e357aea39c5431694c66c814b01b20a7f32e219b1ee519677133cb334c5d9df93d0bdbc3e126ce21c85ec101a74b614ee53b87e463187821fb58bf279a9fdac96566c15872552047fa83d6eab28d03759d20f0ea41dd1a1cbba8041c13d63bb50576287e3f7f464129efae5a00350e555bde2e76831ba05da70ded877329cf9314ddc3f21cf40c1f76f2781b8c2bae63476cd5606ad1c71bed389a506434e2d20f0c5cfcbc3a275f18c4d43914fef1c1ec11cbc2ce651ee80ad948a2cb4584fbae39c327c1fe01c6ea49e1b703da077eaa90384cf56702021ade562413173b00d38bd3981fcefe0ec0b3823ebec53a5c7c43b1547fff082a3c3afe87087f47f610cdb89975065c90b9bf5c3aadf974904c038548614e52b26139b2b87c96e9c34688330ce46246fc2ea630f004a4ca75c8351f2274975d610d2c4627def2050e32f0943b7e3ec45858f5d0cae909e442ea725535f05df6f098bd7cdf1ed8f5a967723d7b07749a792e47e2038072519595e8aefc3392eb086cfd4402ea0a0f2f6b95390e9ba1767ca8f60f226fdfb62c47a454f1504edcb46f465bc8dcf9182c2c79b0b52640e4c1a112c092af0f6cddd378786ab5753ac9392b9050623ac0feb7fc2a7ec4f59507c7bf3c630a4b895ed717d7957a00d0291bab5429cfe80c2a098da36a37d4bc44ab272cb14de5ba3ed0c02ab85f5f8c69315b105c5f15e81830ef17171383dc69e7d7f59cbc025bfe6dad02f60c0b405c272ea584089c62cd575e0a6b1e730f908c4978a1d17f71615d2dc825f914a079215100f6085a80cd87e6aa168b47dc39aceb3ca1fc3c571ec0da0a8b24f853b50b423b0aa3347f06463f7b9b8b8d2ca94ae4794f33dad8e3c5a92a2b24882dfaed6617a0cbfaeb74202a25e15ffa47196a2f6655aa51ac16b0ff50117ce05edff9cdb3cbcc753abac298af22932783d8d066d2c3793b13668d3466b870d59d4e9c1ecfdac2a8a3171783787f00539b2e1c435124da6a019b519c4afee58297c95739aa65ff014bc91dc2bc816fabbfb524a1545f76b7eb7a07d7c2d15563f25e8252ea63f5a56e9f991099aaeb9ae58e884e41e5585d7623c263844e0a78021b5bacdd184615fae653c9c79118a5e775a6439a7eaebfcf65ee6fcc2e850c60b6319715159712165534fd9c86e4eebdbaf2bc7bc3fb9f3bb9aad30290a294ea5caa93d8775a6e76410d982acc36e79c259d359b8a4c56bdf7089c571000d5138bdd4cbd3ab65a09dcd7783135f37087d647875198067d3b511121eedc5f4ec5e0a90294e7a668d85602d2aeec7fbcf3616cabeeb65f28152c31ee9502563b20d251f2812faa7c96afe2c21fabfdc52f93a385379d0834d953c22b6a4789a32d10cc46a7891c158ef88abfdb20153d02e7a17ef31e97dbb60c359b1b4650fb91a4a1d01a574d3ae03bfdd16bc81e596927e5a22bd44e84b3f9786fac2e3018b02baa5a4d18180a3c631ccf9c61ced7cad13308e56c54c1545afa5ba765c3320edadbeaf82b7c09c17015b8785313108ca0d767d27bd878a351394478152b3c156cb39cad30f689b30d9262df8863c190e85ff149054dfdb416eb02b2305a0e87504947939bdeaccc93252ce38c29fd21fb92b7672c3be801bc66feeff736c0491fe447f610a409703e4e9bced00b10372064d3ca4c42134e468e350d1143eb648f60c7b0bd6031101ec0544a361ca74ecef256ac901f48bde16ebbb2802c7785776600e34bd6c5103b92a82eadc4bd1944448ea9022775717e52885a9541f612945552af31d017107c8335e084090c46c8012c0bebfae38db37aaacf67258a29972bfde5b2d03e3691ad24b8aedb7fb0de5648c0877ae91c07fc7307baebd983e5d61cd369b59aaafe1576c833c7347b28b488be6358a2afd607c1fa8ef83b8f4071e6918864adbea3a81c93695bd5766f310d192a3d7ac1ea30cc91329591e3e0dab36cd3e332b72137cfcc97320a2e3afc8ff1c9ea31ebf9d0b8ee6de8464c0609731c9335997865eb58aecded38c90b69093ec1d4f050145816641b5ff0ef629ba5e22ee36ad83e5515d49d22e493d6c37108280947e9f7f30ca746b4ca49c889f9a963a597be0e26b2563f375716b691b07eb48384b70066d900a30f9b8a7bf4218d7f08865297cb067de7c7569be77b0e04f6efceda6850ff380e144bff6c8caf2fa454b4f9d8a81bf3114894cc3edc9295969698337d4eccf0b69d44e7b9b3ed17e9407d80be3a401d43d544463e9cda33c4345f9dd470855a36388d721836436211296f8e8e9b78d2eb92dc70fa7c46053ff6d019c0fef8aa4ad61d19594e7b73690cbec12b4e705b45525594d0e7df17e266eb22a86c36d1891e3c4adc31ae822022d87fac455cba51a9037900f7754c9cce47777046ff571b0fc0916b66c2c783e1f1d56917e57afebf306150763b7f5ab49722e30ea84cfbe464c7e744aa0bdf11e33a173d51d4784b06055e8aaaa7798d925b25faee3bebf8d285deceabd36a3ceadbce8c77673080ea0910614d8a31a1f3235810d042c0aa441fe0c628b2570570b5eb3f739a73800b26c760eb91cb39ea9c7701d5b0629c69b733b8f4b2cfb583c9ffa3770d31f8201b2a44667d9c843c33c2786931b017f3f2008b39fed17f04a34b4032bee6ce17eff2924ac89e4e4558866a66ee15a366cdbb46a4dde8bc3ef9f4dfcec16f9b696e139c0cd231b7c4c29d9c9b768ea4bdfc58db64c0dd68fe21f3c92e3298c6309110427c7fbfd423529d9c9b768ea4bdfc58db64c0dd68fe21f3c92e3298c6309110427c7fbfd423536a83450285b8afb3e12d75cbebe950e411041248d14388c34adee487dfecc54d9b6fb3f9a169c2b5d7416123e290e76de1c4de85d69305a23b980c08a24764c060c0956382d1b31f430358d6909fde1e223561327899f9b6bdac1ca2146f0e752757f89a989a0dfa7c40e9f09f5842a739b646601b5d0c08f5a0600088378c53261e9ead7fdfe8c3a56017b11950838a2f90669f8d601c11ce63b7388495477f0a2347a287d256a56a6762b85542e2f9758346b9d34f2b04fb4112a7173a91fd264ba3a9ee79c8b5ab4fac5286f872a480560ec9b15c8736bf71fe8ebb10fbf92e6a176b7ffc2e9d81b320b07eddda038e49b766e13ed8e2967fccd40d5d12fbe35da7a34bdcccf641f16a6b89e560efc436458f9492bb094f59316ff9d0014998ca974bce6ba6486a5d94f71bab5c91f1b19c3225f973242697eafccec52c726ae562b07f22f64b7789f6f22ea32def4c312d598a3dbe843084e9b28722a9ad4fca3dfc0da999c7d0b34962fa0c8211aa00906a84841eb095601fe0e47afb424443f0553d751767de7c38bd2072e4305043ad199a12ad6148d83eb215ff168e387f7f5d9e68e15dbe4d1b35ff06ae32c22445d98973788558c6583c8efe4ff795edcf89caa7bfc8979a65fde955d01a6f24306bb72286479eb32a1a298837eb0c59b300e51f25fa7b7e9e9161410d38d76cb10f5070227138dfc8df552a40d6a79cf1579ab682b90a86f872509fe59e692851028a51e25cf4430329d0b40f9208a5a588270fcc1f11ccb6078216df9bcd8663b6ce8e468b4822cb1222e7e63cffb7e69a50e4ff30d63ab86cb3aae8da07dfce9df4b093761a9943ba0769f8ea8583c8ca6f29e2a76cbaecc84b2664a22fc826b071d4e942e08e10ec9ac1b23e882865b21a053b7fb3464c84e4bc979095c21c30c199a7847a32f102b4443ce53d68bb975f79b284c61c5874c353d7239689c418341b4258498db5600b830afe653bdf87bdf4ad2737bef6c25cb2fd912e7bd4fca8730dbd6562c60f1ed636488777b9df1dfbec201dcd37eb7633c333957be86d7e6c4d279dc956d4e2a8a36040b3f897c80ceaf9c6f0bb5513c536a03d5283736dacc16ae12493fe516d172875d560946ff4acf793988e5292af284cb4a82837634731bb5350cd1b3370734415e5284355de8f45dde9a7b5efb995bb895f1c2e61753ac3e634663a7f0c952f214885db73b6597a4ff9a91218d7cba4332def95ed2bfc09d87e03482f137c7e0372355d502e8896d2987594582dd2c66a3569e0c3a9344121aead259b58377310a1a39520c236c602faed4e3370dcd487fa1768a2acf2fcddbe2428b097a5a11f7d9a588f3bc29c0e0cce2d6a03eade7dfb722e7f856f1849b6d3edaa83c74bd1a1682a7e37177fb45b209544e91cdf3423cc9b82deff5e90d21f253348ceb418926978aec868a8313c07e44df501342a520422d1da4279da48d17964a3d5808d1b4b4d43338e0999e5941f92c259127081ade2cb0891a6a7849d2b5c53eee0ee7c0ca31d24fccb13381a8c5b7656107866ccac1d04b492b5a5838c788bd3e235502c6dae915180856f9f096158966272186aa0d0db440e6fd572e15c2d624aec00c28b4922cf16480473eff0bdec8983785c0c3c28f8773342c9e561892e1bf27db041d65e15a4ff0b7d09a63a6e81984026c9b407aea63e0ab3f7668173fb3301c2a0385ac9e6bbbed6aed1c675a64244dba19d901109d6b992e883f2b335a001934886bdedcbabf89f6a81e8253c0c1bb47ac18e9c7b859f0fcb1d9240691ea8fada209634d23f92fba9ca1682458f3cd8a3c5296710f245382f30024fe5c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3dc5de3064f0fd22a65d55b1be806fcf1f64bc45d268b1cca7b500467f0f65d70647e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc00854115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63c7278fef0b7d6748faf50278bba7f6d78a85a9bce97f75700c9e434209491709cc10f799cd0f6b65f95c4012445497e5ba3cb9f51964a9468940b27bde98b487218fb1c1fc72e9af6b866f430be2a67fa376392b4db2f4dbf32772671b6ae55cf8811026c37bc9d2656234e7dc1c83f7b249c92396aa04fa0adb249c42201eba85bbddb0eca14590e4a316e272fbac8793b014737fb0d6a7b31314e381d236ff74a01976311eb5eaf50432a5158ecceed3ccd36ddaf84ff5b2e384822bccddb391d9116d4e2460945efad708123748bc7db501ffca2218bba9897b335821c6c3efbe2bcd91d2fd50e54165e9b983234688bd5d61fe1dd27426ee6d60af0411c60bdff46f7e10f633d1e9f2ef99bde753b96bcb7386b0cc902de951ec348ae95ea54d13697a71463ba5558c80d17ac120cfc85e0a5e09a9e17a049c6e604056fd9bfddd99c06c8efa98b3089e41b36c48de9e41bb54c603436fcaff03aced8efbd0d330fd12d38409a6a7400e586c20f68fc1f7c67354a7e4f4421d66cf00ad1a57f303320ce129a6436935790b3bdc0eae60f80cfe36f0729b01febeaf473d751a441cff4c0a8e5dcc008c8846aacdb84025090eee7e77b2cd86ba8842634852a66035fefcb2e79d90fc52af2c3a12163a1c3aab0ebad20579a9301088d2f4aef3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b1bf8686e1d34f7a6b0ac3ee3b2ebcd4e99cf1bea0a690a8ba34b3a1dee6e38d6d731d30161a6dcd71f67bdc04c2bd813e24c0ebf2a84b0c7051d5cd270027038af9e9afdcaa147b8be149048bd78aa5c1a5d9b8ee992b74b96417b2bd2fde6771de9d50f2c367ea1b4f8ded0073891f193de6e2c9d815affc906bc16932928cca288880985d65ac926a62d85c1a461a0b858a2fd93cb44d3a4760ffa50531269888a52f217a9b9c30bac48997781ef07c3a001ea8f6d60316e2004940e0279c389808d822ceeabc176bbed33a857d1b7edaf6bb2349ac58c8f14efdc5dfd72f1ae5c26075414392fb54dead9ef7a62ab249af3b180bdcbe136c849ef831d0ce83634f1cba7415d17dc6849a139f7c3a37b672ce9df5487baf1557f7a1fcd0bca490539037546bffe1fb30172419cecb4c558d19457897dee96c18e05d1305eabf6d8171a718280c23ba9bdc521dd583623dd984ab665d69f44b837258365cd17454f6689221b094d24f8da3f73d7cecfee0e2edf3424a8db9620f13286b194d636ddb82b9850c3939f601e2876a28b4028d3e062d66a9b41a63d9acf42745f1df1d6e8c029e1d5b16798cc72a3ee9ec50c68753684119a868bc84edcdafef6965d7dee1920101d2b26523e5f77927932ebb150259ac4b87591d47a7daf2b702774ff37c7099a6c25bb8847ae460f6cfd56d95daf0003d8a9f68bcc6fece1dd2e3c10c87f714ddd68f02593349b43933699ef1d9a4deb69950b6ca870e805f0d08fc995759775bbaa22c62f1f2b46f13ec7d7b41fe59c12d66e7a230d0368d9dc31bbf292c29b7d78c2ef550fd8d910ce1e2b723be4e242fbe74039d0ee3e00e5920ef0acd314572408d454134ebfa5e271565615c8e2b223186b883ac22fd623a83d688b175394cbcbd03354459458073dd87ba895cc63ad38c3c88b54635d5a8e135443b681f63cf51cd26dd12bee6cadbc83e0e3f1ad1c048fc9ab918e6e87a83512fe59414e97397ac04b79a44630f3a5395baedf2b84fadc7d363aada973a8d90372a4d24b44a27c837fd546941308786b269cd1bcc99f6c45d6f065ac49ae002169742407168e253bce0250185f0b721f7461c3fc9d451ebe06a6bb73f0e86f4a1612050ff266b96bcffd3e1f433dfa787f7e68243104ab3598eb8d538262b99c070bcaa940c557acfa867411e363da5e4ad87b56d4180f3c342b18154d6215f0cdf17fb3fd89e38d3830e19ed2cec1f98f172eafb71cb27d05cddc152939366a1b47957fc33ff351f836ff7528d1f105e5a25e119df340efb4e93e459a693db6ff0af01c1416a4cf5643fa970e6facf75aa2c38a66404085039c2314e33b1fb4e30fc4b96eb2bab6c7dae89f65ddd6bbb12119017843939b2602867da5b2842c0058217a5930dede5b87a92c30853b7d9fb82cc53d4bcdd023d38a8d7acba6eabe154a1bdfdc9a3f2ce2bc33d1109da947f8615a7cdbaad941d4cfa6251ec5a2d34405b42f08cade610ffd9a40ca2bfebd4bea3e7a6ff6a53d30bb38f892a74011a97e33910fb7b86ce7524fe685479aec9fb64aa13f895c48cbe77599fc2ef91b6fe4d50f1d88baef511389dac950c577b966eb090c7cd708682d037ab566dc3b315ff9d640cf92bee650ddf04345170c27651ff91100613546565223e636ee4f8e734765af2a23e42c83f63bbb11733d4c40eb3d48ff461c9f4bbd1e4cf95671146d5d7bcb674c5567a669351fbc139fcb5b16443e395e52a8cdb1204bfbe3849115035084007a39b5481d3544bef3d38af9cfe840c863891a528838b34951ada21ac0c96e1cb5289e9817841c704519c884d72101fa061f34fe6f5f875169e11cb5affb82d6eeec9284324d3d2e8cc4842d978b6bd2c9788d937fcc13c85727d181c7449773cd8530cc21b7361aee9a56d3645f0e7ee28b1afae2f71a1cc84cc273c0f47116ceb5079cfc73457a675a8ef2ef63cd147bfcef62a95cd97df6b4561785becb6ac097c8dc054c132e54ba2a7bc52c00eaac15658f64be63ff5183c3b40ebf3bc4f9c8f734a72948800f59f690d161576c251b34ba629c3d478710667ffbdddc38ac09db36bd529f0357603794cba4fc5781aa887c59a9c52c6164fdfaf324ed7017ea1d359be299e40a576615a248c5fc085fcd9a843bb748e16e814f3b7dd47f770de76b57f7ae5f72ffbc2af9568b554831a8e008462d42efe3977fdda7bbb64c7c875af8dc3d7692f55fa6801de2cf23a4373108b6265eb24fa5def34b56bc523990620cf5263484b0aaffc2c207a4aab6aabb71611492151ecd0e3bc72e1cad4cddaab25aa0fe7ccfac46056576ed5aa6a9ea466b4f7deb67ed759427540094d3e87234a1899f692327582a531d7ba0dc51ebf8dbeda2c7ea9385fb90dfd2fc9557fff961ca21ae360ba9d4d6cc846a3f9ddc85ad72e4d1dd780cfcccb27ce2dfbce987ed3eaeb7a7b50058603c11abbd5d6af98f457ded970003a7cdd567e5d2699d5b3944a97590e810472260173b7f06cd13a067b8248e1a82fd1edbf806d7a15e15c7b70e91fbc6d1c9d5a2911740b21096977181336d727b9e7324cf640efff42f5dc98c1e38cab043f806c53ae37c4328640e8f468a01de1649c2385e529d8560e39766da19eb68742285aca597d4170c620ff254a7dcdabca64fc08ae911f2e9d18602d8524e6a7f1863273540247b190894b480240e8c8a3207cb769c2f1d289334fb39d41a6c2696e08748025b1904510913136cc9d45bb0d025f76fe1a42c3da5b352e2ddf4f9366614ee6b3908649e8c7b1575e9d0663664b6a069692f6aa606a48a6dbfaaad6777ad52b45557d7a5d1b9bdf6a63ab3eef57815488a396244a535b72dc9f93dd22887575c1ada2bf3df823667713855cfaf9e44f37dfbd21baa2d08dbc04dfdee2e9362be91169c1f528cb615cc34fe54ad73ec4513e9cb3b41e265db86e627d2a7fc6ac32231b0ee0de9113def29c7918a9e2f6861ea6982b7a6816cf5b20a4da972b1dee03f11a848b3e6509785c19a3a3049a35d3401af734b78b84a3199cd769c7643746f2df4f06731e97adebf189bf3101aca9eec387c0a27feeff0d0d65086eb8a2ce27ad6a55800ec93f3a023230e83d85c7d5bc588c051808f1bb532840e5935469aac2f2aab215dcc1ceae91f3011b250b1a84883e8d950fbd8b29659b6a9cb796cbd1a8d7ab76fe446b4fcd16b9d3412ab3ff9a5fad6c71a71f62302ecc0c0f531748c0b971be811c28b2d1dcdfbf1154073b3a976896a3c91e02ec006bddf68c52387fc2924a3a627e88787bf89b0305fd2dc5822ab9c25f5f84234d35e2cfcf88e1ffa1a918ec00df646796c179ee3137ea615282308769c16912aace5814b6cd1528b4ecaedeb44f9b1aff551188d07fba27d6deca8eb9e6c142626ddd483a47dfd4b4ecaedeb44f9b1aff551188d07fba27d6deca8eb9e6c142626ddd483a47dfd44710fff2aef036d434a085541b7dfae771530b5a5111706dc99758b693fdd2e0b61b2a2d95052b53da565fc4b8fcd41e4af9314a49f221bc260a8efae3d0de0a4bdf4f7ccb2b5f54d09d4b50b26fc097c1dd3efbef44028d501881fe3bfa6d2c231ff8813d0d2498a49d47a314da1fe0ac2014ec90fd535abc3089ca378ba1a9c044fdd43a7a57f49bd419b438f85653ce1ae825a0c795e2214371c0c9dc90f174c8baa42a2de40223b673718ed1815934881d51eb5bc630817663b5e8f44b0e44a3409f84d5f3847feb320f095da85b9676404b2582d135df48eec5f260fd82b322687829d0afd10227c09f6dda904eff860ff533b596e1153b6914ac9445683c907d35414b9d9d0e8f64d37829d289a745b1ef641a1ea4728e354ba3bb469210746980f403e2cc473b88ea4fcf098b26786838141ce541db317ffbd97c2249f9de3fbdb25ae004e3b0e33b8973d670b7b23537b15a5c81e713e368f75fb5c83a50a2f4bf8918bec2de4c62d35ee2c5cceba8843c83983f165cd3fd9cc4c0e4bdf8fa2714d96ae06b473a10d58610fe05d97fff34a08e8725cfebdc08f7f1aa47cd68fea80d5901cc155b9ab22fd802bb078226bb37a3c269098f57643c6de134c1354e3ec93944050bfa0195e83adf3502e0e6b5ae4b88f7d3315e5e7b5eb766b95d9bd5d3f72279922a7bd7c62205f33ac752c3634509dcc1aaef48ade0291b0c0049b26e438a962704b6ead65de003964e3177151ac3d7915a5bd9799910674cd59a75f59a67560a4f47271b0c040224d44534450e51dd4d33e568d509ce706b9b541cdcd6f2420a15fbe970b614deb515ff9d3f073072ee2af54863a64d8f528e0764953453fe9f49a48f1a3f7b2ab517b897c68a99c4442826b80c638c5be20213261ed84c0b6f8291734892b558b7959d028505b3f2f0b09944e351502298cb8a0a609123140da74bac8ad59d1f24590d88e830d8d84a1e780780f543c75111c260115f47461eb7b6b90bd768cef9eab08ce2259c3ce734a2cf6eef5386d29513418543fec45114202e9818e4819701992877574b773eb7b1117b044787d3c2fbb6cb048f63a639687260e351dc4f44f03febf4072bc3052042176e9512579b03862b99f197db0396ae3e7b4203a1c18bae57052cd027b72e8fe44355d0f313db6967a1448935af4f838eed436c9a6e44d1f49b60c33c1d01a064b331d6891e038ac55a0713c2f21b59112e2e97718ea5700e19d5966101e8e38cf4f3238886a8986917f1eb7b95d91b80eb3f307f7023c874b3ec44ba4efe140f2be8a6f5068a7ed28f46e8264a1bd81a9137fdff73f353a22d2dcd7f997fb81e93492651e4c200324145031f7a9fc1b2fbba2af51cc1dd1cc1ef7167843b2e13da1e904ea924729c09213e5e3975afcbd75215d580be99a78f2cfb51309ddb30be3755a062822fd6164c84caabc425a7b7874c0d2f59c804eec57dd9edbbf1bc4d32385ea016d0434615c0fd8031aa2c48bceb8423f57178f32976e0ef9d2e1508edef9809e34170dfc324ba5608690b338e67ec8714d82fe8713e868a09f3429c073e7cc4bb86b4d85c0a5923f1d6084614d1ed12e9982d2f41fdd1ac955efe79fa232b7687fa7b9ccf5823fa13d153b76e164c56ec793fde447af0217796f53c8b867c1387fe43ab9952da195e0761ee174b2d4ccee8fcaf0a83441dce4ac30e31a7b607ad15a2d53daa2d351046e86151c00fac6c9a3296fa45ee735a41c090d6b3de3d58b63f137e7d3e7d02d60a373d49622598da3a5ea9b0fca30e9825424cb6be7b0ebca6a39b3ea2e721735ac8e07634f6e84b93cdbc27022c99d4de7ff60bc279ea0dd987d175988a29dba9c63f1e168e51a58edc9a6a206bf6dd2e145558bd1f5150db3cb89d12eb81ee5061ede715c44ea53a914b2bb9a4c6f1422ec3e7ea4253726e0bee882d4573cd03fd68e7a2dfd5b0315e1425b1af90828012f2f03bd2c19e236cdb13b7395baa543ecde970f03bbf5d9b64ca20ba41bae54c39f80aa9cc1a6beb7156091958a98cb74394d6a47705b11bde15518d46a9ce2519267d9f60afcde2c7dd6a280bf884bf77ba4a871c502ff6ff76774ed45ebbfc16fba3ace3bb0cff4148e06fa4c77b572165c64b42336ba9134581d78e110fe58fc4892f4526fab11b6dcaa836e8f07decb477df74a933099066d655660cb056788cfaf1a582c9a2b9754dae642f63309aeefc77527bdc3bfe1a9b00c23fbc7f50fbc5edd84eb4ea8bee0a893bb815c59818a36a597b6bf0020a864215d67e5b4e5f12b052b43b3594f95014be5c937631cd341a7eddd5f3f3c1cea3486b7b8fc31e89427e7d10b46cd256371962422de2377a8f319c835b06c2c7c4d4b434bf9fc5f4b91011697bac8c1978f447601fa0a9bb3bf73787861c2b647546ba7ae9fed70dec66727547b9bd0d3eb1ee48deb5f2012def7cfbaa84d0ea0eceb4ec5741b66e9c2729ee1cb9c2a00f202760449be1fa73049be63cd670369be208603e07514839b542e1c18458bb515bf0205b9f08b2168d92d2d03d9f10548b808944f1e343a30920968362131aecdc863c655332299353fcde14e224df4e3cd5489dae89422fabe4f0cfa02b1fb2877bfdb7e8d05c4e5874ae7d2b64b5a65bffa55e31d2c97fe7c93a7a1a4647c9ad38a6f45d917dcef1fbf9d2f914debeab75f37cb0647dbdab11000c805d7c266f9923f4fda82079d80c6162ae447fa99eb0933fab8ea2540a88a8c69859772aa1ca0ab48c60c303087c27b253c7ff3e3410a3b1627a9758698dd4ddad80cc4621f1963ff7b100ca1f0f59374e04e7cee945a0eac07f9d22692c081e34adec65d2bbb0f8a2620cd914579de1487586c7aca4dee536956cb243683b59737136036c1cc28884cbd21080d77afd7f32a85c48a61db89ac7104ce6bc1f2048d12066f6390a161175526fda507826a8c5e399e8df21571506f031d5c7330f00e6f39a764b5536cbf93a6069f234338892f8830530f49d863e06af71a696e530612b49765311dfe674ef80257079f77b718e36b86417369420029f3761f462ed4bf152b783d10234150472c5896a20d116229afae264dbbf707a1542004ade31432c396224019f99cc23b787eb2f90caf0f6c9880e6ac3a6a43386a78af593bcee1a2d660e26d91d4b008ea7b8c9cefc5e2fbfdcf4392540020d1ff3cfed19bcb3be41aaf735c4b66cdbc8db480ba1d74658ccc47ebb7e70da4eb675b8281dc76f6b930de3723718fb184427fc9523fef0643350b4d27bfb51299e09fa8ec874ad2288ba147e0cccb396383177043318038e5773969e49f36190126876cc9a3b9349b394dab1a38f80e26ed29222da9ac6f80b93bf3e56aaacba33effa9027f4b75ea76cae320b2320a22bc40cb6f62f72c52c0a59f74845b980cf5bbaf63fa04661a406e3dd336aa57a4c48280b078977bedbdc1f308060b0fc7eb43974c79e2ce488fd1e921e15125cdbfaf0d4ce9096d2c4357e3e0ddfa3110678ed2c739584df3d1084e828221e84f343f600e3087847ad166bd95306a3e5c4050cf541730bbb3033d13a124951952a663060a04bbb206835ce6544d1a3e5c4050cf541730bbb3033d13a124951952a663060a04bbb206835ce6544d10f0bd08a81ec9813dff3dd2f0d9d76d67c97ce7046903eaf56cf41adc3e2593b4ad814be2ebf22ad2407c3945aa77e2e52c0b64496d831a4a159f02abda6bbd5f10c2e78907f2ce6f5f66714bf66ba0a7ecb3ce0fc85aadfcc89c1efb74eec7d62c28f76017e9af7c051814184942df23d50078dc7b787d2f10ae13e7ee7ba391767d91f9d9d197a647e817e58f412f3897ec6f9eb6bf3f4a58deb7efb3a0be9ede532ffddfea3506d1a3631e56ab4b41b2ba29a740699d9592dfa6c85cf2766698e34173c471ab025ad0c9488b28a11e870d45f0026e4efbe8a1e0ebbb4f0e7307179c5ef0a15e19dd486e1e543ac8ad8985ea829c8f0e3a2ec74f80e2a07181d108e27df01a77c940057173e748b3845d91488fec545e97a567782b3264d87f74eaebada52f677d2bdc11df216b9491f854eadd4dc83ce8d4fa31851162785f74eaebada52f677d2bdc11df216b9491f854eadd4dc83ce8d4fa31851162785d7c9adc2ae1e4cf8591bab6ee347b4cc9a1a230d12f655714ebfc0f4e9f1b2ed92237417461ba9daf4e6c0f2c30dd65fac00a646c54b57146527656d98c4825307350db38e55fe923a2b309e3396032911c541e3450ed6baed7546dcf0a35843048be85915da6115711ad113f94818b78edd660ab590271850658ff90c05c8a1a22dc827d5612b4680e045fae9a8aaf9f8c8fdd8fd215989867d74a52bedf3a4ac254149b3b0ec7b1e7daca6a1586ffc176ddf46bdca544766a00ac42883e24cb4b34405513c70472c855c06cbc133fa1753846a2a17b29d8e96bb715bc2d987977203f3343526fa41f50a62f7f856d3aea2ce9091abf9cb4900592a07805c98f1aa821dacb9195a9743ac22e9a534c558402760a334c3f854ac7711201f381bafb962d4e8215bb94fbebed954c3ebe4c991006c66bb4f603cbf835012f70268227163c53d58030a5581d773e393376a1e72a0dd8b6c69656a6b7ab16b97d12525671ca753ae4b1e45d6e931939f8c0cf5cc647c3365b1ef825963f0f117cb9f3e70cfe7cba3af300dd42f84a4747c38a0dccd34bed8d41c1aa2f424cf7a27af5034aecb829c85eb2222e40d3991a805dded2f7cbfc9f648ffb85c91a05d1a61b9c5f566e7fce9840c91b678801ed56f2b43416b67330fdfc7560dac84f0f93d0b00cabdf50374ac1676a6d8279c7d46ff08fa640f75b41cae018034fbcf553fa637f520314529e358e3f02032e34a9ac9a353d298e9d6e1779fb9b00fd07637caaeafc9b738e4f8dfcb1821b4a981b18b21bd34a98d8530dedf2153a96ccde5c80d43b4cf0103c19e1a07ad04e9cbf5c1596d0a91a5f7c4a7a47d07aad1dc65253b28f6609a731ccf730ef509811b2914e11a88e3c404a8b5983a7b5963b3f6f3d6650ce20f713dec3a4a7d2b5078ff81bbaea2e2df3983c083f65c513997e85455adbe1ca576c1ccea6f21ca27e32a48aec8f231a88e0bf8b198e3397cde891c954ea8e352bbd4638e69d7e960ed984cfbc58bc40b7b93d86182d64a5312394ec14b2ab322d2edff6cda1b867d9e840fd725d9acfa3a2d41c8bd2a8d57a200058abe6d05d2fd185ed5cbc89d473a4722e43131582c93a040f78c4581f32943/etc/alternatives/sphinx-apidoc/etc/alternatives/sphinx-autogen/etc/alternatives/sphinx-build/etc/alternatives/sphinx-quickstart@@@@rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-Sphinx_4_2_0-4.2.0-150400.21.26.src.rpmpython3-Sphinxpython3-Sphinx_4_2_0@@      /bin/sh/bin/sh/usr/bin/python3python(abi)python3-Babelpython3-Jinja2python3-Pygmentspython3-alabasterpython3-docutilspython3-imagesizepython3-requestspython3-setuptoolspython3-snowballstemmerpython3-sphinx_rtd_themepython3-sphinxcontrib-applehelppython3-sphinxcontrib-devhelppython3-sphinxcontrib-htmlhelppython3-sphinxcontrib-jsmathpython3-sphinxcontrib-qthelppython3-sphinxcontrib-serializinghtmlpython3-sphinxcontrib-websupportrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)update-alternativesupdate-alternatives3.61.32.32.10.70.122.5.01.12.0.01.1.53.0.4-14.6.0-14.0.4-14.0-15.2-1python3-Sphinx4.2.04.14.3d˖d\@a@a`@`.`g@`r`r``y|@`lM@`P__=_@_$___F@_q@_;_5+@_A@_ ^J^^k@^d@^Q^O@]@]@]x]M`@]G@\\]@\\\e\B@\@\M\M\M\@\~d\ `[O+[M@[WZ%ZZH@ZSYYχ@Y@YzY@YYu@YZ1YV=@YTYMY]Y i@X@X@V2V`V@VVhUYUU@U@U3@U+U&idmueller@suse.comdmueller@suse.commliska@suse.czdmueller@suse.comdmueller@suse.commliska@suse.czmliska@suse.czmcepl@suse.commcepl@suse.commliska@suse.czdmueller@suse.comdmueller@suse.comdmueller@suse.commmachova@suse.commmachova@suse.comdmueller@suse.comcode@bnavigator.dedmueller@suse.comcode@bnavigator.decode@bnavigator.dedmueller@suse.comdmueller@suse.comdmueller@suse.commcepl@suse.comarun@gmx.dearun@gmx.dejzerebecki@suse.comsteven.kowalik@suse.comarun@gmx.dearun@gmx.dealoisio@gmx.comarun@gmx.detchvatal@suse.comtchvatal@suse.comdcermak@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comdmueller@suse.comdmueller@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtbechtold@suse.commcepl@suse.commimi.vx@gmail.comdmueller@suse.commimi.vx@gmail.comaplanas@suse.comdmueller@suse.comaplanas@suse.comarun@gmx.dearun@gmx.dearun@gmx.detoddrme2178@gmail.comjengelh@inai.detoddrme2178@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.comtbechtold@suse.comtbechtold@suse.comtbechtold@suse.comtbechtold@suse.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comtbechtold@suse.commichael@stroeder.comtoddrme2178@gmail.commichael@stroeder.commichael@stroeder.commichael@stroeder.comtoddrme2178@gmail.comtoddrme2178@gmail.comhpj@urpla.netseife+obs@b1-systems.comtoddrme2178@gmail.comalarrosa@suse.comtermim@gmail.com- reestablish the python provides - tighten conflicts to only conflict on the older versions- rename to python3 for jsc#PED-68 - batch1- Update to 4.2.0: * #9445: autodoc: Support class properties * #9479: autodoc: Emit a warning if target is a mocked object * #9560: autodoc: Allow to refer NewType instances with module name in Python 3.10 or above * #9447: html theme: Expose the version of Sphinx in the form of tuple as a template variable ``sphinx_version_tuple`` * #9594: manpage: Suppress the title of man page if description is empty * #9445: py domain: ``:py:property:`` directive supports ``:classmethod:`` option to describe the class property * #9524: test: SphinxTestApp can take ``builddir`` as an argument * #9535: C and C++, support more fundamental types, including GNU extensions. * #9608: apidoc: apidoc does not generate a module definition for implicit namespace package * #9504: autodoc: generate incorrect reference to the parent class if the target class inherites the class having ``_name`` attribute * #9537, #9589: autodoc: Some objects under ``typing`` module are not displayed well with the HEAD of 3.10 * #9487: autodoc: typehint for cached_property is not shown * #9509: autodoc: AttributeError is raised on failed resolving typehints * #9518: autodoc: autodoc_docstring_signature does not effect to ``__init__()`` and ``__new__()`` * #9522: autodoc: PEP 585 style typehints having arguments (ex. ``list[int]``) are not displayed well * #9481: autosummary: some warnings contain non-existing filenames * #9568: autosummary: summarise overlined sectioned headings correctly * #9600: autosummary: Type annotations which contain commas in autosummary table are not removed completely * #9481: c domain: some warnings contain non-existing filenames * #9481: cpp domain: some warnings contain non-existing filenames * #9456: html search: abbreation marks are inserted to the search result if failed to fetch the content of the page * #9617: html search: The JS requirement warning is shown if browser is slow * #9267: html theme: CSS and JS files added by theme were loaded twice * #9585: py domain: ``:type:`` option for :rst:dir:`py:property` directive does not create a hyperlink * #9576: py domain: Literal typehint was converted to a cross reference * #9535 comment: C++, fix parsing of defaulted function parameters that are function pointers. * #9564: smartquotes: don't adjust typography for text with language-highlighted ``:code:`` role. * #9512: sphinx-build: crashed with the HEAD of Python 3.10- update to 4.1.2: * linkcheck: Disable checking automatically generated anchors on github.com (ex. anchors in reST/Markdown documents) * autodoc: Custom types using ``typing.NewType`` are not displayed well with the HEAD of 3.10 * autodoc: Some objects under ``typing`` module are not displayed well with the HEAD of 3.10 * autodoc: crashed if ``autodoc_class_signature = "separated"`` * html search: html_copy_source can't control the search summaries * linkcheck: Failed to check anchors in github.com- update to 4.1.1: * sphinxcontrib-htmlhelp-2.0.0 or above * sphinxcontrib-serializinghtml-1.1.5 or above * html: HTML logo or Favicon specified as file not being found on output- Bump to 4.1.0: * Support jinja2-3.0 * The ``app`` argument of ``sphinx.environment.BuildEnvironment`` becomes required * ``sphinx.application.Sphinx.html_theme`` * ``sphinx.ext.autosummary._app`` * ``sphinx.util.docstrings.extract_metadata()`` * #8107: autodoc: Add ``class-doc-from`` option to :rst:dir:`autoclass` directive to control the content of the specific class like :confval:`autoclass_content` * #8588: autodoc: :confval:`autodoc_type_aliases` now supports dotted name. It allows you to define an alias for a class with module name like ``foo.bar.BazClass`` * #9175: autodoc: Special member is not documented in the module * #9195: autodoc: The arguments of ``typing.Literal`` are wrongly rendered * #9185: autodoc: :confval:`autodoc_typehints` allows ``'both'`` setting to allow typehints to be included both in the signature and description * #4257: autodoc: Add :confval:`autodoc_class_signature` to separate the class entry and the definition of ``__init__()`` method * #8061, #9218: autodoc: Support variable comment for alias classes * #3014: autodoc: Add :event:`autodoc-process-bases` to modify the base classes of the class definitions * #9272: autodoc: Render enum values for the default argument value better * #9384: autodoc: ``autodoc_typehints='none'`` now erases typehints for variables, attributes and properties * #3257: autosummary: Support instance attributes for classes * #9358: html: Add "heading" role to the toctree items * #9225: html: Add span tag to the return typehint of method/function * #9129: html search: Show search summaries when html_copy_source = False * #9307: html search: Prevent corrections and completions in search field * #9120: html theme: Eliminate prompt characters of code-block from copyable text * #9176: i18n: Emit a debug message if message catalog file not found under :confval:`locale_dirs` * #9414: LaTeX: Add xeCJKVerbAddon to default fvset config for Chinese documents * #9016: linkcheck: Support checking anchors on github.com * #9016: linkcheck: Add a new event :event:`linkcheck-process-uri` to modify URIs before checking hyperlinks * #6525: linkcheck: Add :confval:`linkcheck_allowed_redirects` to mark hyperlinks that are redirected to expected URLs as "working" * #1874: py domain: Support union types using ``|`` in info-field-list * #9268: py domain: :confval:`python_use_unqualified_type_names` supports type field in info-field-list * #9097: Optimize the parallel build * #9131: Add :confval:`nitpick_ignore_regex` to ignore nitpicky warnings using regular expressions * #9174: Add ``Sphinx.set_html_assets_policy`` to tell extensions to include HTML assets in all the pages. Extensions can check this via ``Sphinx.registry.html_assets_policy`` * C++, add support for - ``inline`` variables, - ``consteval`` functions, - ``constinit`` variables, - ``char8_t``, - ``explicit()`` specifier, - digit separators in literals, and - constraints in placeholder type specifiers, aka. adjective syntax (e.g., ``Sortable auto &v``). * C, add support for digit separators in literals. * #9166: LaTeX: support containers in LaTeX output * #8872: autodoc: stacked singledispatches are wrongly rendered * #8597: autodoc: a docsting having metadata only should be treated as undocumented * #9185: autodoc: typehints for overloaded functions and methods are inaccurate * #9250: autodoc: The inherited method not having docstring is wrongly parsed * #9283: autodoc: autoattribute directive failed to generate document for an attribute not having any comment * #9364: autodoc: single element tuple on the default argument value is wrongly rendered * #9362: autodoc: AttributeError is raised on processing a subclass of Tuple[()] * #9404: autodoc: TypeError is raised on processing dict-like object (not a class) via autoclass directive * #9317: html: Pushing left key causes visiting the next page at the first page * #9381: html: URL for html_favicon and html_log does not work * #9270: html theme : pyramid theme generates incorrect logo links * #9217: manpage: The name of manpage directory that is generated by :confval:`man_make_section_directory` is not correct * #9350: manpage: Fix font isn't reset after keyword at the top of samp role * #9306: Linkcheck reports broken link when remote server closes the connection on HEAD request * #9280: py domain: "exceptions" module is not displayed * #9418: py domain: a Callable annotation with no parameters (e.g. ``Callable[[], None])`` will be rendered with a bracket missing (``Callable[], None]``) * #9319: quickstart: Make sphinx-quickstart exit when conf.py already exists * #9387: xml: XML Builder ignores custom visitors * #9224: ``:param:`` and ``:type:`` fields does not support a type containing whitespace (ex. ``Dict[str, str]``) * #8945: when transforming typed fields, call the specified role instead of making an single xref. For C and C++, use the ``expr`` role for typed fields.- Update again to 4.0.2.- Switch off the failing test_signature_annotations. It is just not worthy filing upstream test on the obsolete version.- Revert to 3.5.4- Update to 4.0.2: see upstream CHANGES. - Add texlive-tex-gyre build dependency for tests.- update to 3.5.4: * #9071: Restrict docutils to 0.16 * #9078: autodoc: Async staticmethods and classmethods are considered as non async coroutine-functions with Python3.10 * #8870, #9001, #9051: html theme: The style are not applied with docutils-0.17- update to 3.5.3: * #8959: using UNIX path separator in image directive confuses Sphinx on Windows- update to 3.5.2: * #8943: i18n: Crashed by broken translation messages in ES, EL and HR * #8936: LaTeX: A custom LaTeX builder fails with unknown node error * #8952: Exceptions raised in a Directive cause parallel builds to hang * #8883: autodoc: AttributeError is raised on assigning __annotations__ on read-only class * #8884: html: minified js stemmers not included in the distributed package * #8885: html: AttributeError is raised if CSS/JS files are installed via :confval:`html_context` * #8880: viewcode: ExtensionError is raised on incremental build after unparsable python module found * LaTeX: ``multicol`` (it is anyhow a required part of the official latex2e base distribution) * Update Underscore.js to 1.12.0 * #6550: html: The config variable ``html_add_permalinks`` is replaced by :confval:`html_permalinks` and :confval:`html_permalinks_icon` * pending_xref node for viewcode extension * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.anchors_ignore`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.auth`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.broken`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.good`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.redirected`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.rqueue`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.to_ignore`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.workers`` * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.wqueue`` * ``sphinx.builders.linkcheck.node_line_or_0()`` * ``sphinx.ext.autodoc.AttributeDocumenter.isinstanceattribute()`` * ``sphinx.ext.autodoc.directive.DocumenterBridge.reporter`` * ``sphinx.ext.autodoc.importer.get_module_members()`` * ``sphinx.ext.autosummary.generate._simple_info()`` * ``sphinx.ext.autosummary.generate._simple_warn()`` * ``sphinx.writers.html.HTMLTranslator.permalink_text`` * ``sphinx.writers.html5.HTML5Translator.permalink_text`` * #8022: autodoc: autodata and autoattribute directives does not show right-hand value of the variable if docstring contains ``:meta hide-value:`` in info-field-list * #8514: autodoc: Default values of overloaded functions are taken from actual implementation if they're ellipsis * #8775: autodoc: Support type union operator (PEP-604) in Python 3.10 or above * #8297: autodoc: Allow to extend :confval:`autodoc_default_options` via directive options * #8619: html: kbd role generates customizable HTML tags for compound keys * #8634: html: Allow to change the order of JS/CSS via ``priority`` parameter for :meth:`Sphinx.add_js_file()` and :meth:`Sphinx.add_css_file()` * #6241: html: Allow to add JS/CSS files to the specific page when an extension calls ``app.add_js_file()`` or ``app.add_css_file()`` on :event:`html-page-context` event * #6550: html: Allow to use HTML permalink texts via :confval:`html_permalinks_icon` * #1638: html: Add permalink icons to glossary terms * #8868: html search: performance issue with massive lists * #8867: html search: Update JavaScript stemmer code to the latest version of Snowball (v2.1.0) * #8852: i18n: Allow to translate heading syntax in MyST-Parser * #8649: imgconverter: Skip availability check if builder supports the image type * #8573: napoleon: Allow to change the style of custom sections using :confval:`napoleon_custom_styles` * #8004: napoleon: Type definitions in Google style docstrings are rendered as references when :confval:`napoleon_preprocess_types` enabled * #6241: mathjax: Include mathjax.js only on the document using equations * #8775: py domain: Support type union operator (PEP-604) * #8651: std domain: cross-reference for a rubric having inline item is broken * #7642: std domain: Optimize case-insensitive match of term * #8681: viewcode: Support incremental build * #8132: Add :confval:`project_copyright` as an alias of :confval:`copyright` * #207: Now :confval:`highlight_language` supports multiple languages * #2030: :rst:dir:`code-block` and :rst:dir:`literalinclude` supports automatic dedent via no-argument ``:dedent:`` option * C++, also hyperlink operator overloads in expressions and alias declarations. * #8247: Allow production lists to refer to tokens from other production groups * #8813: Show what extension (or module) caused it on errors on event handler * #8213: C++: add ``maxdepth`` option to :rst:dir:`cpp:alias` to insert nested declarations. * C, add ``noroot`` option to :rst:dir:`c:alias` to render only nested declarations. * C++, add ``noroot`` option to :rst:dir:`cpp:alias` to render only nested declarations. * #8727: apidoc: namespace module file is not generated if no submodules there * #741: autodoc: inherited-members doesn't work for instance attributes on super class * #8592: autodoc: ``:meta public:`` does not effect to variables * #8594: autodoc: empty __all__ attribute is ignored * #8315: autodoc: Failed to resolve struct.Struct type annotation * #8652: autodoc: All variable comments in the module are ignored if the module contains invalid type comments * #8693: autodoc: Default values for overloaded functions are rendered as string * #8134: autodoc: crashes when mocked decorator takes arguments * #8800: autodoc: Uninitialized attributes in superclass are recognized as undocumented * #8655: autodoc: Failed to generate document if target module contains an object that raises an exception on ``hasattr()`` * #8306: autosummary: mocked modules are documented as empty page when using :recursive: option * #8232: graphviz: Image node is not rendered if graph file is in subdirectory * #8618: html: kbd role produces incorrect HTML when compound-key separators (-, + or ^) are used as keystrokes * #8629: html: A type warning for html_use_opensearch is shown twice * #8714: html: kbd role with "Caps Lock" rendered incorrectly * #8123: html search: fix searching for terms containing + (Requires a custom search language that does not split on +) * #8665: html theme: Could not override globaltoc_maxdepth in theme.conf * #8446: html: consecutive spaces are displayed as single space * #8745: i18n: crashes with KeyError when translation message adds a new auto footnote reference * #4304: linkcheck: Fix race condition that could lead to checking the availability of the same URL twice * #8791: linkcheck: The docname for each hyperlink is not displayed * #7118: sphinx-quickstart: questionare got Mojibake if libreadline unavailable * #8094: texinfo: image files on the different directory with document are not copied * #8782: todo: Cross references in todolist get broken * #8720: viewcode: module pages are generated for epub on incremental build * #8704: viewcode: anchors are generated in incremental build after singlehtml * #8756: viewcode: highlighted code is generated even if not referenced * #8671: :confval:`highlight_options` is not working * #8341: C, fix intersphinx lookup types for names in declarations. * C, C++: in general fix intersphinx and role lookup types. * #8683: :confval:`html_last_updated_fmt` does not support UTC offset (%z) * #8683: :confval:`html_last_updated_fmt` generates wrong time zone for %Z * #1112: ``download`` role creates duplicated copies when relative path is specified * #2616 (fifth item): LaTeX: footnotes from captions are not clickable, and for manually numbered footnotes only first one with same number is an hyperlink * #7576: LaTeX with French babel and memoir crash: "Illegal parameter number in definition of ``\FNH@prefntext``" * #8055: LaTeX (docs): A potential display bug with the LaTeX generation step in Sphinx (how to generate one-column index) * #8072: LaTeX: Directive :rst:dir:`hlist` not implemented in LaTeX * #8214: LaTeX: The :rst:role:`index` role and the glossary generate duplicate entries in the LaTeX index (if both used for same term) * #8735: LaTeX: wrong internal links in pdf to captioned code-blocks when :confval:`numfig` is not True * #8442: LaTeX: some indexed terms are ignored when using xelatex engine (or pdflatex and :confval:`latex_use_xindy` set to True) with memoir class * #8750: LaTeX: URLs as footnotes fail to show in PDF if originating from inside function type signatures * #8780: LaTeX: long words in narrow columns may not be hyphenated * #8788: LaTeX: ``\titleformat`` last argument in sphinx.sty should be bracketed, not braced (and is anyhow not needed) * #8849: LaTex: code-block printed out of margin (see the opt-in LaTeX syntax boolean :ref:`verbatimforcewraps ` for use via the :ref:`'sphinxsetup' ` key of ``latex_elements``) * #8183: LaTeX: Remove substitution_reference nodes from doctree only on LaTeX builds * #8865: LaTeX: Restructure the index nodes inside title nodes only on LaTeX builds * #8796: LaTeX: potentially critical low level TeX coding mistake has gone unnoticed so far * C, :rst:dir:`c:alias` skip symbols without explicit declarations instead of crashing. * C, :rst:dir:`c:alias` give a warning when the root symbol is not declared. * C, ``expr`` role should start symbol lookup in the current scope. * #8655: autodoc: Failed to generate document if target module contains an object that raises an exception on ``hasattr()``- Update to 3.4.3 * Bugfix release, see upstream CHANGES- Do not download python (and requests) documentation in the runtime. - Add file requests.inv- update to 3.4.1: * #8105: autodoc: the signature of class constructor will be shown for decorated classes, not a signature of decorator * #8119: autodoc: Allow to determine whether a member not included in ``__all__`` attribute of the module should be documented or not via :event:`autodoc-skip-member` event * #8219: autodoc: Parameters for generic class are not shown when super class is a generic class and show-inheritance option is given (in Python 3.7 or above) * autodoc: Add ``Documenter.config`` as a shortcut to access the config object * autodoc: Add Optional[t] to annotation of function and method if a default value equal to None is set. * #8209: autodoc: Add ``:no-value:`` option to :rst:dir:`autoattribute` and :rst:dir:`autodata` directive to suppress the default value of the variable * #8460: autodoc: Support custom types defined by typing.NewType * #8285: napoleon: Add :confval:`napoleon_attr_annotations` to merge type hints on source code automatically if any type is specified in docstring * #8236: napoleon: Support numpydoc's "Receives" section * #6914: Add a new event :event:`warn-missing-reference` to custom warning messages when failed to resolve a cross-reference * #6914: Emit a detailed warning when failed to resolve a ``:ref:`` reference * #6629: linkcheck: The builder now handles rate limits. See :confval:`linkcheck_retry_on_rate_limit` for details. * Large number of bugfixes, see included NEWS - remove sphinx-pr8520-fix-AliasNode-copy.patch (upstream)- Remove unused mypy from BuildRequires in :test - Fix the intersphinx inventory bundle for multiple python flavors gh#openSUSE/python-rpm-macros#66 - Fix failing graphviz dot calls by including packages for png and pdf formats. The png fail was masked by an incorrect use of a shell command chain. Fails for pdf format were in the tests. - Add sphinx-pr8520-fix-AliasNode-copy.patch to fix failing manpages build -- gh#sphinx-doc/sphinx#8520- update to 3.3.1: * #8372: autodoc: autoclass directive became slower than Sphinx-3.2 * #7727: autosummary: raise PycodeError when documenting python package * #8350: autosummary: autosummary_mock_imports causes slow down builds * #8364: C, properly initialize attributes in empty symbols. * #8399: i18n: Put system locale path after the paths specified by configuration * #8100: html: Show a better error message for failures on copying html_static_files * #8141: C: added a ``maxdepth`` option to :rst:dir:`c:alias` to insert nested declarations. * #8081: LaTeX: Allow to add LaTeX package via ``app.add_latex_package()`` until just before writing .tex file * #7996: manpage: Add :confval:`man_make_section_directory` to make a section directory on build man page * #8289: epub: Allow to suppress "duplicated ToC entry found" warnings from epub builder using :confval:`suppress_warnings`. * #8298: sphinx-quickstart: Add :option:`sphinx-quickstart --no-sep` option * #8304: sphinx.testing: Register public markers in sphinx.testing.fixtures * #8051: napoleon: use the obj role for all See Also items * #8050: napoleon: Apply :confval:`napoleon_preprocess_types` to every field * C and C++, show line numbers for previous declarations when duplicates are detected. * #8183: Remove substitution_reference nodes from doctree only on LaTeX builds * bugfixes - remove sphinx-pygments-compat.patch (obsolete)- Fix the lang collection macro override. * gh#openSUSE/python-rpm-macros#66 * gh#openSUSE/python-rpm-macros#74- Fix lang files collection for multiple flavors * gh#openSUSE/python-rpm-macros#5 * gh#openSUSE/python-rpm-macros#66- add sphinx-pygments-compat.patch (fix tests with newer pygments)- update to 3.2.1: * #8095: napoleon: Add :confval:`napoleon_preprocess_types` to enable the type preprocessor for numpy style docstrings * #8114: C and C++, parse function attributes after parameters and qualifiers. * #8074: napoleon: Crashes during processing C-ext module * #8088: napoleon: "Inline literal start-string without end-string" warning in Numpy style Parameters section * #8084: autodoc: KeyError is raised on documenting an attribute of the broken class * #8091: autodoc: AttributeError is raised on documenting an attribute on Python 3.5.2 * #8099: autodoc: NameError is raised when target code uses ``TYPE_CHECKING`` * C++, fix parsing of template template paramters, broken by the fix of #7944- update to 3.2.0: * #2076: autodoc: Allow overriding of exclude-members in skip-member function * #8034: autodoc: ``:private-member:`` can take an explicit list of member names to be documented * #2024: autosummary: Add :confval:`autosummary_filename_map` to avoid conflict of filenames between two object with different case * #8011: autosummary: Support instance attributes as a target of autosummary directive * #7849: html: Add :confval:`html_codeblock_linenos_style` to change the style of line numbers for code-blocks * #7853: C and C++, support parameterized GNU style attributes. * #7888: napoleon: Add aliases Warn and Raise. * #7690: napoleon: parse type strings and make them hyperlinks as possible. The conversion rule can be updated via :confval:`napoleon_type_aliases` * #8049: napoleon: Create a hyperlink for each the type of parameter when :confval:`napoleon_use_params` is False * C, added :rst:dir:`c:alias` directive for inserting copies of existing declarations. * #7745: html: inventory is broken if the docname contains a space * #7991: html search: Allow searching for numbers * #7902: html theme: Add a new option :confval:`globaltoc_maxdepth` to control the behavior of globaltoc in sidebar * #7840: i18n: Optimize the dependencies check on bootstrap * #7768: i18n: :confval:`figure_language_filename` supports ``docpath`` token * #5208: linkcheck: Support checks for local links * #5090: setuptools: Link verbosity to distutils' -v and -q option * #6698: doctest: Add ``:trim-doctest-flags:`` and ``:no-trim-doctest-flags:`` options to doctest, testcode and testoutput directives * #7052: add ``:noindexentry:`` to the Python, C, C++, and Javascript domains. Update the documentation to better reflect the relationship between this option and the ``:noindex:`` option. * #7899: C, add possibility of parsing of some pre-v3 style type directives and roles and try to convert them to equivalent v3 directives/roles. Set the new option :confval:`c_allow_pre_v3` to ``True`` to enable this. The warnings printed from this functionality can be suppressed by setting :confval:`c_warn_on_allowed_pre_v3`` to ``True``. The functionality is immediately deprecated. * #7999: C, add support for named variadic macro arguments. * #8071: Allow to suppress "self referenced toctrees" warning * #7886: autodoc: TypeError is raised on mocking generic-typed classes * #7935: autodoc: function signature is not shown when the function has a parameter having ``inspect._empty`` as its default value * #7901: autodoc: type annotations for overloaded functions are not resolved * #904: autodoc: An instance attribute cause a crash of autofunction directive * #1362: autodoc: ``private-members`` option does not work for class attributes * #7983: autodoc: Generator type annotation is wrongly rendered in py36 * #8030: autodoc: An uninitialized annotated instance variable is not documented when ``:inherited-members:`` option given * #8032: autodoc: A type hint for the instance variable defined at parent class is not shown in the document of the derived class * #8041: autodoc: An annotated instance variable on super class is not documented when derived class has other annotated instance variables * #7839: autosummary: cannot handle umlauts in function names * #7865: autosummary: Failed to extract summary line when abbreviations found * #7866: autosummary: Failed to extract correct summary line when docstring contains a hyperlink target * #7469: autosummary: "Module attributes" header is not translatable * #7940: apidoc: An extra newline is generated at the end of the rst file if a module has submodules * #4258: napoleon: decorated special methods are not shown * #7799: napoleon: parameters are not escaped for combined params in numpydoc * #7780: napoleon: multiple paramaters declaration in numpydoc was wrongly recognized when napoleon_use_params=True * #7715: LaTeX: ``numfig_secnum_depth > 1`` leads to wrong figure links * #7846: html theme: XML-invalid files were generated * #7894: gettext: Wrong source info is shown when using rst_epilog * #7691: linkcheck: HEAD requests are not used for checking * #4888: i18n: Failed to add an explicit title to ``:ref:`` role on translation * #7928: py domain: failed to resolve a type annotation for the attribute * #8008: py domain: failed to parse a type annotation containing ellipsis * #7994: std domain: option directive does not generate old node_id compatible with 2.x or older * #7968: i18n: The content of ``math`` directive is interpreted as reST on translation * #7768: i18n: The ``root`` element for :confval:`figure_language_filename` is not a path that user specifies in the document * #7993: texinfo: TypeError is raised for nested object descriptions * #7993: texinfo: a warning not supporting desc_signature_line node is shown * #7869: :rst:role:`abbr` role without an explanation will show the explanation from the previous abbr role * #8048: graphviz: graphviz.css was copied on building non-HTML document * C and C++, removed ``noindex`` directive option as it did nothing. * #7619: Duplicated node IDs are generated if node has multiple IDs * #2050: Symbols sections are appeared twice in the index page * #8017: Fix circular import in sphinx.addnodes * #7986: CSS: make "highlight" selector more robust * #7944: C++, parse non-type template parameters starting with a dependent qualified name. * C, don't deepcopy the entire symbol table and make a mess every time an enumerator is handled.- In the new multiversion world, python*.inv is in python3.8 directory not python3.- update to version 3.1.2: * Incompatible changes + #7650: autodoc: the signature of base function will be shown for decorated functions, not a signature of decorator * Bugs fixed + #7844: autodoc: Failed to detect module when relative module name given + #7856: autodoc: AttributeError is raised when non-class object is given to the autoclass directive + #7850: autodoc: KeyError is raised for invalid mark up when autodoc_typehints is 'description' + #7812: autodoc: crashed if the target name matches to both an attribute and module that are same name + #7650: autodoc: function signature becomes "(*args, **kwargs)" if the function is decorated by generic decorator + #7812: autosummary: generates broken stub files if the target code contains an attribute and module that are same name + #7806: viewcode: Failed to resolve viewcode references on 3rd party builders + #7838: html theme: List items have extra vertical space + #7878: html theme: Undesired interaction between "overflow" and "float" - changes from version 3.1.1: * Incompatible changes + #7808: napoleon: a type for attribute are represented as typed field * Features added + #7807: autodoc: Show detailed warning when type_comment is mismatched with its signature * Bugs fixed + #7808: autodoc: Warnings raised on variable and attribute type annotations + #7802: autodoc: EOFError is raised on parallel build + #7821: autodoc: TypeError is raised for overloaded C-ext function + #7805: autodoc: an object which descriptors returns is unexpectedly documented + #7807: autodoc: wrong signature is shown for the function using contextmanager + #7812: autosummary: generates broken stub files if the target code contains an attribute and module that are same name + #7808: napoleon: Warnings raised on variable and attribute type annotations + #7811: sphinx.util.inspect causes circular import problem - changes from version 3.1.0: * Dependencies + #7746: mathjax: Update to 2.7.5 * Incompatible changes + #7477: imgconverter: Invoke "magick convert" command by default on Windows * Deprecated + The first argument for sphinx.ext.autosummary.generate.AutosummaryRenderer has been changed to Sphinx object + "sphinx.ext.autosummary.generate.AutosummaryRenderer" takes an object type as an argument + The "ignore" argument of "sphinx.ext.autodoc.Documenter.get_doc()" + The "template_dir" argument of "sphinx.ext.autosummary.generate. AutosummaryRenderer" + The "module" argument of "sphinx.ext.autosummary.generate. find_autosummary_in_docstring()" + The "builder" argument of "sphinx.ext.autosummary.generate. generate_autosummary_docs()" + The "template_dir" argument of "sphinx.ext.autosummary.generate. generate_autosummary_docs()" + The "ignore" argument of "sphinx.util.docstring.prepare_docstring()" + "sphinx.ext.autosummary.generate.AutosummaryRenderer.exists()" + "sphinx.util.rpartition()" * Features added + LaTeX: Make the "toplevel_sectioning" setting optional in LaTeX theme + LaTeX: Allow to override papersize and pointsize from LaTeX themes + LaTeX: Add :confval:`latex_theme_options` to override theme options + #7410: Allow to suppress "circular toctree references detected" warnings using :confval:`suppress_warnings` + C, added scope control directives, :rst:dir:`c:namespace`, :rst:dir:`c:namespace-push`, and :rst:dir:`c:namespace-pop`. + #2044: autodoc: Suppress default value for instance attributes + #7473: autodoc: consider a member public if docstring contains ":meta public:" in info-field-list + #7487: autodoc: Allow to generate docs for singledispatch functions by py:autofunction + #7143: autodoc: Support final classes and methods + #7384: autodoc: Support signatures defined by "__new__()", metaclasses and builtin base classes + #2106: autodoc: Support multiple signatures on docstring + #4422: autodoc: Support GenericAlias in Python 3.7 or above + #3610: autodoc: Support overloaded functions + #7722: autodoc: Support TypeVar + #7466: autosummary: headings in generated documents are not translated + #7490: autosummary: Add ":caption:" option to autosummary directive to set a caption to the toctree + #7469: autosummary: Support module attributes + #248, #6040: autosummary: Add ":recursive:" option to autosummary directive to generate stub files recursively + #4030: autosummary: Add :confval:`autosummary_context` to add template variables for custom templates + #7530: html: Support nested elements + #7481: html theme: Add right margin to footnote/citation labels + #7482, #7717: html theme: CSS spacing for code blocks with captions and line numbers + #7443: html theme: Add new options :confval:`globaltoc_collapse` and :confval:`globaltoc_includehidden` to control the behavior of globaltoc in sidebar + #7484: html theme: Avoid clashes between sidebar and other blocks + #7476: html theme: Relbar breadcrumb should contain current page + #7506: html theme: A canonical URL is not escaped + #7533: html theme: Avoid whitespace at the beginning of genindex.html + #7541: html theme: Add a "clearer" at the end of the "body" + #7542: html theme: Make admonition/topic/sidebar scrollable + #7543: html theme: Add top and bottom margins to tables + #7695: html theme: Add viewport meta tag for basic theme + #7721: html theme: classic: default codetextcolor/codebgcolor doesn't override Pygments + C and C++: allow semicolon in the end of declarations. + C++, parse parameterized noexcept specifiers. + #7294: C++, parse expressions with user-defined literals. + C++, parse trailing return types. + #7143: py domain: Add ":final:" option to :rst:dir:`py:class:`, :rst:dir:`py:exception:` and :rst:dir:`py:method:` directives + #7596: py domain: Change a type annotation for variables to a hyperlink + #7770: std domain: :rst:dir:`option` directive support arguments in the form of "foo[=bar]" + #7582: napoleon: a type for attribute are represented like type annotation + #7734: napoleon: overescaped trailing underscore on attribute + #7247: linkcheck: Add :confval:`linkcheck_request_headers` to send custom HTTP headers for specific host + #7792: setuptools: Support "--verbosity" option + #7683: Add "allowed_exceptions" parameter to "Sphinx.emit()" to allow handlers to raise specified exceptions + #7295: C++, parse (trailing) requires clauses. * Bugs fixed + #6703: autodoc: incremental build does not work for imported objects + #7564: autodoc: annotations not to be shown for descriptors + #6588: autodoc: Decorated inherited method has no documentation + #7469: autodoc: The change of autodoc-process-docstring for variables is cached unexpectedly + #7559: autodoc: misdetects a sync function is async + #6857: autodoc: failed to detect a classmethod on Enum class + #7562: autodoc: a typehint contains spaces is wrongly rendered under autodoc_typehints='description' mode + #7551: autodoc: failed to import nested class + #7362: autodoc: does not render correct signatures for built-in functions + #7654: autodoc: "Optional[Union[foo, bar]]" is presented as "Union[foo, bar, None]" + #7629: autodoc: autofunction emits an unfriendly warning if an invalid object specified + #7650: autodoc: undecorated signature is shown for decorated functions + #7676: autodoc: typo in the default value of autodoc_member_order + #7676: autodoc: wrong value for :member-order: option is ignored silently + #7676: autodoc: member-order="bysource" does not work for C module + #3673: autodoc: member-order="bysource" does not work for a module having __all__ + #7668: autodoc: wrong retann value is passed to a handler of autodoc-proccess-signature + #7711: autodoc: fails with ValueError when processing numpy objects + #7791: autodoc: TypeError is raised on documenting singledispatch function + #7551: autosummary: a nested class is indexed as non-nested class + #7661: autosummary: autosummary directive emits warnings twices if failed to import the target module + #7685: autosummary: The template variable "members" contains imported members even if :confval:`autossummary_imported_members` is False + #7671: autosummary: The location of import failure warning is missing + #7535: sphinx-autogen: crashes when custom template uses inheritance + #7536: sphinx-autogen: crashes when template uses i18n feature + #7781: sphinx-build: Wrong error message when outdir is not directory + #7653: sphinx-quickstart: Fix multiple directory creation for nested relpath + #2785: html: Bad alignment of equation links + #7718: html theme: some themes does not respect background color of Pygments style (agogo, haiku, nature, pyramid, scrolls, sphinxdoc and traditional) + #7544: html theme: inconsistent padding in admonitions + #7581: napoleon: bad parsing of inline code in attribute docstrings + #7628: imgconverter: runs imagemagick once unnecessary for builders not supporting images + #7610: incorrectly renders consecutive backslashes for docutils-0.16 + #7646: handle errors on event handlers + #4187: LaTeX: EN DASH disappears from PDF bookmarks in Japanese documents + #7701: LaTeX: Anonymous indirect hyperlink target causes duplicated labels + #7723: LaTeX: pdflatex crashed when URL contains a single quote + #7756: py domain: The default value for positional only argument is not shown + #7760: coverage: Add :confval:`coverage_show_missing_items` to show coverage result to console + C++, fix rendering and xrefs in nested names explicitly starting in global scope, e.g., "::A::B". + C, fix rendering and xrefs in nested names explicitly starting in global scope, e.g., ".A.B". + #7763: C and C++, don't crash during display stringification of unary expressions and fold expressions.- update to version 3.0.4: * Bugs fixed + #7567: autodoc: parametrized types are shown twice for generic types + #7637: autodoc: system defined TypeVars are shown in Python 3.9 + #7611: md5 fails when OpenSSL FIPS is enabled + #7626: release package does not contain "CODE_OF_CONDUCT"- Add python3.inv as a specific Source. - update to version 3.0.3 * Features added * C, parse array declarators with static, qualifiers, and VLA specification. * Bugs fixed * #7516: autodoc: crashes if target object raises an error on accessing its attributes - update to version 3.0.2 * Features added * C, parse attributes and add :confval:`c_id_attributes` and :confval:`c_paren_attributes` to support user-defined attributes. * Bugs fixed * #7461: py domain: fails with IndexError for empty tuple in type annotation * #7510: py domain: keyword-only arguments are documented as having a default of None * #7418: std domain: :rst:role:`term` role could not match case-insensitively * #7461: autodoc: empty tuple in type annotation is not shown correctly * #7479: autodoc: Sphinx builds has been slower since 3.0.0 on mocking * C++, fix spacing issue in east-const declarations. * #7414: LaTeX: Xindy language options were incorrect * sphinx crashes with ImportError on python3.5.1 - update to 3.0.1 * Incompatible changes * #7418: std domain: :rst:dir:`term` role becomes case sensitive * Bugs fixed * #7428: py domain: a reference to class ``None`` emits a nitpicky warning * #7445: py domain: a return annotation ``None`` in the function signature is not converted to a hyperlink when using intersphinx * #7418: std domain: duplication warning for glossary terms is case insensitive * #7438: C++, fix merging overloaded functions in parallel builds. * #7422: autodoc: fails with ValueError when using autodoc_mock_imports * #7435: autodoc: ``autodoc_typehints='description'`` doesn't suppress typehints in signature for classes/methods * #7451: autodoc: fails with AttributeError when an object returns non-string object as a ``__doc__`` member * #7423: crashed when giving a non-string object to logger * #7479: html theme: Do not include xmlns attribute with HTML 5 doctype * #7426: html theme: Escape some links in HTML templates - update to version 3.0.0 * Dependencies * LaTeX: drop dependency on :program:`extractbb` for image inclusion in Japanese documents as ``.xbb`` files are unneeded by :program:`dvipdfmx` since TeXLive2015 (refs: #6189) * babel-2.0 or above is available (Unpinned) * Incompatible changes * Drop features and APIs deprecated in 1.8.x * #247: autosummary: stub files are overwritten automatically by default. see :confval:`autosummary_generate_overwrite` to change the behavior * #5923: autodoc: the members of ``object`` class are not documented by default when ``:inherited-members:`` and ``:special-members:`` are given. * #6830: py domain: ``meta`` fields in info-field-list becomes reserved. They are not displayed on output document now * #6417: py domain: doctree of desc_parameterlist has been changed. The argument names, annotations and default values are wrapped with inline node * The structure of ``sphinx.events.EventManager.listeners`` has changed * Due to the scoping changes for :rst:dir:`productionlist` some uses of :rst:role:`token` must be modified to include the scope which was previously ignored. * #6903: Internal data structure of Python, reST and standard domains have changed. The node_id is added to the index of objects and modules. Now they contains a pair of docname and node_id for cross reference. * #7276: C++ domain: Non intended behavior is removed such as ``say_hello_`` links to ``.. cpp:function:: say_hello()`` * #7210: js domain: Non intended behavior is removed such as ``parseInt_`` links to ``.. js:function:: parseInt`` * #7229: rst domain: Non intended behavior is removed such as ``numref_`` links to ``.. rst:role:: numref`` * #6903: py domain: Non intended behavior is removed such as ``say_hello_`` links to ``.. py:function:: say_hello()`` * #7246: py domain: Drop special cross reference helper for exceptions, functions and methods * The C domain has been rewritten, with additional directives and roles. The existing ones are now more strict, resulting in new warnings. * The attribute ``sphinx_cpp_tagname`` in the ``desc_signature_line`` node has been renamed to ``sphinx_line_type``. * #6462: double backslashes in domain directives are no longer replaced by single backslashes as default. A new configuration value :confval:`strip_signature_backslash` can be used by users to reenable it. * #7222: ``sphinx.util.inspect.unwrap()`` is renamed to ``unwrap_all()`` * Deprecated * ``desc_signature['first']`` * ``sphinx.directives.DescDirective`` * ``sphinx.domains.std.StandardDomain.add_object()`` * ``sphinx.domains.python.PyDecoratorMixin`` * ``sphinx.ext.autodoc.get_documenters()`` * ``sphinx.ext.autosummary.process_autosummary_toc()`` * ``sphinx.parsers.Parser.app`` * ``sphinx.testing.path.Path.text()`` * ``sphinx.testing.path.Path.bytes()`` * ``sphinx.util.inspect.getargspec()`` * ``sphinx.writers.latex.LaTeXWriter.format_docclass()`` * Features added * #247: autosummary: Add :confval:`autosummary_generate_overwrite` to overwrite old stub file * #5923: autodoc: ``:inherited-members:`` option takes a name of anchestor class not to document inherited members of the class and uppers * #6830: autodoc: consider a member private if docstring contains ``:meta private:`` in info-field-list * #7165: autodoc: Support Annotated type (PEP-593) * #2815: autodoc: Support singledispatch functions and methods * #7079: autodoc: :confval:`autodoc_typehints` accepts ``"description"`` configuration. It shows typehints as object description * #7314: apidoc: Propagate ``--maxdepth`` option through package documents * #6558: glossary: emit a warning for duplicated glossary entry * #3106: domain: Register hyperlink target for index page automatically * #6558: std domain: emit a warning for duplicated generic objects * #6830: py domain: Add new event: :event:`object-description-transform` * #6895: py domain: Do not emit nitpicky warnings for built-in types * py domain: Support lambda functions in function signature * #6417: py domain: Allow to make a style for arguments of functions and methods * #7238, #7239: py domain: Emit a warning on describing a python object if the entry is already added as the same name * #7341: py domain: type annotations in singature are converted to cross refs * Support priority of event handlers. For more detail, see :py:meth:`.Sphinx.connect()` * #3077: Implement the scoping for :rst:dir:`productionlist` as indicated in the documentation. * #1027: Support backslash line continuation in :rst:dir:`productionlist`. * #7108: config: Allow to show an error message from conf.py via ``ConfigError`` * #7032: html: :confval:`html_scaled_image_link` will be disabled for images having ``no-scaled-link`` class * #7144: Add CSS class indicating its domain for each desc node * #7211: latex: Use babel for Chinese document when using XeLaTeX * #6672: LaTeX: Support LaTeX Theming (experimental) * #7005: LaTeX: Add LaTeX styling macro for :rst:role:`kbd` role * #7220: genindex: Show "main" index entries at first * #7103: linkcheck: writes all links to ``output.json`` * #7025: html search: full text search can be disabled for individual document using ``:nosearch:`` file-wide metadata * #7293: html search: Allow to override JavaScript splitter via ``SearchLanguage.js_splitter_code`` * #7142: html theme: Add a theme option: ``pygments_dark_style`` to switch the style of code-blocks in dark mode * The C domain has been rewritten adding for example: - Cross-referencing respecting the current scope. - Possible to document anonymous entities. - More specific directives and roles for each type of entitiy, e.g., handling scoping of enumerators. - New role :rst:role:`c:expr` for rendering expressions and types in text. * Added ``SphinxDirective.get_source_info()`` and ``SphinxRole.get_source_info()``. * #7324: sphinx-build: Emit a warning if multiple files having different file extensions for same document found * Added ``ObjectDescription.transform_content()``. * Bugs fixed * C++, fix cross reference lookup in certain cases involving function overloads. * #5078: C++, fix cross reference lookup when a directive contains multiple declarations. * C++, suppress warnings for directly dependent typenames in cross references generated automatically in signatures. * #5637: autodoc: Incorrect handling of nested class names on show-inheritance * #7267: autodoc: error message for invalid directive options has wrong location * #7329: autodoc: info-field-list is wrongly generated from type hints into the class description even if ``autoclass_content='class'`` set * #7331: autodoc: a cython-function is not recognized as a function * #5637: inheritance_diagram: Incorrect handling of nested class names * #7139: ``code-block:: guess`` does not work * #7325: html: source_suffix containing dot leads to wrong source link * #7357: html: Resizing SVG image fails with ValueError * #7278: html search: Fix use of ``html_file_suffix`` instead of ``html_link_suffix`` in search results * #7297: html theme: ``bizstyle`` does not support ``sidebarwidth`` * #3842: singlehtml: Path to images broken when master doc is not in source root * #7179: std domain: Fix whitespaces are suppressed on referring GenericObject * #7289: console: use bright colors instead of bold * #1539: C, parse array types. * #2377: C, parse function pointers even in complex types. * #7345: sphinx-build: Sphinx crashes if output directory exists as a file * #7290: sphinx-build: Ignore bdb.BdbQuit when handling exceptions * #6240: napoleon: Attributes and Methods sections ignore :noindex: option * #7364: autosummary: crashed when :confval:`autosummary_generate` is False * #7370: autosummary: raises UnboundLocalError when unknown module given * #7367: C++, alternate operator spellings are now supported. * C, alternate operator spellings are now supported. * #7368: C++, comma operator in expressions, pack expansion in template argument lists, and more comprehensive error messages in some cases. * C, C++, fix crash and wrong duplicate warnings related to anon symbols. * #6477: Escape first "!" in a cross reference linking no longer possible * #7219: py domain: The index entry generated by ``py:function`` directive is different with one from ``index`` directive with "builtin" type * #7301: capital characters are not allowed for node_id * #7301: epub: duplicated node_ids are generated * #6564: html: a width of table was ignored on HTML builder * #7401: Incorrect argument is passed for :event:`env-get-outdated` handlers * #7355: autodoc: a signature of cython-function is not recognized well * #7222: autodoc: ``__wrapped__`` functions are not documented correctly * #7409: intersphinx: ValueError is raised when an extension sets up :confval:`intersphinx_mapping` on :event:`config-inited` event * #7343: Sphinx builds has been slower since 2.4.0 on debug mode - update to version 2.4.4 * Bugs fixed * #7197: LaTeX: platex cause error to build image directive with target url * #7223: Sphinx builds has been slower since 2.4.0 - update to version 2.4.3 * Bugs fixed * #7184: autodoc: ``*args`` and ``**kwarg`` in type comments are not handled properly * #7189: autodoc: classmethod coroutines are not detected * #7183: intersphinx: ``:attr:`` reference to property is broken * #6244, #6387: html search: Search breaks/hangs when built with dirhtml builder * #7195: todo: emit doctree-resolved event with non-document node incorrectly - update to version 2.4.2 * Bugs fixed * #7138: autodoc: ``autodoc.typehints`` crashed when variable has unbound object as a value * #7156: autodoc: separator for keyword only arguments is not shown * #7146: autodoc: IndexError is raised on suppressed type_comment found * #7161: autodoc: typehints extension does not support parallel build * #7178: autodoc: TypeError is raised on fetching type annotations * #7151: crashed when extension assigns a value to ``env.indexentries`` * #7170: text: Remove debug print * #7137: viewcode: Avoid to crash when non-python code given - update to version 2.4.1 * Bugs fixed * #7120: html: crashed when on scaling SVG images which have float dimentions * #7126: autodoc: TypeError: 'getset_descriptor' object is not iterable - update to version 2.4.0 * Deprecated * The ``decode`` argument of ``sphinx.pycode.ModuleAnalyzer()`` * ``sphinx.directives.other.Index`` * ``sphinx.environment.temp_data['gloss_entries']`` * ``sphinx.environment.BuildEnvironment.indexentries`` * ``sphinx.environment.collectors.indexentries.IndexEntriesCollector`` * ``sphinx.ext.apidoc.INITPY`` * ``sphinx.ext.apidoc.shall_skip()`` * ``sphinx.io.FiletypeNotFoundError`` * ``sphinx.io.get_filetype()`` * ``sphinx.pycode.ModuleAnalyzer.encoding`` * ``sphinx.roles.Index`` * ``sphinx.util.detect_encoding()`` * ``sphinx.util.get_module_source()`` * ``sphinx.util.inspect.Signature`` * ``sphinx.util.inspect.safe_getmembers()`` * ``sphinx.writers.latex.LaTeXTranslator.settings.author`` * ``sphinx.writers.latex.LaTeXTranslator.settings.contentsname`` * ``sphinx.writers.latex.LaTeXTranslator.settings.docclass`` * ``sphinx.writers.latex.LaTeXTranslator.settings.docname`` * ``sphinx.writers.latex.LaTeXTranslator.settings.title`` * ``sphinx.writers.latex.ADDITIONAL_SETTINGS`` * ``sphinx.writers.latex.DEFAULT_SETTINGS`` * ``sphinx.writers.latex.LUALATEX_DEFAULT_FONTPKG`` * ``sphinx.writers.latex.PDFLATEX_DEFAULT_FONTPKG`` * ``sphinx.writers.latex.XELATEX_DEFAULT_FONTPKG`` * ``sphinx.writers.latex.XELATEX_GREEK_DEFAULT_FONTPKG`` * Features added * #6910: inheritance_diagram: Make the background of diagrams transparent * #6446: duration: Add ``sphinx.ext.durations`` to inspect which documents slow down the build * #6837: LaTeX: Support a nested table * #7115: LaTeX: Allow to override LATEXOPTS and LATEXMKOPTS via environment variable * #6966: graphviz: Support ``:class:`` option * #6696: html: ``:scale:`` option of image/figure directive not working for SVG images (imagesize-1.2.0 or above is required) * #6994: imgconverter: Support illustrator file (.ai) to .png conversion * autodoc: Support Positional-Only Argument separator (PEP-570 compliant) * autodoc: Support type annotations for variables * #2755: autodoc: Add new event: :event:`autodoc-before-process-signature` * #2755: autodoc: Support type_comment style (ex. ``# type: (str) -> str``) annotation (python3.8+ or `typed_ast `_ is required) * #7051: autodoc: Support instance variables without defaults (PEP-526) * #6418: autodoc: Add a new extension ``sphinx.ext.autodoc.typehints``. It shows typehints as object description if ``autodoc_typehints = "description"`` set. This is an experimental extension and it will be integrated into autodoc core in Sphinx-3.0 * SphinxTranslator now calls visitor/departure method for super node class if visitor/departure method for original node class not found * #6418: Add new event: :event:`object-description-transform` * py domain: :rst:dir:`py:data` and :rst:dir:`py:attribute` take new options named ``:type:`` and ``:value:`` to describe its type and initial value * #6785: py domain: ``:py:attr:`` is able to refer properties again * #6772: apidoc: Add ``-q`` option for quiet mode * Bugs fixed * #6925: html: Remove redundant type="text/javascript" from