From 9354af2d044a435a0cfb9fc4e7f26311e7192de9 Mon Sep 17 00:00:00 2001 From: Carl Lundin Date: Wed, 16 Aug 2023 10:26:16 -0700 Subject: [PATCH 1/5] chore: Add deprecation notice for 3.6 and 3.7. --- google/auth/__init__.py | 24 ++++++++++++++++++++++++ google/oauth2/__init__.py | 25 +++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/google/auth/__init__.py b/google/auth/__init__.py index 2875772b3..57b6e8787 100644 --- a/google/auth/__init__.py +++ b/google/auth/__init__.py @@ -15,6 +15,8 @@ """Google Auth Library for Python.""" import logging +import sys +import warnings from google.auth import version as google_auth_version from google.auth._default import ( @@ -29,5 +31,27 @@ __all__ = ["default", "load_credentials_from_file", "load_credentials_from_dict"] + +class Python37DeprecationWarning(DeprecationWarning): + """ + Deprecation warning raised when Python 3.7 runtime is detected. + Python 3.7 support will be dropped after January 1, 2024. See + https://cloud.google.com/python/docs/python37-sunset/ for more information. + """ + + pass + + +# Checks if the current runtime is Python 3.7. +if sys.version_info.major == 3 and sys.version_info.minor == 7: + message = ( + "After January 1, 2024, new releases of this library will drop support " + "for Python 3.7. More details about Python 3.7 support for Client Libraries " + "can be found at https://cloud.google.com/python/docs/python37-sunset/" + ) + # Configure the Python37DeprecationWarning warning so that it is only emitted once. + warnings.simplefilter("once", Python37DeprecationWarning) + warnings.warn(message, Python37DeprecationWarning) + # Set default logging handler to avoid "No handler found" warnings. logging.getLogger(__name__).addHandler(logging.NullHandler()) diff --git a/google/oauth2/__init__.py b/google/oauth2/__init__.py index 4fb71fd1a..56bf91356 100644 --- a/google/oauth2/__init__.py +++ b/google/oauth2/__init__.py @@ -13,3 +13,28 @@ # limitations under the License. """Google OAuth 2.0 Library for Python.""" + +import sys +import warnings + + +class Python37DeprecationWarning(DeprecationWarning): + """ + Deprecation warning raised when Python 3.7 runtime is detected. + Python 3.7 support will be dropped after January 1, 2024. See + https://cloud.google.com/python/docs/python37-sunset/ for more information. + """ + + pass + + +# Checks if the current runtime is Python 3.7. +if sys.version_info.major == 3 and sys.version_info.minor == 7: + message = ( + "After January 1, 2024, new releases of this library will drop support " + "for Python 3.7. More details about Python 3.7 support for Client Libraries " + "can be found at https://cloud.google.com/python/docs/python37-sunset/" + ) + # Configure the Python37DeprecationWarning warning so that it is only emitted once. + warnings.simplefilter("once", Python37DeprecationWarning) + warnings.warn(message, Python37DeprecationWarning) From 1a8aad4de0fdae825d92837e7e34d023f1d5a3ed Mon Sep 17 00:00:00 2001 From: Carl Lundin Date: Thu, 7 Sep 2023 11:26:41 -0700 Subject: [PATCH 2/5] Update readme. Rebase to main. Fix coverage failure. --- README.rst | 10 ++++++++++ google/auth/__init__.py | 11 ++++++----- google/oauth2/__init__.py | 6 +++--- system_tests/secrets.tar.enc | Bin 10324 -> 10324 bytes 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/README.rst b/README.rst index cdd19bed5..dfc1596f0 100644 --- a/README.rst +++ b/README.rst @@ -37,6 +37,16 @@ Supported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^ Python >= 3.7 +**NOTE**: +Python 3.7 was marked as `unsupported`_ by the python community in June 2023. +We recommend that all developers upgrade to Python 3.8 and newer as soon as +they can. Support for Python 3.7 will be removed from this library after +January 1 2024. Previous releases that support Python 3.7 will continue to be available +for download, but releases after January 1 2024 will only target Python 3.8 and +newer. + +.. _unsupported: https://devguide.python.org/versions/#unsupported-versions + Unsupported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Python == 2.7: The last version of this library with support for Python 2.7 diff --git a/google/auth/__init__.py b/google/auth/__init__.py index 57b6e8787..6490d5daf 100644 --- a/google/auth/__init__.py +++ b/google/auth/__init__.py @@ -32,7 +32,7 @@ __all__ = ["default", "load_credentials_from_file", "load_credentials_from_dict"] -class Python37DeprecationWarning(DeprecationWarning): +class Python37DeprecationWarning(DeprecationWarning): # pragma: NO COVER """ Deprecation warning raised when Python 3.7 runtime is detected. Python 3.7 support will be dropped after January 1, 2024. See @@ -41,14 +41,15 @@ class Python37DeprecationWarning(DeprecationWarning): pass - -# Checks if the current runtime is Python 3.7. -if sys.version_info.major == 3 and sys.version_info.minor == 7: + # Checks if the current runtime is Python 3.7. message = ( "After January 1, 2024, new releases of this library will drop support " - "for Python 3.7. More details about Python 3.7 support for Client Libraries " + "for Python 3.7. More details about Python 3.7 support " "can be found at https://cloud.google.com/python/docs/python37-sunset/" ) + + +if sys.version_info.major == 3 and sys.version_info.minor == 7: # pragma: NO COVER # Configure the Python37DeprecationWarning warning so that it is only emitted once. warnings.simplefilter("once", Python37DeprecationWarning) warnings.warn(message, Python37DeprecationWarning) diff --git a/google/oauth2/__init__.py b/google/oauth2/__init__.py index 56bf91356..3ebf219fd 100644 --- a/google/oauth2/__init__.py +++ b/google/oauth2/__init__.py @@ -18,7 +18,7 @@ import warnings -class Python37DeprecationWarning(DeprecationWarning): +class Python37DeprecationWarning(DeprecationWarning): # pragma: NO COVER """ Deprecation warning raised when Python 3.7 runtime is detected. Python 3.7 support will be dropped after January 1, 2024. See @@ -29,10 +29,10 @@ class Python37DeprecationWarning(DeprecationWarning): # Checks if the current runtime is Python 3.7. -if sys.version_info.major == 3 and sys.version_info.minor == 7: +if sys.version_info.major == 3 and sys.version_info.minor == 7: # pragma: NO COVER message = ( "After January 1, 2024, new releases of this library will drop support " - "for Python 3.7. More details about Python 3.7 support for Client Libraries " + "for Python 3.7. More details about Python 3.7 support " "can be found at https://cloud.google.com/python/docs/python37-sunset/" ) # Configure the Python37DeprecationWarning warning so that it is only emitted once. diff --git a/system_tests/secrets.tar.enc b/system_tests/secrets.tar.enc index 1e35ceb608aa3ca17b8d212e889573d579769066..365a25c1d3f4fc5bf32be3b6e47abfdd679c41fc 100644 GIT binary patch literal 10324 zcmV-aD67{BB>?tKRTH+EuO#tHqd$C(%dZqU`kzZW(-Vd0wBp*2u%_`H6e1F;Pyn$b zkPIa5ZqnJq+d0#+;opxwi-HhE>-R@KcGffbW6Y2}r@5SI5LF}XMIl&-_%Gs1QJ!?IM%c12ikQIjsFYA2^xTJ= z2S@6C4(#30@YY2YljUEFoRKcIrG_v_VzYIBQc(1dFXQjOV}m)i>#zTNaf02{gC(sC zwGL&1bJNf*t+N5kqKh<`V}ya=CzI|lwGX{0#WtL=|AyLz(u}9_UVGlapD#PykN8yi z2UJn^Z2fDp_M9~t`?!7!;7z@z0-?$Uu8-I$ew1cez7+Ww^G3snzHk=m$~@!G3RT?^ zOy=OMK-mc>OswWzM<7JxWjF_>wJWk-u}T?so&NvwbW#?y$W^ok9U8H6w|nJ_*dp6h zZv*9;w9f7drxI9VM>c*u3LDYjq}~fsG>*@o%ys7W#``ijc67SrsQi0Z_$fVZl-$8Q zm@Si8ta*OEJ#;36Ho75+L$4||F28^v#gjs;n4T~4W6TmvjrTaw`94h8g z*7JEkxFvKP|oGgTzxZPB}EzGf%$g0 zUmMv>g7Jg8*mTT&>)Q<)06Q&d{S{>YNzk?6Kj#VFJV11j>E4yVvS)Lr{X*2Bl1oY; z-^R1R%L%?&jAotvFJ9RtTZD6+o|{{lYa)#+S%=22yNN+Xm_nZS0I?S1)WW z(c>yPQB+Frm zR4HQ6LlZMCV()EO5uW1?1;gdH?Zo|@>5E}xj)3qAoAggz@ri2T zPcu8!yFf6p^P`33)A?^?>BsjDm!rl;s{!bz7(VU0CFS7!#mfz>ICnp#SvJ68C;-L# z6{`^Y6GEhmlHp-?I;3Y@5z1dg%!|{YdC>X4>6dn^oE8?N&fyZ?`cbK z#0kDV7{6=*ej)_1Sf(Y)ei18!$tBy8JK_~nCaMWxMyz;TCpfTwPLQZ+kg7p*RhqnC zSuKK1;8UJ>xT+~^$dU`N{nRZqm9V|5!pMVJ0f{y2E|Gc3%q#h<(5m=+7otqn<5Tp1 zMn1?6Z?RAAsC|_Qh0%=ACZ73niB#*xkA%r(P{{PqTWzYgabAB&_p?0Ap#l+rZ z?q<;cJf3CRxOv#ESaTAW-diA`@{4WA!cK?WkUt}+H&T$fBFqyHoVL%J4g{@kI8_qZ z>CtvEmQdv{*+)z7qvMoWQ=!k!BK#u?b{%(E>I-r&NtVU<0a{U?6Lnxx5?fgjWvsfD z;keQz{ekuU8?A-z`e-dHw~;zEFYc}P6DyCW&;0lML1RSZb_XV)d-19Tib1Kdry!OJXD1~B4Ang& zVc$ouqd3idNJ!p^`iB&XOvI301+IU+HWK&n#>h^xqX;633skJ~b;#7yY5@8jfLDqu zm~o|i3}IjF++~Ohl3aCRvz7B?(idYdKhPhWQsYh6Vl@bt&^@urCzp#@46;d@ z=(5UFPgLU@+pg15De9B#Qtg{F`u)?@ee>kYy#HLA12%BV02zke$u0x!j^45HYqb=LWE%wQm{Ni&jSO06Z~&cQIAQ(^ zzyLh-Gs&2YIXGnWmdx|}i36mlS-y4^+eYBlzipc@ncrFm>#XxMrpAtVt{iuw0@Klj zGEJL%LT%06N_8DTqt6oam``g4r|!8Cdf}^MOn1%mxZ70KXu;T5n!FY}Y}}#pJNdjU zPCzTqEhG#Iq;7A8$BAyhA)sx($x&DM-G5jI#xesLR>mv1b*@sHDi}w#owTe^BJTTu z{|%R1oKh!BDf;YpI2~$|g%iIX^cu2%W0W~ns%USIvUSE#)jfpA8{ea-yBcqta`LT` zi$(a$$D9I9@hCRu+w8X8W+jGIt0>=@i6iR+%5;5Vf+0xeDfbH%xvw%{jS&sVa$t{0 zBU_6)VZM(O$DXa9raNGVz#OT2go#+14Vm@v%(*q;U*j1)=F%wb5b*StgnmPM z+nx1oox3jpuN&h&UHIa+#VD8~_M+2FvU7N&^mUtbT=o5=j~`zL{i63+(w%IZ|M)pJ z))uY*%NgzIP%+8L(IL!Do;;#86k~fo?1jV{BAPSY=Z;vBb^C=o^vgPh8Z`cP&uuhyFT4CV%X=3Q4B0lkZxFd&p4=<3 zt7QwRwkx7j0EWuor5vSQp}MWO=iJx<<~Gr5J1BrQx?ak_G=}xmG_whJn+V6ftqOYm zLExLzu+9^LcZK*g!188U55Zd0tw9-tF*H;O7cpguw~vHPYV&>uC98ww+sQvzq> zETv7`lp&sC5FPDAgd}J$*dh6kohnlnj2J%bZi0NgvYT?a2-f0nj6wus(sILYR7NP7 zX%G=xwp{k&ycOAkQC=$~`J8oqkA^_@nW88o{>sZxzuwO&xP4ARccZJ?5pp!ICwh!i ziwGTrogVMUc-6{*OnSQ}i;yEGOD1M7zuan#3d~Y9xB|8YcO7GN1GNWs)-V8#1W@%z zrZKF~@XVr{`i!I+)qtnnuh;jDhS?+}%j4KWOB*5AexXTCH9XCvSdM992O`33o=9w{ zbmA-yTmi&2>qPgmI_b0q)Ic>-UdA+nmEC{riN5){7z|soQBVo_K3tXeBeALkBnYH)M%sy!We9(t1_7_O_4TVMwGIMij z{Xe)vKMp*=l|I%HD&+k>@_L7sM^+wdQ!Z(PBWP`9g@n=|=96K`zki^rRT{aVUFSU4 z)F?v2NTqj*WKh^^^70l{>mFR*n%^7IyA@U+j=V0PPx6rm+x~^Kzz3kC0paxyw|N*? zbu2s|<)-RLSGmoqvD0s*tw(IpI(04K9ezesgr^+;MTYXntpB5&VG65}6`!QpxNU~S zZyAh_kT#q?lCB<#BRW0^kWzmK8H^TYGxi~UvG;-^Dt>!Y($M$8F)=2V(P0y?Z=8Mx zr~NX_=0L2r@>Shggt(@q4tp^7g58Lcm3CZKuv5{DHYi%#8*l!CjsU|LB2bpsGM%Ym z)j;GKrOz>F?&Cm*ORaLcB{-BwJ%s7C?MPqshE3T>OP`>3X=N#rLw#h0dmGyr62JWZ zV7?ZN`q*NZ1~uitDN~XuSIS{Dv8ph0JP_0zCspYBM^}L>BFkcB52m6rz0M99=s4Bx z5kHyzEM2OOR#=@lu-|PeWt)y8rnsUi0`jLV?^@tL&Xv4f{q<*q1vK6zT~_ZH7|N0j zlt73S3$J)dMED>u_=MA4tfM$p!-pKD-=_cd_Cn45s=|6~T)k0>#|F!NZc zxnM1es_)ahf_3HZKom|N4_Yh~b=(r@jswt`Y{S2ED_>9L&v1p$v->5v65RU8M8a z0JMV8+(LiY!{Lw#smB0Rb-vmLbZEGge|1^7W=w)HCPA$g@h^Cm?dBgxw5{i zDhsIMRwI{wltt-BG1#Is zEcbP22Nh~4#bnCmoyEl&?n@6e7TOoJ6< zv!@u4HHlW_h-O@i7yu@)+7+r}W18g&ZCOf7KUBl9;=ol3a@rsyPjw|51|2{^rQ3wr z%J&Zt$KovNV144kZ0vIjsfgohQxAq4| z;E;e$jqn2@n&f;Y`*5wjaC%JQ%e)J+)b{^vi>IA_@tj3AbX8BMf#dv)jE@*(OijEk zi8&!__#EOrN7*D~XOG42HaW@@v!YevP#5uK{$1jW>AscIWtW89K>i}=13l9upu;P% zBX|}p^e#UVkcon(^)KEHG@57WNB(>+n)b#T1Z4V}TN(dpQ-SGU<4n>kyPV+S0v)^8 zYtGx>H4Fse5q%JlTU$m1v#TIoBL)djd%8_5Qr~g3TZyKN=$-!zWN>VtJuCCV729OG za8cKnMvvwu_t^mUa(i;#c8inpkrbsC=H5?qAhaNgKgVTwdd=HgS3dL6v10$Ubz?N) zpu|NSUK6PCx7S6{Zq1f9atX^4pS+RI9$UvVioB_pOn#)x5lA|x5sIg{MFre)D{C`G z!4d{@?~{K`rsKPfX2%)j|%p#ROi3-4qaF+AQIKLSdYRYe^VG%C9BnkwHrU* zmz!=-GmEWPRR#$QT6qGgsB5#vlCjc}Bd`|O3qWl$VsNQx)@~F4-BY@S6CU3^B3eCv zh?*SkWSL+vJmJ^3;lBG_e5F@d)|}+>TdGj(<_}OTnw-w6qH{I%j`=p|#Dm_O#{cK{ z;&+=Ok!hb=rhvC|EHx#$%LKp+BFq#JTVnvvE_v$QfA1^$0CI_%0qXAbdZ>-hWT}nz z*6zziKnnx6Mb;1FKe~mVscB01M}`c zYa*kJmi<(#$N%Bb3Iu;0WQ*C86|eLA)|hG*hn z5J`w`kT`20qGZQqeT;dH_P{Y>WM)kXv3Ch}=}S)|fjX7bjpX`FQr|%xN>?KLj&!c= znu$cihX*TwBg)oH zNf$hpq*es}lI8vl3(5C)eb}p!(VX3g1yR6n;>XS(@7Krh za1iM;?vPcwI<^0repHIwTP;NFAg@`^Y(^39D8dn8SuB>U%y* z1;Wg=O0IB`bL-)pE+Vj!g{ASGe_sf>t|%S55dqM?C>9UZB%>3?(%>DBjFXzk_OB)69zoe@bV88VDJz!dNzp;catX6lhSz%n??w^i;)pT@0+XW#>*7y_m z_o#CR6J2Y6&1ns$B$7Or$N9p^RRA#=Y=J|GCUR--H1Re1t=H*#VDvNQ$1>B_PI`ku zO1+|lYZ1jI557!bU0(Eea8<-Due3TADC>sDi@fe5lt5J!LGU)_Z2}P5(=JB6Bp`Uk zPKCzoQnIUZeyLXzufwgs3NzH)=RcVw{oddrN2~Izpw%_O;@Y^?5|^ku#GdG>i+iZM znMxl!jj;|`$g=^i=wm3!DBFC_1zv)&01b<#YPg*;p_7y$uiz0j1@IR29_|UFxHEUh zUd~5V8!|jnBXpBv4{blb&%YK#4&NJzl9A>EdOsG z-G(17`2P#R-!WkRbvx6^AV8V+!9WjCN&^=VK#_E*MlhO>Ukbs^Pgklj-kR1IVLW8< zYqT}2uS~^}2L!n+1VTjAc8Lhq32~U3r8$l$=Af)rvX5c@12f z!8h(}wF1SXVdW_zE*f$LB>qI&=rS;xJ$DlVGh!X}VcfFzW-2(UF@uV#)>Y}$y^`U! z8!s`ctvGrxUwaKo(IwG6GNv#Z_N&vSNDYX6SYM9niQsMuT3i5~T%gI_F%l9ZwjC^Y zu0ogMgYgNfgHcns+>Bh({-;zrhWv2p$WY*ngVLJFGeG8V(;;GW%Kx?5DvCE!aaT)i_2@g0O zB#c-d<8=F}a%Jn+hF=t{$KY&p#gn7gj9HpO^3R&R7r}2qL5A@w%_!%(V-XL%ZHz`0 z3B+S&KsXjb6N;X86Z&9GzwWcz>;LyT{sPH>;hce_?+1MY2ejw>C(;jK2%X~Hj2^bU zRh^iaQ-lFB`z&eHm@3z_+5-~wm=7)P_Mzd2JEZcy7Brl9fD*N2=pLkmA*?BL64^QV zr7>VZ_o?UH5Be8zkus+mQS65!Mi#`#nCmIElyjh6#+3Z(=G*QZLWI@Ga0w(p8hmygDRkskT_Ga3di$!fsEKk zgIIngi5Pu=9m^Sm#{Ui!Aq`ydMrmfgehrzunl0?^QJRZ(z@6kbp$0#2;6@B}+Q86d zfP%up#%FEkKbbh!Il}<0hG{IC-WhetDqMhkz0@1}9e4{bnS^d6rI$r;MSiwy0&T^R zGxv@CUpa9W3gf({Dpq#6TzY@BfBUwm`p0N}@?QY%&%6?QvwGW16+b|uB4Vmbw?;(AUF(2Yj$0EHjVlpX!i1s65!; zm>*O9E809jF@q2OjZQ+Jb+D-wo7$+fnE28_H?T96G2x56=Qty_g~z{lq-kac=c90Z4*QSiH$zSl$o@I)ce5ZVmTq1u z6Gn2)=q(~X<_*N3qR?CIh_qVj@*;_eY|Bb}q9P*4jqd36lIWfCW+ z`SM_ zPY11V(|VRVO?fWW2WGB46nPFLAilB#+{r9er2y zM36TN-Xt_{x?W$dO-uuAb#0)&Q9-@lPB3AclgN8p;Iztab=Cy*jEeDh_oJ>_jX1Gg zlGQUocp0WbaP{b!|1Tc$7``3A#IKgX$kiIDuoY*f5zV&Cot&~&||=`G^-;+&{e zRMls=(ooKu4ri{Nh7z?9jiBsjjBC9ki}7-CYeXQ74?1hvS*oFSi2Vln)4&~yR`)BP?;Dm- z5Uu($nSm8*DMYGqzBQCRZPrSnGJ)~aujt#O?o&dZu<#RQw^(ek5aya?W`#Q%>Jce45>vbGr(=Cd~YJwH+{k3Py;D-AHD(qif@kVjtxNBwmd$I|9m5X#_ z*mg|fG~fV$O&1jhK!6Hcp(oQ`i60(_mMHkV$|lw+h=U5mT9CM#kLCH|2)Qo)6?_W+w22B8KJkE4lq;ST9X( zx-)F-y{7WDfdWDyrf0TA9gOf_{C!@res*Ift)^|_5!LqY+EiJ)uR#(%DYX!W=1aJH zM2`^$Q}reW&#IfdzFk!Qu)#o~qxB{VOIvX<4PCrc|Lm$4fI|k-{=aV@frI+uULkWl zW(eD)ZOn8FKKzjF!+PDn_u`{=mM~cL%mm~*%i!VWaLzpr5rAs;mIF+j-)keULD=4> z_TpBjC3ZYgK;mrPE3+oR37QG+ykyU+Z0} zk5+3%4d*U$_b;~Z9F)-HY{DIfsckMR`_4=op*%xlPlESaw<`4EvUje40{n+5XJx*3bSCgBhz) z*1(^d*TX4Ekt*+RDUGLTduQ{9@jvu9b2+=J=ces2x-dx@5ZxF}eg8V<0;>~>OS*)0 z33>BSO_9FhT^i% z{-UpTW$>|3K=#y?YY~&E#tZpbQmE70snuc7ircN$k!|YnEz`0u1Eq=wwH&_)icqc= z8@wM!?BVC2T<7-X6cwg0eTh*e0bqXsz|0`WbhH-cT0n=)@TZz5++*q(WLI?rZJ4;b6Wo=2) z0`pXPwSD3@Y^)+=NJ>%I_bN(c9@HglFqlwh!!DIQZnR7)>;BYQK%S6M+zR#qO`V?) z^DE2>1Lac$DEhOqXH2>$H&zX<@>sghXj#c)-5SN;W`c=fvTDPPQFIBd2RuF;cnf(9 zx?QJLg$=0J?vL>aDMQ5AJ%f3apofUKkYQ>ne&k}!k>YP3(@VrDB)XBj3m%<{wNt!9 z!~su5@~x41Qm0j>-$CK)e<{P3!jEu*`L3jQ6_r}c%4#AkvO0)9Z^2#(H;e2cM)+H= z?{dl-aOge3bzP}vYSP^f`Q+o{l(Z!JW=5E61&K{!IfWXJ;q}I?1->zs&*-RGoW9a` zCVs3f8P7xF@D|Q37Pdiu)cmi2libp1n;DW^q{L@+9ND#m9|3x3md40YwSp&I&8X_Fq*Zk^0U4@5+)r<@a&or?Iqf}#ML+)w_O!604%rek=;+=CoDk- z(|h+fRW4W$oyM$Th8>EiHfb@n;c4k^yTZUl@tGsxDsVjCf@(Nc?r2F><_WfN-|Mh!4 zGicT#Z<8W7?D1<2OzZdorTwf;B^1gGwLh;4W1wJ`%`|#&t*=g;kTcBlHSfaY;55F=@)s+D) z%r@8_qd^S*FPSmmF5&K;hr~Zm7Klh7tLI5sOycFv9B;mJq%h*%2cB;r(7X;gS}p)Z z8c1D>$D~O}9ZXgEF}q&A6jTJb=tSPz zOyL6!Va`aGr8ZScCwho`j=zNfhmOKqwulXxQ%cs9{g7jFNHE7&K ze;ij3DCYE8%ySe%v;G1zC7CZ~&FB3|?!_zoOV<5n2swAgWB0)%W@|k1-}{l}?aKT< zo5IBggmE`k^CF(d$USofb+Os=>AyRX6&jL+kvwgupAbzfTOsW9(YvIhEf$lRV&4NCW=FFfuFk1s%v@%q z@eliYbaLZu1K}CI1P-)8Pwwc`aS@;L(1ur11DyCc*xxL68Tv21_E$4WfpT{eVF!>6 zyzZp1-FKXI1tj5MDyTU{VnU=swk5)1dwL!$|9O)LWb!ikX zQ+;-Omvgi6w=gw~ie4uBzW1n?p4xe^Qy<8q&zZv={j|>>#wRnR)fvK#mieLOGgO)v zi$f&`lx81Aa@P!zZOr2Fx@5mkR&`x zfRQ)xexHx6g^p;CkX!GlSQ%PbX(067O=_D$c+n{rI`j=d)??**{1JTTne!Fw@oPkF zvB*U7{0KiG9fCZ5wMz0^O@FM^r*G1a@~{sz9&=tw?_?=o_5CozB@^xg$wru7R-?8N z|2DA5_ivTyX?tKRTHq`zgcOy!rRdfB0$@F+&g!Oh^Io=QA$<+YvQ1v0@xC&Pyp}n zz;77Qbxx+#Rh)sKsG`&ZvfnZS|0lJ{$Mt4y24Im^zltD}_8$O4ob~3e1lD1e%!26W z?6?}?Vm)hlBHNOs@-h7D&F8>cn_E zjA@NV8E{Ee3Ty2XFKLQVNf{1HiRyk~$xi-Psr_^%B?Z9`{z>L_8S6#2jF6sr=`=lB zj6R14m6kcj#^w8@f%2M4ib8ZNy~v~kmIn>>Q@okhs7WKEMe7noZ5rv(hNVa- zSr(&l7gA$G#j*7s4ssM@}7iN}IPHzxyIJAU4+>5^s)Zv>Dlm*5(&a zd9nYR8v|GOutfN>{xcCj$4Ke#YmnlmE^v~ zmh|cVAc#=Gjk*9uU|Es^2j<2MNYo+g3xLV!JPJNCKU6RLXR&F~+YfoqC1VOh zyARnrtVsD|VO-UI=7Ul=MLg-QsvCePXnVK6rVrhbL&y=iu&ZFg5*4${&Drr7j;0htsI3B)iOLaZ2VPJ>W{?`NUi<7)9W@+aQD&}BE7Yf zA+Tftn!l7${fwq&_^L1uDC18wA?eNT3qY3?$X;b7LQ4*(``k|hKGfR7{Zv0sE=-> zcKfYZ98z%-bMs;@hNcdb5g3H$sYNALu?<nu~ zgu~$!uH_=yhY%ToM4_@&1b3KT`W_C}`U3$GIr_V-TGA0uxM9WUImFr?(I4zLF5}C) z(@OU~E-S7fJoqz3hD{?^q1C%FUPa&TdZ0*WHWFGBt=et*&XQd2+e*<4n*v1GcE+uq zP}1!mzQS?@HRtX4RYB$)X4~Wnai#OGYdyw*vurOhnzMvE5_0etdL!nbdFJ$D@1j`~ zLdGwrSefJswMd@md@==M@TaVF=n%m+~p+{zp;5&(B(h4_X-IQAU+37yK z;j)hX!zEmaTStWSxL>E#Yc{zXEVKI(jBp8p=t5-h@ESu$)+J|GsA7b`M89qdslUB$ zK8LDeELD{}$g8+9AwD^vDIt z)%gq$N7wd8%ZbzS;h&ZJS@8vhao_=-Z24;Ab=v%r9o$r+>3{e5&N_7iDH$qP%p`Fe zV)+)Z=zmfG@g~VZgw+jr3yp%~5?epWx3`%YtXSYRFMJCmnA-!6@4t9S1-!1U2$zJqhlV zkj)COJ7$ZuL>BqF$=!xL9$Tl@_6dRumB(|4%L*gVqGzAxbZw&h07e_+k-JiOT{N4T zr$ks?|9j2D2+36a>cW>GQ-Ch{Ifm`x;9g??2~i8?ot?fZc|9p6P(usn-y2xd!hAkr zEJq7ES^BZR7RMUm(n*)gsF%#HOBWsbFW_b8W0$Hmqh@6>MiNoU4lwCF zx)F5*1{z&f6Ziah`;a28hPKg2$jc=lfA*EV|HAadK7Lc-!Uz zts3VG6ZByAVzstQjwiuF_?afIIKkln7bto$Dr@TA$Z-I*{=J^%;HE8|;7M6KOA})= z8LhQwLt8Mo@phVF3ri7*Zvc-$efxyi{~NUw71WDpt-<5~E()f|ZGg)&!N$!}-|8mD zyyzuu@aQmKY4PWdb1-X*;-@DN>yfb@WLX6957C-7p?*&--$-nV74_GshI(P%3@lsd z8^{1Syi1tfGb;JVTH%dW41((5GZTk)zfbe@5@0IUq_Hj_bpjrCDa?Gsu;VIV6pVC^ z?4Yrc{Ikc;s@lhY)=Yw-*%*=lx0~u9e$2`&WryjR>h3JM4}S!6Xfb7SH#+gu&Ob!-R92M=3aLzxT$a)I?_nh5Wgc=sszm*;)S_wKs zQaWMH)9U!{^Wl{X7BQ(=ZCJS8zF!vn&I)jydYcYx!2sypctx7pb{m(jqvX z4k*!b4HwbO55$*hG61!opNiwzNg$`USLGgn^q^|T;K>lJS3{c1a8Qsbr6fU%CJ@|@WrdR~DhA5Z}cm>o0^=(GF5 zDWk8rxQe~Y!G>Vyi##I_(C|8*Wed8$ES?@R#efr z2ZkU2Rqt#pBhH>%a;`8jj&$bcTT*6;*bG=X4oV(5h9bVrr%jU3MX!W}^9HtVHMJk# zh!)D!EyCXgFl8R+BswU@ z71@Xg!Nu3Bpo~&cQ4K?fILCYTN`f$~62QR4fIDGAX*pWxmWrXv?OPT^!i&Wm{M5xk zM%*b6Ol3ui&~njqz_BsMykmzkZ|5jVq~P}ENJK>6k6@@?q>=vU>Yq#@GF&x=E7&Wq z@3jbb(@v(*?V^c^f^f2$Q-$1=h%ppEWPOL80^A;DV+uZ3s0-0Ee-Sfr3P9O9rIKLR zS{;pFJsW7-y#ty-zHQKf9C70@@oVT%t!0mnSJ!0ku!bGSJeAKSMLp1s!G`RJW7yw^ zFz`CQMh*YF$TR&*S!BjK$|4e*DtE%m^THX)!G& z)qWBe&Yu-xXN)}TAtxpssHU_Pw4Araiu7#KgkIQX1AvpBywAO+bybqzN9AZ!VZvd# zodbhg+;QI;eki=f*2Qt={lbY9dt_7P}b}3A>ya4t*Kx-vMgW*B<=BlblK{*)=%X& zRxu{g%!l%P><{{$ep=dE0TS{2!Gi#uFCkLx$uHCQ*7F620|Z7~t40E-l*1!_N%lOa zsO@*g5W$~6*ps`CE(?G@^nnXu#4TEb&qz=gPmrzyi2XPSh&0_eJF2j}IrlM52xx-3 zriGkZI3vcMbo^Nl*ZEspnGoh3sit{{H!CXrl)kL+NwbdX&sYVXAvrU}{s%4=$|%N_*=`se^mcUW{iPa+JK7s@NDgM0}nG;|cJSwcf9ut33VyQS{XGp&1| zCnOI+-&o9Ib-kTRPXK)ZHjS-nlD8BT)Xax#JeA`9{sLXGF9^`MN=}*u!7&fK1_r&40`dy*r$z82*+mFXd> z2|&gNg`*5U>4@IU>m!4Q=P-f4e$zBT1*Jx3E|RvlWf(-`j;LAgugkGWku-))?T@g5 zZ%^rCb~s0rsg~0Q*`W1mCMqShFC{TA{@Fj28d1>xJU+f+4el5Rjat z$6ukVYA9h5M(L0)s`ljhH%0IUl;{aG$~_$lN>71`2jEq^VY97T{1l)FAtuFx11#1R=KK z?PVcU{{N5peq+^nJ8RdZO;6Pd;FVzYgVWA9STV? zvy+s;X2@0p=d8d+#)8X5i93C#mNezwjfMa+o21cRjaaS6r@t$gdH4}wTCh%7mBFxH zSGXkJ?)P5}zVp^uSLzLJ6C|3i4J}_rTV)SmMLQ8a11Oxp{PKJLGG402-(T4NOIfNl z^HK_vHWqx-bM;Y6Q7sLH2FbcS%2LCo@*Dyd?_C$xYbYn68v!06LqXB3h*N_{Vho!T zZpi$w$-LJIfL?H<^4I^px1cDs-))3;1J=0aK$uY>+kC^QT@+ZRjymGD2AM~}=aXM6 z(bkn|X>gy3@%|8Dl-Z^FsroJkv$Uv+oaq12GOejc446uX@Q(xCosYgJe;c;GNShyH z1Qd8HYV>k^Cj+7!+S(YmtorfDA)EO;cpznQ0Hp^WLSuL$FX^Na$88ItwlQ`@=TBwS zK^>(*$t;Xrf_NDKz2n8|HzdOKBM)YC)sQ<~L{TKK!ugc5c!D*}A7< z!H#WTfZ2tJW@dszFvho&x>MejyoeC*4@^>E?p{C}62cz0s-t*P^0BE8Z|K2&|1ud3bscL$)R9cc_j!f9siHKsKvvtUn1Dpa_DFxnwa*Nfa|{Uug}9~ z{KEo^?QeFKskPE&L8bn)8Ut1hDn(-5sNVX!Yp;lx(<2gpk9eM>xcI|J?!aOwk)c+& z<|++A66F_WrAmCI&9p@dW2B0Le$l@2DQ~Cr*sC-kBB**zV{f*dx5J?tBFjRe?p{( z?NU*YkhK~U5E$2KAzlkOu+Gp?r}ih#XxEOr&TH&iS%B>)vu=U{ToQ-Mc(`L^kAL+{ z1~NR-`=L1YI*z8kc-tolu93x)SerSs-JrX^40#kC&dA;=nH~^fm(p?nD-GF=(&iV0 zV2eEgJQ3addUAvTvxkB|dgt~@yk-;OZNK9apAuLFKEEEj&E|X)IlkBRXdYD(2W088 zAGY9p26P>uhpGnk*TLY6+B?sYpKe6?)fe>DC}cK(*%UF?8euslZT8ETxLmY~r}Ss5!L;<6Vyr1E!W5-X(`~bXHC%0sK$^#b zuWzwoVu!H(R@q9+>GXdmT<0-8tys(_9UjK>J#M{KEG^Y9Lm zI6}$hFZo61%+f0IW22dY-Aa}t|;fC%9iBQ5(&~WH=xF- z@CleqXc*sVvLnOAOlf$A1mop$c_96FJx0-zL0xSh?*@YFxk;Trh$xW`m7x+#scyWQ zKqd42A68k#Lb9t5Q9ZO`oJUVW4u;5XdC*CWfFX_VmJ9#Ie_@3SeSvs{=+zp*cqZzf z3Ka3=zdJ@Ss4<3UrH3VNYP@SFN<=(!L_j!LRNG z$_r=;yGxe}7^Anoj>^6uu0ZBUkH9@3^!-7xCGn~2^Tq9OHlPZDGdII|vj4l*2uSN) zPS-rCQkp)Re;LYJwW2KyTlDyaWGp5&L!py{c5_C@X z1hOMQ4zfZ9woYzWm+0?g(En(~pt2M#!Q!e`U&-|J&=Vl7!+yxPM`pA#YK3AvXG_B? zYf-^z%*@?nw_r8CV(jN)m54BaAvlH=LYo27AsP7aF`cI<(}T0U>wCE*=Dbh%mK)R; zHZE~kgRZjtt^Y+Rf$i8lKwWPcb6D@th0iVy35|-tbiYDP%o_Q+Q_&SnITHu=E+b<=ntB z{~#aw>!9=SzMISbTIz*Ovf%i0^!_Cf0;wGk<`{SjWR<5Be{|&kf$`m}2s_q@A&@o> znKTp8@l~CZ4wcsY=-0`U-;Yi5M0mr^$-M+F(@qq&ghvxJK81%OHwT-d#<11sk8;HZ zQ92}@SU_*m0Sd4HHk)ipr{o)a-+^B(#3INCu<{ArKgEWR9hMtHD*!B>5+>}ztp$ae zgH`N#w8Uy;&GPXfkZi4)ZQr-okl=te$Yya15!rNGjgqVUwN+vp z71H&nEFOd2R<#Iy)amft(Q_VE&8g(d#Eh16?u$3#CDAET!)~;FOGT#87aDFsV-rDL z?Eqb`QOnFX;$79tW%I`A*fJ*H%+8^_o;w)8J|5#rC{!nrF7;hf5g3jPwa%cI-4!#_ zPh*00jesSiQi0qriMwZ~Gcj4;)Jh-`GtKI4UW$Veus7CnMReN_xSn{mHkyJwrFt!u z*K8@1O^-yCXOrS+9c*JS4-^F^c&gULK@qZA9CZPH5zML1=J?TN;QYfDfFE1B}mAjHa%QB+4b zZqJbRpN;7U^Ub5_y>O&K7;F~-srwuG_gC$wmB2(0R?29?qA>;Zu@d(>yMqJbBjbDtC%52p$a8u+jnK zouMAvCO69U7`KEf{P?AwQznC6)>FEkv)(3of$XmKeBlq$xpCWi^h&HUQ2M+k62?=t<#pa_)c{E zs5%DZHe7LdhCh+dO8px82d0aa5S#(SQdwchov1BITKWx*)_G1gl@?y@0xZ?``S5bP z%Pck8Cz~)Y@;|Qk_x}mw$a#w+C0#_ke9Hd$k|ySv)EPs@dJ@5V%}8_0bt8eN`UBMb{L%*Bqk>I=o|E7fF))DPK%u zxoA@_Y%q}ZNxH+RFjsl1%u%=_^j>L!DM10j!qB!B)uT6J_(Gb6hAl^@@_=>xp7gJI z7-7mO+u?@aBpNpju|4I-(16Ng`MP(0E?2P8N04$vuQWh?;Z_UV!}jlf`ucEUJFhDQ z+a(=%npSdI_`gL$Of2vVyEx)=s7RLyWLUXYr=a4E0dheOGmDNAF-u^_97ye2kTHEe zvx0Wz5;gj&PGi~O81YrewlzT+Df(vrQ- zh_6wClXAk-xkN&u*QW%m&# zXrMF%H4pd@>gg_>gqpsc8uT-#%hp+*UkWZP@)D602Zn%WZ>vV9`%ixqb0-YSI3PY6 zSJX&VvoDMw5)v>csrKug&gXzy;qeV5g}%gvbtC6Z6P(d;qvwn`yA zPfOwP{0S~_a!r%}=D(}HdS4!XqU&0_0{`k#RM!ts>A3Q=nuX8~d+W0~2iI|*#3mQX zk6YkNDOe66sqPCa}blnxBh*n9B-ur3Y!C;@2x=sG`##7i(noR87-504c2bE3y;#vAK+K^7d{s&h z%$X+LjW7UXH0$1WtwW68C4+c-&9G&YO&+jC8T3Qam8un zAa8n^@x-tiRC&HZh$Vyu%NhX<8pM|U5&?svkL(wFl(wye=giA1I=|MR`tuoeV=vZJ zeJcx@UfT6RttZHoAuk15Z(hBh0b1mi85v>E(XA`LbXdQHzSE!C44u!O zq@bM(G_|SKs{|ggqrU!=Vfp;ho-yqPUxMtz_ata<(CfP)Hrm1V-AG!A8=LJ)MUN@h-Bpn{=?4{^VKSYZmb$q z^%uarhtn?%iFRuaAtBC@psoUf7_7+P)C#07=bhB?d(Z*4J~S;K9lw@Hq?)CZ{xu~g z1-Sw#hhrBZGPj!@Na};%e0M}^L20efLWLaT92#nR_QGQ<8ep-axY!^tgsJV#w$3xp zA@Ew4JLh*3>y)YQf+jp5?W3<9_w+P0f*>VSuFW!bRf{rGOWmDHAKHUj{i30xTwtF< zL!3p@g$R2MaSE4*$NCszC=tLRaOb;v>z@Dch5^dh-iJ)oyU#ZdhA`Su#(ehsoH`Ud zwZGd|9^nI$5qr%@7a13{eE(5JB7!pGSTru*2H(`>EX#SPh8o~HNpsIt;F>w4=F*#Q zld@y806sa%moqd^dMQ(&KrFgdX0lK$Hmxz2)kpN{o&uDw4=?(mLOTb>LOEJ%bqNK( z!hn_+e!(pQT2;hJ7mtj$z7y6BSqct|ZW#}bmWu=p#?mDTRvA^(?I|{s*4|ER6jtfN z9A=u_r1fA&(h32S08~IqWh97SllkN#&aL<;eG_S z=@N|?pu+LS`t{qSs!2qw|Ajwz1bmh%qq>5OoV*KlZSk<=yX#I_QcV^R1z%}i96Y2i zg~%to7Tw$#_>n20Vqw({g#iTZT;*Uulib0*q9U*lb7)sngcQl;3x{|gk!@RTb~S!Y zgt+rJLjQR_u|$-aqNDh))69!fpLMXOR1=+nGvLI~G1LY@Q67g*alDN0A*6AP-Rhtn z5h{8JIIS&ahCBb*86q}_w!eAdU~wj!>WV`c1ZXX2@|1WdNG+Z4GWWwJaGNi8PQl|m zI%ranf$&w;>#BhhaI73euyCuzP3Wd>E93tj_8?Rfbyt{t>$E+AU9U5ea0VR6+((kRh86V? zfOAOoBI0_uGmj+Fl>W?$4m+wNp}`J7&@Fj=+{Zpy+$lb?*?rm-efL#x9i|wU zG5KBC$eDdjh0YZ%1HsRxQP$45j)|)IM^43TKIu9JAF^zh$RIm;-zWtFPa8>!NkO4 m7T>=;9*Eh&a6lB|#tBy#fcI= Date: Thu, 7 Sep 2023 13:18:11 -0700 Subject: [PATCH 3/5] Fix linter. --- google/auth/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google/auth/__init__.py b/google/auth/__init__.py index 6490d5daf..9c208828c 100644 --- a/google/auth/__init__.py +++ b/google/auth/__init__.py @@ -41,6 +41,8 @@ class Python37DeprecationWarning(DeprecationWarning): # pragma: NO COVER pass + +if sys.version_info.major == 3 and sys.version_info.minor == 7: # pragma: NO COVER # Checks if the current runtime is Python 3.7. message = ( "After January 1, 2024, new releases of this library will drop support " @@ -48,8 +50,6 @@ class Python37DeprecationWarning(DeprecationWarning): # pragma: NO COVER "can be found at https://cloud.google.com/python/docs/python37-sunset/" ) - -if sys.version_info.major == 3 and sys.version_info.minor == 7: # pragma: NO COVER # Configure the Python37DeprecationWarning warning so that it is only emitted once. warnings.simplefilter("once", Python37DeprecationWarning) warnings.warn(message, Python37DeprecationWarning) From 06cfad8f5c41dede0765d38d7185e814edf37573 Mon Sep 17 00:00:00 2001 From: Carl Lundin Date: Thu, 7 Sep 2023 13:19:07 -0700 Subject: [PATCH 4/5] Move comment location --- google/auth/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google/auth/__init__.py b/google/auth/__init__.py index 9c208828c..2d6caec71 100644 --- a/google/auth/__init__.py +++ b/google/auth/__init__.py @@ -42,8 +42,8 @@ class Python37DeprecationWarning(DeprecationWarning): # pragma: NO COVER pass +# Checks if the current runtime is Python 3.7. if sys.version_info.major == 3 and sys.version_info.minor == 7: # pragma: NO COVER - # Checks if the current runtime is Python 3.7. message = ( "After January 1, 2024, new releases of this library will drop support " "for Python 3.7. More details about Python 3.7 support " From f3ddead60973c52992d785504e5a2bf13e75987b Mon Sep 17 00:00:00 2001 From: Carl Lundin Date: Mon, 23 Oct 2023 15:10:41 -0700 Subject: [PATCH 5/5] chore: Refresh system test creds. --- system_tests/secrets.tar.enc | Bin 10324 -> 10324 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/system_tests/secrets.tar.enc b/system_tests/secrets.tar.enc index 365a25c1d3f4fc5bf32be3b6e47abfdd679c41fc..22f4e58bf55fb43c8338e598360a3ae16a43b64e 100644 GIT binary patch literal 10324 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 literal 10324 zcmV-aD67{BB>?tKRTH+EuO#tHqd$C(%dZqU`kzZW(-Vd0wBp*2u%_`H6e1F;Pyn$b zkPIa5ZqnJq+d0#+;opxwi-HhE>-R@KcGffbW6Y2}r@5SI5LF}XMIl&-_%Gs1QJ!?IM%c12ikQIjsFYA2^xTJ= z2S@6C4(#30@YY2YljUEFoRKcIrG_v_VzYIBQc(1dFXQjOV}m)i>#zTNaf02{gC(sC zwGL&1bJNf*t+N5kqKh<`V}ya=CzI|lwGX{0#WtL=|AyLz(u}9_UVGlapD#PykN8yi z2UJn^Z2fDp_M9~t`?!7!;7z@z0-?$Uu8-I$ew1cez7+Ww^G3snzHk=m$~@!G3RT?^ zOy=OMK-mc>OswWzM<7JxWjF_>wJWk-u}T?so&NvwbW#?y$W^ok9U8H6w|nJ_*dp6h zZv*9;w9f7drxI9VM>c*u3LDYjq}~fsG>*@o%ys7W#``ijc67SrsQi0Z_$fVZl-$8Q zm@Si8ta*OEJ#;36Ho75+L$4||F28^v#gjs;n4T~4W6TmvjrTaw`94h8g z*7JEkxFvKP|oGgTzxZPB}EzGf%$g0 zUmMv>g7Jg8*mTT&>)Q<)06Q&d{S{>YNzk?6Kj#VFJV11j>E4yVvS)Lr{X*2Bl1oY; z-^R1R%L%?&jAotvFJ9RtTZD6+o|{{lYa)#+S%=22yNN+Xm_nZS0I?S1)WW z(c>yPQB+Frm zR4HQ6LlZMCV()EO5uW1?1;gdH?Zo|@>5E}xj)3qAoAggz@ri2T zPcu8!yFf6p^P`33)A?^?>BsjDm!rl;s{!bz7(VU0CFS7!#mfz>ICnp#SvJ68C;-L# z6{`^Y6GEhmlHp-?I;3Y@5z1dg%!|{YdC>X4>6dn^oE8?N&fyZ?`cbK z#0kDV7{6=*ej)_1Sf(Y)ei18!$tBy8JK_~nCaMWxMyz;TCpfTwPLQZ+kg7p*RhqnC zSuKK1;8UJ>xT+~^$dU`N{nRZqm9V|5!pMVJ0f{y2E|Gc3%q#h<(5m=+7otqn<5Tp1 zMn1?6Z?RAAsC|_Qh0%=ACZ73niB#*xkA%r(P{{PqTWzYgabAB&_p?0Ap#l+rZ z?q<;cJf3CRxOv#ESaTAW-diA`@{4WA!cK?WkUt}+H&T$fBFqyHoVL%J4g{@kI8_qZ z>CtvEmQdv{*+)z7qvMoWQ=!k!BK#u?b{%(E>I-r&NtVU<0a{U?6Lnxx5?fgjWvsfD z;keQz{ekuU8?A-z`e-dHw~;zEFYc}P6DyCW&;0lML1RSZb_XV)d-19Tib1Kdry!OJXD1~B4Ang& zVc$ouqd3idNJ!p^`iB&XOvI301+IU+HWK&n#>h^xqX;633skJ~b;#7yY5@8jfLDqu zm~o|i3}IjF++~Ohl3aCRvz7B?(idYdKhPhWQsYh6Vl@bt&^@urCzp#@46;d@ z=(5UFPgLU@+pg15De9B#Qtg{F`u)?@ee>kYy#HLA12%BV02zke$u0x!j^45HYqb=LWE%wQm{Ni&jSO06Z~&cQIAQ(^ zzyLh-Gs&2YIXGnWmdx|}i36mlS-y4^+eYBlzipc@ncrFm>#XxMrpAtVt{iuw0@Klj zGEJL%LT%06N_8DTqt6oam``g4r|!8Cdf}^MOn1%mxZ70KXu;T5n!FY}Y}}#pJNdjU zPCzTqEhG#Iq;7A8$BAyhA)sx($x&DM-G5jI#xesLR>mv1b*@sHDi}w#owTe^BJTTu z{|%R1oKh!BDf;YpI2~$|g%iIX^cu2%W0W~ns%USIvUSE#)jfpA8{ea-yBcqta`LT` zi$(a$$D9I9@hCRu+w8X8W+jGIt0>=@i6iR+%5;5Vf+0xeDfbH%xvw%{jS&sVa$t{0 zBU_6)VZM(O$DXa9raNGVz#OT2go#+14Vm@v%(*q;U*j1)=F%wb5b*StgnmPM z+nx1oox3jpuN&h&UHIa+#VD8~_M+2FvU7N&^mUtbT=o5=j~`zL{i63+(w%IZ|M)pJ z))uY*%NgzIP%+8L(IL!Do;;#86k~fo?1jV{BAPSY=Z;vBb^C=o^vgPh8Z`cP&uuhyFT4CV%X=3Q4B0lkZxFd&p4=<3 zt7QwRwkx7j0EWuor5vSQp}MWO=iJx<<~Gr5J1BrQx?ak_G=}xmG_whJn+V6ftqOYm zLExLzu+9^LcZK*g!188U55Zd0tw9-tF*H;O7cpguw~vHPYV&>uC98ww+sQvzq> zETv7`lp&sC5FPDAgd}J$*dh6kohnlnj2J%bZi0NgvYT?a2-f0nj6wus(sILYR7NP7 zX%G=xwp{k&ycOAkQC=$~`J8oqkA^_@nW88o{>sZxzuwO&xP4ARccZJ?5pp!ICwh!i ziwGTrogVMUc-6{*OnSQ}i;yEGOD1M7zuan#3d~Y9xB|8YcO7GN1GNWs)-V8#1W@%z zrZKF~@XVr{`i!I+)qtnnuh;jDhS?+}%j4KWOB*5AexXTCH9XCvSdM992O`33o=9w{ zbmA-yTmi&2>qPgmI_b0q)Ic>-UdA+nmEC{riN5){7z|soQBVo_K3tXeBeALkBnYH)M%sy!We9(t1_7_O_4TVMwGIMij z{Xe)vKMp*=l|I%HD&+k>@_L7sM^+wdQ!Z(PBWP`9g@n=|=96K`zki^rRT{aVUFSU4 z)F?v2NTqj*WKh^^^70l{>mFR*n%^7IyA@U+j=V0PPx6rm+x~^Kzz3kC0paxyw|N*? zbu2s|<)-RLSGmoqvD0s*tw(IpI(04K9ezesgr^+;MTYXntpB5&VG65}6`!QpxNU~S zZyAh_kT#q?lCB<#BRW0^kWzmK8H^TYGxi~UvG;-^Dt>!Y($M$8F)=2V(P0y?Z=8Mx zr~NX_=0L2r@>Shggt(@q4tp^7g58Lcm3CZKuv5{DHYi%#8*l!CjsU|LB2bpsGM%Ym z)j;GKrOz>F?&Cm*ORaLcB{-BwJ%s7C?MPqshE3T>OP`>3X=N#rLw#h0dmGyr62JWZ zV7?ZN`q*NZ1~uitDN~XuSIS{Dv8ph0JP_0zCspYBM^}L>BFkcB52m6rz0M99=s4Bx z5kHyzEM2OOR#=@lu-|PeWt)y8rnsUi0`jLV?^@tL&Xv4f{q<*q1vK6zT~_ZH7|N0j zlt73S3$J)dMED>u_=MA4tfM$p!-pKD-=_cd_Cn45s=|6~T)k0>#|F!NZc zxnM1es_)ahf_3HZKom|N4_Yh~b=(r@jswt`Y{S2ED_>9L&v1p$v->5v65RU8M8a z0JMV8+(LiY!{Lw#smB0Rb-vmLbZEGge|1^7W=w)HCPA$g@h^Cm?dBgxw5{i zDhsIMRwI{wltt-BG1#Is zEcbP22Nh~4#bnCmoyEl&?n@6e7TOoJ6< zv!@u4HHlW_h-O@i7yu@)+7+r}W18g&ZCOf7KUBl9;=ol3a@rsyPjw|51|2{^rQ3wr z%J&Zt$KovNV144kZ0vIjsfgohQxAq4| z;E;e$jqn2@n&f;Y`*5wjaC%JQ%e)J+)b{^vi>IA_@tj3AbX8BMf#dv)jE@*(OijEk zi8&!__#EOrN7*D~XOG42HaW@@v!YevP#5uK{$1jW>AscIWtW89K>i}=13l9upu;P% zBX|}p^e#UVkcon(^)KEHG@57WNB(>+n)b#T1Z4V}TN(dpQ-SGU<4n>kyPV+S0v)^8 zYtGx>H4Fse5q%JlTU$m1v#TIoBL)djd%8_5Qr~g3TZyKN=$-!zWN>VtJuCCV729OG za8cKnMvvwu_t^mUa(i;#c8inpkrbsC=H5?qAhaNgKgVTwdd=HgS3dL6v10$Ubz?N) zpu|NSUK6PCx7S6{Zq1f9atX^4pS+RI9$UvVioB_pOn#)x5lA|x5sIg{MFre)D{C`G z!4d{@?~{K`rsKPfX2%)j|%p#ROi3-4qaF+AQIKLSdYRYe^VG%C9BnkwHrU* zmz!=-GmEWPRR#$QT6qGgsB5#vlCjc}Bd`|O3qWl$VsNQx)@~F4-BY@S6CU3^B3eCv zh?*SkWSL+vJmJ^3;lBG_e5F@d)|}+>TdGj(<_}OTnw-w6qH{I%j`=p|#Dm_O#{cK{ z;&+=Ok!hb=rhvC|EHx#$%LKp+BFq#JTVnvvE_v$QfA1^$0CI_%0qXAbdZ>-hWT}nz z*6zziKnnx6Mb;1FKe~mVscB01M}`c zYa*kJmi<(#$N%Bb3Iu;0WQ*C86|eLA)|hG*hn z5J`w`kT`20qGZQqeT;dH_P{Y>WM)kXv3Ch}=}S)|fjX7bjpX`FQr|%xN>?KLj&!c= znu$cihX*TwBg)oH zNf$hpq*es}lI8vl3(5C)eb}p!(VX3g1yR6n;>XS(@7Krh za1iM;?vPcwI<^0repHIwTP;NFAg@`^Y(^39D8dn8SuB>U%y* z1;Wg=O0IB`bL-)pE+Vj!g{ASGe_sf>t|%S55dqM?C>9UZB%>3?(%>DBjFXzk_OB)69zoe@bV88VDJz!dNzp;catX6lhSz%n??w^i;)pT@0+XW#>*7y_m z_o#CR6J2Y6&1ns$B$7Or$N9p^RRA#=Y=J|GCUR--H1Re1t=H*#VDvNQ$1>B_PI`ku zO1+|lYZ1jI557!bU0(Eea8<-Due3TADC>sDi@fe5lt5J!LGU)_Z2}P5(=JB6Bp`Uk zPKCzoQnIUZeyLXzufwgs3NzH)=RcVw{oddrN2~Izpw%_O;@Y^?5|^ku#GdG>i+iZM znMxl!jj;|`$g=^i=wm3!DBFC_1zv)&01b<#YPg*;p_7y$uiz0j1@IR29_|UFxHEUh zUd~5V8!|jnBXpBv4{blb&%YK#4&NJzl9A>EdOsG z-G(17`2P#R-!WkRbvx6^AV8V+!9WjCN&^=VK#_E*MlhO>Ukbs^Pgklj-kR1IVLW8< zYqT}2uS~^}2L!n+1VTjAc8Lhq32~U3r8$l$=Af)rvX5c@12f z!8h(}wF1SXVdW_zE*f$LB>qI&=rS;xJ$DlVGh!X}VcfFzW-2(UF@uV#)>Y}$y^`U! z8!s`ctvGrxUwaKo(IwG6GNv#Z_N&vSNDYX6SYM9niQsMuT3i5~T%gI_F%l9ZwjC^Y zu0ogMgYgNfgHcns+>Bh({-;zrhWv2p$WY*ngVLJFGeG8V(;;GW%Kx?5DvCE!aaT)i_2@g0O zB#c-d<8=F}a%Jn+hF=t{$KY&p#gn7gj9HpO^3R&R7r}2qL5A@w%_!%(V-XL%ZHz`0 z3B+S&KsXjb6N;X86Z&9GzwWcz>;LyT{sPH>;hce_?+1MY2ejw>C(;jK2%X~Hj2^bU zRh^iaQ-lFB`z&eHm@3z_+5-~wm=7)P_Mzd2JEZcy7Brl9fD*N2=pLkmA*?BL64^QV zr7>VZ_o?UH5Be8zkus+mQS65!Mi#`#nCmIElyjh6#+3Z(=G*QZLWI@Ga0w(p8hmygDRkskT_Ga3di$!fsEKk zgIIngi5Pu=9m^Sm#{Ui!Aq`ydMrmfgehrzunl0?^QJRZ(z@6kbp$0#2;6@B}+Q86d zfP%up#%FEkKbbh!Il}<0hG{IC-WhetDqMhkz0@1}9e4{bnS^d6rI$r;MSiwy0&T^R zGxv@CUpa9W3gf({Dpq#6TzY@BfBUwm`p0N}@?QY%&%6?QvwGW16+b|uB4Vmbw?;(AUF(2Yj$0EHjVlpX!i1s65!; zm>*O9E809jF@q2OjZQ+Jb+D-wo7$+fnE28_H?T96G2x56=Qty_g~z{lq-kac=c90Z4*QSiH$zSl$o@I)ce5ZVmTq1u z6Gn2)=q(~X<_*N3qR?CIh_qVj@*;_eY|Bb}q9P*4jqd36lIWfCW+ z`SM_ zPY11V(|VRVO?fWW2WGB46nPFLAilB#+{r9er2y zM36TN-Xt_{x?W$dO-uuAb#0)&Q9-@lPB3AclgN8p;Iztab=Cy*jEeDh_oJ>_jX1Gg zlGQUocp0WbaP{b!|1Tc$7``3A#IKgX$kiIDuoY*f5zV&Cot&~&||=`G^-;+&{e zRMls=(ooKu4ri{Nh7z?9jiBsjjBC9ki}7-CYeXQ74?1hvS*oFSi2Vln)4&~yR`)BP?;Dm- z5Uu($nSm8*DMYGqzBQCRZPrSnGJ)~aujt#O?o&dZu<#RQw^(ek5aya?W`#Q%>Jce45>vbGr(=Cd~YJwH+{k3Py;D-AHD(qif@kVjtxNBwmd$I|9m5X#_ z*mg|fG~fV$O&1jhK!6Hcp(oQ`i60(_mMHkV$|lw+h=U5mT9CM#kLCH|2)Qo)6?_W+w22B8KJkE4lq;ST9X( zx-)F-y{7WDfdWDyrf0TA9gOf_{C!@res*Ift)^|_5!LqY+EiJ)uR#(%DYX!W=1aJH zM2`^$Q}reW&#IfdzFk!Qu)#o~qxB{VOIvX<4PCrc|Lm$4fI|k-{=aV@frI+uULkWl zW(eD)ZOn8FKKzjF!+PDn_u`{=mM~cL%mm~*%i!VWaLzpr5rAs;mIF+j-)keULD=4> z_TpBjC3ZYgK;mrPE3+oR37QG+ykyU+Z0} zk5+3%4d*U$_b;~Z9F)-HY{DIfsckMR`_4=op*%xlPlESaw<`4EvUje40{n+5XJx*3bSCgBhz) z*1(^d*TX4Ekt*+RDUGLTduQ{9@jvu9b2+=J=ces2x-dx@5ZxF}eg8V<0;>~>OS*)0 z33>BSO_9FhT^i% z{-UpTW$>|3K=#y?YY~&E#tZpbQmE70snuc7ircN$k!|YnEz`0u1Eq=wwH&_)icqc= z8@wM!?BVC2T<7-X6cwg0eTh*e0bqXsz|0`WbhH-cT0n=)@TZz5++*q(WLI?rZJ4;b6Wo=2) z0`pXPwSD3@Y^)+=NJ>%I_bN(c9@HglFqlwh!!DIQZnR7)>;BYQK%S6M+zR#qO`V?) z^DE2>1Lac$DEhOqXH2>$H&zX<@>sghXj#c)-5SN;W`c=fvTDPPQFIBd2RuF;cnf(9 zx?QJLg$=0J?vL>aDMQ5AJ%f3apofUKkYQ>ne&k}!k>YP3(@VrDB)XBj3m%<{wNt!9 z!~su5@~x41Qm0j>-$CK)e<{P3!jEu*`L3jQ6_r}c%4#AkvO0)9Z^2#(H;e2cM)+H= z?{dl-aOge3bzP}vYSP^f`Q+o{l(Z!JW=5E61&K{!IfWXJ;q}I?1->zs&*-RGoW9a` zCVs3f8P7xF@D|Q37Pdiu)cmi2libp1n;DW^q{L@+9ND#m9|3x3md40YwSp&I&8X_Fq*Zk^0U4@5+)r<@a&or?Iqf}#ML+)w_O!604%rek=;+=CoDk- z(|h+fRW4W$oyM$Th8>EiHfb@n;c4k^yTZUl@tGsxDsVjCf@(Nc?r2F><_WfN-|Mh!4 zGicT#Z<8W7?D1<2OzZdorTwf;B^1gGwLh;4W1wJ`%`|#&t*=g;kTcBlHSfaY;55F=@)s+D) z%r@8_qd^S*FPSmmF5&K;hr~Zm7Klh7tLI5sOycFv9B;mJq%h*%2cB;r(7X;gS}p)Z z8c1D>$D~O}9ZXgEF}q&A6jTJb=tSPz zOyL6!Va`aGr8ZScCwho`j=zNfhmOKqwulXxQ%cs9{g7jFNHE7&K ze;ij3DCYE8%ySe%v;G1zC7CZ~&FB3|?!_zoOV<5n2swAgWB0)%W@|k1-}{l}?aKT< zo5IBggmE`k^CF(d$USofb+Os=>AyRX6&jL+kvwgupAbzfTOsW9(YvIhEf$lRV&4NCW=FFfuFk1s%v@%q z@eliYbaLZu1K}CI1P-)8Pwwc`aS@;L(1ur11DyCc*xxL68Tv21_E$4WfpT{eVF!>6 zyzZp1-FKXI1tj5MDyTU{VnU=swk5)1dwL!$|9O)LWb!ikX zQ+;-Omvgi6w=gw~ie4uBzW1n?p4xe^Qy<8q&zZv={j|>>#wRnR)fvK#mieLOGgO)v zi$f&`lx81Aa@P!zZOr2Fx@5mkR&`x zfRQ)xexHx6g^p;CkX!GlSQ%PbX(067O=_D$c+n{rI`j=d)??**{1JTTne!Fw@oPkF zvB*U7{0KiG9fCZ5wMz0^O@FM^r*G1a@~{sz9&=tw?_?=o_5CozB@^xg$wru7R-?8N z|2DA5_ivTyX