+
    Bi                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ]P                  ! 4       t]P                  ! 4       t	]P                  ! 4       t
R t]R 4       t] P                  R 4       t ! R R]P                  4      tR# )    N)import_fresh_modulec                   aa \         P                  ! 4       o\        P                  ! R4      ! V 4      o\        P                  ! V 4      VV3R l4       pV# )z;Decorator that ensures a function is only ever called once.Nc                  d   < S;_uu_ 4        S ! 4       uuR R R 4       #   + '       g   i     R # ; iN )cachedlocks   2/usr/lib/python3.14/test/test_zoneinfo/_support.pyinnercall_once.<locals>.inner   s    T8 TTTs   /	)	threadingLock	functools	lru_cachewraps)fr   r   r	   s   & @@r
   	call_oncer      sF    >>D  &q)F__Q  L    c                 ,    ^ RI p \        RR.R7      pW3# )u  Retrieve two copies of zoneinfo: pure Python and C accelerated.

Because this function manipulates the import system in a way that might
be fragile or do unexpected things if it is run many times, it uses a
`call_once` decorator to ensure that this is only ever called exactly
one time — in other words, when using this function you will only ever
get one copy of each module rather than a fresh import each time.
Nzoneinfo	_zoneinfo)blocked)r   r   )c_module	py_modules     r
   get_modulesr      s      #JFIr   c              #    "   \        4       p\        P                  P                  RV4      pV \        P                  R&   Rx  W!Jd   V\        P                  R&   R# \        P                  P	                  R4       R# 5i)zMake sure sys.modules["zoneinfo"] refers to `module`.

This is necessary because `pickle` will refuse to serialize
an type calling itself `zoneinfo.ZoneInfo` unless `zoneinfo.ZoneInfo`
refers to the same object.
r   N)objectsysmodulesgetpop)moduleNOT_PRESENTold_zoneinfos   &  r
   set_zoneinfo_moduler%   +   sW      (K;;??:{;L$CKK
	&".J
#s   A=A?c                   h   a a ] tR t^>t o]V 3R l4       t]P                  R]3R l4       t	Rt
VtV ;t# )ZoneInfoTestBasec                Z   < V P                   P                  V n        \        SV `  4        R # r   )r"   ZoneInfoklasssuper
setUpClass)cls	__class__s   &r
   r,   ZoneInfoTestBase.setUpClass?   s    JJ''	r   Tc              #    "   R  pT;_uu_ 4        V'       d   V! 4       pR\         P                  R&   V P                  P                  p V P                  P	                  V4       Rx  V'       dL   \         P                  P                  R4       XP                  4        F  w  rxV\         P                  V&   K  	  V P                  P	                  V4        RRR4       R#   T'       dL   \         P                  P                  R4       XP                  4        F  w  rxT\         P                  T&   K  	  T P                  P	                  T4       i ; i  + '       g   i     R# ; i5i)c                      / p \        \        P                  4       FD  pVP                  R ^4      ^ ,          R8w  d   K#  \        P                  P	                  V4      W&   KF  	  V # ).tzdata)listr   r   splitr!   )tzdata_modulesmodnames     r
   pop_tzdata_modules;ZoneInfoTestBase.tzpath_context.<locals>.pop_tzdata_modulesF   sR    N,==a(+x7*-++//'*B'	 - "!r   Nr3   )r   r   r"   TZPATHreset_tzpathr!   items)	selftzpathblock_tzdatar	   r8   r6   old_pathr7   r"   s	   &&&&     r
   tzpath_contextZoneInfoTestBase.tzpath_contextD   s     	" T "4!5(,H%{{))H	3((0KKOOH-+9+?+?+A/5G, ,B ((2) T  KKOOH-+9+?+?+A/5G, ,B ((2) TTs6   E)9E
C")A.E
E)"A0EEE&	 	E)r   )__name__
__module____qualname____firstlineno__classmethodr,   
contextlibcontextmanagerTZPATH_LOCKrA   __static_attributes____classdictcell____classcell__)r.   __classdict__s   @@r
   r'   r'   >   s;       26[ 3 3 3r   r'   )rH   r   r   r   unittesttest.support.import_helperr   r   OS_ENV_LOCKrJ   TZPATH_TEST_LOCKr   r   rI   r%   TestCaser'   r   r   r
   <module>rT      s      
   :nnnn>># 
    $ $$&3x(( &3r   