python3-doc-3.6.15-150300.10.100.1<>,$i6!p9|<Y2G;,>!|z b"钠A,n$m(C!=qZwWNx=RJ꧲iO_2)GcS<xZu? <@Q=I4|T5U[$`nɤѰ i;^: vtMF=ϞOY JZCا7X.;=M4)\==I̒( ka:hCGe9.|tqJoi4cz@!>A|?ld % H  9Ze {!0! r! "! 38! 7! ;!L@!`!uu!D(89:0B7F7G7!HHP!IX!X\Y]Z]D[]L\]\!]m!^!bcd>eCfFlHu\!v z  &hCpython3-doc3.6.15150300.10.100.1Package Documentation for Python 3Tutorial, Global Module Index, Language Reference, Library Reference, Extending and Embedding Reference, Python/C API Reference, Documenting Python, and Macintosh Module Reference in HTML format.i6!h01-ch3c*SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxx86_64e?M(a- +CC5B%Aq +,b ]wW<#mj4W Y  32e̟pOih( Sy , GZ)y E0 ] d6&Z A KOuXz(A!R!w%@12 .bD a=[Qf zLa/̡]$cA7-WH+{`T%>}.3O/H*<(!P4VYbR8<#vc>58U)(2"y*X f$n6d( 2=#B& Cn @MZ%#8 *m9b7$ut7i$M# 1{5E#F% -7 l%{cs -3TDmI%Zd' q mg4x', Il!EczO z<o U`;oi hc)^WCO8'&o,t cH(.S U5J-,@E ;,u]KO "% n;*mA 3  Pod HG.P0 ]*n" @9i;CB%*6[ j\ w&M; Md",|6!fH)?Y/2gX}y /'EVII5' Rlhu  S"8PNSP&7^W'BS_<'/e=Z:Cb6Xv#)S[  wh_:+ RC lD]*M;& l''v^C ,0Unk+K*= $a6R*_Z@Z +:`/lc !a1&W9*^(:;]cU&/ 0XSwE%L%Og/93;G^p+T= '.XKINB5)BX"3aa4,q`z@4$LuOK7W#iՏ5r;I y!-?:dISdK iD)&c%CC3SJGL:J'>'{t,?)U1)"/BM6.&t ˅C8n??!8>O )jV"vh*[O &H{]p>#$LZn5~O52f`eU]Hcm5Hd2a -de-y2@BKmQ &8CS]1nS6z'E[U7Q9O+ b"A"]:7tbx2)m*q$gQu8OzYl5CURT,Y Io M[kb0+u4BDuF5*#scl/+H}072XF,+Ex' FH)Cco4|  y'ߞ<2<@#955Gp=$f>KG{ 'H+VHD9K-;=>мb(s Z<ǼC7>|ry?E+- E3<@>[CPn6'b+8hRNahp({~c 0P@a0yhvIA*|p68"fc<vR0Pgw-Gg76=8-$]$Ev'HX}r<{)f'x$@R.g8%CJTCg0}8!uuix)6Swq:}j^Ld Bt!FZo`(SWonN?jHk YgY¨Y ~HAA큤AA큤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큤A큤i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i6i66aa499d7c3461364544167e66f6dbbfd8b05c8e4a4dd7c61645e0b3fc1d5789368316b92abab82bbfae78a09d600a8a043c8feb37b13f75db3fa2aea444a6e9866ca0604b9e41bab114e68b7407cfb2a2ee65558d3d31ab364847d9e0cb3ef26667ed7b6f1f4e599516465fc9617d3adb40c60087558155e03eaa6aa3303b7a36ee1cc2e08d6f0ccc0714aea55b412593635a4c82e2688034be4b2eadbc8e33f9e03c96a6816979d7643add104aaf2e333990622483c4c38845c1e1e61240056ffd112649b2ec6b0b90451b5ae86322bbaffdbba6a54acb637a49d73e15b898d0ebed85d25349a766fd0659270a28d2738e8cbbf8a899cd7e3836c3311d6c473871ad4562764fea7c62a09e90b4717f1e3c16e2afbf22827898eff6f104095440035b62dfaa19cdf5d2a9da10932252da5fe4596aa67fb5dd493c8f5ab39d309e0812dac74d45c6290f97c7d6a0415bc73f2c8c016dc9b872ff9a65c27916cf8543f067633c754314e41b6590876b310fc14120d6b6bedd4ffecdf965bc4ec375e962cac6ec219c7e6084346d85ddbcc5c3f81e7c65404191aa7b69826225dd8e1fc6e043509f379b3405f36d2ea1f6ed3b90aff3161fded688f0f87c2a8b95f47db348ef82ea1481286c12ad68a788305aed2d95e17183a7640526eca45a9d39042918a36fa26b1122c0254b1acdf0999c29efa41b701c3a6becd6cb4c0c8964dc395f3f94b51c3d8cadeea326c225ac86d768ddb9418407b8d8aea50b1af487f9b923ce8865b8136978cb0257b9087f116d1ec236478f6c165e177bfc08efce1cae1ee5536e97f2d823023a7e141d92b3f33711b0d6bf57a967efdc3d6fdc1eabc9e89bf440e9453ea8bf223cbaa548b1dc3143b0b8071b9a6d5f501b456867ff436bbe3656eb6fc0e3c076bb4b6b4b3eaf2e94a8d4821653223a7cfee467b170294984476012a2b4d9439572ca1abeb37b503361043aaddd15e47891654ebc563a7ee487c395283da502061e15020a15d2a5ac07a6ed429eea0c16de70de0349f4f436705f1c0557a6ed959225f3c2c37d57ca86dc0a755dca8da33d91dedbf257dd9f5b340b733cf2eb0fda20bc7bfe4d4f43cae08edfb20c97776353c02fec25fd62cefb31fc857f9e07f37274ebb6193e092c32997eff3acd825355a1880bd324f6d29be02476aca6b5291d0aeb82bed20de9d9c3d6c106994bbd4320f4e386ca84660e741365580262b3da0ac58b3358e2a89149606f977eb3842ae710bad158062087b225e669c2556360d882b6d1c883e181a9b2403c8897e49f2230c542f1261829858583589813fdad1d0473612aa681571d4c3b752459ffd72509ab24df71583315c0c67a95bc8c0332130bac7f2ed3b5f72acbcec57a63e027aa33bc1ebb5f3dbe444c9799cec41b49d3ba713eabf8b793944d9c2d2f070d0bbf28eef505e6842d8a7729cd633e757ad89784712b5a025afbbd416f325cc282ba97eec1ef77d1e3d73d0715ffe8c4fc295d91502d7bdffde9e9677415df5415238cb26339911b2d4bd54c1e61fc2c7b2a340388a24f735b0e9070f3a0e8d87f0e4ffdcc85bf073264f10cdd777a30022292ef6b71b68bc5c00aca79ec6b8f0b65d399a5a6bfc45ba067160cfc0b17b91e2472eeb975e7892db2fcfcd711720063944c4773641b23bf1cc98dae1ccce6f218d817419df4d94e2b2f84fafb6c28daf0cc35540de3b27128b4b22bbaedeb8e0ed84e2875d9d65359937d547338e29da7bda50a866005b2dffb1a1931a079bb1d583c434528c643f812c8771eda09fe752387bcdb9cc0694293ac434de6f1cc0d5a77ee1d9fe1d285d699df753c8a41b2b7000f4d2e6d44d9dda25d3e5080bed8f855b1983c983d6eb7f65b1ad96e9310f72f7446921a54bff08c81ef4fdc0b54f6241d333d93db7af76508b51ce4384a4655c83fbdc7c9921fe174b47d640b3f786173a8c27a34941e91aa83850bcbfdc0ed1e29b11e8b56bd1a84cad6ded4052cb2f50ee9200355c10f522ea2b07833083f8abd8a53b0698027f1fe450df39cc527ff808a9bdf6a6e01f673076daf68bbbd23e11c1485428595b6a70e66cd42b5cca5e711957c824f6a9bdc697babc4c58745fb9dda6ea1e64e4a2d59b8e412d49fb0a7f768f624d9120a9ea4a49f549bb4de45482506e646e55ddb9dd84daed5b18b92c341095f835cd37847cdc968e1d4176c5e824d7ed04b462766f63a462ad11f847e765befa2eebc36fd87775ae6f2248f4bfbbeb0902a9495c7ec91b814930cc566958a0df889d2e6f301f85ed47176ca644cadc170da60e5ecfaeea3658e5a55464f491be0df86ab10d7fbf9bf7fbf2512d9977ef1816758ec374b96743f8d3d81e486d1974d3b3f021489316f58cd574597e58996fbf425cafa7594a275a72f3aa5a9b0484d94a3aa3056619bef4f564ea34bf31576ec0bb23c3046bf2fc6078565530f62c49f08c212c67b103c6aebee15f6ce38293821ce56c326f0ce9e88b0c306c8766ec8edb81ff3fb11cd200163e79d68d9848e727c715b727aeb9974f7ed5754ea680301d883f471b8f34804c6ba5c3aafca5f7c75b0e10d2b4250668a5746de02099c0f4096fb7580bc4174511c7a18cbb47fc65f803e2aab7db1881e61c42315925c9b21490f80a8dd784c3beeb273224a2ef03a0d9db86b031439f0e2b7b9d1026020b85341dfe82739272d573da40be79c19cadfc9bd7ad4226325db8e1a8934b470c2aed790b807e2cd7606defb6436711bf53e2d7b21adff9d77a2082f184e626b46e9fedc2db3d2630e78770cc867deaabff4dce6c70837f9f92e342b1887c35a754e2b68b4340f8c7c991fd3f3ebbd04bf00c86d1518741cd31015f8ee9f64e1bb5de8a4d1df78dd13ebab63f49b0fec91d9ef086d4b7e4410bae16af822eeec08e3216f4cd0268e738a0d9d939ebbcda8ebc46d67d173cb95d25bf86da848569a0582e5ab1f12759ffa9cf5d88eaffc3c4c30fbaae41d11fa76853c647e6fe32ec09a928f3b1671ee52aa367e3ff50fad717d0a3f7c164e320e8892df1b67f9f240f9b5937ff2f3ad94eda3e6b2eaa80edf8b7b31e6c66cbb064f7791d647e49598538dc4866a6fce1ea1f892c11a40718670a32545d1781f84d5771c8adab1bc2a2ac3dab410f3db7607029aeeb1798d3849dd82d6b7ca990be426ea995b20d049e4d66563ba01a4733e06446f2239370da2b1c0a6e3856c4ffb24180b8af98996f843beed7bb572dadb631b1f5977439e2be8b11e081ee894adc7e62a803a51d83a193424572a5af88e40c62fa10ec94f4ff8853931d3a0b616fd9485dd20f78255dc1c6157228a9ce96bf01fc7b84aca888b8e7b844c11d6931da22e8896622fa41e18cb070632b93f4b3ca004ddbf6a89fc45bff5c11c5c95a4607f0dcee1f602201cbfa1806facf7bab9f4aeb9f5c053645007ab3b455d78dbe2e25407960d625b5a7c7b881316648c849a3012af7146813d895fb2679e4de5172783872e5627b62431223107c026252bb67131715f504dd384a9517333389890c7cd29198db333adfa8fcdbf5af1b841c4f60601e1b9e3e72e18c738d905352d838e25f95801d2990ffeb955cb629cd54ad217a28f924bf84c9d2db588516cd988eb4145283a3ded08c0da413f6083487674133764e3a7f9a57084da7668c0b946e276eaf4646210c6c26fdb60e716b2c1d706122b650d4818a154fde60089b0f8865bd2f374b3ccc78df8ea507f88ae713f4d1cd8c6ae2976f7d959c7e962487d94701dd172796b42d485f35733eac7f375ba8b0060bc371e6877419dae8dd4b7e329eef77076ffb742f86aa84a75ca80e7e46b79987343e055e6f5b38dc24628140f55ccd22c44e1ac1d66fbf70b249d807c87032269957ba9938f5e2233d4dd66d01c3e459ff5bbc59fa14c40e0fc76574e2f80f7951e2949dd1da1078cd367e3ed6b8cc36c880549e2595e4164fb27829c89becdb72165eb82ded7a75f93c810f9de11cc3e06d9a0f7f4ce7bb72638fad64aa1e599e77716b8d26e2ab9c6e81ff28006a258b1e3bb1eb3cea355c145dc7c65205046262acc28de1f33a28c5ccfa99fa044cc961455aa44392595936ee04648653ccc657b54b238dbea6e7b90998a7a306a7f1fdaf9699362555d9845ebc7752600aa69c9161f77b6dc3187ab2b1c9200687396ef8203eebce22954e6a29a91ba6c5854c323b25c798ce3b33dd6ec246fc72bb59163eda5128d4e6962ba11ccd32c127672dcbb484690d73e05adf1550abde39af8366952ad547a64110c917634cbf4a1685dcc27e1da1b38a2d5f20992e0988c3fa0806eeaf9605669fbf7a2707cbf4563dde4869615abae4c0d50e0d78f3e3cc782388fad6b2ce913ed808c4f3688dc043254b0e913c8d6bcb6d90163cff669f30c2af8e6fc8724dcd2eb00d6d73a8be3d00e4eb6f1e3932f5e97b041462a7b4716f756e1b5fe8aeed863cbc58c7366d4376b463a06714ab6e7c6db4b947fac54c39462ea9e2006e5a5631de78acfebf77deef3e836361c0a31cd2346b7d4eb5b1740fee0a1197988b1d4dd3fc282d60234981b76af8a150a3501046f615ae1683152125a1bd0901dc6fb8444d6095f03751406d5dd799a1d09f26e043d6e6d441fe8ec639bd9d428fe838194e540fe33e12b2dd2b69a8552a44d05ac4de309a6bc55496ddea34046fac0ba99f4a08fcd9b97df8b29a539e414c4c0fac3afb86ac1927ab06ed4e4e103e70d7d1bc8ac9985454643f89b7028a44d9048df62fe7902f659b50572c856ef718720c83b009d9aec25582fd8809511773b62b817e575d9edc1e757b28a35f897f12e5c7ec0efe088fac2d1ed9ea6dc0c31844eded828e3507bd09eb4b9f52c4a1b95849ea6a9ab6f4ec0b0dba5d9cc33112ed74fd60f7a2dd06ec5017b8f7112c200c74b285a8d1b7a2361629dbff3479ab84df8f70eecc732cc09f3538ecfab24a3f34c26e46bca5fdaa66513f345d20d93ebf44cc903bd7b14e7a7f614030d0f9a287e6550ae055df68f63b38a5719033948af540a794a7d038bab6717d35deb7f4b601036de6337d7cf2bf54ba04a5bc7bdb9abdff94168fb1d26fd6b607d93a2f109daa5da328e41a7f9dc56db983ae8d3cf75d195de125769cc55b8b9c3d0a8cf1653d0aa3538fd4e0738f7eea04e56c7a398d30665f67d9f685e144476c0de832c19b9ced37215982a7e5a8620b57290656ee55c64e58e5a73aa24ec12c8e673f1feae56b68230d6067b7a8993bccae08be16edf2262b224a99fc8918e4ea6319b3a9e8f6821d023e717826864251bfb992eadfc05321955787a4a609e307c00383812ea9b030ab9906c1c433e6a1d3f27fac82d1c6521803db86be6bf470590cc76ef60f35c60ff68ccc3f871a131c72c370076003f0f0770c8b0ddfe4be2c9338ead06c792de1b4140d5501fc940aab75bb93e8e8a71d27e457dfdb451db4280893fc788318ed3310251b9abb5d70982ab1202f44014912e52922d038c7b7a005292b12bb4d1ccd417dafa0b6a296dd20816c9b6d5ad533e5d9dfb95cd917c168e7db9905b4ab69483fbdb3b5205f1e6f33af887262154701a76a9c0dc02a0758b0aff30ab9058dc682d80b10f88fa743d20aa3a24d7c71c023fe271673c4a87928ad6808ae1312ef44f748148ca6777f20e255e0afbbee50b6b5711ef200e187b758a66cde030e55dfd8cfbb875ba12efe13ff082f927edafebc42682ff5681e61fae41057e2916e1f2b3e73201f2e46b1fa59bd296e74e008442df275afaa26727de8049b328c1140fe25a6fcebfb33ad8e344750fa1867e1dbd89748013cd7ad2f8c6ff41b198991af0db4521e1692f92ef264ba175bb6724b628ffb2619d489ecbcdad97b9c9d2dd11b07fa0810a5fb56b818b335d901ded9418a45fa32651a5cb5ff81d033b0cea732758a557b6e31a04003b5ca235931cb9a1aea86c94b8bbbc2d9ccab380e954a60543841d86b441da4c63e4e009b7115b9b9bceb2697980cf3ebad637a5e6f0d979c56c9274416684bd397655bae2808b5545644e3450f37ea1667794de4522a3c2303537eb1aced93a7fab2087d2e578459f69515033aef9abc01ebd5991145c14391a48dfb8ad3ca335387e86cdf43dff216d5a8fe2e551fad35dac46e66f6e3325bbb2d6a097a8cfc2851b3b04028ec37e6fd5b890ef30dc74f07e5512522c867a21fed711a15a77bada38eef358a878965daa56db155a7a9b1712fcc664e12358c8d18675e24dec81a0b5bc519aa5e135e88c70f6e6568e825803604f93049e5d2c48c35fba87a7879d7a53c45795d1201b442706114bd5eca64d0f0821357aaa8fa3301ec229e0bceee647cc4aef75f2b9368a1b60552ebba538d0a40fff1841514ce188d11fa51cf46355d14373496294d675ea5b9f894dcfe518d5e703a8ae4830dcc9382f4f10da514d6664530a6bc622dae75758f9b3dc97d249826c4af4b94a26c2f4605e4c086a7f04705d36ece8666c8f575a817622ab6b695cbe18618817b5ce177a79da922744d7c1a149bd161276f535ec550dde37b478a1014d7f45f34aec2e6bb5efbdb7a6aaaa830aeaa6b808e02f3e9cf9531fb91ecd03da0e6294873b5ee8d71e0e957b250dedf389460ffa03a7468341f0b7b9b666d763c7c2c909d23baed0f42db8e6b2743d322fe1befca35326846c6f27e71a01a526f9dc75d5152ca230ff717600e760fd94e3addf763c471ac1f315c5f1db97d97ebb756e95db9ca214de39dfb3d146100fe450fbeb05b5fe8ad499a175e0c5a24f901c2d36a0d3da83d4a21c2350f81e8581e271e7a720a75d18beb867bcd924287796ffa0fcc2108c8533ca79f601ce90acfedb0afb0d43d53bdb37be69afe4d6c51382feab78095c51db3b6ed20f62f38e41b5546d7ead75faa5b4f46af5604549ee081390441f6c2bc11eb44f13f327fd188ac73f4ac8607177908f06cb1e63150dfcc9f83d4349141ec171f99bf34dc22fe280e7f42973cc5f7e621aa845576b86bf1eb926f436280e4e3714bfda069790eb32b3b2287959706952d95e0e71ca28b1d173f26bd44cd30e04a458f81939c999340ac81e244bd61c072ace38be403948c7238487d8a4777503260cb1c3869caf28cec627141c82344814b02c0a35e22aceacae1d7e9ec474b38a7a3cf310593e1eddabf29f668b4c08df503427bfd65436067c88594b8024a2c8e8c235f0cd64f6c5083e46cfd9d3c6b0931fa434755c5e017122a5eae671670759ec650be761687a856f65208b27545b40e885e68ef557a2fc646b0813635e79b00d1f9cb8126f267f7d5d2d73e06341c5bb9b42e78a5b2a001f54aa58d6a179bf349e1c4defc8d6812dd62ac1bfb9f4db991506c6daaf898ed3bfa900d7375d49f48dc72c68e8360ba8c6fdfc5673c65b131c916341be00d98de520493ba5a2867159549023b0bcb59f18d04c143d254cc77f57090a1b46955a14685abc96d988cb909435d21e57877b79b28fa0c538e0f2c75882ddbfdb3afe5e2d52945a996f6b725cdf9ff2f2c9e7e4e585a4d453591aab8401da4ae6506f4372204ae1bba0a7eaa9e46b732a7ff632d8ab6dc31cb14acd25f8096858eeacbe175a60a70612d04864b738b2c13d4325b5792cd38d2a0b3c281f17653e2d3ff9bf0a699885f0a8348e6a02458222d60b9fd63590840f572cb39992d7516f4a59f86e41c77b8b3753417a2931b43ec8a578b7cda3d05f9ca6952a69971c446be1207f81ef67388ba7206d10076e17fb9a5a773f601cd243ccc510530ddb046fdcd9125dec6f375664c655ac4a669863f544ad88f313490c08b5b835b8f5e80976761c96d55886d7b209375e91d8fce830fa409f7c219c46429ee284353cb2e2b3a62844a6bba7a9758008e26f2d69e8e370ee9173b1560f3288f5620d1e22bee18f31e423dbfc6b1736831445ac086279ad549cdf59b60ce7ed05bc826c72dfed65593b9e9291021693b3fe5b06d1aff6f0c3fd87fae9238bab602c74e894ecf6f62835db74b4a40a1a0108a4fac847036bf928609d36235fabfddae3655e364564879dc90aeb6edac6e0534cdff3cc9f056977dd061887f45ac32d503dccd215933addd34f1f14a1676a4496ffa804c2019af0f0b9f1c89e6e6954b8f1203cd71c25497b86aca7bf61a925ea4b0bf531b72cd4611cbbbd59efbc5b5981d15a3976c602c1be1c1e380d8620057ba4a39751274a60c820b16556fca567ef20b5c948610cbc2e9177424e8bf119f8ffb7e29127a0ddd73c230faa6dc41a3f29b3f5c1095f6be2674b8478c20e0d7e69ddd56adb0ea9a9c3b52a721f4e2fabbd20a51dbeeb6f93b05e330f92e056ae35f19ea292d624434d40621545a44e8c51cccc64ad974d29eb7bfa2b48822d3c59256c2ad4cf2614a68d617d9584bee84706e3e511f22883e4462ff36c9c7a1d392bfd6dc5fd464ba8a135f20bbeefe6cff47702d41721799726f83ce406a7833a94ce3db71793ab9a65460d028020f45da0b6d5add5dbf786e62d0f7ddf0d6cbcbf63fa4eaecf34b554f1a6658f1f97d709bc7334c3ef56b753bbc168ccc26f6dea37ffac38734739234129ba9ded050f82b43eb0a97827d66bb8226899aeeafa6fdce79848dba51f72b2b29d52784e383ce6120f3eceada2d4913fe68439f0f01373fce2528b9c2c57f7dea7bfca2413756b2a18d3b8650b76465ac7d9ddc42382503a1f8908f650e08f73b40faabc3b0fd577bab77ee42a211bd7b74837df97acd36026ef6ab856a2922486319af49e230977077f8c87ebeb7fa29f6fb3e2000e7b0f61104f6e7cf6e1ae6ab39381203e0c8047871a72ccf55c9e377fc789d36ff514c46ef2ebf3d544c49c3c0b05c13772af3f749ac3064058c0da5bbc96cb80d5eded98e0872bfe309bd75ccade26097d318fb758abed5ff39912ae6dc993310abe249c0b609c6756c3d9ef279cc8d7fd4fb1b6b9df0651554c2cc4cbbf43b1e5d5da95718b3d1982b81931e59c0625e7645ce86013019a1e8b554048b27ea4458c46c1fc2bcac5dd2b1fdf0a0c9bf3393b7cc46b6b1b5ff2dc9bb3c7d38fceb398fc484a6775b99843098a4129327efc5923daeae586c90fd98b4cf305a49d488bf1a28eb09a87522e3584046b4916bcf0342d8b4c080b7ef61aa6c423ca3f1eac6cf9220fb23b9230268c245c21d753cac86eeacfd6454331105981d19ad1c68a4e75c6ed0f3004b951c72b0d9b7008eec7112d14657bc54557b9011157e278e800d86d3ef644e2b9024d64edff3911360bdcc2fc34b3373ed6ddd7c1b526b01bb150b4ed360b9c7c93838f448e3b6c725a5f8c69fabdcd0635076b884cd14903bd102b2d80527fe44f891fd89d80bd558d93c93949666a129f2e785165af6913d3ee6cc0211c622e1c7e7496ea8d2bb0d49ae2915b12cd2c5891e3e91dce823168d030cf7cc04bdbed9873acc54b35449d7cddadb41755bd8af24a53cc5807f19804667248a7596b459d008de14bb1fee04a35ae49e5545ae8095d1a8ccc354f95293cc2b832be97ca5312242506b8d70bc7607cdfcf8021e763c7e853b9bef3ad4905e4ea313da685307dadcc494466684a7bc3126dc76df5b27f0186b684d0debe60acf3bf5b8c46b0cf8d550bb69119608ee777c26d48d2d7d5cd368222aeb79c381dc3016387a5a8a460b3648f4e8d9a45208badfb76056ef60ed24beed2ab3c6681e100455393a63e2269b6a0e3e23357cdb51161d990b1de1fd12d304a974bb0be13ca1750f147c5779e0dec79216b17b8aa24245c965eb288b9f8db860fcab69af8abf2678f2813c71e51d6a6504975671ba1f1e669562f95b907fa784c5df286ede1a71dd70765e60935712a2f4a424cc7ddcd360f7df507234b1b335d70710335deb14bd9f3925f3904d2089cc9efad42324bf0ad49ec05d637b265230d8e31d8db9f662e4a2244cbfbb47859ea86adfca4708f92610e5cc59b2ccbe31eab47c2edeceef413e02e6b07c4f5ab6976051ecaffc1e3d9227e708fe0ee0af738db7a6c073b02a795e2d008a37cdb754a082f6418e635ddd3363ad4c90b9ff06b3baec291fedeccc15746b56f8d7fea5a052f012b48fb0ae19360c11f1cbfa7678e2b1f194f1571e90ad76bcfe9bcb7061d3265a0ad08925e5d5724d9e63b8636c3e876c0ba43cff5aa32759bd25b9e7c2ea962ba8cc42203579b2e91bd2473825ac91a05cac2dbcde702ec7b5e8b0bc01e32c852745fc2dccafdfbfea53a48cd0c656f8a03f2160b03ae256148bff321813b0b16f647f3ffd9e19b42d3a591e9d2241f4cb4b22851cd1638d72118a9dbc5c180bb6efc2a363c180a9bf41bc8a8c4e8a8b41bca4e2be43d0cf890ff792bb1ade093b3bd51b72beef39a5786c52a67693a6e571b65ae6f4819a232c1257a06566f426ab5564b2ccbd9a9934f1541b61292f3a176dff145f8551eca72cb79a0f24b95eac3b97a15ff58aad7ff1d26357e59f111bd6e951def8128fb0b539c719312ae9acef4ee8f14f36b0848f7ee45eb18c3afa6d5246643597d98a9039184be8a28451d287d675314e34b83e567ccd6d00fb085588e36cdd41318ae4f2aec931182e95a13f8ac2049837f6e60a6ed9c18e97dac262980ad2d3c7704648daa5800f095d6e862f79d4b1b84a80470b8d868bfbbf2b429c5e51e9f0663a29b057252012be8682301a83e0813731ddd3800cff96b037073fe50d5c1f6629ec375ae45f7be412e5fa8152fa03a70e6f121e3bc9b7d21ba4d225bd41b115dae37b92803892d8ddf57bd89fe544d051e12ac0be39045cb5118aa62af31840efbc41236bb009ddb75f732d65d74ce4b6fcbc7205f68883986ef33e8588805b425d492cea4b171df8d491e4c78acbf7ef4fb4f04c518958a01ff9882d75059baf6d1260baabeb48ef5b2946bb065452c1e18f10827feda5f9af12def9559f1ed7c56c23c3d0ece44534a2920b6525819148ac1555ba957eedc238aaa370ceb534da8b688dff8470889973eddce208d2ea971891a9f2908d7fa2bd1231f214def9a786e3ad756df7da2b51a50364398ac509778baf79d617d04ab99304b526dcb08b837809efac51fc6a60f57de90f17470c26b80de37a18841c8b6db6f3ef37a3da7c68e382145f4ba546242ccf479f24552987856cdbf14d9ca73c9984b439e26df2a16d424b0bd215f66bcd47016207a7c903dbeaf4664e39092ffed737305e467ef97fbdcf61cd718ac838a4fa09c1514d9b9e55ddfc43710b9b296e92c2e282e803c1190678597bcdbb8537641dab9ec2a2400df4d31b101d34f71bc9cd19173a240af5a2c64fc09a6360948b90d1b40a7f0aa3d29a5417933b3f0ae5e64ce7cae68ad3be325966d39d3f7df12932892f678508e2c9fd87bd11632184a5d4faf3025fa193a294aae0b2d2a18e1be1d95504ef727a161c8bb4b4c9722f2c0f4e30b27c75e24377e525bf05db0d8725c71a71930590f4d9fc6a28fbde1c4ba22525aa76d16e573a8230dc7f0b9fcfdc28d7bf47b46896f256cc2cd88165eaf5a1674cb42f55f5d87390c0c1625437c260438c76985a6ae92e004480fd63000ff2e31ec8c7bf3c6f8ea1d4a824f0494dcd612fdb610b14bde752d386fc98c48aff1a57baa26f4fdc6c232d8e451899fb6a673b7b0be112003f4d70a952dfd6ea7a1fd77e28a70b94e05cd9816ea3ce6da38d6095c6bb84d68f1d7e14adcd9ee88cf25c1c100d7d046f3c331f99ae7ab870280671385f28e729a81cc80637282b6b97bc92dca605fc10e8a864588717b64a749c084b3ecdf65eba4e9db6903e21af8d44230877ea547973b370ffbabaca760f6525e1311083e43bd80c454dee24e899553bf6f7cd385a23fb3b93a613d5cadc075879b869832334fcd68fc3d067e59b8cacf9232703cff2bba36b0f22f462f104353997a040ec3252b17ac95a2a6c2d41b8bc8c282372919763149f858703add7d103fa55f5f143611012cc7e3735e99b5e6745e2d841090e45e91cd8a4a8a7c847ca32e78269096e0e9a744f748b6cd7b6591437b7d94d93b1c363f1a2a328b6ccf684b014c62b6b70d23ea34f28b845d1a969ca4b1c8175f78222774855ac3aa6f8a690b586155c0df83be429431ffcb0608b7c328180425011a00597498ba1f5a588db056c44cdb435f6a1f3263541fa3fe1cb004dca9848cd8d5b591e6aff223149228836c92b2d006ddc5a163b5590220737e3e5c7376f7598a3fd2f3f625b9cc1c0eecbea9b45ccb5545746f98e4037c541f48f994c46674dc139f10d7eafe7b2b90416f88bd8c31aff889b8424eeb05b43cb88687082f5cf145c41ae8bf546eab45317e269b02078077e22e79e7399ca4707382cb684e9eccc8f8d650a8d31a3329d019b123e504e008eb2624ced96c52e60c4e5f8c55ce68e4e382606ced23b2cd0762d0d9d24ae2a7eba2bcb1dc8ca8b0579e9874a13562e0c089a9e7dbd3e7cc1297e10dc0805ccb1ff032f3a3d04a5f55bdfded4754ee7743b5df1628c81b63ef8c6fa15e6e08a8f4ade4a66c95c89307a0f7c3864a1977ba50946fa77569f92b9630ffa5cd96abf3abd0bf232d03f8aadbc1382d72e19d21531c2c8ff1b1ab66e56797ddfc1a3787d78e7055b551b73403eb526a845dc830ab8b4a4adbc409afb32f38dcd19822171a5e98d2c697b55056333c2b5a5eff32b697864b1c56ede57bcd4c2fe437f8ad89ee5a1781db9dd93eeb6ff0912e23634d29d96f0237685e2f1c973091640e309ac6e3c66166de82dfb39c2a866672320cd21ee66ee2ab1d49e3dca20f730fae2c03ce02a01f3d1a4b038d596275aa5fe7a58e5af4462a17e0016544a8532403bf11c5c12b84ac2e41bae3ff86dd3a6cf4d441ed6a56a455bc7f5e16e2f90148d6aad05edb04fd253ae643c796c94cea48eadd9c7f77fc2f0aa8a6631755719496d1337685f7c3a35f32abf35b5ce3d7f0ba71b9e11375427dcf88db454747fa6416b50be91dafe9c29104dda1c8d0e2b2f6efd649a003296bdef07f50eb063b937c54adb08edeb615694286f3aa852fbcde925983c45b6157aae5d02448443e015dd133b86be1dbc1c44b30715c739e3696818e2778c251d9b0c9fe48f89566eba4c3006e5d67996101ee5ec0840bad49825a6366152be46b5135c04f9efce7cf8ae874228a1f33b80fb6d6c5fe675f3a5bc77e5afdc4bfd1fb5ab3ecaf7d5b2e913406bd5bb44ad62c53b97f96d5400b06d6d441b0f08dcf681aa328c817c070cfbee2f94409760dcf2f72a66c7a87980079d5735cb34f703ad89e8305e0237d451c54469fdd91e21028a80a50e158eb641c84a258e9e8ad9b4f2ba684aa159f0fe9703626bcf04cd64accc64838fe71ed5067978dc1456a16aa8b0b823af422f4a104582b44178f4d4a112f313aadb2b31384c8a7904eeb0b253cc63ca9ccc709dc59f6323e63be98d8cae5e2642e0a131350224410eda368917f33d208cd6867930a7119519ef1181373f7e6a593576bc07864306afb83e96149a56bf3d085e268391ed28378332e1b130023e740a34a7b3e826faccbb13a8b1224867f3ff08078df7fa183b6efbbc68323aaedd1214c0d6de05b80ae6b4ecf034e52cd897abaff1814a659c5083aae4d609010ac6efbf36dc406e0d20e4938c9eb9724804c8bff9e00e8564018f5e6fdabf36a86a3510440108c0160f5aca3537437e34936a6b00c5c467c44eb747c94065cf6938d4aa433f50f7728e438555de7ad7502c338eb97fdcc3e4869f5ce436b2417b110b4caff907cd525ba4d1a191fc7d1a96f1698a2ea141b49d16c32016deb90cb6afc9f16fa08943a558875e65228f1508a21dd610502076a77b0f681d99764bb9199708bff3ff0c7b846beae2820e69d1dc4046ef2d5bd58091e55bea962ef8ce4773816a87e275418defc6570361a2b497afe14664661e42269109e2995c37c9fac34a2e3e174c561ed7f28344fef0888752322989f5ef07f74130af78a8d8fa5cb3e2d9046c80b12582ade092198df9ba358ee66321262071071dd5690e0a486cacb8a705205b60f4222e465a10edb2a918bd6a485600b9723c5673eadb600c5b64c692b62aeac0a27aa51596a664bcf1682eebe15ce8e68bdb8aa13c5db12cbdb98dbce6809b71c9017ff70b120872ad84d44dc8d4d3954845870e6b40c6767cb7f5e8c71fd2312bab8eee6684e3de7e6d0b6c300a6d93c01394d7f78812b3b9452a3d655c3d01929c10894e39e745696c316779c4ad18f64532cde25b1a1cd3b66cb073456d51fd7bf77b6c099752e2ec536f3500a170a6dba06d3526267fb00cf888678e67135dd69a551a723650cecb7718cabaeff7183681107af0443e5715f9b200bc24c8f4ab44de020f68511a5dd53615fbedbed923229082a24bee46c127331b8cb341ff7a8bf895b77f42812c4c5fe4eb1f3d64ecbc7b6857aae51786bfeee2d361e0b7f88d39cbb47f9f8d66fdd0685245c4d0b2fbef8fce4500bbe1b9079a4970b03b904d9cbe65b89c909f6b08c5259a9a49f4969c0685f66cb4865f6d4a8fd3770e8b3de4126adbbdd93dd62163cf4881e7ebe04f9577ebe9f470abd19403be94beb522f66876030f4852169237e7efcf97e98bedf1b703a337d9090941d8fdd46a76cbf0846a3356b103c6ec4a921340ea69aa59b1c2d3b5908d159f152c75caa8a2cf5b3c84f14743c7cb8fd279241804976875de59845e9b63f2e308d9fe91b3b032dffa0f68c7bf7ac91f2f635b5949223a4b3083c97e86f512bec7242c1b44d5310b82c85531ab7bc1628689ec828bf3ae42593526287080ffcb94f3a884783d4c370c0df2e6629dcda7cc7e82723eec4f76799d0ef013ad66a68323b7d8ee28d81cbac792ad68d8ed06c1533daa50e56377c52dca0d05266172ed988533843bc144c7977c1175376d4d6548ac32bdd084f93ccb69174fa42cd070d833f5356c4403d215c6dcd618c9d29c85e300a6deab3c2dfeca0557eb5c28c4b83637872e8c16ea2be47c17c7193602e2e5bae1bb3297d75183c97b344a1de5fa56aa2a75e087bc6fd77da868d9606ffe462ee29a18ab8f842bbdd2c9ca14c924e50eaacc908b958c72858906c371c8d18d9915adfa759a6d4e3dc04c9bcf6057c9e5cb4ab721eefe488404d69167151bdb0488d8d41ebf11cd916e1edb745376e1437baaf8eec23065540fc5dc1d48fac46a7e9713880a0afe5f8a8ff365c35cb6796d12a4c79fef5c6f0c52f038c5b5753a1d678c07a06937fcda40f48bb10fb0bc9e3412e8e90abfeb969406f16c640a09b46b56fe18ed3f9419ba05a9cc7fbc7a5d6d4d6dbec62555ffd1ed2463748c663de51ed0af22b7e45d31519de6c389764338c14445fe952197c813fcf19f337efa26b83f7adc0c48f48925533e3b302f605ab5c0e02c97f06bda62407a066b2f95f71d2591e295a7dd3eaa1fff7debb0ea2acdb5d3654a6f1c5daa50b66d3f281fb46b0548426a70d245e7000eadb0c4e36b2c68820728f360ed225b7d011349f2d1190c5e46484fd6a3a1f7bd56599a6e8a97b973cca0ceb995b41611102ea8eda75d3dd1611c7ede5e7220ee523ed81292671a0e73d69b7f8dbe003e7929c18c3d51000cef36d1f203831aa74806144096ccc89d7de20fd951f07b86b246684bd1dbb43bf95f49d778e3d3aac23f7811d988843590806e67993eb372b7927f4dc1722e4bb33bbf4ba8cce89f9df6c42a2b57a548e185e1b925b60ce803a9585464bbefa142be855aac011ced8c14ff3cd6f97fe156060cfe5e41d81087764d7dc6ce5858137ae20ddbf0f9a551229757f34fede7795aaa8bd09c263840a5e5a92e28b7121d8e9ffade5eafa02493f59daedb431760f285c9d6d003b25f6fb235a5f65e5a9a8d6888680ac0c9286dd49927ae32ae90dd05ab18c9b8256bbefc705e2dcc04a0cf6ed218405609c5127fcfc5a021d147e30aa8464d6449b99d07d6b40ac8f890dcaa4e5e665cba5f7fd022e895e5be1a8dcca3f6890240b13d5e10a10d7e18b26edeedda3b0ccdc3133b3050aaeffee4825ce89caa0b07cf09a7b4bcc94aca216d75bc629059667533c4035ad627bf0d1107029da4a52a951e77d5b3393d4233eb75aa0c3b7201b856bf752753f0550d5925396b62228fbca5f00c4da96c66f179c00529fc41ab9c99e8473dca4e4e1fe8c7021206acf5ddf586fe2b9745ad3a84cd0ef25da7846d0804abcb22ea21f12aec51e203e7b0ce68e15baa50466a532cd08a7cfcdf7dcdf2dcf6b1a9bbb07f175dbd0b630dfcdc9022ad1fb2c94960624764df87502b91ed9445e6ccdef332a6ca1cf8a791902ea05f72fe9fc66173a9b6e4130cb60210f464d6943face7ee082d59de7717de05da3055f67056d39eb502472df4891346bc58692b536d14d75a837fe2335f9ecc65ffda4003b82e6554247dec9bf8e71a94d1db1e526d28715e680a5766341b95bd2b2a998b4d32e14c887c010819fabd428096d833154032b440e77d1ee6ec39698cb1462fbca20f43cb87a2aae139381da29f609e24ac3f2c7be36e2d1d38be61a6dcb20d6add36f246a1c15a2d379646439535a6445e9d871115826deb704aa1e7400de5b245be82ab80fc35d5c4c1ff61019ddd959193790ccfc4ab17e106244aaa3f75587e11c654bd13d8897778fb68b785ac1f1baa4b29c91b51ae0504273cb0f1a0caf58b6fff763641d68b6b7bbafb9fba9d12ace06f611529e7c3bc39ee33680e77884042e43c81fbdf15e43282b9a45f13413f81651522cbf193246a2ea03f1b272001b2886c9514c54f48b868adba21172eb4bcb516d176f313f3b129a89c8d5b7f6d86694d63379ff3603ea517145ac0fc6dfbbb6008d528dbfd8a571ad7e07f8c1b89b25cee3aa5295fe95caac01d5fbfa6abe6cc9e7fdb67dea8d42893e3171e368f3e5e80d21d7b855c767e316a591e18ddb764e7a46232a903e216f1fff7a9ee03588dc93e37a792f67d933b9229970951670306512cacc5b1ef24131c5288e9499f2bd8e900484113ff3e9046da819757824eb65064d08c87ac5b8b637534db5e4e79405e6fc9650a3cad6bef60abb2f37e5aab9c56cc99e518bd49ef1ae8218190864c1eaa29a33675706c4a3a32cde59d5379097d2494c2c417edc168864b26bdb065349c2bdfac837a60806ccc46d8fbfa8ba258cca149ecde3c496b9c1963fe094b7046cce33b8a1c755cc97f0476c446372b2707e6429814b861b05e329accb9e61c322bccdfb3ea918e73c85189d053586e45ce49840999d039ebfdb1f1f578288d03d58cf12a533a428c8671375811d5c847fad85158278744b803e1e2212d40ffdee9855bdd938b1362b9418822a521aeac86398d0b33727b685ef6e230e76c755c81fee9c37998992de898358ab47f7b09034844da203124a3f862ea4bd4c96a6334f52cb6d2202359c68746df968a7c80543cc23b5d0c6806827380ba2997d724ba6e020feed56bced02f2172e9260607056020df1450a8dcd2ec9abb8957046a9ef71a51057ae6c5e813b744f4fc058ea7daeedbf756a94c1e5c35014beb8e8cd2a37092d6c35d5cf3499121cabbcbac056fcbe3ef63bdedf5530d6c18175c0946abccbcaef7912b5cfc5deab5ef88f4577d5b234c1ab85e5e1d1f9490b21883c880ce430cc751413d38c39f4212278aca7b7fa54d0e8795c18aad573ed440efdcd24c22044722c93608580199405678d8ec8cd23cf2ff73d63f792321f7c4f98a5fb83c17122ec1596a99830cb143052f657cd5ae1e8ff400bf3eb4d1fd9c11853d3b75f82f0740980fa015cf7f41e03bcbdcd8cd22b0adb429ff5b8e38ecf5a0de909cf6696ba384eacff2858e6ad7864250a89726c4017ec534e7a6fa3be57270522c15e61eda7ac3c9e0ad4e57770ae0d292ec5af8388d84705c74bc7cabd97c36970017be01daacd72831528515ef30f0cd64fd77f57eddd6331fbee9d102c583c444d5fb42181e44666e8e1d50f02ad341f0cac1218227a71a0530012611c0cbbf420fd490033c899ca258cbfbab8fea5fb2accf9033bc1479cba93c8dcbaab89aaf4282ad57b8c984b720c24a7b9f3af637bc6a47d4a9a49713dea594e6babd7844197485b5351859f0eebd611a9f35b4dcdb0675a6e6edd765709e78f0b5a80fa7207279e96086174fba8dcfe72660eb404480c2562e8de7875f669e336ad6f83af0226520e0952ebf27ee8cfc4622812cb48752a5a85a4155d5a2dc91590c5d8608d40c1f69bd2ccb74d1eb84aeaeda7db74409224d61ebe926eb13ce006942dd2a6d62eba38e8d8cfbc4032167e3e2bc698ac49e1785444ee8cb2754e74ed2e204c6313cf71b36924a6851f48ac97fbd0771b91b49790846633dfbbf258da7876a0b2374fe0658acf878fa1c786448f7c687dd17602768c5318f0dcb5401cbf2dc18df23ee2c14eeb02b1f779f726464ec9174e59096dcc327e2ebf7f67c241a358483676da9842820b74326dccd555a008c19a0ba134cbe4217a4d1e585dc3e021a38b0a57a51704e1d223d289acd19e7b00987b0aacd731bb9d22a8f3590ff40665377ed47ce2499db248e1c42a9d35e2868284b31612ed8d3bf28192a35ea8cdcaed10e5b771da79facd922773a2a8e9f2b8e91b4ef08a7df48981c41dac8f98872581bd86d2240768329c33f97d37f4a4b53557b75cf00b6afb7a4881ef6d9cef1a834714be830e60385119361806f60fb79c186c1e7747d6c272fd5f467e098460b4b7b9e84f11accfd45a5175e71188b7987dfb37d99dcceb6f614e4e068e223b7c488fb53ea70d6382cab3ce9af327533ff68936938894df857ec4237f25a634bc119303985ba419c69424031ac9cdf57bd66ff2b09ec1d743438f7626ec6ca5f1c3117cbe3782ac41dd6d98ec9ac0b668ffac6881f1c881b9c3c9a844da5354434c66ae81c7d6ff3a214227ac7585d93131bcc23f645bb1eda4bfb29d052849e9e34868f70133b7ce3c6a88315b59e7efc361217861ca1e48b505add292802d9194022fe5434eafe4e29f77adcc5473b5446f49f0b37e7f20baa8fcb52e774d16efa508ce92ba5754776a3ba84635cc8a877cbf4970368e001a05495c8df16248ab5e08afb56044235e1ab03c45d447c4faa43dbab8096caf2a43486ce96c886513c186e71df0e32bd9daaa334ccf246f4575cdc9831da363a01d59daba64b600652e0e567a32a62996359b316c267a30b56b30817bf3545418c3d8505e4448dae071848563a03dbe56e1229c15cae2fed47e39e79b621c70f79c608bcce447a77da7be7f475e1865d6d795aef7501121219daa80021b9a5b13f3f988350bfc92aa21e23a2bdfc37959789a00f54fb7fb20211df7011298c687e665d43c1163978f436952423a8f41d5787c7037d8c0d3226a50a9072d377741188fff5da07bc84cd468abe47d5db558b66e060861211dd26f1baeb47548427d55a2f83c6cb8c6f4ae651525c699c1a9471c87dd4509ad25e7254db5062c86d37cc23034c44f88e88f1a9093c74566dcaa5db6d5e0d6b8b2de3c8b939271fc152d20e79615905121d980fce48b269e94bb6f62c25cfb46e58c7fe14576946cab2888f2079db7185150388a48f47bfb3f02e1618034a41323066426308d84008786279c58e7602aa47b3c8e696a495150b3ab6572ac7823a83a2cf901c1186086c9fa0ffbee0f9b2b2119a90f30d5a7e7878b002bc49fbd61af4407482fa756d0909a41aea5c642d5f52f7a0a23d967614c64db83195b710b87c110d750336ee104dba80eb28301d9b86d01ab2f27c5e1424e3a505ff47ed6ddb8980015957535f57c30ce192b61b468ae2de064c31f641d2982c5972254f2fc42b68cc83ab9b44a525c673c33603e4e77bc24d156c8d346bced7003784ed2dc44f4db43f6acee0763120aadc9a03abc9f84afc295a1ab7e940415ee3d26da585355fcdf0e03378f648a2fb3673a5f7a91cd17850941b32655ec64c314ffff8c2822e8b3ae1a1607cd2c1b9f87687875c1eede8116685a48147de137055637f86fdbbed8fcf1893226c0bfc1461bdaa39a206a0fac0c8de14b6c105d6b0eeb2ea4a40a4b9107eed73681d72fd60f6d0e45152394c7becbe965e1285c920b7a54cc1bb373c6c4d393d2585917560bc57a1a4f314e64374c553e5f5eea90f7f6a58b69c67c6b5b95929b6b82f6d0bd9db1136e1505d68134ff0266002db437868155b7e355af5ca2975dc6f4adc71981e2f4b966a5f0f13fa1ebc1c03192f9bd29f36b0ae2d714f90db2917fa00a945133669bd1c4ed46f24f3eaff9dadd7732eaf38e5277826899ee344e0af93d7bcaceea338aedee62eb6f1baa2ea8c46052a7110bca75e0f0c19ebeb5f16b709fdf5728f8c0b225468b7ad5d662d6f6bac8ceac8c3a2d3c47d3bbea0422ecaca746530f0e647504d620e56242b9aba26c0acfa498ddfcf8ab5374b37b1ac53b9fa09d906f83231d1128601123efe48f472328f82070bbfb37c588cad20e0c7609029e68e96b001ad526933a013a9550f9d3d94aece7d03f93c5a44a9cf69d657510975c4be0119e51dd6f76d2a59036431831b5f9ea79b39c71c0d58ca31f569d50a8e331b01b0f899c10f9b4ce8129490f6a74826e0fc209eb69d3e18fa4bc4d51c9771bdb5850376f3a35fad2e0de520f392c8a0cee69a1e35d4b20b24f875fec58d6cbd0bdd2c8658c7826b4c1dbf70197b2ed1eb6f409c080bf3b4ff19ff0075209a2add76883140b8ce67814dace02472c798fd60172faed12546eb730d0160b69f2e1247a308d21238526b6b5ba58e7ad4d938656d67ccaac5a6f4e453935ab921be9d74f29d47856fce04d8860c28f0e6894849f7ca83dc3c279e42b7aa854cb125f1d41aef3ae9f5e1da72f9e54e82fdaf5ac3ae931bb292443097abed4fe0b0f3bb02baa7bca99153c16037658a616641a1168a05bba2116b9d7dee683295d12bba5e5fdbb42caf0b43c0178cdf8cebcda0d0255649112ec2ddf5c741ac46389b9d7af9a51c223a6576ba2b912908a256ab9b813f8ba5c10cf764a542383136ecffeca4c769ac1553a7c17d1d17b05a5b06d1b48f54e44e432eceb4b145b7b1d8459c48ecdd5b46385ba8e079762ab9701c8bf3d840900ab582d2dc5ed0b156e2be4700ea61f4111bd06959db8ee410373d9d6fd045e8acaf07c6c79810a54b93c63d96b5ef854984bcf3786bfe1e878e310b48c5abc0d7f02b785236fb0824c9e46f645b00f199d8f7f63dba2e53012fb8269078b8fa1ead8eab3a201d614d6747b22cc078a63cd2d828c642560712d4e05660742beabd55ca40cce142dc291436e32a6260c4cfaf80ca5377195460ccb7e2ed764ea6c07b357a98d25805fd77909115cbdf32ebf6aa8ff84ea85dda876c10932ce20551f2ee873c9b6bb3372aff7d30bc0ecd94f9dec3ca719734fff4709bace8b78025aa2f5fa1f500f7e2d043941630305e4657fca6fcbdd83d580a21272b3cbc9e6fd5bcd440b93b571455f6bba0a9688b19a1f224476f730e000da0e59f9ea187ae8a15d5de17cba62ccb7580219730c19acae623463e6da0f2807e1e31aa13394ed63ff5065fe3aa0a240a9cbf9acae4bd84075aa1d49a3dc3c8cfc0c50ed575e25280f8ae0b397660f0dd7f58b3482d4dff82f249253eb283892b614ec0b84ac85a14a1f6a63b467908735eb868002e6f7b9669530bad0c6ea7f83967f19e847d1f1c8df817d940d5d0134be07769fef7d5d80f935d5cff1ef9affa61f135f0b6bca402f969a7626eb7e90e40296e36ff4087a8c13ace15008b40be46596425fa091c171eb6195c71065fc20ba0c076a27f5652f15331104358d4a0590b57fa367267a066f0846d3832868b14f4354de8f265dde5d5262c42be930d4a2d935beda0555c4d9b84cff79eaaf3fa97b0be44e332656f767c39e3939562f027ef914a8ced5aac4eb4423fa636841342ac410e37ed221e9b88d117ccb21a65097c68bd38bd23666e01d5b65d4da0d1d0b1af302b0997d7790f4479bf2ec7c2ffc69a7fecb3efe2e4ef6c57a6a50e9a2f5842188040a0042a63ef8abd7f70bd3f8e3a0d0adaef30f7733346c8d99f224576020b2912a8fe6e43e352d899c2fc1b3450f4abfae6fea1bf8ae7d8e1ea78cef244840e992d68232fdd7411c7dc5273fa0fc39011107a05f1638054788ed49e9d65533f29989ce54a4bbe8d89e73ce8a95d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2fa3d6cf351f97f403ee8128e55317e4ab17d88010ff3408bf10224deba6d7786acc84d1ad3e40648425cea6402468fb4ae5ede479b5314b2aacc6e164272dde80737b92f8825f5ed0740482819f3fba7826297908bbd44ff00b64ee95d262d60866319c7cf09c3d5b2926ea9d9f068801c8ee0724dac66604b03ac50b18295775fb8b0b215a51fc05bc152a12ab32d44cda758721c5df53f2aeab1b1e3490aa52901602e11113f4cbe12fa3a2a76011643036f3accbff3ceec27b4f0687f60def3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b1f63a9274a946b68069af217f81e270b89473c8c61280d4fd5dc663d46a00bc6e576cecc8f40d39334e3e1ed29274bf78ed761fc754708f78d82a7dad2e2814c8c89ca40639d0bb71502306afdbc8646f6ef362b79c54a8f9211aa290ad8b363575fc30ab04aa494f8ab239fba636663b950ccff763bd3b95a3c214ee2344ec895c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e0d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb2187083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de4cd39856438b0eae2c0155ad15e281513959f7ccf998784e83e803b9be5b1b4747e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008f85ba3a086cf955d3b46e51a00e19adfb56c1b984f7cbf05137c6eadfdae7dab54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d7256cbbcecfb9a97e5c4f2ffbd8a11f00d9fdef0aeff835e167c5092117f843447a6c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835faf21e4e3f5dd5c44358c0e41840e73c7e9617bd6c5ef05ee30a46b2b9c0662597047cfbd663b2cac546ff55428a3b09155b8450e415dc42ccd6b71a69b29caa0d55104d7739d9fdb738c8151837b9fb19cd85b03885bdd76ed0a07c03ba35c1bf808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4cfe678a4446900f4081ab8d74ef3d1f8b1002edbf8cae3db292fcca0637310ed108f280badfe5ec5168738c4f70a59bc6ea9d1e9243ff2b951386fb668e93502180fb63dc404b6f3d32584692fdd10755edc8f0a2b79e60ff73cf40e689b4c1fb5435afaa2ca700de26561f25bcc7ded0d900e5a3e9d8f2b13afb76ef00b7e8afe7ab903aa78f79b1550ef54f98308e7a9ea143f172387ed218a8b25103db29d7e2506bd8e7b0b00e582bb93154d137192c175525a4a5173f72cec8f92b598c5ff8706f3b4cad0dc04d3406c26a208ca3d35d37e39430d52124410672896028dc0f53256f6bff2a72651232c4337440dcbacf8138293fc8e4c07add4080126de1970c18b5fbf90a32e8a69c6a637648a3facb1284fe11aaa933af366204266f146f88bebe5b5ab5f451db105871eee1e0b87a27c2f20ed6507ab5dfe09b9e6098430571e0863bf230b6849c2f28bb800d57b35a94f3fd5af96efd4aea77cf29dd9e8c3c9b8714f94550d4e4cea98be942c462c61ae24e1929580f25e22745b08f90d1057ec2a64df3259d105ac9e03ee25f760ca270f4e6d88aff520f13d81e599f2afeb763aa4eaacbb0d278e976b6941c275867f8398ebdc4e5820fee2c374d4c27ce20673265c33c834abe0b6a1fbae7379faf8bcfedb685d07e37fad831c91ecc430d0378cee32fe478907e25488953106a2d45104073dcce9ebd3647ffd5e950a0790f7066f77c805037c1de0e8c7a00536c0c1758e77d27b6918a74843fc751077c5df5d6d41af10916929bc00980334a8bd4c01c957ed01b810b5ab0df6b025e52753ecdcbc1ff4d7a7d9a72beb5aadd1564d548f83192394573f50b8530ca2fc57c3e508e3aa59a074776e5bc838e5abd7173b09ba9b8e8491897490701abe9ecefc3d198ce3a16b3bb4f5d4fe54bf24ef234e6e511fd527dcd61296a3bf65b037fe28e0f2aedc2d8313ef6ddd06045cc40dd1be0792a27c67e23ffe1561f8a139d923b2078521f0d1f07b748912d8120e7a3206286ee2bfbc467cbb5abe7e51e65ae9065094dbdcac181589e806197fdd17701abd7057389a5ea22b76b567e61b3a98bd14980b4360c90c9fd0f572d8a67f1f89616ce10ba4604295dd9db13eea7fb3c84583d3ca26d0ab7b9e4f17a035bcb0ea1980dcab460042bc0752847b9780b4bd3ebc5bf589fa62a2f86811da60d90f5aba8fc30ebf8633eb7623b9222b8dc87ec311906be1e5e0376bf3966ae3d0c90a1cd863c439f7de338660d08fb27fa28cb9a8670fc17f3bc1ff4c1ee2f3898ea1342a5c8eb73edc7689d0e50e4574bc1bb4393b855666bf5ead5542633c68e0fff410b6859b195b82a25db79b0b3e7b5f643f593660532bae6c169180b72afba06223f59f18bab8b9cc5995df99cd0268deb0dc124bd6aea8b896a9ef68ab5dcb2f4cdebf0c5f6a617351666d44dcb5530e2639195d4c96e77869a12a0ed0a8e95a4446a29b2ec4aa1435821ca8c3cfeb1d72919e3120c21d5bad371e4db4d497921c4b518a1d9e207baea74c154cfccb911ae4ba06c3662c11d28157668b75e1aa6c20f839f29fb97ec447b32e00239925b82df03986fd0d064287f9a522f83350db41212a16a158a4fab776c1679f2c038ebdc9a7259a5d026d845d433c85e361f7a39d7baf2018289e61b47f060ecc6212258cd9301a3822dc9c558ffff2fe082b8e0d29e9630c246f79bcb7bc6f905b35c4b093eebb78992d07f9662963ea90513c943b99dfdbe94a05404ba9a0717425d09b3d266dfcb9ea382a810551b96a6af487c5f60a65bd91409e2b7e02803b95045aacbe4bc91eada4484e25b51ce7c42b3909dbb48e7af835c3d47308891b898f82cca512e889dddc5f89f6b706c81f2220aa7c1ce8e3094cb2f1ae9384111cf87dfd360140970e3f3edfbf5249823b9d9fa6f4fba787889e7a393960478252cdf50921620a91fa931060d43a311f70b571dc3ff3a8e142a4f6310c1ea76a1af7371d047bdc6d2174a322cce8bc206f2ee382faef63ebbe0232f180fdf45ed422dd97eb6a7163f6f3ae3df68cbcaf4b94bfc6da4944bc6c828d08b01ed71ed63ae07ea034d78c28cbe4e22aceed4504ee5ad8451a24485b7871fd348e60d9dc0ffc0b9550ae149f08e436863aed3b7af724236e33aa3a6f845ef738b010775b28c9ba6d4628e3b35c055564cbe4b208a5463a37d32b08bc584f88cfb855274350f5c9f9631bbab623077ef08f31f67ddfb10ded69e863b00d9843bedb5f2e6a264795310e1eb3868ae356dee34b983ea1c6909d420c53721a5ca940fe058b2e0010a0e77ca99ba44f3dea680e8150d53ecdabc57f8182c2a5618034949bd59aeb0aea041d3581bb391cdff6c6f0495146c2bb922d52c3d94236ec79f1739e032d7520921ccb480240f10a1858bbae16b4b9887ea47d31e10f8c012ed931d41ddbfa2812541d87fdec3f7c4d58358ec7128549d215c2f2c789e4acc3092f485bc0358e631184d4699ac1a16ad3b75e67d8b12559a64924c930e32f521624998085dd2ea6b26ab01d10588d4db31a1a0a472f4fdc37f965929738b080484561fa57fa7181c33841add39bc6c2cc1342f3fa1239ef71b80bf7afcb11ce0b212775b5e0014342d7356d845187c66a07d7f04d427eadb9533711f494a6e3e1b8ce8ee12d29d19ebcb6480f0dbc18087337eff89c69b5a8b977b4d71130b0e72d10f5194356fbab2e0a126ea1d050f514580056f434dedb2c0ceb0d6e8cb6ef5f88283fce770421db9d0cbc649a0a992952a35ac484b2c621a4f8637f5653f3065803893613f511e035df76913bcced3bc3ec01ac4026a3372ce3cbc6fedc8c4510ef6f858af74d6e16f5c25db7ada85041af48ec90b85290b07a677c253fecad6adcfd71f8615cdeff48a8c6fe64f62e3d827ae0bb97c436792d9104e1bfe289127170ac868f6c59b8cc13a0a557c3fa51b510d444f3efe5ff3ff4e02cd5833a25b96bbd5504f0aaab025bef74d786c8f98ec5fe70f89d38361a61eca60d0045eb43e63d8af79bd17f68cee39a019d34162630577963331f07cda3621cb1c6dd04e7f1634af6650dced12ea8d6fcb1665a5bda96a6eebfb0aee71162c515dafaea01c2ed0eb2f4c07f506516fdba55e13ddc84ae974abe38d3962cd51b86008f21d48f9a93638a8f64e40ce1d75aeb09c8c04dc4d7c6a22738bf35960c22e3247af527189483d34a287451cef902089e40694413f247cbe31c3edba7ae6e4a134b87bf2aab0f5763b9f1bc84a635926f06e00b148546c4db2326e1ab6da3e0caea93712eccb49e7d6ce0e963dd3bd1f2edc9ddfb33659bf44fb696a1a38621c0da96e4973ce47bd09b6421df9ace026edc431a910c8f649864518f7228762e70b033e4536fa0e7da4fcfd58150c2536ae7b7f2670ee1e991899de2d9c310672d37774b4d26b15000b10b74f1cfedbb173a2e35e247f699f02ba2834d7059ebd048471d03d26abc2d36c64c2e34e440890f6934b1dee9db82f21356c4f239c7f0b6f957c15073662b4cfb71f18b93fdd0b636d4480646babfe3b321a512eeca5afdb7c3ea632f63036b0a611033eca95ac25b6354d476a1c22e55b757f8163560f406ac88a9f16c9d5f2559295ef5e4a968ce50c0c49f7d5f34bbbb38a6fc03d5afb44c68fce2e8ece2adc21df1c1d92a8d81845cd36fcd3cd5de10eaf2651e5253ce557c4d2d70d45c8908d024ee4fa219defadf1f54590146397a05d448976cae1887964122fd48e1b3f677455e02c8ecd5c2baa3ca7c746b2936b047d04e369f3e5c9a8441cf9ec42fb5f07d0b052973dd871d2568aeb3659bac93715f21fc7a8046c0182ac99cef2fc87f94db3fa076ba66b9f3d21c619ea2a6f80dcfd3f17d4efcdd96c65c02b4d43ff68b3c26167fdcaab635f2536e65e9cff8021f791755fa1f9ba141717284e4e972f42de7186c76d7a5a52493c2c45ae744f9909da48a1eae294da3f65ce0ece28a0a70838a8bee5d011005fce4b645d4d47239c8dccd47f9cb1ac8a43328cb7484082f7ea3098a397be1037850da87620d79da19a9f1c8acc8e0e55c307e7aad009fac8026e31d1b8d7f95106f9ddb735155ff843523f9667fe0fb8746111178a245fbca8caa9ecb880f747866571b998cb1e83f3b47bc0dfd93b0bb69138844b6ad2d16731192595db45e60a13c5a0a3f22e811cc99fb50b6ce77d713d9aee49818e2fc8aae95e2ed56db3e9c1593d1cb6dc3ef7b67ca38d280255562f2b061efa95b69df067fd16ea9541977ff2509505c2c3cd7de1cfca2aabaac3496773dc945d6f3c1d58568b27ba7dc0709334c34095d68f747c745e1ef392eb68975003514dc4bf4cd258c73fa9c387d4b78cc29041508d4a41adbc52ebe7f87a3f15ae9b04206a679119a060fb583274fa16ebf6bb1c27c1c213a4fc21ed39c25c4180eb2926687fa1f0693375e0da6af7080011dd52a4564aee8b4d9c3fc5715d7dc23bb8a810e8ac9b8615fed3c07fcc71358cc82c2d5ec0732ef6cabe442185622f88774cbb9ea26d515be215615523f2a1178fb729810bbcb46a0d41c840b4f3c8186c6ebe774fb6321585bc063c107f9bd965e7acb6b5154d26698e062923234ee76a62fe354305ab203e6e0ff9cc7125cbab8c1425d5ad026abad3f2f2271bc0fb876d7c1a588a1f03fafe407ea83ffc813bd1cda517bd0e8cfa9b0ead42da7972b27b2c2cb3794a78ac5c9f4d5adc93e15781478945c4bd985f4cfa1d7f3f151f67ccc3860f88aa69a2f41eb6cdd34b5beacf65cf4f916389512c23073ea94db0e24e097cc6841efa999b4973e4ab2075184f3490d7f91a67f05cb612f54584f23f514f3e06b6d03197f91265a4662f50f3c64339b5320323283ad7270f309e2f84d2b7e33eeb1b89f89668e7bcb9beff4aceda7a2d3556c78fb073d79bbec87169548b8e5395f89b53ffbf449fe76d90e053403b97a8be1515e97d71e415581f19208d669c3faefd6ca87c8343f473b231222600c0d7aa389655cccfecdcc7ebe810e179e80345a3537d811c2ffb356a028117645898272a7584e8d3260c37fc75cf2a8cda1350c13ff088a21693a541ae26c274833d16af05a1f2ea42186dac59a9f963c388682fd4d11d55b0fb6550aaa449f0082c9ea77463a36d5cea56fbc86a6751b076c0593e615a875382c9d9da19d3d06d6285cdf53170523c31348d98563c8a480d84f0b7ba97c53e77b4094373af3b8487bc8f71a5a26f6751dc64d3a635cbb1618ae228e535ee3194ebd22b9d14ee490d4e3384a5e890f969e7665943012b6bbd5e578a37f0c0c7eb445908b5e74f32e3813c12223c6befe9519fa1450fc01c0f9f6a7118293b3d7abf8d231adb8e35bc6b28f64fca960eead1039d2bf0e99b776fd13d6d5222238c30c960411f3ee57e86dd2b798fc0ed2301a371b871443c0704d03d3877dd76127ed7a60023c3b57fb82fe42383208d8b351c57faefac9bd7e36faf5964df36e9adcacf8c625cc51d01d16bb8c8ad6d6bfe8e75b69c60ebd2c12c6fbb3e4a34b39d85288e1ceb0e65a7b20fc6d0cf000ea47e5db921c1a47e13289d95d6c8f53aa91efe38cdc9f86aa074e07b8adc23b7948edb9e81872ff4b2bfd72cc01539016cfcfbb8ca15541d1f423a0b56cf083fae7afc518407afcd87d52d4ea3b0b7ba8bf25ad7e1115e7e690dbd51966e0fe0f557b56d9a36332267136d69cfc111b1e41f2eeeffdb4a264dfc9eab28fc7d15811253713417e8f6f1e0f835c7aa9d9c9a49e30d8060171c5c50852b58497529556295d37102f2affdbf452c36514ccda144370f7caad89e4d22cdaae2951e2f3ad808b112d998932ef2dcd3186e7bc716458498d4648b68d1b9dd690a3f147160e065abb8a47687a521295f202ab755a90c64494712b826fa320248f25aba2fa2ad3ecf1cc4cd51da3912d74b56c508016cea2641dbe7c9c9684f732d4bdadeac393500807f96c0a00a49e4eee986e892c74868a29b5dfd9214e489b3362eb46724a16d9832948f51a6ced958955b72479111fd8bea6c6451e65ef451410ad82da1a64d19929abe3ec06cfb75007f4ea275e9ba73c80bbe0ab54e01778db94134a6403b1d3761205b751a714991a309d98e956bffbffd1164aa8811afa5f871325fc70e80541ef645030b3867109ed79f3cb77784443ff90993e42ad1bdf686ecec2cae34578c8d6e502c4d209c90bc9974f0b3902a893df33a983ceb3e78300ae89ee854c49e086ba66b09d43047e6e64780ce4f50bfd7917522ef605d95d3cf586718a66dec6e0f61093fc34af95f1b4ea0dcd37975d307c3f114a58cec030994167a7e2e4ff8da0ce3e918c3e07afca864f34f9906111fd5ee257b52fb9e78f12b23fb8949480239c0d946ecdfa0e5da1b232595e32223e062a27272290d644e8bc07d6fd342639df7b8f4b3ff3233adeffb07bc4ccda72d2a5593b56bfe6389ca42f17b54ac4307f1f0eb5761daf4d3a101893883daca71a362daa88f552a13982b79bca20c27006f548872d43d8a4580a76092516294f128c87bab1d0761535670245ed85a13d7c5688250d992a4a8e792059d08ad3d0859ff56aa6de69bb1f4d44951ac8a351bf33042acd6ee55bf8e1f169006a215713f86586c07802bf1a1a17a248e623559abffdeafa71e4c479d2beb26748e927bf550feb28f511f422b4d807bcbd281c9f493a18dd5ef1d756a40aabd3787e59e56b9e65d677a9b3a72ee8505a3712c2f6030765f60daa256e2fa11e0bd09416841e74fa664d08fa934b27e4f05b0424bce9c17bb28c17c443e177a93e9d8551fbf66d89278f6c28d311e90218c48591a26bc8866f81e0de41c8691f522f1c7caba022571903076285265e23e12c0da8d54f1e43a205813862cc8200195eab06b46987a0935e686e12db29b06c64567ef7a347789bc1d85392ccd772a0fdb9a588a2e35e75506dc239517a12693538add524f8512da458b87747c7c77d7b2776bb9fd40b282457f8cef8aeee66b525ba9bffe7a62403f79710cdfcadf9088f09f1347fdcb2a7d82eb077845ac098234883c8225530ae8cebf5108cedc47f4ce6c3972ea22bf8a4996d0bd910fafc113421db0031b7a095507a0ddd1b28691b5e50f81e8d230dcb2ccc86d7c52099ade75d350ff763f1719a59195097e956a472a72e149a08e2d445e57cc7405957b8d2ddcc7db8277705b6d359e20159c3c50101f5151a3366c150bd5370934427d60c2a3b7ad56418c1cf7e069ad8aa4f01e3c23ca11ecf8c15832941f44f832f0533863a0a2e1ca6a6c41f3d0b32b46004773954d019c17539100e53db91ccf7efa947f78c03a2d0e9bfd85a92ea2371291ad1a443b6dd23ca76f52e4bfa69d4c492d9bb57712144a7dfeedf3db6bc9363284c94cfcd1054388943fb11f7233be04e1a2695b435f11c4ee69c20eb6ac6f27ca7b5ea4486c1348882e70bcaddc8e2bcf34a946897bc4feadf33ef5aef0fb3a49de2494e4b4a20cb3b1e79e9b3ffce7ca39c9beebcfdf1310392b4ff0262cc17903965e7f96b5a4e691d494709e3921f7532d8e8a5126e44ef119959527b80124ac5c445f03d5b1b66c50e4dd964f5889c8a475499523210553ba30828cf33be97bd6ceb890ca8c0266d30812492058bdb1d2d84d1f269fe03706aec0510e04126647cf0b052d942b3a0c14a89729feccbb22d9aaee94d30fa92d8b28f70c20bc12afe88e503077cb7374e99e6fda0d26ac601002135d47340a8bd2a2c480b625e7181a078cfe55da7c6b3481d3777cf91cbffa1e70cedf505c931eab80eeba61a7819ac6968383dba35f5b2e9241ade0c2921a80201e38239e472706a1648e2598bbb6eb28cd984bea5e89a3d7cb81cdf509100161a7c5e967f8d270ed9bb02ef3997f7f77437c7379a181ba75eb31106de90866e78abdd9eec46eafedf7ac3bdfd2b97e67fcf3c2a42a96384f24c43b739fb1fdeb9dc743539eb04a5493701aba9eda463b43048cc434aeae8184edc520ed0e6c5b81387aaad475a99835aeb8b00bb27497564887e74d17e66f081a477e888806b32bafff69b9efcfd299ef1781b47ec8eb677b9fd06362f7d577c40256cc9cb5d6b5f5f8a39c869ee9d4666021fc69e205333f85533c82228fa4ba100aa75690f245eb712fbbec62f0acddcace33c7b938618645419398f85b8f4dcad491417ab8aa6f07f54de07f210c8bf4f015923c09d9da6ea016d1ac818e63f90353d084088538a190ee36b73dcd0ed2c0e515911decc015c2c4070c4f1a171f6dcf1cdd06a2ece986dbee0eea3456473972d15705867c666cfe8cb0ac6498b82bf59fce5ce50199c2565ee8b4be1ccb7e39c50b77ea43c9477da66ed0740a6fd76e71f491439691ba6004e17987b64c1048b006e7d44d91b33c67706443e0f934d0755e9b9a6b95ec79a85156be4faad27b5dfd388ec7267f6930bcdded12f2389446da0c4754cc930f800249cb34e17fa8a8c9d5d1009188e78681434189236573667723f3c68ed08aa720bf11e6603b3b7744f6cc6cd3dc318ebb9757fba2f20508fb36046657848147082543cbc14aad31c9aa6b9e6c8404aaaf31202876500b2908952b6a1160cb23ff4d5d3984766d2f4569c8c8c0cf8338e39219c04cce23a98e912cb0e8d8ec83e2c8fb0e3aefb030f6144b76d8c6189fb402d50ad43d827e7f4d96cd024e6f3f20816ff4de58cdd364be64ded7eaeb249a4c2536b9b970f89363e4d22fc9714a6b784dd4e25d8d3d513385502cbff90b1016d49dca89422fe5e245f7b72ad7a2c8776d48883b0e37cebdce1891cb8cac11f83ade2a12c526a7a04489c60bef0ecf47fdd48f45b4dda1c9126eebab52df8824cfb1f12a36b433a2f1940acb767c76b1ff5b1af70e6b02d9617b6dcceb5ff5f64e6fa600749ab68d8068d5abbef043d72597c7f096ea06740eaae8a39a82b38b03a7dd29705882ce8f5bb9d60244cf45e763a987754c582b75b4de678c4b41956757eab6d5f44024f04ec2a4e0a03a5fcaeb4ad578f4f75c3f8f36057ccc46d847937d2bdfe34515fbdfa04cc26d731b6dae64fc9f1a2ee0269a0437f48dd25bfeafc9ff640faa08352e474cff9bdc77a413128060f3e8042fbcffcf8381ddad59f64fbffa621de1d37ff80c8d42e333b1c358e52c5a1814f849ed28b9c2f45b43071f8452206009f06da95aee7539b21131991990228734769fef4e0a3540f97be47ac29082eb2352966d27278a7778906998bb0de8a70d0abaff6c56a4b8f32c0e20f1fda6a0230a257df1740fa7778d4ab023a62741b9a766e9fd2db597ecc3bb994c95dda721b2114263391299cdc663fe90b3e64ce91dce7b73eaf05c05e4d628677592502397f923471f6740a85cae0f91812a606bef89019964edee43deaeebe70eae263cf3b3555b7fa834ee02326e01bc5370e88040fd0515aebe1b819e6b84bce38b92b6f9bd665748de3b6b0a6810c15257c20817b4cd58d7fc86df22791a2f3ba88caf57a0c417af993f062fb8d533a9fe0792327a4ca17d211803089da7527f6e8c81cb620202e07aea489c74ac4e4970197092284af4ace604519c1d2ec3a1e73985c26bbb06926a34d4a8393ae1aef5420665e0d9972e00eb31f9ec8a9c964ec9f122215be9d4973a297721368b2553703c1879438482b6f28152c373a12d37548027ceb4a17569be5b18e4f2284cc49737a674942de2401dc4fc43a78e91bdb164ece70e91a89c49a935d93e6c6189372d4d6b893f06cf98eecb2f7154e3ac4c3f2626629909fa9fd58945f96898ef775b7e2cff2676aabeb30076bae1d2d4f64fe3aa552b7912cd13deae53235d1a6c0d2bfbfbdc34581a45853f737323893b2668d8e14c44534bd101e6b9d52f899c27fd36eb347a528ac024e3d7bb75c93b72ec8a1b33a4b4b69c9c431bb18cdbca17f4b72ce26f7db0e9d0c733cc668deb22149fc0a1e715b8df001920af03629c622b756423b840c07ab9fa63912f7092cdaca153b009fc2f17aec7788e62dc00f40e06ba8af2d525c175f8ea9314c6d6b349910647eeb828a359ac0324b7c13949b41353a321ed19580487ca65f6f718c7e670dfcdaeb727391012ce606558882163c59683e386a693bb84cef82c2ed496ef2d066bb2a76af7e0cf207c4556758759dbf6619aabd64d8fc4687eecc850ab2b038040f5241a5e9395c3648e9da9ea42d5bee2afca75c6389c3a781bc8fd8af67d1a92869813e772331552ee07aa204fd2e4c98a274070e62fc682f1a5427c1eb3ff0bfe09eb74d9334c67c651743f6a5152bc51428c2e2662a22da7c809ae892740f4a849d5dea176556eca82f6be9b9b2191757372866044e108e171935cf65370661a7ef344bc806e787177e3d63f7b0ac8971e38f626b9c453e22a406214946f75c80058a1e032f84eb77d59407d1252c8e87656ba4cadb24f5b1060ad3e7e3106e56ec881d0d6a829a306bbdc735c608b0ea106ec334179f75dd996b93b952109c257720ebae1532376cab6d3bd88a72bd467bca149bda5d26020f8add4ff283865c03941299a80d20bac1112795acac3bbf2098795399b1deeb77d87252967ba84067531bc33ae0806254772c9ea11465825e918905b14521f1ec00334fb4eb60dc7c6c28c2d61b6ca62a706d85f622042dc740f9812591550fb7598f9b0c799d1455b392bfa86e5a87cc5b1698b0f4ac8930226960ef1a3ad1e1829c8fbda171bff49e524072cb4c5a8cdc177ddd8f4fd8a7d8e39b14fa0ee749a8a3672d5784290c691331cc9e3351d9eba6ad0b1c6351333ed419d32874e76dd0f0fb013aad7eee0cb3f20ce316293da7b775e4566960a0f9ff3b6de052a6a3861f54be49cfeec81e33747466c05d817e00e081b9a35e08776e33b6f2881d0d036ec79ecd8cb461c8b453a22c8c281fa8f9adf4fc8d069875152bcab914e77a35c0a474984f28cf41bec0d050f1769f94160a721b5cf89c4b03d62ef209b967a0f96591da1f8ac4c15ee3a745b4fde460dbe3d06b01b5c341e8f4c8606af5b5907f10eca3a63983ed7203fde4e965ae6b9561fe8bb470304976bba5c4cba4b1367e9a7055ea2a31ed555c3eb610a456d1a726de6103d4b2a4b6383b673580a4bfc036ee2c56915ac2b0249c7c3371ab41a4e0aba0ab97256d27a062173a9dc358c7b575103f748c113cd99951fa83a43449ed6abb0a3550de79188109599af25df403a8829c90ebc7b017722c5dc51db99f4cfb31e7eeaa0484ad820e3b493b153965009d817166d9628eda7ad0352c5ba21e8076afd00131ee8475be2af7fe11b1320ae6d592f072759bc512582affe4c6184a59207ff0506f265e819f23345ced049e05c8b46f923a10fdeaa36e3b69532a7463d4493a1c6307ec0048dc33e558938fd820abbac4cf89f80bb94c1639f74a842c8b1abd410fff1238cbfbc5e28f08554d88021d7eb74afde9e38af912bdf6c915801f2a53e1635daff8e9320a9f9e7b8ac6054f45fe9ba6ec3a1c449707c743db6b5b70a409e161fda9fc724f22ab907dc1e2d513d94e37eaaec51606178c6c7747cfdac81b230c820576ca6b396283415edd634d17511c8e050df479bc5661f17969d4546d9b2467da95ba8ee85b7a3fe32ead9df926c2879412b7c9a878f38ca80f3218b87be7e6d0696a8493516120cf251737822de5fdde06926528164ecdb39d9a13e217aa55bb9e3d325b4af8d13780c04c7bb1a2fb3effb6adcb5983e9924c62aae9327d7b0c4035b77c7f4cb7ff24e0dfbb8cdb92f3aba4f1b5d4eef77ff89ab3b0fcbb23a6d7b673cf08157f71ae4921677c2a9db571f5691fd9b2a8416f39a084334d13c20367bbefb308f926d24bd3363860886a99c1c79cd2ee503e5e90cd62ac106558bd191be1e9104ae41d2f97742a3cfaf5af64237083bb48cdf839ca85c4928658ef15d5ff190a71a80d46caf017b2625798968dbc5261d4e5dca19a9d2a456598c66f23be1ea3547892a939916e102a736e7bdb285d4e503e669bf0dd0ab269a93592478f54d43220887de660171dccc9c1d72859dea3728f5cee663693a02cdc565a3ff63f7a8ff455556dde5af866312cdcf7a97fdd7e56d7173a353debcf2290a1c739826cf45f878945f1362a87b9d86553e28237d99b27b8f7a638b1acdd428fc43ec7e851116f84d0ceb79e7e7a3ba372dc7c13781935ab453818b065ba251a5e7e089bfb8c5df03aa3bc64ddabc0c140b344a00168a006a586aa4e589556ea46edcf343f4d7b6164b1d833858283344b8e38440d55c4860c3f8eaabd168f1b85d6e5b598d98ce4f2505b3260d10561a00e0fe1e35f02186689f9f48535dc503c7f6375963d39705a5912e8780d8898bed083429776e56cfa99b84031147c06276eeaafff4a4fe8587ed351cf599e1ebd51733a4419e7886c2e9c81ad64add258f82722cae0d407fccc710999f942c449b205438e17547df1b4f323a25b224c6129befc6a96cd2a203cc71d5ecca37ff58b9de018d6ee82f39c79105c0dae1f700f5e86a5d26276b3b70a5ba511646bb8728d680e2153d142ee0699fd0504b27443d2d6b1207869892abcbf2849041d2ab3adbb67c2ccb99347a5f97819a356d99003e9e3be7a056774e8ddbc225444b7d25c38b0eb229db58bc9b9f1c33d4317ab9873630b072670d76a9da6738ff1d799da07e3e8a1239db75bbce274aaf4b6991661d430fdd8c2f1fb0cdb1c1fd18078e3300bfee4eb496dae99e68e2d2834af4399a862c16266ee945034f631ba7451bf0c0d50edc7d4e01afa0c3053905998316e4bbe39d8ad07c9ee549eb0301480062912b66242f2bc2db0ba2db27dc3eafd1fcd0268f87c02474a9ad5203b9237bed7ac317eab0d7be8a55a9e67dc9d10966b33fefb35fb9ba6aaf97d2c8f794f7d76cc290fa462a7d2f8d73a908f0c3a0a2def27ae3283dac2953ef067bb6d0aaabd6ce865df7aaa3bf522465aedff12ed5b6d8d9b3ef0304cb8d40858ee884a0635c108489e21f61cb115712c8e273f00424b1a8bf43bb7de16ff530fdab279c137a7e69348181480f31382cf10c143899c94631b6459521f4c7e5d4a963ac39d5af8db8e76de05180c77cf85021669791f10335e918d82c826702d026afbf6a38714ce13db2ff2ccd1048be54d797063ff0a83bc7d77be622b74a18529edc6a8136d9d0fdc95c45e562b772df1d52840ac0e4748d33ac785a3e1defec160eae7f9a27041de05965081e2821a560f325a65a8bef5be46070d71a692b7587a4318fc60617b5cbc722be190489187618e95be26f323de4d7bef2c40d1d9846c1a44846ea7e3d9e77fcc043463836deaad19d8b7c610a6160b76fb410243b971e8e7b2574f203d87260f38bc38d29f80ea344f1debc0907d4548a074c3fd3623dde0e19a88b815003478ee64750d96ee2543d5817824d28efbecb6a8e5163e7b9c247d9d28c02413f4d4c500eb4054c540792cae91aee0b4fa82fb76194d493294c15f43f9f97a627a0654eff29a1749aef499da253053241149965118a572a7fb146b13bb9c302c868895a64c391d669677a2b2b41c2bb69e903a3972cd53953409b90d408c0a09d5819967453b7af2a8842254f2516950efbb4838c27f7202886b999e02af7698e75d29a252a286614ac39fa8ca94d5b2a0a91b72f4a996d0b6804991ec7208d166cc9539b4a4b2604f1f0f8791d2f2c5bb8f2cf6b25d9d7a69926330a1f440831c8c13d624e3a6baa43f2fcb55bf3d0fb29785af26f76e0c3e4ebd0246603c15aa7c3f3ac09f6b2a3c3be870bd4d66fe7e7f7e9a027bcfba93507cb618287e0b00647c0e757d54d99493df0c165f77c7b33ba8a0ffa0d77c5b2c793fad47eb44a71778aa798b448c400e63daa6be2112a46131a82692bd4585b4d912a6f001514a7ea5669963e841481db5ad68980cebfd3146f6d6c7dc66ec014128b984ec2c2510304288ac390be58a67264e02653f1c7729e74151f2a6472165a7fd9bd977feb2a036e24ad0400ec1df1069bc374f995c9de14d224fd55e77890e920c6cb4abf1f30b19fd8d2725944e8ad7a5424ca3b41dafe33dad5881088c2af9aeb010c0283e7ce342c60b593bd43a254c515b7776eab53d8c509732991ea3ffb89f3baa00350b1fa5042d4b95d8b6f4a307c183a9cf92dc87fdca618aff47f722617d230eb3c538e48a8a0e16bccf13353973215006aa879bf237b005c0aff2432cbbbd6bbe23d5bffb150909af12c0b05864f187abdf5ac8fb2de02314c2d792279a3d2888643f086e7c729e4abd64585cfad52194af44b6d4b211256a157ece71fa3a0b462423f5b5a670e937158a04d47893481170a40bfd09919629c60d7f86e1e6c19a9c7056654e78e0d6626c1ad5406b1482e4de50d4ad577a68bf7b62ee2cf698129cc0e96ced74d6ea0344c813bd0b22021b084aa3f7dbd82869c0ccec67741e93d672f4eb8d1831101d0b22d66ce13427e9a1cd2b2027298c50adc5663ee845d980d2f9cbe2684103e3b5a056bb394f39bbdf4087c09162a4ef30e8b5dab62a96cf4aa2dcd0e7300fa07f1a0931213cb6b746fec5b1fbc7358d94af97e0c3b8321005e6a4a25e94265cd9e80eeef65aa65a2be9ab24939d41788ab02b2710d09482efaf235acdfc3b4973e7056b32f2d3edb1a4dfd4b94a938b1b688222bc02e41d7850c425bbdf5148312ede2705a85184e382b53e8e3ce2489a646088fc1f21dea68afe291c12b0eb1b028ee8cbe919db597bd8b41b5d6fcc55d6f33fd3d77108eb6d7ebdcedcf692cf4389577f34791aba150fc805f59c50b4978ce3effb5367da588b77073b9b9ed797031bc3f42f6f89d53a26d65e6560284db74d973371ea83c79c6723302e8c362ff4f7c9098d9e18a8fa59abfeab0fa8792f066af15a805e469811eb3d6a00eed72661e27567c9f02b5be615733978f90b8428ff763872df8f916caf6de7ba816f58cbcfa44d2d23c6fb3e3067269ff82c7abd124ea82f5ff3a7ba4208a650c68b50272523bcfa1b5ac5c78896cdc1dcbc7a7dbb72899fc9fd9ee1bc078baa241c196ecf97a53b0c7317caf47b7eb0a4e6cafa4452bf38f84b0acf69e2b9851915e897fcfe61357a68654dc98f6be2f3b52787f4d794d6c1be16c899f866266935970e482c202dd8ec765624ffb1e2308269eeca23e753ef55e6dbe384f223c958b8268054fabbf1e7e1c30aa8ae5f9403d4f433d5224048d7c3a25c1e199f45eff0fcc53321dc7c71ae782f2593cd7283a0c81f8005b673764b9a705fc5e029f4445373fbcc3b9d3787a82c64a2cc3e23bf1d0b38c997edb0c299f46bf5e0e64a339c4a7ef3a0afed9e8c925ab9a28f5ed0a998fe581e8fd3f7639bf2652f83e0f37cc0a30137db08762b63aeeea962fc789f443c2c19ba5a16c033566b40d8045925d470c88614f73612e19083f7ceb6afb0825faa914029bde1a92a172ef6c946af039f7d0c088ebd656f6ce09733e2d8ba83be0aa6d39d457d955db8b190c37e0cc5240d689a804520f4ff277f271df4adf2efcf82dd6386be65ec3cec86c92af1eeaa4008ca6e3769b378fc46a0f3aeaca7f142c33b8708888e04918de1ef2d06ac193ed33e23ae8e165bda2ada157e64dd6672c5b7c51d33a27a24b7d21484bbaceb69fa5736937f9443e31fc7cd28a01ca6325af36fb47b46e7a657a6bb2f488932f269e58f6671981c2af6a9bfeee3537390cf814db85b56de90d7eedfd334dadc3ea40ac960b82c52ea3958892d8d9c68aee7060cc2d24a95e0f12d77962eabaf5fe42764c7ef1ae354c8db49fcac0ddde59e749ffffbe92385786c84c7a1b26055276006806cdf434e16584d2dc74693bdf48edbd93acac285d3459bad327a2695ba6ee7af08efae082dfdf4665d9aeab7f8e651f62ce5e1b01a26648ed4bbb5e505bbabfb124f511d364f5612a896e2accf622295f2464ad7a88d616c6fe767d17a32346a2d79cfb5b035c769cccba7dc793c3eaadba6c61b024e349373305c3460a41a1267192bc52ca1ee3e242de5b5dd6b126257f45ede90e5705adb67a6f6965efb48cc6bb79b2fbaa13f82ca9f44f1e11a02257314bfe69b05c853586aca1509f58e7239457a0194d970f13310adf1a048fd48d9196d0f707889bbc25cdbd0c8ce05261173eacbdc5c731b36292f92163b581c5543b824c23cadaa30380a6a6d11ae2d7af7a2f2b0205f9ba7cf9340d98937a16bb613cb8a3f7bab46deb442c18d71e625544871ad6330fcf36282ad3a9f4668228e6a27029773fbeb570c9a2e6f60806cd6eafd8e59c3297ee36c7ec31eff2f006fe4a8992943bfa4a891d5998084ddc348028f411dc46567fd15e1ce7e7b7bc12fbe7d50b15c807b94dd1399e2225cb6ae391666c990e6655b470b9eeb673f504401f264ae0982dac02d46e97bade74a6a6a6f05ceff104341af018bd73d21380151c68a9f337cd5d9112d42037e2145836c311e7cd5e464ca5c2428c42653bdcc9d3783cd1480a4817a5f03a4b26ec1e3c76eb2fb199b06745905055cdc3f28dc2d9a20a3f8ccbe1445f661fcb4e41033ed6ba128f3a54143a0fa6ae85ecaeae25dac1259b98a5c13826c189f2bb82bba4b44db5b0c26a57f0cb4597d73168b9f23eeed4a1d900de979dc9210cc357681441c2220d6a2fadbfe2f8d2940eba2dc4a795d12103b31cd62f04c568a451f461b3198c8a7d5d81e11a9df6ab2640094af65ec893753c6d5a69ffd81932bf4f16b92266d152f470a1837de7207f36e298ca27df9b7fdd7f4b059bc5a7f2842be2576eee0926bf0ee426a62beba099d28b673510a7e45d168093bcfbe7f75ed25a50cc1155688f62c2b30f9d12aedace723671c80dfeee26842cc40d9a99d386c9c56b652a3665608b7d1f5b8512bd109ba01e9d775d8e4524e8b12f13c053fa0c4b43fda60d795eae4f0f11e2020d53f48a8b55bc7f61b806433fb4cdb5c0f03c08f7d0e9cc3827bb4e6aea708d49f019f2e05856bc98c43fd788130693b0fbfa56f132e2cbe4c1fec9331626d475a42af01003c05ab76f19e7cc6c429dcad57193bce7ff6b7718dc6db8412456991288e6ef3a163b1679ada8306f151d9452c26fbb73271311e8a1a53cbd2eeef7b45bfb80e8078853d8482697822c15a3db9c9190eee94f21e1c50a0b48ec32461d75db2dcb7b2f81d1d0767b3320222e4f683f10248866b6db506b3f57ff6ef0c0831174445a641cff469fac4701ded361c6cf57e244f82f9a5a79142f037c20cf06c1b9a2cb5fe2f171b479e22933836ba0c9d0189c2636421fbdf1469c83c96428d045df1ef38917549fef78c009b69715b532aca7c9d880a1f50b96e70aa49c4e0a94162380c803b569a8f05de155c5d439a6425915c63a6c1d2f3acd4cb6787d6da46cd476f8a73c438bbf49f26003bea4542a20e551fcd5fc1ab528cf3798a574190ce886a93cd5d0c8d197ff0b45515b947890de71d4bb2e42901787bdc73509feb215b9acecb3cf2e0cba76959d0aade4c780e41de7a65e8dd60c0708c1dea8f0c2776ae96140825ae7edc38d2638592330133b65b713c7598c50963a61a09e86843c17a951c3595c35eb5888dc0354d506dfea1c1546d3e557a5945a9b8f0dcde6dc0b011a486b5c89ee330139bee52eaceef17dae82408f1b8aa805eafc7dc65e508bfc43f3b947a65ae1ba687a619f8f1b8dd939fc4656556bcc2599448d6ec6ceb3bfdff63e81a0defc5b37a741d5cddb2828c07c8bf10c93758d2b93814642bb5ed9cf6ef0f99f565dbcc08b2bc4204531f2c2a5527d9c67f539d5cd0c1e4d33b419f1f2b19f24094d2cc7414fc92997b4048f2e2dd97818ba7195a84963ef2ebcdc51a8244a6e08366a4b7cd240d112219f7283fa5ec490f7400c2450732ecf9e9c632e6e5f043d9094fea4e16a0bc180106c3f0ca9efc0a45756e44845955c0868a931bc211e636ab0a0e1955e7f9c3408200d95aed8cb0f082f208d48e9092ad59cd831831e66cea73db6d42ae3c6bc32f7fbbdfc7fa78d74facf934081fea79417f04168d7374406f06d84979a4948037e23b2d7e9fe9aaf43926da8acd2773422c8894b4421cbcd9f2738d1bb4cc1c60751c7c0072c93768f2cd71087101edd47f46f8bb91e5982469455a2728d04371acd3150d20f8dda04b63bed3c805713316621788301fdfd680aa5026555fb64b2cb82e4742b8cf56854ef4364b192fa5edbdae3c9f74e417a9b9de2ae0f654740537666fefeaae484718786cc3c2ece00fcf349ca07a08198402d1a1a00753d3ae3f6b69dac509e3d09ab69aab619989b23d5aaf96e9aedc9bc1b901643b24482f66e41a19adba012f9ef5f356b6109632657d2397f4ec90ee73fde847bd679a0d3b9d4e05a9e84e9e3a5594bc446113fe33ebcbf546c20551a1aeb408409c79eb5cd123e52bbfc0b30e2fa9f85a70d589275102e736501fdd4b3aa25f28ebf87c0a2df1d8f44371b786ef20fea0f2e38ed6d462428b128470bbf1ef44436a1cb254868995ae2ecd5d31a91578fb8bd23093fd2b27afaccdea6ea39994b90f9feb3a1c6c051a6370ca49bacad11df65c43e90cd5e91e2980e93fc095419157849632b5b2fda54f8b04b532c7c29e6428ad64be39ec9a260b39480190f026fa86f57cac4cf290d65d09f5a855bbca9d55966e2a6e0ece83abfce4651128456080cc374ef931f63af4970cf709959a5fc02d34401838f29c54891d7b127b9125377676a3d1ac3ee934dbcde78a2b416380715f46b78a29d923242e833265b5d227a4e662eeacf3b85c460fc672aaf88c53832474527f9d3d8f12afdfd996a30d5214ee14b8cf520a8949cb9580b555726c4dbf208cc09c04a634f2830ff6cb8fcd45a36234aa2e0ca519b157c6c1123f2ec2026ee9d29f30ad3d264dbab03f5998310e1abdf11cb8c6b739ce5387820ea2c1e13aff6f904611a06d18c7fb6dfe5bf19f2be6eddf2c06d2e779d1bdee752317caaca04b687614960347e4fb510b868f16364e3b5a8cbce6a9843697baef9ae16dca8b9879030651fce204ec3b0ded04c524d01fb655553688145acf2f6d237aa4044ea11e740cb6da23e8b504b07e848dfc42b5076d81f57d500b36168e4e1fed6c8c3e41e1d3a161748e84b2a2626c92d44e4acab55756735de2afe1db88776a8f94ba26af4f27ebcb452f68701ea86bd74b0f7e2373e3e6cc35d9cc59b73cdb12a6ab32732a505554f7373271e09804aebef508329ee8cfcde9395559ac8164cf4c3b80b128c461314a40392cb93c8c286306690e4c593fe82e25f5486b65389aa231eab58aef7193a54ff3c43b0d68204185cad81cd75b7dc78bd1ec960e4218ee9b86c33e6085a38140c51a7a1fc0bc19f64967e85a737d4ba479c6a5a02fc2cedd21070808bbb342b3ff043117f751649f56a2f860f89c946c9485a48dcafab40cf62828f2eb0a70beb272a1266e7bcd47f88de0769deff81479d7dd63ad6e4f00d89047ae9493004a8ad6dde27c4fbc2d6fe345c7a08613716e23bb1043111e67312ae677970e51b0f96b955fb88f5caa95e34b6fd60af6ec7247444a86f6c96a93ab77681ba1b5114c52b76b3afa03bf5c35d0d02f81d532944e2435da378ebccb56e439b410c0dd54b7db735f4c8214b3383967f49879400563a0fb591dc5414d6984143bda1f63ec7c9280850239f6e1ef7046c015f89446cdf2f6b5fceab9e5eca3739b70d301129619557d9435151b409f267a5d4ea7aff4424804525cff9e7a5f9d09b3f42310cf6c6ea582fe17b2c8b7ffcafd33861f38906e8835093dee406c1ba47bc0c6240ab09db764fbca61eb2b184ca5d739bf35d430650f3033642273dfa86b2cdd0ef3c9518fe8788bf0780ccc1b220e222380e09e775cbff1c46ab753336d3936b32a4f701904dd18b8019c05c751464fe6af83a8059028efc7e35a693b93ed05ffe2c22ee6324075af95e2dc83d388e424de597ae78539d2a6b41b374f70e286f6f6142aa6b459875f7edad6efd6bd083f0d522d8b1c523af232409c74932197f412ffc307e06df492e2a43372f5ceb1fad01827571b7d0e7e68963d9ab3ab79f060c94971b39e44190aede2efa12c9c523a2d81349611c861dfe2c90abff102b941a3019d1e86be0b7f6ff50e14fe30f7ba2e62e6d22a591117d720a35ad881f6877505418956c74347d41cfc8df8a894420f889772a7cf519bcdde5f6ca47ee5fbd5faa7d43ded6d42ef9cbb946c381d9f6bd551048e7252e5a5494ad14c767589ffd502e31ff9e8486770226dd4fc095f48e54ccae0e81b60f8aa1bda9c439b3c6c7b89c1ac43656fff1880b428dbf460c0e3fde87e21bb726f739dea4754b1875f375361c32313e960d8e07271b59ad8fd7059bbb538ef2a840bdaf1dba7d0749ac6e7e698d5845bd050363badf6a2c50ca4d8f0bb41632eeab9978e0b7cf12f617c66f63934be3d5e2c8c5a357816774fa7b692687f70d950419383ad9d9495532a326aacf08846d8d8b16b8ee538922f9f922961453d7f30771daf75019abe8f171e2eabb12618d355bdc9284f55bed6c1f0aae0c828d26e6ea1cc917035572391f10995dd200a9c2eb3a207342a9fab8361e79c5d59b3a1ba85c4cae48cbbf02b82f805f717c4acd0f9a6003472578397743ca090e62d4b93d688c1d3521114afc59c9cdc9209dda13fdb478cbbb59678143fd1f92cf5d1ba81fdd07a617497b146da01839a24d93c654738295676a64558faed210b8d98b433cb890977531085da99a5f2196423cb10a3e287c86b741280bbe3373240c9c85917ed6fdddd9ddc72f3fd485cf970e5ea03824210a2a6f11e5eb08fe3b091347a5fa28b39a6fde0156fec9180254163dcc07399bfac36425dd8ca21e1c0819b679c2ff29b6fd97f1697f69bddb4a79dddbfc15b5f5e7a977416defcebde70e1c37849392d54d1afde4a5d651bdf8efa9a434a970a42be2065daf1cce28fd308324a0d7db27a5f6b912a9df346459c36712f146da8338c2910ca42fc2e358beee99f2361658ab4ed0ad8d74bfe80a253b90857923560e555f39ffe34065198924d72ce4ba16404df265618815e5253e429cbc7ae7bdf0d0d08f1aba8b9c36ff309af6d0eb3d10a408793cf6e3b734bd9a41861953f09e286a5e142383ad00a6625752e9d71eec65f00f03be5aa9e202f6b54b60b559f9760f93c2e5c44a981ba53ef439aa7b5697bb03d7491eaeb70d4db12e7e44a8b801a612d6d1f8a1fbabcf2ad772118c935e5da53e07b5c3dd40e07f141dfe3af1a6859c33688d42ddc13eff4e36b6e4eeea8ea55003e45658f79abde4bd2d7a6f0b1902d0dba5b7ea933d4d8c2d37179236d63b5b5be54fdc2094797d46487676ffbc987a2b18bdd986db50090eddcbce53f43b48c10619fbe32756d3cd03dff0e0716ebeea33d554f91e821f6389dbcdfde2f3d8bfbaf4ce4a8892b8329e53ff31b26423a78dfc0049c1084dd629b87d75ba77acf0e0f28635bb3b7053314d306e6d6c57ce3a4079578fd7c5349fa190291f9f6da1d925374de82bd54c83d86f0c6b5cca42536a7d9953bc1e26c4a68dd59320a28a0cfa0efec9d231fc33c8989579b7ac4b27d96bbce192a6c08461d5ece06f3cc2e99f5da9c8820d1e948057af54a42a4c01e76921e056850a158ad23b16c01371dd678d0f5d2dacc1a7c28aacf51f87c4f49eaffbf0a19540b3e268d09934cebedf414938536e58ae8b8e6cc504baeb27c8746e12428a7b6053febb16da53972cb5a13c13dfac142a4f90b409c983e34dac82a247ad74f38288a57197dd383f0ea0e87b20ed3237b7e306ce3dd7c5cb1133ee072436f23833517e207420dd0379d92a2844673025bdd8605d8b18b74fcd35a8b6100836451b7c79f091a890f54ec1b7584831b51d773ffd872c316c0e02f16e13e8c69adcd57dfc62b716fcfcde762cb867a397d6257ba60264005eeab85bbfd0105f1dbc017cd693ecf935bcb096bd7c0275e36aef98ea45f222aa01f3de6c622866a01e8775e40c738f9e6bf369a426dd8b1b142ef89b06b15f40fb1347ed55b690e9f3ba9108ff31090a8a6d9fa577cc2b0916c3a641b63998906a461880b6f4c5f5d3e5712096a552bf6a3de6bc659c01ca40fa1a933bf894b5734f40cdebdf2bf768f3b4d8cd81f6be7e8eddcdf6fd9feca44decfc7ff9af01ac464f50746b91445d32887967a44e27f22ccaf7c956f0c8ebd4a633a01d581cc1aaa68b656051a4e364d54b21f1406b8b65291d85ca44c329c9805db9077accc42e5c0bc49d476cdb6b7ebd9a9f6aa7793322c627bfee8c6b5df8db9dc447790b579a0cb4f09d3d75475adf6f537294790a203211b0f971ece7fc01a8195ea5e6e28f7c492bc9f7ccb17acfd670319217f6b08a7a062690fa6d8927fb06ce45cc80d99c4d08b5443dd6588af56d380a839111c64750757aa3e41ee2b70f862d9673f1333373ba9efca6f0314f211bed35b265f28d029d4f5c6f1fe15b7f9ce65a957de6ebcbf3f166511f0cc8f452fbf23bbd2188675f68401337f2b4eab34433553a4149532b15a9f35e15ef108fee3407d1dd12287bf7627b7bcf8e227bfa3f6103411f0d1d57c4b245bb6ac04b3a717aa172e24181fdf88d3967a13dcaa430ee7ccc175cbfc835904f5c102d8c5dae49c957cacb3f3d97ee10e87f7a058c702e1098ed7c610abbd1d0c836f54dce24f94f41fe8f6074ae97089db76b28b1b44e7a883d24d5db6e1867b0379a6409807afrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-documentation-3.6.15-150300.10.100.1.src.rpmpython3-docpython3-docpython3-doc(x86-64)python36-doc    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3i@i h@he@hJ@hH@h/gw@g@g5@g4g6f5fff@fIf@fz@fuk@f:f*Ee؈e4@d@dVA@dRLd>@d@c>@ccv"@ck@c[@c$e@cbb@b@a@a*@a*@aaaayay?@af@a]aLl@aLl@aA@a'@aj@```t`[``@``/@``U_T__@_v@_0@_0@_@_G@___P_P_m_O@_N7_L@_?@_>e_>e_=@_@_______^^g@^>^>^8 @^0"@]f@]+]@]m]y@]v>]8H@]8H@]1]]@\\8\@\E@\C@["@[6@ZZԐ@Zx@Z@Z@Z Z Zz@Zhu@Z`@ZLZ"Z }YYX@Yo@Y@YY@Y@YI@XӸXƉXXqX@Xv@W@Wx@W_W@Vm@VhV*!@VCV }@U@U@U@UU[%UT@UCjU@TeT;mcepl@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eudaniel.garcia@suse.commcepl@suse.commcepl@cepl.eumcepl@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comschwab@suse.demcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.deqydwhotmail@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commeissner@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commmachova@suse.commcepl@suse.commcepl@suse.commcalabkova@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comtchvatal@suse.comschwab@suse.demcalabkova@suse.commcalabkova@suse.commcalabkova@suse.commcepl@suse.commcalabkova@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.compsimons@suse.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.netjmatejek@suse.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comjmatejek@suse.com- Add CVE-2025-6075-expandvars-perf-degrad.patch avoid simple quadratic complexity vulnerabilities of os.path.expandvars() (CVE-2025-6075, bsc#1252974). - Rename 0001-allow-for-reproducible-builds-of-python-packages.patch to allow-for-reproducible-builds-of-python-packages.patch because with switch to git such names are dangerous.- Add CVE-2025-8291-consistency-zip64.patch which checks consistency of the zip64 end of central directory record, and preventing obfuscation of the payload, i.e., you scanning for malicious content in a ZIP file with one ZIP parser (let's say a Rust one) then unpack it in production with another (e.g., the Python one) and get malicious content that the other parser did not see (CVE-2025-8291, bsc#1251305) - Readjust patches while synchronizing between openSUSE and SLE trees: - 99366-patch.dict-can-decorate-async.patch - CVE-2007-4559-filter-tarfile_extractall.patch - CVE-2020-10735-DoS-no-limit-int-size.patch - CVE-2024-6232-ReDOS-backtrack-tarfile.patch - CVE-2025-4435-normalize-lnk-trgts-tarfile.patch - CVE-2025-8194-tarfile-no-neg-offsets.patch - python-3.6.0-multilib-new.patch - python3-sorted_tar.patch- Add CVE-2025-8194-tarfile-no-neg-offsets.patch which now validates archives to ensure member offsets are non-negative (gh#python/cpython#130577, CVE-2025-8194, bsc#1247249).- Add CVE-2025-4435-normalize-lnk-trgts-tarfile.patch Security fixes for CVE-2025-4517, CVE-2025-4330, CVE-2025-4138, CVE-2024-12718, CVE-2025-4435 on tarfile (bsc#1244032, bsc#1244061, bsc#1244059, bsc#1244060, bsc#1244056). The backported fixes do not contain changes for ntpath.py and related tests, because the support for symlinks and junctions were added later in Python 3.9, and it does not make sense to backport them to 3.6 here. The patch is contains the following changes: - python@42deeab fixes symlink handling for tarfile.data_filter - python@9d2c2a8 fixes handling of existing files/symlinks in tarfile - python@00af979 adds a new "strict" argument to realpath() - python@dd8f187 fixes mulriple CVE fixes in the tarfile module - downstream only fixes that makes the changes work and compatible with Python 3.6 - Add CVE-2025-6069-quad-complex-HTMLParser.patch to avoid worst case quadratic complexity when processing certain crafted malformed inputs with HTMLParser (CVE-2025-6069, bsc#1244705).- Add python36-* provides/obsoletes to enable SLE-12 -> SLE-15 migration, bsc#1233012- Add ipaddress-update-pr60.patch from gh#phihag/ipaddress!60 to update vendored ipaddress module to 3.8 equivalent - Add gh-128840_parse-IPv6-with-emb-IPv4.patch to limit buffer size for IPv6 address parsing (gh#python/cpython#128840, bsc#1244401). - Update CVE-2025-4516-DecodeError-handler.patch not to break _PyBytes_DecodeEscape signature.- Add CVE-2025-4516-DecodeError-handler.patch fixing CVE-2025-4516 (bsc#1243273) blocking DecodeError handling vulnerability, which could lead to DoS.- Update CVE-2024-11168-validation-IPv6-addrs.patch according to the Debian version (gh#python/cpython#103848#issuecomment-2708135083).- Add CVE-2025-0938-sq-brackets-domain-names.patch which disallows square brackets ([ and ]) in domain names for parsed URLs (bsc#1236705, CVE-2025-0938, gh#python/cpython#105704)- Remove -IVendor/ from python-config boo#1231795 - Fix CVE-2024-11168-validation-IPv6-addrs.patch - PGO run of build freezes with parallel processing, switch to -j1- Add CVE-2024-11168-validation-IPv6-addrs.patch fixing bsc#1233307 (CVE-2024-11168, gh#python/cpython#103848): Improper validation of IPv6 and IPvFuture addresses.- Add CVE-2024-9287-venv_path_unquoted.patch to properly quote path names provided when creating a virtual environment (bsc#1232241, CVE-2024-9287)- Drop .pyc files from docdir for reproducible builds (bsc#1230906).- Add CVE-2024-6232-ReDOS-backtrack-tarfile.patch prevent ReDos via excessive backtracking while parsing header values (bsc#1230227, CVE-2024-6232).- Add CVE-2024-5642-switch-off-NPN.patch switching off the NPN support eliminating bsc#1227233 (CVE-2024-5642).- Add CVE-2024-6923-email-hdr-inject.patch to prevent email header injection due to unquoted newlines (bsc#1228780, CVE-2024-6923). - Add CVE-2024-7592-quad-complex-cookies.patch fixing quadratic complexity in parsing cookies with backslashes (bsc#1229596, CVE-2024-7592) - %{profileopt} variable is set according to the variable %{do_profiling} (bsc#1227999)- Remove %suse_update_desktop_file macro as it is not useful any more.- Stop using %%defattr, it seems to be breaking proper executable attributes on /usr/bin/ scripts (bsc#1227378).- Add CVE-2024-4032-private-IP-addrs.patch to fix bsc#1226448 (CVE-2024-4032) rearranging definition of private v global IP addresses.- Add CVE-2024-0397-memrace_ssl.SSLContext_cert_store.patch fixing bsc#1226447 (CVE-2024-0397) by removing memory race condition in ssl.SSLContext certificate store methods.- Add bpo38361-syslog-no-slash-ident.patch (bsc#1222109, gh#python/cpython!16557) fixes syslog making default "ident" from sys.argv[0]. - Update CVE-2023-52425-libexpat-2.6.0-backport.patch so that it uses features sniffing, not just comparing version number (bsc#1220664, bsc#1219559, bsc#1221563, bsc#1222075). - Remove support-expat-CVE-2022-25236-patched.patch, which was the previous name of this patch. - Add CVE-2023-52425-remove-reparse_deferral-tests.patch skipping failing tests. - Refresh patches: - CVE-2023-27043-email-parsing-errors.patch - fix_configure_rst.patch - skip_if_buildbot-extend.patch- bsc#1221854 (CVE-2024-0450) Add CVE-2024-0450-zipfile-avoid-quoted-overlap-zipbomb.patch detecting the vulnerability of the "quoted-overlap" zipbomb (from gh#python/cpython!110016). - Add bh42369-thread-safety-zipfile-SharedFile.patch (from gh#python/cpython!26974) required by the previous patch. - Add expat-260-test_xml_etree-reparse-deferral.patch to make the interpreter work with patched libexpat in our distros. - Move all patches from locally sourced to the branch opensuse-3.6 branch at GitHub repo, and move all metadata to commits themselves (readable in the headers of each patch). - Add bpo-41675-modernize-siginterrupt.patch to make Python build cleanly even on more recent SPs of SLE-15 (gh#python/cpython#85841). - Remove patches: - bpo36263-Fix_hashlib_scrypt.patch - fix against bug in OpenSSL fixed in 1.1.1c (gh#openssl/openssl!8483), so this patch is redundant on all SUSE-supported distros - python-3.3.0b1-test-posix_fadvise.patch - protection against the kernel issues which has been fixed in gh#torvalds/linux@3d3727cdb07f, which has been included in all our kernels more recent than SLE-11. - python-3.3.3-skip-distutils-test_sysconfig_module.patch - skips a test, which should be relevant only for testing on Mac OS X systems with universal builds. I have no valid record, that this test would be ever problematic on Linux. - bpo-36576-skip_tests_for_OpenSSL-111.patch, which was included already in Python 3.5.- (bsc#1219666, CVE-2023-6597) Add CVE-2023-6597-TempDir-cleaning-symlink.patch (patch from gh#python/cpython!99930) fixing symlink bug in cleanup of tempfile.TemporaryDirectory. - Merge together bpo-36576-skip_tests_for_OpenSSL-111.patch into skip_SSL_tests.patch, and make them include all conditionals.- Refresh CVE-2023-27043-email-parsing-errors.patch to gh#python/cpython!111116, fixing bsc#1210638 (CVE-2023-27043).- Add CVE-2023-40217-avoid-ssl-pre-close.patch fixing gh#python/cpython#108310, backport from upstream patch gh#python/cpython#108315 (bsc#1214692, CVE-2023-40217)- Add 99366-patch.dict-can-decorate-async.patch fixing gh#python/cpython#98086 (backport from Python 3.10 patch in gh#python/cpython!99366), fixing bsc#1211158.- Add CVE-2007-4559-filter-tarfile_extractall.patch to fix CVE-2007-4559 (bsc#1203750) by adding the filter for tarfile.extractall (PEP 706).- Use python3 modules to build the documentation.- Add bpo-44434-libgcc_s-for-pthread_cancel.patch which eliminates unnecessary and dangerous calls to PyThread_exit_thread() (bsc#1203355).- Add CVE-2023-24329-blank-URL-bypass.patch (CVE-2023-24329, bsc#1208471) blocklists bypass via the urllib.parse component when supplying a URL that starts with blank characters- Add bpo27321-email-no-replace-header.patch to stop email.generator.py from replacing a non-existent header (bsc#1208443, gh#python/cpython#71508).- Add bsc1188607-pythreadstate_clear-decref.patch to fix crash in the garbage collection (bsc#1188607).- Add CVE-2022-45061-DoS-by-IDNA-decode.patch to avoid CVE-2022-45061 (bsc#1205244) allowing DoS by IDNA decoding extremely long domain names.- Add CVE-2022-37454-sha3-buffer-overflow.patch to fix bsc#1204577 (CVE-2022-37454, gh#python/cpython#98517) buffer overflow in hashlib.sha3_* implementations (originally from the XKCP library).- Add CVE-2020-10735-DoS-no-limit-int-size.patch to fix CVE-2020-10735 (bsc#1203125) to limit amount of digits converting text to int and vice vera (potential for DoS). Originally by Victor Stinner of Red Hat.- Add patch CVE-2021-28861-double-slash-path.patch: * http.server: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //. (bsc#1202624, CVE-2021-28861)- Add CVE-2015-20107-mailcap-unsafe-filenames.patch to avoid CVE-2015-20107 (bsc#1198511, gh#python/cpython#68966), the command injection in the mailcap module. - Rename support-expat-245.patch to support-expat-CVE-2022-25236-patched.patch to unify the patch with other packages. - Add bpo-46623-skip-zlib-s390x.patch skipping two failing tests on s390x.- Update bundled pip wheel to the latest SLE version patched against bsc#1186819 (CVE-2021-3572).- Add patch support-expat-245.patch: * Support Expat >= 2.4.5- Rename 22198.patch into more descriptive remove-sphinx40-warning.patch.- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use OpenSSL 1.1 on platforms which don't have it.- Remove shebangs from from python-base libraries in _libdir (bsc#1193179, bsc#1192249). - Readjust patches: - bpo-31046_ensurepip_honours_prefix.patch - decimal.patch - python-3.3.0b1-fix_date_time_compiler.patch- build against openssl 1.1 as it is incompatible with openssl 3.0+ (bsc#1190566)- 0001-allow-for-reproducible-builds-of-python-packages.patch: ignore permission error when changing the mtime of the source file in presence of SOURCE_DATE_EPOCH- The previous construct works only on the current Factory, not in SLE.- BuildRequire rpm-build-python: The provider to inject python(abi) has been moved there. rpm-build pulls rpm-build-python automatically in when building anything against python3-base, but this implies that the initial build of python3-base does not trigger the automatic installation.- Due to conflicting demands of bsc#1183858 and platforms where Python 3.6 is only in interpreter+pip set we have to make complicated ugly construct about Sphinx BR.- Make python36 primary interpreter on SLE-15- Make build working even on older SLEs.- Update to 3.6.15: - bpo-43124: Made the internal putcmd function in smtplib sanitize input for presence of \r and \n characters to avoid (unlikely) command injection. Library - bpo-45001: Made email date parsing more robust against malformed input, namely a whitespace-only Date: header. Patch by Wouter Bolsterlee. Tests - bpo-38965: Fix test_faulthandler on GCC 10. Use the “volatile” keyword in faulthandler._stack_overflow() to prevent tail call optimization on any compiler, rather than relying on compiler specific pragma. - bpo-40791: Make compare_digest more constant-time (bsc#1214691, CVE-2022-48566). - Remove upstreamed patches: - faulthandler_stack_overflow_on_GCC10.patch- test_faulthandler is still problematic under qemu linux-user emulation, disable it there- Update to 3.6.14: * Security - bpo-44022 (bsc#1189241, CVE-2021-3737): mod:http.client now avoids infinitely reading potential HTTP headers after a 100 Continue status response from the server. - bpo-43882: The presence of newline or tab characters in parts of a URL could allow some forms of attacks. Following the controlling specification for URLs defined by WHATWG urllib.parse() now removes ASCII newlines and tabs from URLs, preventing such attacks. - bpo-42988 (CVE-2021-3426, bsc#1183374): Remove the getfile feature of the pydoc module which could be abused to read arbitrary files on the disk (directory traversal vulnerability). Moreover, even source code of Python modules can contain sensitive data like passwords. Vulnerability reported by David Schwörer. - bpo-43285: ftplib no longer trusts the IP address value returned from the server in response to the PASV command by default. This prevents a malicious FTP server from using the response to probe IPv4 address and port combinations on the client network. Code that requires the former vulnerable behavior may set a trust_server_pasv_ipv4_address attribute on their ftplib.FTP instances to True to re-enable it. - bpo-43075 (CVE-2021-3733, bsc#1189287): Fix Regular Expression Denial of Service (ReDoS) vulnerability in urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server. - Upstreamed patches were removed: - CVE-2021-3426-inf-disclosure-pydoc-getfile.patch - CVE-2021-3733-ReDoS-urllib-AbstractBasicAuthHandler.patch - Refreshed patches: - python3-sorted_tar.patch - riscv64-ctypes.patch- Rebuild to get new headers, avoid building in support for stropts.h (bsc#1187338).- Use versioned python-Sphinx to avoid dependency on other version of Python (bsc#1183858).- Modify Lib/ensurepip/__init__.py to contain the same version numbers as are in reality the ones in the bundled wheels (bsc#1187668).- add 22198.patch to build with Sphinx 4- Stop providing "python" symbol (bsc#1185588), which means python2 currently.- Make sure to close the import_failed.map file after the exception has been raised in order to avoid ResourceWarnings when the failing import is part of a try...except block.- Add CVE-2021-3426-inf-disclosure-pydoc-getfile.patch to remove getfile feature from pydoc, which is a security nightmare (among other things, CVE-2021-3426, allows disclosure of any file on the system; bsc#1183374, bpo#42988).Update to 3.6.13, final release of 3.6 branch: * Security - bpo#42967 (bsc#1182379, CVE-2021-23336): Fix web cache poisoning vulnerability by defaulting the query args separator to &, and allowing the user to choose a custom separator. - bpo#42938 (bsc#1181126, CVE-2021-3177): Avoid static buffers when computing the repr of ctypes.c_double and ctypes.c_longdouble values. - bpo#42103: Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format. - bpo#42051: The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities. This should not affect users as entity declarations are not used in regular plist files. - bpo#40791: Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely. * Core and Builtins - bpo#35560: Fix an assertion error in format() in debug build for floating point formatting with “n” format, zero padding and small width. Release build is not impacted. Patch by Karthikeyan Singaravelan. * Library - bpo#42103: InvalidFileException and RecursionError are now the only errors caused by loading malformed binary Plist file (previously ValueError and TypeError could be raised in some specific cases). * Tests - bpo#42794: Update test_nntplib to use offical group name of news.aioe.org for testing. Patch by Dong-hee Na. - bpo#41944: Tests for CJK codecs no longer call eval() on content received via HTTP. - Patches removed, because they were included in the upstream tarball: - CVE-2020-27619-no-eval-http-content.patch - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch- Add CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch fixing bsc#1181126 (CVE-2021-3177) buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution.- Provide the newest setuptools wheel (bsc#1176262, CVE-2019-20916) in their correct form (bsc#1180686).- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- readd --with-fpectl (bsc#1180377)- Adjust sphinx-update-removed-function.patch- (bsc#1179630) Update sphinx-update-removed-function.patch to work with all versions of Sphinx (not binding the Python documentation build to the latest verison of Sphinx). Updated version mentioned on gh#python/cpython#13236.- Add CVE-2020-27619-no-eval-http-content.patch fixing CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support calls eval() on content retrieved via HTTP.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function (gh#python/cpython#13236). As a consequence, no longer pin Sphinx version.- Pin Sphinx version to fix doc subpackage- Change setuptools and pip version numbers according to new wheels (bsc#1179756). - Add ignore_pip_deprec_warn.patch to switch of persistently failing test.- Replace bundled wheels for pip and setuptools with the updated ones (bsc#1176262 CVE-2019-20916).- Handful of changes to make python36 compatible with SLE15 and SLE12 (jsc#ECO-2799, jsc#SLE-13738) - Rebase bpo23395-PyErr_SetInterrupt-signal.patch- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Fix installing .desktop file- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Add faulthandler_stack_overflow_on_GCC10.patch to make build working even with GCC10 (bpo#38965).- Just cleanup and reordering items to synchronize with python38- Format with spec-cleaner- riscv64-support.patch: bpo-33377: add triplets for mips-r6 and riscv (#6655) - riscv64-ctypes.patch: bpo-35847: RISC-V needs CTYPES_PASS_BY_REF_HACK (GH-11694) - Update list of tests to exclude under qemu linux-user- Update the python keyring - Correct libpython name- Drop patches which are not mentioned in spec: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * F00102-lib64.patch * F00251-change-user-install-location.patch * OBS_dev-shm.patch * SUSE-FEDORA-multilib.patch * bpo-31046_ensurepip_honours_prefix.patch * bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * bpo36302-sort-module-sources.patch * bpo40784-Fix-sqlite3-deterministic-test.patch * bsc1167501-invalid-alignment.patch * python3-imp-returntype.patch - Working around missing python-packaging dependency in python-Sphinx (bsc#1174571) is not necessary anymore.- Update to 3.6.12 (bsc#1179193) * Ensure python3.dll is loaded from correct locations when Python is embedded * The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address). * Prevent http header injection by rejecting control characters in http.client.putrequest(…). * Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. * Avoid infinite loop when reading specially crafted TAR files using the tarfile module - Drop merged fixtures: * CVE-2020-14422-ipaddress-hash-collision.patch * CVE-2019-20907_tarfile-inf-loop.patch * recursion.tar - This release also fixes CVE-2020-26116 (bsc#1177211) and CVE-2019-20907 (bsc#1174091).- Add CVE-2019-20907_tarfile-inf-loop.patch fixing bsc#1174091 (CVE-2019-20907, bpo#39017) avoiding possible infinite loop in specifically crafted tarball. Add recursion.tar as a testing tarball for the patch.- Make library names internally consistent- Disable profile optimalizations as they deadlock in test_faulthandler- Disable lto as it causes mess and works with 3.7 onwards only- Sync the test disablements from the python3 in sle15- Update to 3.6.11: - bpo-39073: Disallow CR or LF in email.headerregistry. Address arguments to guard against header injection attacks. - bpo-38576 (bsc#1155094): Disallow control characters in hostnames in http.client, addressing CVE-2019-18348. Such potentially malicious header injection URLs now cause a InvalidURL to be raised. - bpo-39503: CVE-2020-8492: The AbstractBasicAuthHandler class of the urllib.request module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager. - bpo-39401: Avoid unsafe load of api-ms-win-core-path-l1-1-0.dll at startup on Windows 7. - Remove merged patch CVE-2020-8492-urllib-ReDoS.patch, CRLF_injection_via_host_part.patch, and CVE-2019-18348-CRLF_injection_via_host_part.patch.- Fix minor issues found in the staging.- Do not set ourselves as a primary interpreter- Add CVE-2020-14422-ipaddress-hash-collision.patch fixing CVE-2020-14422 (bsc#1173274, bpo#41004), where hash collisions in IPv4Interface and IPv6Interface could lead to DOS.- Change name of idle3 icons to idle3.png to avoid collision with Python 2 version (bsc#1165894).- Add CVE-2019-9674-zip-bomb.patch to improve documentation warning about dangers of zip-bombs and other security problems with zipfile library. (bsc#1162825 CVE-2019-9674) - Add CVE-2020-8492-urllib-ReDoS.patch fixing the security bug "Python urrlib allowed an HTTP server to conduct Regular Expression Denial of Service (ReDoS)" (bsc#1162367)- Add Requires: libpython%{so_version} == %{version}-%{release} to python3-base to keep both packages always synchronized (bsc#1162224).- Reame idle icons to idle3 in order to not conflict with python2 variant of the package bsc#1165894 * renamed the icons * renamed icon load in desktop file- Add pep538_coerce_legacy_c_locale.patch to coerce locale to C.UTF-8 always (bsc#1162423).- Update to 3.6.10 (still in line with jsc#SLE-9426, jsc#SLE-9427, bsc#1159035): - Security: - bpo-38945: Newline characters have been escaped when performing uu encoding to prevent them from overflowing into to content section of the encoded file. This prevents malicious or accidental modification of data during the decoding process. - bpo-37228: Due to significant security concerns, the reuse_address parameter of asyncio.loop.create_datagram_endpoint() is no longer supported. This is because of the behavior of SO_REUSEADDR in UDP. For more details, see the documentation for loop.create_datagram_endpoint(). (Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in bpo-37228.) - bpo-38804: Fixes a ReDoS vulnerability in http.cookiejar. Patch by Ben Caller. - bpo-38243: Escape the server title of xmlrpc.server.DocXMLRPCServer when rendering the document page as HTML. (Contributed by Dong-hee Na in bpo-38243.) - bpo-38174: Update vendorized expat library version to 2.2.8, which resolves CVE-2019-15903. - bpo-37461: Fix an infinite loop when parsing specially crafted email headers. Patch by Abhilash Raj. - bpo-34155: Fix parsing of invalid email addresses with more than one @ (e.g. a@b@c.com.) to not return the part before 2nd @ as valid email address. Patch by maxking & jpic. - Library: - bpo-38216: Allow the rare code that wants to send invalid http requests from the http.client library a way to do so. The fixes for bpo-30458 led to breakage for some projects that were relying on this ability to test their own behavior in the face of bad requests. - bpo-36564: Fix infinite loop in email header folding logic that would be triggered when an email policy’s max_line_length is not long enough to include the required markup and any values in the message. Patch by Paul Ganssle - Remove patches included in the upstream tarball: - CVE-2019-16935-xmlrpc-doc-server_title.patch (and also bpo37614-race_test_docxmlrpc_srv_setup.patch, which was resolving bsc#1174701). - CVE-2019-16056-email-parse-addr.patch - Move idle subpackage build from python3-base to python3 (bsc#1159622). appstream-glib required for packaging introduces considerable extra dependencies and a build loop via rust/librsvg. - Correct installation of idle IDE icons: + idle.png is not the target directory + non-GNOME-specific icons belong into icons/hicolor - Add required Name key to idle3 desktop file- Unify all Python 3.6* SLE packages into one (jsc#SLE-9426, jsc#SLE-9427, bsc#1159035) - Patches which were already included upstream: - CVE-2018-1061-DOS-via-regexp-difflib.patch - CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch- Add CVE-2019-16935-xmlrpc-doc-server_title.patch fixing bsc#1153238 (aka CVE-2019-16935) fixing a reflected XSS in python/Lib/DocXMLRPCServer.py- Add bpo-36576-skip_tests_for_OpenSSL-111.patch (originally from bpo#36576) skipping tests failing with OpenSSL 1.1.1. Fixes bsc#1149792 - Add bpo36263-Fix_hashlib_scrypt.patch which works around bsc#1151490- Add CVE-2019-16056-email-parse-addr.patch fixing the email module wrongly parses email addresses [bsc#1149955, bnc#1149955, CVE-2019-16056]- jsc#PM-1350 bsc#1149121 Update python3 to the last version of the 3.6 line. This is just a bugfix release with no changes in functionality. - The following patches were included in the upstream release as so they can be removed in the package: - CVE-2018-20852-cookie-domain-check.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-10160-netloc-port-regression.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - CVE-2019-9947-no-ctrl-char-http.patch - Patch bpo23395-PyErr_SetInterrupt-signal.patch has been reapplied on the upstream base without changing any functionality. - Add patch aarch64-prolong-timeout.patch to fix failing test_utime_current_old test.- FAKE RECORD FROM SLE-12 CHANNEL Apply "CVE-2018-1000802-shutil_use_subprocess_no_spawn.patch" which converts shutil._call_external_zip to use subprocess rather than distutils.spawn. [bsc#1109663, CVE-2018-1000802]- FAKE RECORD FROM SLE-12 CHANNEL bsc#1109847: add CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch fixing bpo#34623.- boo#1141853 (CVE-2018-20852) add CVE-2018-20852-cookie-domain-check.patch fixing http.cookiejar.DefaultPolicy.domain_return_ok which did not correctly validate the domain: it could be tricked into sending cookies to the wrong server.- bsc#1138459: add CVE-2019-10160-netloc-port-regression.patch which fixes regression introduced by the previous patch. (CVE-2019-10160) Upstream gh#python/cpython#13812- FAKE RECORD FROM SLE-12 CHANNEL bsc#1137942: Avoid duplicate files with python3* packages (https://fate.suse.com/327309)- bsc#1094814: Add bpo23395-PyErr_SetInterrupt-signal.patch to handle situation when the SIGINT signal is ignored or not handled- Update to 3.6.8: - bugfixes only - removed patches (subsumed in the upstream tarball): - CVE-2018-20406-pickle_LONG_BINPUT.patch - refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - Python-3.0b1-record-rpm.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.3.3-skip-distutils-test_sysconfig_module.patch - python-3.6.0-multilib-new.patch - python3-sorted_tar.patch - subprocess-raise-timeout.patch - switch off LTO and PGO optimization (bsc#1133452) - bsc#1130840 (CVE-2019-9947): add CVE-2019-9947-no-ctrl-char-http.patch Address the issue by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause a ValueError to be raised.- bsc#1129346: add CVE-2019-9636-urlsplit-NFKC-norm.patch Characters in the netloc attribute that decompose under NFKC normalization (as used by the IDNA encoding) into any of ``/``, ``?``, ``#``, ``@``, or ``:`` will raise a ValueError. If the URL is decomposed before parsing, or is not a Unicode string, no error will be raised. (CVE-2019-9636) Upstream gh#python/cpython#12224- bsc#1120644 add CVE-2018-20406-pickle_LONG_BINPUT.patch fixing bpo#34656 Modules/_pickle.c in Python before 3.7.1 has an integer overflow via a large LONG_BINPUT value that is mishandled during a "resize to twice the size" attempt. This issue might cause memory exhaustion, but is only relevant if the pickle format is used for serializing tens or hundreds of gigabytes of data.- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746. An exploitable denial-of-service vulnerability exists in the X509 certificate parser of Python.org Python 2.7.11 / 3.7.2. A specially crafted X509 certificate can cause a NULL pointer dereference, resulting in a denial of service. An attacker can initiate or accept TLS connections using crafted certificates to trigger this vulnerability.- Add -fwrapv to OPTS, which is default for python3 anyway See for example https://github.com/zopefoundation/persistent/issues/86 for bugs which are caused by avoiding it. (bsc#1107030)- Apply "CVE-2018-1061-DOS-via-regexp-difflib.patch" to prevent low-grade poplib REDOS (CVE-2018-1060) and to prevent difflib REDOS (CVE-2018-1061). Prior to this patch mail server's timestamp was susceptible to catastrophic backtracking on long evil response from the server. Also, it was susceptible to catastrophic backtracking, which was a potential DOS vector. [bsc#1088004 and bsc#1088009, CVE-2018-1061 and CVE-2018-1060]- As we run in main python package do not generate the pre_checkin from both now- Move the tests from base to generic package wrt bsc#1088573 * We still fail the whole distro if python3 is not build * The other archs than x86_64 took couple of hours to unblock build of other software, this way we work around the issue - Some tests are still run in -base for the LTO tweaking, but at least it is not run twice- update to 3.6.5 * bugfix release * see Misc/NEWS for details - drop ctypes-pass-by-value.patch - drop fix-localeconv-encoding-for-LC_NUMERIC.patch - refresh python-3.6.0-multilib-new.patch- Apply "python-3.6-CVE-2017-18207.patch" to add a check to Lib/wave.py that verifies that at least one channel is provided. Prior to this check, attackers could cause a denial of service (divide-by-zero error and application crash) via a crafted wav format audio file. [bsc#1083507, CVE-2017-18207]- Created %so_major and %so_minor macros - Put Tools/gdb/libpython.py script into proper place and ship it with devel subpackage.- ctypes-pass-by-value.patch: Fix pass by value for structs on aarch64- Add python3-sorted_tar.patch (boo#1081750, bsc#1086001)- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- move XML modules and python3-xml provide to python3-base (fixes bsc#1077230) - move ensurepip to base- Add skip_random_failing_tests.patch only for PowerPC- update to 3.6.4 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed python3-ncurses-6.0-accessors.patch - drop PYTHONSTARTUP hooks that cause spurious startup errors * fixes bsc#1070738 * the relevant feature (REPL history) is now built into Python itself- Install 2to3-%{python_version} executable (override defattr of the -tools package). 2to3 (unversioned) is a symlink and does not carry permissions (bsc#1070853).- move 2to3 to python3-tools package- update to 3.6.3 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- drop python-2.7-libffi-aarch64.patch: this patches the intree copy of libffi which is unused/deleted in the line afterwards - fix build against system libffi: include flags weren't set so it actually used the in-tree libffi headers.- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- fix missing %{?armsuffix}- distutils-reproducible-compile.patch: ensure distutils order files before compiling, which works around bsc#1049186- Add libnsl-devel build requires for glibc obsoleting libnsl- update to 3.6.2 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed test-socket-aead-kernel49.patch - add Provides: python3-typing (fixes bsc#1050653) - drop duplicate Provides: python3- Add missing link to python library in config dir (bsc#1040164)- update to 3.6.1 * bugfix release, over a hundred bugs fixed * never add import location's parent directory to sys.path * switch to git for version control, build changes related to that * fix "failed to get random numbers" on old kernels (bsc#1029902) * several crashes and memory leaks corrected * f-string are no longer accepted as docstrings- prevent regenerating AST at build-time more robustly - add "--without profileopt" and "--without testsuite" options to python3-base to allow short circuiting when working on the package- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.6 (bsc#1027282): * fixed potential crash in PyUnicode_AsDecodedObject() in debug build * fixed possible DoS and arbitrary execution in gettext plurals * fix possible use of uninitialized memory in operator.methodcaller * fix possible Py_DECREF on unowned object in _sre * fix possible integer overflow in _csv module * prevent HTTPoxy attack (CVE-2016-1000110) * fix selectors incorrectly retaining invalid fds - drop upstreamed python-3.4-CVE-2016-1000110-fix.patch - move _elementtree to python3.rpm to match its pyexpat dependency (bsc#1029377)- Add 0001-allow-for-reproducible-builds-of-python-packages.patch upstream https://github.com/python/cpython/pull/296- reenable test_socket with AEAD patch (test-socket-aead-kernel49.patch) - reintroduce %py3_soflags macro (and better named %cpython3_soabi equivalent)- update to 3.6.0 * PEP 498 Formated string literals * PEP 515 Underscores in numeric literals * PEP 526 Syntax for variable annotations * PEP 525 Asynchronous generators * PEP 530 Asynchronous comprehensions * PEP 506 New "secrets" module for safe key generation * less memory consumed by dicts * dtrace and systemtap support * improved asyncio module * better defaults for ssl * new hashing algorithms in hashlib * bytecode format changed to allow more optimizations * "async" and "await" are on track to be reserved words * StopIteration from generators is deprecated * support for openssl < 1.0.2 is deprecated * os.urandom now blocks when getrandom() blocks * huge number of new features, bugfixes and optimizations * see https://docs.python.org/3.6/whatsnew/3.6.html for details - rework multilib patch: drop Python-3.5.0-multilib.patch, implement upstreamable python-3.6.0-multilib-new.patch - refresh python-3.3.0b1-localpath.patch, subprocess-raise-timeout.patch - drop upstreamed Python-3.5.1-fix_lru_cache_copying.patch - finally drop python-2.6b1-canonicalize2.patch that was not applied in source and only kept around in case we needed it in the future. (which we don't, as it seems) - update import_failed map and baselibs - build ctypes against system libffi (buildrequire libffi-devel in python3-base) - add new key to keyring (signed by keys already in keyring) - introduced common configure section between python3 and python3-base - moved pyconfig.h and Makefile to devel subpackage as distutils no longer need it at runtime - added python-rpm-macros dependency, regenerated macros file, drop macros.python3.py because it is not used now - improve summaries and descriptions (fixes bsc#917607) - enabled Link-Time Optimization, see what happens - including skipped_tests.py in pre_checkin.sh run - run specs through spec-cleaner, rearrange sections- FAKE RECORD FROM SLE-12 CHANNEL apply fix for CVE-2016-1000110 - CGIHandler: sets environmental variable based on user supplied Proxy request header: python-3.4-CVE-2016-1000110-fix.patch (fixes bsc#989523, CVE-2016-1000110) - refresh python3-urllib-prefer-lowercase-proxies.patch- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.5 check: https://docs.python.org/3.4/whatsnew/changelog.html (fixes bsc#984751, CVE-2016-0772) (fixes bsc#985177, CVE-2016-5636) (fixes bsc#985348, CVE-2016-5699) - drop upstreamed werror-declaration-after-statement.patch- FAKE RECORD FROM SLE-12 CHANNEL Due to being fixed upstream (differently), removed outdated patch CVE-2014-4650-CGIHTTPServer-traversal.patch (bsc#983582)- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Add Python-3.5.1-fix_lru_cache_copying.patch Fix copying the lru_cache() wrapper object. Fixes deep-copying lru_cache regression, which worked on previous versions of python but fails on python 3.5. This fixes a bunch of packages in devel:languages:python3. See: https://bugs.python.org/issue25447- update to 3.5.1 * bugfix-only release, dozens of bugs fixed - Drop upstreamed Python-3.5.0-_Py_atomic_xxx-symbols.patch - "Python3" to "Python 3" in summary * This seems cleaner and fixes and rpmlint warning- FAKE RECORD FROM SLE-12 CHANNEL Issue #21121: Don't force 3rd party C extensions to be built with -Werror=declaration-after-statement. (werror-declaration-after-statement.patch, bsc#951166)- Add Python-3.5.0-_Py_atomic_xxx-symbols.patch This fixes a build error for many packages that use the Python, C-API. This patch is already accepted upstream and is slated to appear in python 3.5.1.- update to 3.5.0 * coroutines with async/await syntax * matrix multiplication operator `@` * unpacking generalizations * new modules `typing` and `zipapp` * type annotations * .pyo files replaced by custom suffixes for optimization levels in __pycache__ * support for memory BIO in ssl module * performance improvements in several modules * and many more - removals and behavior changes * deprecated `__version__` is removed * support for .pyo files was removed * system calls are auto-retried on EINTR * bare generator expressions in function calls now cause SyntaxError (change "f(x for x in i)" to "f((x for x in i))" to fix) * removed undocumented `format` member of private `PyMemoryViewObject` struct * renamed `PyMemAllocator` to `PyMemAllocatorEx` - redefine %dynlib macro to reflect that modules now have arch+os as part of name - module `time` is now built-in - dropped upstreamed patches: python-3.4.1-fix-faulthandler.patch python-3.4.3-test-conditional-ssl.patch python-fix-short-dh.patch (also dropped dh2048.pem required for this patch) - updated patch Python-3.3.0b2-multilib.patch to Python-3.5.0-multilib.patch - python-ncurses-6.0-accessors.patch taken from python 2 to fix build failure with new gcc + ncurses- Add python3-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- improve import_failed hook to do the right thing when invoking missing modules with "python3 -m modulename" (boo#942751)- Build with --enable-loadable-sqlite-extensions to make it works as geospatial database.- dh2048.pem: added generated 2048 dh parameter set to fix ssl test (bsc#935856) - python-fix-short-dh.patch: replace the 512 bits dh parameter set by 2048 bits to fix build with new openssl 1.0.2c (bsc#935856)- ctypes-libffi-aarch64.patch: remove upstreamed patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- python-3.4.3-test-conditional-ssl.patch - restore tests failing because test_urllib was unconditionally importing ssl (without really needing it) - restore functionality of multilib patch - drop libffi-ppc64le.diff because upstream completely changed everything yet again (sorry ppc64 folks :| )- Update to version 3.4.3 - Drop upstreamed CVE-2014-4650-CGIHTTPServer-traversal.patch (bpo#21766)- Add python-3.4.1-fix-faulthandler.patch, upstream patch for bogus faulthandler which fails with GCC 5.- asyncio has been merged in python3 main package; provide and obsolete it - Remove obsolete AUTHORS section - Remove redundant %clean section- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillapython3-docpython36-doch01-ch3c 1765206817  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !3.6.153.6.15-150300.10.100.13.6.15-150300.10.100.13.6.15 3.6.153.6.15      python3.6MiscACKSHISTORYNEWSPortingREADMEREADME.coverityREADME.valgrindSpecialBuilds.txtcoverity_model.cgdbinitindent.propython-config.inpython-config.sh.inpython-wing3.wprpython-wing4.wprpython-wing5.wprpython.manpython.pc.insvnmap.txtvalgrind-python.suppvgrindefshtml_imageshashlib-blake2-tree.pnglogging_flow.pngpathlib-inheritance.pngtulip_coro.pngturtle-star.pngwin_installer.png_sourcesabout.rst.txtbugs.rst.txtc-apiabstract.rst.txtallocation.rst.txtapiabiversion.rst.txtarg.rst.txtbool.rst.txtbuffer.rst.txtbytearray.rst.txtbytes.rst.txtcapsule.rst.txtcell.rst.txtcode.rst.txtcodec.rst.txtcomplex.rst.txtconcrete.rst.txtconversion.rst.txtcoro.rst.txtdatetime.rst.txtdescriptor.rst.txtdict.rst.txtexceptions.rst.txtfile.rst.txtfloat.rst.txtfunction.rst.txtgcsupport.rst.txtgen.rst.txtimport.rst.txtindex.rst.txtinit.rst.txtintro.rst.txtiter.rst.txtiterator.rst.txtlist.rst.txtlong.rst.txtmapping.rst.txtmarshal.rst.txtmemory.rst.txtmemoryview.rst.txtmethod.rst.txtmodule.rst.txtnone.rst.txtnumber.rst.txtobjbuffer.rst.txtobject.rst.txtobjimpl.rst.txtrefcounting.rst.txtreflection.rst.txtsequence.rst.txtset.rst.txtslice.rst.txtstable.rst.txtstructures.rst.txtsys.rst.txttuple.rst.txttype.rst.txttypeobj.rst.txtunicode.rst.txtutilities.rst.txtveryhigh.rst.txtweakref.rst.txtcontents.rst.txtcopyright.rst.txtdistributingindex.rst.txtdistutilsapiref.rst.txtbuiltdist.rst.txtcommandref.rst.txtconfigfile.rst.txtexamples.rst.txtextending.rst.txtindex.rst.txtintroduction.rst.txtpackageindex.rst.txtsetupscript.rst.txtsourcedist.rst.txtuploading.rst.txtextendingbuilding.rst.txtembedding.rst.txtextending.rst.txtindex.rst.txtnewtypes.rst.txtnewtypes_tutorial.rst.txtwindows.rst.txtfaqdesign.rst.txtextending.rst.txtgeneral.rst.txtgui.rst.txtindex.rst.txtinstalled.rst.txtlibrary.rst.txtprogramming.rst.txtwindows.rst.txtglossary.rst.txthowtoargparse.rst.txtclinic.rst.txtcporting.rst.txtcurses.rst.txtdescriptor.rst.txtfunctional.rst.txtindex.rst.txtinstrumentation.rst.txtipaddress.rst.txtlogging-cookbook.rst.txtlogging.rst.txtpyporting.rst.txtregex.rst.txtsockets.rst.txtsorting.rst.txtunicode.rst.txturllib2.rst.txtinstallindex.rst.txtinstallingindex.rst.txtlibrary2to3.rst.txt__future__.rst.txt__main__.rst.txt_dummy_thread.rst.txt_thread.rst.txtabc.rst.txtaifc.rst.txtallos.rst.txtarchiving.rst.txtargparse.rst.txtarray.rst.txtast.rst.txtasynchat.rst.txtasyncio-dev.rst.txtasyncio-eventloop.rst.txtasyncio-eventloops.rst.txtasyncio-protocol.rst.txtasyncio-queue.rst.txtasyncio-stream.rst.txtasyncio-subprocess.rst.txtasyncio-sync.rst.txtasyncio-task.rst.txtasyncio.rst.txtasyncore.rst.txtatexit.rst.txtaudioop.rst.txtbase64.rst.txtbdb.rst.txtbinary.rst.txtbinascii.rst.txtbinhex.rst.txtbisect.rst.txtbuiltins.rst.txtbz2.rst.txtcalendar.rst.txtcgi.rst.txtcgitb.rst.txtchunk.rst.txtcmath.rst.txtcmd.rst.txtcode.rst.txtcodecs.rst.txtcodeop.rst.txtcollections.abc.rst.txtcollections.rst.txtcolorsys.rst.txtcompileall.rst.txtconcurrency.rst.txtconcurrent.futures.rst.txtconcurrent.rst.txtconfigparser.rst.txtconstants.rst.txtcontextlib.rst.txtcopy.rst.txtcopyreg.rst.txtcrypt.rst.txtcrypto.rst.txtcsv.rst.txtctypes.rst.txtcurses.ascii.rst.txtcurses.panel.rst.txtcurses.rst.txtcustominterp.rst.txtdatatypes.rst.txtdatetime.rst.txtdbm.rst.txtdebug.rst.txtdecimal.rst.txtdevelopment.rst.txtdifflib.rst.txtdis.rst.txtdistribution.rst.txtdistutils.rst.txtdoctest.rst.txtdummy_threading.rst.txtemail.charset.rst.txtemail.compat32-message.rst.txtemail.contentmanager.rst.txtemail.encoders.rst.txtemail.errors.rst.txtemail.examples.rst.txtemail.generator.rst.txtemail.header.rst.txtemail.headerregistry.rst.txtemail.iterators.rst.txtemail.message.rst.txtemail.mime.rst.txtemail.parser.rst.txtemail.policy.rst.txtemail.rst.txtemail.utils.rst.txtensurepip.rst.txtenum.rst.txterrno.rst.txtexceptions.rst.txtfaulthandler.rst.txtfcntl.rst.txtfilecmp.rst.txtfileformats.rst.txtfileinput.rst.txtfilesys.rst.txtfnmatch.rst.txtformatter.rst.txtfpectl.rst.txtfractions.rst.txtframeworks.rst.txtftplib.rst.txtfunctional.rst.txtfunctions.rst.txtfunctools.rst.txtgc.rst.txtgetopt.rst.txtgetpass.rst.txtgettext.rst.txtglob.rst.txtgrp.rst.txtgzip.rst.txthashlib.rst.txtheapq.rst.txthmac.rst.txthtml.entities.rst.txthtml.parser.rst.txthtml.rst.txthttp.client.rst.txthttp.cookiejar.rst.txthttp.cookies.rst.txthttp.rst.txthttp.server.rst.txti18n.rst.txtidle.rst.txtimaplib.rst.txtimghdr.rst.txtimp.rst.txtimportlib.rst.txtindex.rst.txtinspect.rst.txtinternet.rst.txtintro.rst.txtio.rst.txtipaddress.rst.txtipc.rst.txtitertools.rst.txtjson.rst.txtkeyword.rst.txtlanguage.rst.txtlinecache.rst.txtlocale.rst.txtlogging.config.rst.txtlogging.handlers.rst.txtlogging.rst.txtlzma.rst.txtmacpath.rst.txtmailbox.rst.txtmailcap.rst.txtmarkup.rst.txtmarshal.rst.txtmath.rst.txtmimetypes.rst.txtmisc.rst.txtmm.rst.txtmmap.rst.txtmodulefinder.rst.txtmodules.rst.txtmsilib.rst.txtmsvcrt.rst.txtmultiprocessing.rst.txtnetdata.rst.txtnetrc.rst.txtnis.rst.txtnntplib.rst.txtnumbers.rst.txtnumeric.rst.txtoperator.rst.txtoptparse.rst.txtos.path.rst.txtos.rst.txtossaudiodev.rst.txtothergui.rst.txtparser.rst.txtpathlib.rst.txtpdb.rst.txtpersistence.rst.txtpickle.rst.txtpickletools.rst.txtpipes.rst.txtpkgutil.rst.txtplatform.rst.txtplistlib.rst.txtpoplib.rst.txtposix.rst.txtpprint.rst.txtprofile.rst.txtpty.rst.txtpwd.rst.txtpy_compile.rst.txtpyclbr.rst.txtpydoc.rst.txtpyexpat.rst.txtpython.rst.txtqueue.rst.txtquopri.rst.txtrandom.rst.txtre.rst.txtreadline.rst.txtreprlib.rst.txtresource.rst.txtrlcompleter.rst.txtrunpy.rst.txtsched.rst.txtsecrets.rst.txtselect.rst.txtselectors.rst.txtshelve.rst.txtshlex.rst.txtshutil.rst.txtsignal.rst.txtsite.rst.txtsmtpd.rst.txtsmtplib.rst.txtsndhdr.rst.txtsocket.rst.txtsocketserver.rst.txtspwd.rst.txtsqlite3.rst.txtssl.rst.txtstat.rst.txtstatistics.rst.txtstdtypes.rst.txtstring.rst.txtstringprep.rst.txtstruct.rst.txtsubprocess.rst.txtsunau.rst.txtsuperseded.rst.txtsymbol.rst.txtsymtable.rst.txtsys.rst.txtsysconfig.rst.txtsyslog.rst.txttabnanny.rst.txttarfile.rst.txttelnetlib.rst.txttempfile.rst.txttermios.rst.txttest.rst.txttext.rst.txttextwrap.rst.txtthreading.rst.txttime.rst.txttimeit.rst.txttk.rst.txttkinter.rst.txttkinter.scrolledtext.rst.txttkinter.tix.rst.txttkinter.ttk.rst.txttoken.rst.txttokenize.rst.txttrace.rst.txttraceback.rst.txttracemalloc.rst.txttty.rst.txtturtle.rst.txttypes.rst.txttyping.rst.txtundoc.rst.txtunicodedata.rst.txtunittest.mock-examples.rst.txtunittest.mock.rst.txtunittest.rst.txtunix.rst.txturllib.error.rst.txturllib.parse.rst.txturllib.request.rst.txturllib.robotparser.rst.txturllib.rst.txtuu.rst.txtuuid.rst.txtvenv.rst.txtwarnings.rst.txtwave.rst.txtweakref.rst.txtwebbrowser.rst.txtwindows.rst.txtwinreg.rst.txtwinsound.rst.txtwsgiref.rst.txtxdrlib.rst.txtxml.dom.minidom.rst.txtxml.dom.pulldom.rst.txtxml.dom.rst.txtxml.etree.elementtree.rst.txtxml.rst.txtxml.sax.handler.rst.txtxml.sax.reader.rst.txtxml.sax.rst.txtxml.sax.utils.rst.txtxmlrpc.client.rst.txtxmlrpc.rst.txtxmlrpc.server.rst.txtzipapp.rst.txtzipfile.rst.txtzipimport.rst.txtzlib.rst.txtlicense.rst.txtreferencecompound_stmts.rst.txtdatamodel.rst.txtexecutionmodel.rst.txtexpressions.rst.txtgrammar.rst.txtimport.rst.txtindex.rst.txtintroduction.rst.txtlexical_analysis.rst.txtsimple_stmts.rst.txttoplevel_components.rst.txttutorialappendix.rst.txtappetite.rst.txtclasses.rst.txtcontrolflow.rst.txtdatastructures.rst.txterrors.rst.txtfloatingpoint.rst.txtindex.rst.txtinputoutput.rst.txtinteractive.rst.txtinterpreter.rst.txtintroduction.rst.txtmodules.rst.txtstdlib.rst.txtstdlib2.rst.txtvenv.rst.txtwhatnow.rst.txtusingcmdline.rst.txtindex.rst.txtmac.rst.txtunix.rst.txtwindows.rst.txtwhatsnew2.0.rst.txt2.1.rst.txt2.2.rst.txt2.3.rst.txt2.4.rst.txt2.5.rst.txt2.6.rst.txt2.7.rst.txt3.0.rst.txt3.1.rst.txt3.2.rst.txt3.3.rst.txt3.4.rst.txt3.5.rst.txt3.6.rst.txtchangelog.rst.txtindex.rst.txt_staticajax-loader.gifbasic.cssclassic.csscomment-bright.pngcomment-close.pngcomment.pngcopybutton.jsdefault.cssdoctools.jsdocumentation_options.jsdown-pressed.pngdown.pngfile.pngjquery-3.2.1.jsjquery.jslanguage_data.jsminus.pngopensearch.xmlplus.pngpy.pngpydoctheme.csspygments.csssearchtools.jssidebar.jsswitchers.jsunderscore-1.3.1.jsunderscore.jsup-pressed.pngup.pngwebsupport.jsabout.htmlbugs.htmlc-apiabstract.htmlallocation.htmlapiabiversion.htmlarg.htmlbool.htmlbuffer.htmlbytearray.htmlbytes.htmlcapsule.htmlcell.htmlcode.htmlcodec.htmlcomplex.htmlconcrete.htmlconversion.htmlcoro.htmldatetime.htmldescriptor.htmldict.htmlexceptions.htmlfile.htmlfloat.htmlfunction.htmlgcsupport.htmlgen.htmlimport.htmlindex.htmlinit.htmlintro.htmliter.htmliterator.htmllist.htmllong.htmlmapping.htmlmarshal.htmlmemory.htmlmemoryview.htmlmethod.htmlmodule.htmlnone.htmlnumber.htmlobjbuffer.htmlobject.htmlobjimpl.htmlrefcounting.htmlreflection.htmlsequence.htmlset.htmlslice.htmlstable.htmlstructures.htmlsys.htmltuple.htmltype.htmltypeobj.htmlunicode.htmlutilities.htmlveryhigh.htmlweakref.htmlcontents.htmlcopyright.htmldistributingindex.htmldistutilsapiref.htmlbuiltdist.htmlcommandref.htmlconfigfile.htmlexamples.htmlextending.htmlindex.htmlintroduction.htmlpackageindex.htmlsetupscript.htmlsourcedist.htmluploading.htmldownload.htmlextendingbuilding.htmlembedding.htmlextending.htmlindex.htmlnewtypes.htmlnewtypes_tutorial.htmlwindows.htmlfaqdesign.htmlextending.htmlgeneral.htmlgui.htmlindex.htmlinstalled.htmllibrary.htmlprogramming.htmlwindows.htmlgenindex-A.htmlgenindex-B.htmlgenindex-C.htmlgenindex-D.htmlgenindex-E.htmlgenindex-F.htmlgenindex-G.htmlgenindex-H.htmlgenindex-I.htmlgenindex-J.htmlgenindex-K.htmlgenindex-L.htmlgenindex-M.htmlgenindex-N.htmlgenindex-O.htmlgenindex-P.htmlgenindex-Q.htmlgenindex-R.htmlgenindex-S.htmlgenindex-Symbols.htmlgenindex-T.htmlgenindex-U.htmlgenindex-V.htmlgenindex-W.htmlgenindex-X.htmlgenindex-Y.htmlgenindex-Z.htmlgenindex-_.htmlgenindex-all.htmlgenindex.htmlglossary.htmlhowtoargparse.htmlclinic.htmlcporting.htmlcurses.htmldescriptor.htmlfunctional.htmlindex.htmlinstrumentation.htmlipaddress.htmllogging-cookbook.htmllogging.htmlpyporting.htmlregex.htmlsockets.htmlsorting.htmlunicode.htmlurllib2.htmlindex.htmlinstallindex.htmlinstallingindex.htmllibrary2to3.html__future__.html__main__.html_dummy_thread.html_thread.htmlabc.htmlaifc.htmlallos.htmlarchiving.htmlargparse.htmlarray.htmlast.htmlasynchat.htmlasyncio-dev.htmlasyncio-eventloop.htmlasyncio-eventloops.htmlasyncio-protocol.htmlasyncio-queue.htmlasyncio-stream.htmlasyncio-subprocess.htmlasyncio-sync.htmlasyncio-task.htmlasyncio.htmlasyncore.htmlatexit.htmlaudioop.htmlbase64.htmlbdb.htmlbinary.htmlbinascii.htmlbinhex.htmlbisect.htmlbuiltins.htmlbz2.htmlcalendar.htmlcgi.htmlcgitb.htmlchunk.htmlcmath.htmlcmd.htmlcode.htmlcodecs.htmlcodeop.htmlcollections.abc.htmlcollections.htmlcolorsys.htmlcompileall.htmlconcurrency.htmlconcurrent.futures.htmlconcurrent.htmlconfigparser.htmlconstants.htmlcontextlib.htmlcopy.htmlcopyreg.htmlcrypt.htmlcrypto.htmlcsv.htmlctypes.htmlcurses.ascii.htmlcurses.htmlcurses.panel.htmlcustominterp.htmldatatypes.htmldatetime.htmldbm.htmldebug.htmldecimal.htmldevelopment.htmldifflib.htmldis.htmldistribution.htmldistutils.htmldoctest.htmldummy_threading.htmlemail.charset.htmlemail.compat32-message.htmlemail.contentmanager.htmlemail.encoders.htmlemail.errors.htmlemail.examples.htmlemail.generator.htmlemail.header.htmlemail.headerregistry.htmlemail.htmlemail.iterators.htmlemail.message.htmlemail.mime.htmlemail.parser.htmlemail.policy.htmlemail.utils.htmlensurepip.htmlenum.htmlerrno.htmlexceptions.htmlfaulthandler.htmlfcntl.htmlfilecmp.htmlfileformats.htmlfileinput.htmlfilesys.htmlfnmatch.htmlformatter.htmlfpectl.htmlfractions.htmlframeworks.htmlftplib.htmlfunctional.htmlfunctions.htmlfunctools.htmlgc.htmlgetopt.htmlgetpass.htmlgettext.htmlglob.htmlgrp.htmlgzip.htmlhashlib.htmlheapq.htmlhmac.htmlhtml.entities.htmlhtml.htmlhtml.parser.htmlhttp.client.htmlhttp.cookiejar.htmlhttp.cookies.htmlhttp.htmlhttp.server.htmli18n.htmlidle.htmlimaplib.htmlimghdr.htmlimp.htmlimportlib.htmlindex.htmlinspect.htmlinternet.htmlintro.htmlio.htmlipaddress.htmlipc.htmlitertools.htmljson.htmlkeyword.htmllanguage.htmllinecache.htmllocale.htmllogging.config.htmllogging.handlers.htmllogging.htmllzma.htmlmacpath.htmlmailbox.htmlmailcap.htmlmarkup.htmlmarshal.htmlmath.htmlmimetypes.htmlmisc.htmlmm.htmlmmap.htmlmodulefinder.htmlmodules.htmlmsilib.htmlmsvcrt.htmlmultiprocessing.htmlnetdata.htmlnetrc.htmlnis.htmlnntplib.htmlnumbers.htmlnumeric.htmloperator.htmloptparse.htmlos.htmlos.path.htmlossaudiodev.htmlothergui.htmlparser.htmlpathlib.htmlpdb.htmlpersistence.htmlpickle.htmlpickletools.htmlpipes.htmlpkgutil.htmlplatform.htmlplistlib.htmlpoplib.htmlposix.htmlpprint.htmlprofile.htmlpty.htmlpwd.htmlpy_compile.htmlpyclbr.htmlpydoc.htmlpyexpat.htmlpython.htmlqueue.htmlquopri.htmlrandom.htmlre.htmlreadline.htmlreprlib.htmlresource.htmlrlcompleter.htmlrunpy.htmlsched.htmlsecrets.htmlselect.htmlselectors.htmlshelve.htmlshlex.htmlshutil.htmlsignal.htmlsite.htmlsmtpd.htmlsmtplib.htmlsndhdr.htmlsocket.htmlsocketserver.htmlspwd.htmlsqlite3.htmlssl.htmlstat.htmlstatistics.htmlstdtypes.htmlstring.htmlstringprep.htmlstruct.htmlsubprocess.htmlsunau.htmlsuperseded.htmlsymbol.htmlsymtable.htmlsys.htmlsysconfig.htmlsyslog.htmltabnanny.htmltarfile.htmltelnetlib.htmltempfile.htmltermios.htmltest.htmltext.htmltextwrap.htmlthreading.htmltime.htmltimeit.htmltk.htmltkinter.htmltkinter.scrolledtext.htmltkinter.tix.htmltkinter.ttk.htmltoken.htmltokenize.htmltrace.htmltraceback.htmltracemalloc.htmltty.htmlturtle.htmltypes.htmltyping.htmlundoc.htmlunicodedata.htmlunittest.htmlunittest.mock-examples.htmlunittest.mock.htmlunix.htmlurllib.error.htmlurllib.htmlurllib.parse.htmlurllib.request.htmlurllib.robotparser.htmluu.htmluuid.htmlvenv.htmlwarnings.htmlwave.htmlweakref.htmlwebbrowser.htmlwindows.htmlwinreg.htmlwinsound.htmlwsgiref.htmlxdrlib.htmlxml.dom.htmlxml.dom.minidom.htmlxml.dom.pulldom.htmlxml.etree.elementtree.htmlxml.htmlxml.sax.handler.htmlxml.sax.htmlxml.sax.reader.htmlxml.sax.utils.htmlxmlrpc.client.htmlxmlrpc.htmlxmlrpc.server.htmlzipapp.htmlzipfile.htmlzipimport.htmlzlib.htmllicense.htmlobjects.invpy-modindex.htmlreferencecompound_stmts.htmldatamodel.htmlexecutionmodel.htmlexpressions.htmlgrammar.htmlimport.htmlindex.htmlintroduction.htmllexical_analysis.htmlsimple_stmts.htmltoplevel_components.htmlsearch.htmlsearchindex.jstutorialappendix.htmlappetite.htmlclasses.htmlcontrolflow.htmldatastructures.htmlerrors.htmlfloatingpoint.htmlindex.htmlinputoutput.htmlinteractive.htmlinterpreter.htmlintroduction.htmlmodules.htmlstdlib.htmlstdlib2.htmlvenv.htmlwhatnow.htmlusingcmdline.htmlindex.htmlmac.htmlunix.htmlwindows.htmlwhatsnew2.0.html2.1.html2.2.html2.3.html2.4.html2.5.html2.6.html2.7.html3.0.html3.1.html3.2.html3.3.html3.4.html3.5.html3.6.htmlchangelog.htmlindex.html/usr/share/doc/packages//usr/share/doc/packages/python3.6//usr/share/doc/packages/python3.6/Misc//usr/share/doc/packages/python3.6/html//usr/share/doc/packages/python3.6/html/_images//usr/share/doc/packages/python3.6/html/_sources//usr/share/doc/packages/python3.6/html/_sources/c-api//usr/share/doc/packages/python3.6/html/_sources/distributing//usr/share/doc/packages/python3.6/html/_sources/distutils//usr/share/doc/packages/python3.6/html/_sources/extending//usr/share/doc/packages/python3.6/html/_sources/faq//usr/share/doc/packages/python3.6/html/_sources/howto//usr/share/doc/packages/python3.6/html/_sources/install//usr/share/doc/packages/python3.6/html/_sources/installing//usr/share/doc/packages/python3.6/html/_sources/library//usr/share/doc/packages/python3.6/html/_sources/reference//usr/share/doc/packages/python3.6/html/_sources/tutorial//usr/share/doc/packages/python3.6/html/_sources/using//usr/share/doc/packages/python3.6/html/_sources/whatsnew//usr/share/doc/packages/python3.6/html/_static//usr/share/doc/packages/python3.6/html/c-api//usr/share/doc/packages/python3.6/html/distributing//usr/share/doc/packages/python3.6/html/distutils//usr/share/doc/packages/python3.6/html/extending//usr/share/doc/packages/python3.6/html/faq//usr/share/doc/packages/python3.6/html/howto//usr/share/doc/packages/python3.6/html/install//usr/share/doc/packages/python3.6/html/installing//usr/share/doc/packages/python3.6/html/library//usr/share/doc/packages/python3.6/html/reference//usr/share/doc/packages/python3.6/html/tutorial//usr/share/doc/packages/python3.6/html/using//usr/share/doc/packages/python3.6/html/whatsnew/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:41872/SUSE_SLE-15-SP3_Update/06e29161066155c2b58c031501573ba3-python3.SUSE_SLE-15-SP3_Update:docdrpmxz5x86_64-suse-linux directoryUTF-8 Unicode textAlgol 68 source, UTF-8 Unicode textASCII textRuby script, ASCII textPython script, ASCII text executablePOSIX shell script, ASCII text executabletroff or preprocessor input, ASCII textPNG image data, 500 x 320, 8-bit colormap, non-interlacedPNG image data, 955 x 758, 8-bit/color RGB, non-interlacedPNG image data, 538 x 495, 8-bit/color RGBA, non-interlacedPNG image data, 1062 x 513, 8-bit/color RGB, non-interlacedPNG image data, 250 x 250, 8-bit/color RGB, non-interlacedPNG image data, 670 x 414, 8-bit/color RGBA, non-interlacedLaTeX document, ASCII textPython script, UTF-8 Unicode text executableC source, UTF-8 Unicode textAlgol 68 source, ASCII textHTML document, ASCII textUTF-8 Unicode text, with very long linesPython script text executable Python script, ASCII text executableASCII text, with very long linesGIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 16, 8-bit gray+alpha, non-interlacedPNG image data, 11 x 11, 8-bit grayscale, non-interlacedXML 1.0 document, ASCII textHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesHTML document, ASCII text, with very long linesASCII text, with very long lines, with no line terminators4ӨlOWQEpython33.6utf-8ad755a58844f8a6ecc9ecb7c5df8328759d4ef35f2730e1cec0f78b1428ff2d9?7zXZ !t/(d-]"k%a ZmۢL,%?kc1AXd*wjPp` ftimU_ zB!PrΌնws3aQ4PmpJ>^uÙv>(t)in74]ևhx(~ifQI v%%/>ǂ$f3HGQ{OL,E "v/S?N"*' DP&$9`ol{2;GX)YK߇v"ȃN/FۆH#؋e{)fr(`'#ZL}ݡCVaٸrP.D~{xw8 `|Ϙ!GQNcl'-Rtm6 f/j}q 9y;Zw>_o;P%`Ɓl!!+86C68R* K9򝑭@5wHOo(ҭxMDr_kTaVF#22-/ פ-z{go ΄Oǂ-WPrdJr<զF^{ԱI +2OJEF o<N { vL4G6ag\FX_yh$b.d˥TJ#TzUC>eO;uaBY)$Bt^>}֓DBJd`vq)圷N%)ciKK,}AӬ#YyѥQCO\sE(\0bMB1\(L@M_]tjWV9"RSUxYK-/Ȑf0"t4̟ػ8 +]]tp谠Wvj^o9x.7ۮX$_Ck52CP0bU c&:^I49d*fuU95x>D"<+5%\37WJ@1FOdב*7c(MɎ ^b fcsR/ ;?jtÝLl龻*߶m9C@> }fN^8mUL_񥾚3G7-qV]pt71CpO}8\W7^acvn7AvoI,Lt6י=X9-rY"+oB]!'NL` Ui7QI!_ Wo禵XVlB&IQM8 Vc1}Df_|ɳRs}PT7yͫDw^ lk|߆bc SvxzR&{3~dIzfjE}b;q5|#v=xh6'M45Ըx_1 -$ҫxg\w4m@kNA J;tw_kE(?_tޮ*M i|{և599gM$ޥ AeeP[F %^6|>o>ҫHҼiW.`VӖ3r3d |};rw}Kiy@x|ORg_"!ˁvaLi ^G gAxiwLGc ` 1$M2BV]֢@`sc ͥ%dI_,mЁ>љZ飴 # 0!LY >JbC>)Jz݇ I>3?'S~\*$^-\$Tۆ#\a<@3JG;3רϭ?4 ! 5?(%#GM5hpaѠcd/wL_~`3sLGZ7Jf'I֞t]Ä!=FBN"*Ew< u RX8cEks3O|pS*CwQo>ƪeߍRZ>He;ӲUk<:Kil3q6TE XKLzxu1f]f?>d1QvZ;{)[c:gOCRyqͪ.y9̱hwAF|/4!跻uR%```jwj40TU>$ FAKy!Qf98Di>EUs |ho]0y7T74]",訤cU@v2o !@2A, (vN]Z;VWBQgp eQX9Yeo-iQ9*4huyHp G6Y`Ir1z:U3[@63%rFYf'z68vh˕]ٰ`)5P+&82 5Q3V>ˀwv! / +H,/'L>kL[17Nl򮑪>_2z+lkt`x +ǵQ&[F Vn8,@X SzZ%`G>]7ʃ7]Kh5WriaO"XZ1J (m~oEYV}Ek ńw,Ңld rWR:D!=_c)3t}`pΩJ nR"/bvVDo/ة^1 #g%GGy!\CkAUh"ҤtX^u 6q1VHƝWέ&UeN T2,8Tu8UYVH9UmrV56M% \l2zFҤ%茂M̬ǡ*qT{Y-uqg n6nk_5Dsh9?IdG~3DvZBzd9K ȉgu'Ű~@worh/ W~C&5]Eel>5 Wmۢ|`M? QZ 9F H(k`s@ExY7M.t|lW<dFʁR2PhH YZ