Ë
    t™ãjZÀ  ã                   óœ  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
mZm	Z	mZ d dlZddlmZmZmZ  e	ddd«      Zej'                  «       Z	 d dlmZ dZej6                  rd	„ Zn ej:                  d¬
«      Zed„ «       Zd„ Z G d„ de«      Z ejB                  dk(  xr ejD                  dk  Z#d„ Z$d„ Z%d„ Z&dZ' G d„ de(«      Z) G d„ de(«      Z* e*ddd«      Z+d„ Z, e-edd «      Z.d)d„Z/d„ Z0d„ Z1d„ Z2d„ Z3d „ Z4 G d!„ d"e(«      Z5d#Z6d$„ Z7 G d%„ d&e(«      Z8 G d'„ d(e(«      Z9y# e$ r d dlZej2                  d„ «       ZY Œêw xY w)*é    N)ÚMAXYEARÚMINYEARÚdatetimeÚ	timedeltaé   )Ú_tzinfoÚenfoldÚtzname_in_python2i²  )Únullcontextc              #   ó   K  — | –— y ­w©N© )Úcontexts    ú^/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/dateutil/tz/_tzfile.pyÚ_nullcontextr      s   è ø€ à‹ùs   ‚i   c                 ó�   ‡ ‡‡— ddl m} ddlm} |j	                  «       Š |«       Št        j                  ‰ «      ˆˆˆ fd„«       }|S )Nr   )ÚOrderedDict)Ú_threadc                 óÂ   •— ‰5  ‰j                  | d «      }|€ ‰| «      }|‰| <   t        ‰«      t        kD  r‰j                  d¬«       d d d «       |S # 1 sw Y   S xY w)NF)Úlast)ÚpopÚlenÚ_TIMEDELTA_CACHE_SIZEÚpopitem)ÚsecondsÚrvÚ
CACHE_LOCKÚTIMEDELTA_CACHEÚfs     €€€r   Úcached_load_timedeltaz4_cache_load_timedelta.<locals>.cached_load_timedelta6   so   ø€ ð ñ 8Ø$×(Ñ(¨°$Ó7�Ø�:Ù˜7›�Bà+-� Ñ(ä�Ó'Ô*?Ò?Ø#×+Ñ+°Ð+Ô7÷8ð ˆI÷8ð ˆIús   „AAÁA)Úcollectionsr   Ú	six.movesr   Úallocate_lockÚ	functoolsÚwraps)r   r   r   r    r   r   s   `   @@r   Ú_cache_load_timedeltar&   .   sA   ú€ Ý+å%à×*Ñ*Ó,ˆ
Ù%›-ˆä	�‰˜Ó	õ	ó 
ð	ð %Ð$ó    )Úmaxsizec                 ó   — t        | ¬«      S )N©r   )r   r*   s    r   Ú_load_timedeltar+   L   s   € ä˜WÔ%Ð%r'   c                 óf   — | j                  | «      }||_        ||_        |j                  |«       |S r   )Ú__new__Ú_keyÚ	_filenameÚ_load_from_data)ÚclsÚkeyÚfilenameÚdataÚobjs        r   Ú	_unpickler6   Q   s1   € Ø
�+‰+�cÓ
€CØ€C„HØ€C„Mà×Ñ˜Ôà€Jr'   c                   óØ   ‡ — e Zd ZdZdˆ fd„	Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
ed	„ «       Zd
„ Zdd„Zd„ Z eg d¢«      Zd„ Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Zd„ Zd„ ZdZd„ Zd„ Zˆ xZS )ÚtzfileaK  
    This is a ``tzinfo`` subclass that allows one to use the ``tzfile(5)``
    format timezone files to extract current and historical zone information.

    :param fileobj:
        This can be an opened file stream or a file name that the time zone
        information can be read from.

    :param filename:
        This is an optional parameter specifying the source of the time zone
        information in the event that ``fileobj`` is a file object. If omitted
        and ``fileobj`` is a file stream, this parameter will be set either to
        ``fileobj``'s ``name`` attribute or to ``repr(fileobj)``.

    This class is intended to be mostly equivalent to the standard library
    :py:class:`zoneinfo.ZoneInfo` class. The primary differences are:

        * All caching in ``tzfile`` is handled by :func:`tz.gettz` level (you
          should generally not attempt to construct a ``tzfile`` directly).
        * ``tzfile`` objects are pickled by value rather than by reference to
          the IANA key.
        * ``tzfile`` has equality-by-value semantics, whereas
          :py:class:`~zoneinfo.ZoneInfo` has equality-by-identity semantics.

    See `Sources for Time Zone and Daylight Saving Time Data
    <https://data.iana.org/time-zones/tz-link.html>`_ for more information.
    Time zone files can be compiled from the `IANA Time Zone database files
    <https://www.iana.org/time-zones>`_ with the `zic time zone compiler
    <https://www.freebsd.org/cgi/man.cgi?query=zic&sektion=8>`_

    .. note::

        Only construct a ``tzfile`` directly if you have a specific timezone
        file on disk that you want to read into a Python ``tzinfo`` object.
        If you want to get a ``tzfile`` representing a specific IANA zone,
        (e.g. ``'America/New_York'``), you should call
        :func:`dateutil.tz.gettz` with the zone identifier.

    .. versionchanged:: 3.0.0
        ``tzfile`` is now a partial backport of :py:class:`zoneinfo.ZoneInfo`,
        which brings with it support for Version 2 and 3 ``tzfile(5)`` binaries.

    **Examples:**

    Using the US Eastern time zone as an example, we can see that a ``tzfile``
    provides time zone information for the standard Daylight Saving offsets:

    .. testsetup:: tzfile

        from dateutil.tz import gettz
        from datetime import datetime

    .. doctest:: tzfile

        >>> NYC = gettz('America/New_York')
        >>> NYC
        tzfile('/usr/share/zoneinfo/America/New_York')

        >>> print(datetime(2016, 1, 3, tzinfo=NYC))     # EST
        2016-01-03 00:00:00-05:00

        >>> print(datetime(2016, 7, 7, tzinfo=NYC))     # EDT
        2016-07-07 00:00:00-04:00


    The ``tzfile`` structure contains a fully history of the time zone,
    so historical dates will also have the right offsets. For example, before
    the adoption of standard time on November 18, 1883, New York used local
    mean time:

    .. doctest:: tzfile

       >>> print(datetime(1883, 11, 18, tzinfo=NYC))    # LMT
       1883-11-18 00:00:00-04:56:02

    Python versions before 3.6 do not support sub-minute offsets, so there the
    offset is rounded to ``-04:56``.

    And during World War II, New York was on "Eastern War Time", which was a
    state of permanent daylight saving time:

    .. doctest:: tzfile

        >>> print(datetime(1944, 2, 7, tzinfo=NYC))    # EWT
        1944-02-07 00:00:00-04:00

    Nc                 ó¬  •— t         t        | �  «        d}t        |t        j
                  «      r|| _        t        |d«      }d}nB|�|| _        n8t        |d«      r|j                  | _        n|�|| _        nt        |«      | _        |�1|st        |«      }|5 }| j                  |«       d d d «       || _        y || _        y # 1 sw Y   || _        y xY w)NFÚrbTÚname)Úsuperr8   Ú__init__Ú
isinstanceÚsixÚstring_typesr/   ÚopenÚhasattrr;   Úreprr   Ú
_load_filer.   )ÚselfÚfileobjr3   r2   Úfile_opened_hereÚfile_streamÚ	__class__s         €r   r=   ztzfile.__init__´   sÄ   ø€ ÜŒf�dÑ$Ô&à ÐÜ�gœs×/Ñ/Ô0Ø$ˆDŒNÜ˜7 DÓ)ˆGØ#ÑØÐ!Ø%ˆD�NÜ�W˜fÔ%Ø$Ÿ\™\ˆD�NØˆ_Ø ˆD�Nä! '›]ˆDŒNàÐÙ#Ü& wÓ/�àð -˜KØ—‘ Ô,÷-ð ˆ�	�Cˆ�	÷-ð ˆ�	ús   ÂCÃCc                 ó   — | j                   S )u  
        Read-only attribute returning the ``key`` constructor argument.

        For zones generated from :func:`gettz`, this will be the IANA key
        passed to ``gettz`` â€” no normalization is done, so although in most
        distributions of the time zone database "US/Eastern" is a link to
        "America/New_York", ``tz.gettz("US/Eastern").key`` should always return
        ``"US/Eastern"``.

        For zones constructed via another mechanism without specifying ``key``,
        this returns :obj:`None`.
        )r.   ©rE   s    r   r2   z
tzfile.keyÎ   s   € ð �y‰yÐr'   c                 ó*   — | j                  |«      dk(  S )a6  
        Whether or not the "wall time" of a given datetime is ambiguous in this
        zone.

        :param dt:
            A :py:class:`datetime.datetime`, naive or time zone aware.


        :return:
            Returns ``True`` if ambiguous, ``False`` otherwise.

        .. versionadded:: 2.6.0
        r   )Ú_is_ambiguous_or_imaginary©rE   Údts     r   Úis_ambiguousztzfile.is_ambiguousÞ   s   € ð ×.Ñ.¨rÓ2°aÑ7Ð7r'   c                 ó  — |�| j                   ry| j                  |«      }| j                  |d|¬«      }| j                  |d|¬«      }t        |j                  |j                  kD  «      t        |j                  |j                  kD  «      z
  S )Nr   )ÚfoldÚ	timestampr   )Ú_fixed_offsetÚ_get_local_timestampÚ_find_transÚintÚutcoff)rE   rO   rS   Útti_0Útti_1s        r   rM   z!tzfile._is_ambiguous_or_imaginaryî   sˆ   € Øˆ:˜×+Ò+Øà×-Ñ-¨bÓ1ˆ	Ø× Ñ  ¨!°yÐ ÓAˆØ× Ñ  ¨!°yÐ ÓAˆô �5—<‘< %§,¡,Ñ.Ó/´#Ø�L‰L˜5Ÿ<™<Ñ'ó3
ñ 
ð 	
r'   c                 ó8   — | j                  |«      j                  S r   )rV   rX   rN   s     r   Ú	utcoffsetztzfile.utcoffsetû   ó   € Ø×Ñ Ó#×*Ñ*Ð*r'   c                 ó8   — | j                  |«      j                  S r   )rV   ÚdstoffrN   s     r   Údstz
tzfile.dstþ   r]   r'   c                 ó8   — | j                  |«      j                  S r   )rV   ÚtznamerN   s     r   rb   ztzfile.tzname  s   € à×Ñ Ó#×*Ñ*Ð*r'   c                 óŒ  — t        |t        «      st        d«      ‚|j                  | urt	        d«      ‚| j                  |«      }t        | j                  «      }|dk\  r"|| j                  d   k  r| j                  }d}�n¤|dk(  s|| j                  d   kD  r§t        | j                  t        «      s�| j                  j                  ||j                  «      \  }}|�rG|�sD|dkD  r| j                  d   }n| j                  }|j                  |j                  z
  }|j                  «       || j                  d   z
  kD  }næ|dk(  r| j                  }d}nÒt!        j"                  | j                  |«      }|dkD  r(|| j                  d   k\  r| j                  |dz
  | \  }}nF|| j                  d   kD  r| j                  }| j                  }n| j                  }| j                  d   }|j                  |j                  z
  }|j                  «       || j                  |dz
     z
  kD  }||j                  z  }|rt%        |d¬«      S |S )	a  
        The ``tzfile`` implementation of :py:func:`datetime.tzinfo.fromutc`.

        :param dt:
            A :py:class:`datetime.datetime` object.

        :raises TypeError:
            Raised if ``dt`` is not a :py:class:`datetime.datetime` object.

        :raises ValueError:
            Raised if this is called with a ``dt`` which does not have this
            ``tzinfo`` attached.

        :return:
            Returns a :py:class:`datetime.datetime` object representing the
            wall time in ``self``'s time zone.
        z&fromutc() requires a datetime argumentzdt.tzinfo is not selfr   r   éÿÿÿÿéþÿÿÿé   )rR   )r>   r   Ú	TypeErrorÚtzinfoÚ
ValueErrorrU   r   Ú
_trans_utcÚ_tti_beforeÚ	_tz_afterÚ_ttinfoÚget_trans_info_fromutcÚyearÚ_ttinfosrX   Útotal_secondsÚbisectÚbisect_rightr	   )	rE   rO   rS   Ú	num_transÚttirR   Útti_prevÚshiftÚidxs	            r   Úfromutcztzfile.fromutc  s  € ô& ˜"œhÔ'ÜÐDÓEÐEØ�9‰9˜DÑ ÜÐ4Ó5Ð5à×-Ñ-¨bÓ1ˆ	Ü˜Ÿ™Ó(ˆ	à˜Š>˜i¨$¯/©/¸!Ñ*<Ò<Ø×"Ñ"ˆCØŠDà˜ŠN˜i¨$¯/©/¸"Ñ*=Ò=Ü˜TŸ^™^¬WÔ5ØŸ™×=Ñ=Ø˜2Ÿ7™7ó‰IˆC�ò ¢Ø˜q’=Ø#Ÿ}™}¨RÑ0‘Hà#×/Ñ/�Hà Ÿ™¨#¯*©*Ñ4�Ø×*Ñ*Ó,¨y¸4¿?¹?È2Ñ;NÑ/NÑN‘Ø˜!Š^Ø—.‘.ˆCØ‰Dä×%Ñ% d§o¡o°yÓAˆCà˜1Š} ¨d¯o©o¸aÑ.@Ò!@Ø $§¡¨c°A©g¸Ð <‘�™#Ø˜TŸ_™_¨RÑ0Ò0ð  ×+Ñ+�Ø—n‘n‘à×+Ñ+�Ø—m‘m AÑ&�ð —O‘O c§j¡jÑ0ˆEØ×&Ñ&Ó(¨9°t·±ÀsÈQÁwÑ7OÑ+OÑOˆDØ
ˆc�j‰jÑˆÙÜ˜" 1Ô%Ð%àˆIr'   c                 ó¶  — |€| j                   r| j                  S t        S |€| j                  |«      }n|}|€t	        |dd«      }| j
                  |   }t        |«      }|r||d   k  r| j                  S |r||d   kD  r¬t        | j                  t        «      r†| j                  j                  ||j                  |«      }|r| j                  d   nd }|�H|j                  |j                  k7  r/||j                  j                  «       z
  | j                  d   k  r|S |S | j                  S t!        j"                  ||«      dz
  }	|	dk\  sJ ‚| j                  |	   S )NrR   r   rd   r   )rT   rl   Ú
_NO_TTINFOrU   ÚgetattrÚ_trans_localr   rk   r>   Ú_TZStrÚget_trans_inforo   rp   rX   rq   rj   rr   rs   )
rE   rO   rR   rS   ÚtsÚltrt   ru   Úlast_ttirx   s
             r   rV   ztzfile._find_transN  sK  € Øˆ:Ø×!Ò!Ø—~‘~Ð%ä!Ð!àÐØ×*Ñ*¨2Ó.‰BàˆBàˆ<Ü˜2˜v qÓ)ˆDà×Ñ˜tÑ$ˆä˜“Gˆ	á˜˜b ™ešØ×#Ñ#Ð#Ù˜b 2 b¡6škÜ˜$Ÿ.™.¬&Ô1Ø—n‘n×3Ñ3°B¸¿¹ÀÓF�ñ 1:˜4Ÿ=™=¨Ò,¸t�àÐ(ØŸ
™
 h§o¡oÒ5Ø˜SŸZ™Z×5Ñ5Ó7Ñ7¸$¿/¹/È"Ñ:MÒMà#�Oà�
à—~‘~Ð%ô ×%Ñ% b¨"Ó-°Ñ1ˆCØ˜!’8ˆO�8Ø—=‘= Ñ%Ð%r'   c                 ó�   — |j                  «       t        z
  dz  |j                  dz  z   |j                  dz  z   |j                  z   S )Né€Q é  é<   )Ú	toordinalÚEPOCHORDINALÚhourÚminuteÚsecondrN   s     r   rU   ztzfile._get_local_timestamp  sH   € à�\‰\‹^œlÑ*¨eÑ3Ø�g‰g˜‰nñà�i‰i˜"‰nñð �i‰iñð	
r'   )r/   rT   Ú_isdstr.   Ú
_trans_idxr}   rj   rk   Ú_ttinfo_listrp   rl   Ú_tz_strÚ_utcoff_rawc                 ó$   — | j                  d «      S r   )Ú__reduce_ex__rK   s    r   Ú
__reduce__ztzfile.__reduce__š  s   € Ø×!Ñ! $Ó'Ð'r'   c                 óJ  — | j                   D �cg c]%  }t        |j                  j                  «       «      ‘Œ' }}t	        | d|«      }| j                   D �cg c]  }|j
                  ‘Œ }}| j                  }| j                  }| j                  }| j                  }||||||f}	| j                  | j                  | j                  |	f}
t        | «      j                  «       D ��ci c]  \  }}|| j                  vsŒ||“Œ }}}|r	t         |
|fS t         |
fS c c}w c c}w c c}}w )Nr�   )rŽ   rW   rX   rq   r|   rb   r�   rŒ   rj   r�   rI   r.   r/   ÚvarsÚitemsÚ_UNPICKLE_ATTRSr6   )rE   ÚprotocolÚttinforX   ÚabbrÚ	trans_idxÚisdstÚ	trans_utcÚtz_strr4   ÚargsÚkÚvÚstates                 r   r’   ztzfile.__reduce_ex__�  s  € à=A×=NÑ=Nö
Ø39ŒC�—‘×+Ñ+Ó-Õ.ð
ˆð 
ô ˜˜}¨fÓ5ˆØ,0×,=Ñ,=Ö> &�—“Ð>ˆÐ>ð —O‘Oˆ	Ø—‘ˆà—O‘Oˆ	Ø—‘ˆà˜9 f¨e°T¸6ÐBˆØ—‘ §	¡	¨4¯>©>¸4Ð@ˆô
 " $›Z×-Ñ-Ó/÷
Ù�Q˜°1¸D×<PÑ<PÒ3PˆAˆq‰Dð
ˆñ 
ñ Ü˜t UÐ+Ð+ä˜4Ð Ð ùò3
ùò ?ùó
s   �*DÁDÃ#DÃ:Dc                 ó°   — t        |«      rt        |d«      s#t        j                  |j	                  «       «      }t        |«      }| j                  |«       y )NÚreadline)Ú_is_seekablerB   ÚioÚBytesIOÚreadÚ	load_datar0   )rE   Úfobjr4   s      r   rD   ztzfile._load_file¹  sB   € ô ˜DÔ!¬°°zÔ)BÜ—:‘:˜dŸi™i›kÓ*ˆDô ˜‹ˆØ×Ñ˜TÕ"r'   c                 óÐ  — |\  }}}}}}| j                  ||||«      }|D �	cg c]  }	|	rdnd‘Œ
 }
}	t        ||«      D ]
  \  }}||
|<   Œ t        j                  dk  rP|D �cg c]  }d|dz   dz  z  ‘Œ }}|
D �cg c]  }d|dz   dz  z  ‘Œ }
}|D �cg c]  }d|dz   dz  z  ‘Œ }}|| _        n|}| j                  |||«      }t        ||
|«      D ���cg c]%  \  }}}t        t        |«      t        |«      |«      ‘Œ' }}}}|| _        || _	        || _
        || _        || _        i }g | _        t        ||«      D ]|  \  }}||   }|j                  j                  «       |k7  r:||f}||vr-t        |j                   t        |«      |j"                  «      ||<   ||   }| j                  j%                  |«       Œ~ t'        t)        |«      «      D ]  }||   rŒ	||   | _         n) | j                  r| j                  d   | _        nd | _        || _        |�$|dk7  rt/        |j1                  «       «      | _        nD| j                  s|st5        d«      ‚| j                  r| j                  d   | _        n
|d   | _        t)        |«      d	kD  st7        | j2                  t        «      sd
| _        y |sd| _        y |d   | j2                  k(  | _        y c c}	w c c}w c c}w c c}w c c}}}w )Nr…   r   ©é   é   r†   é   r'   zNo time zone information found.rd   r   FT)Ú_utcoff_to_dstoffÚzipÚsysÚversion_infor�   Ú_ts_to_localrm   r+   rŽ   r�   rŒ   rj   r}   rp   r_   rq   rX   rb   ÚappendÚranger   rk   r�   Ú_parse_tz_strÚdecoderl   ri   r>   rT   )rE   r4   r›   r�   rX   rœ   rš   rž   Útrans_dstoffr`   r_   rx   Ú	trans_offÚsÚutcoff_adjustedÚtrans_localr\   Ú	dstoffsetrb   rŽ   Úttinfosru   r2   Úis                           r   r0   ztzfile._load_from_dataÄ  s  € Ø<@Ñ9ˆ	�9˜f e¨T°6ð ×-Ñ-Ø�y &¨%ó
ˆð 16Ö6¨™#‘$ 1Ñ$Ð6ˆÐ6Ü! )¨\Ó:ò 	$‰NˆC�Ø#ˆF�3ŠKð	$ô ×Ñ˜fÒ$ð
 ?EÖE¸˜r a¨"¡f°¡^Ó4ÐEˆOÐEØ5;Ö<°�b˜Q ™V¨™NÓ+Ð<ˆFÐ<Ø;GÖH°a˜B 1 r¡6¨b¡.Ó1ÐHˆLÐHØ%ˆDÕà$ˆOð ×'Ñ'¨	°9¸oÓNˆô 14Ø ¨ó1÷	
ð 
ñ -�	˜9 fô Ü 	Ó*¬O¸IÓ,FÈõð
ˆò 
ð )ˆÔà#ˆŒØˆŒØ#ˆŒØ'ˆÔð ˆØˆŒÜ! )¨\Ó:ò 		&‰NˆC�Ø˜sÑ#ˆCØ�z‰z×'Ñ'Ó)¨YÒ6Ø˜IÐ&�Ø˜gÑ%Ü#*ØŸ
™
¤O°IÓ$>ÀÇ
Á
ó$�G˜C‘Lð ˜c‘l�Ø�M‰M× Ñ  Õ%ð		&ô ”s˜5“zÓ"ò 	(ˆAØ˜“8Ø#/°¡?�Ô Ùð	(ð
 �}Š}Ø#'§=¡=°Ñ#3�Õ à#'�Ô ð ˆŒØÐ &¨C¢-Ü*¨6¯=©=«?Ó;ˆD�Nà—=’=©Ü Ð!BÓCÐCà�}Š}Ø!%§¡¨rÑ!2�•ð ".¨a¡�”ô* ˆ|Ó˜qÒ ¬
°4·>±>Ä7Ô(KØ!&ˆDÕÙØ!%ˆDÕà!-¨a¡°D·N±NÑ!BˆDÕùòK 7ùò FùÚ<ùÚHùô
s   ¢KÁ!KÁ9KÂKÃ*K!c           
      ó0  — t        | «      }t        d„ t        ||«      D «       d«      }dg|z  }dg|z  }t        |«      ||ft        |dz
  dd«      |dffD ]+  \  }}	}
|D ]   }| |   }||   s||   }
Œ|
€Œ||   |
z
  |	|<   Œ" Œ- t        |«      D �cg c]  }||   r||   ||   k(  r
||   ||   f‘Œ }}dg|z  }t        |«      D ]¹  }|| |      sŒ||   ||   fD �ch c]  }|sŒ|’Œ	 }}t        |«      dkD  r|D �ch c]  }|dz  dk(  sŒ|’Œ }}|xs |}t        |«      dkD  rA|D ��ch c]  \  }}t	        |||   z
  «      t
        k  r|’Œ! }}}||z  }t        |«      dk(  r|}|rt        |d„ ¬«      ||<   Œµd	||<   Œ» |S c c}w c c}w c c}w c c}}w )
aD  Infer the DST offset (the value of dst()) for each transition.

        TZif files give the total UTC offset of each local time type and
        whether it is DST, but not how much of the offset is DST, so this has
        to be worked out from the standard time on either side of each DST
        period. That is done for each transition rather than for each local
        time type, because zic reuses a local time type for periods with
        different standard offsets (e.g. UTC+0 DST in the Azores was double
        summer time in the 1940s and summer time later).
        c              3   ó,   K  — | ]  \  }}|rŒ	|–— Œ y ­wr   r   )Ú.0rX   r`   s      r   ú	<genexpr>z+tzfile._utcoff_to_dstoff.<locals>.<genexpr>E  s   è ø€ ÒJ™˜ ÂcŒVÑJùs   ‚
�Nr   rd   r   i,  c                 ó"   — | dk  t        | «      fS ©Nr   )Úabs)Úcs    r   ú<lambda>z*tzfile._utcoff_to_dstoff.<locals>.<lambda>}  s   € ¸AÀ¹EÄ3ÀqÃ6¸?€ r'   ©r2   r…   )r   Únextr±   r¶   rÇ   Ú_DST_CONSENSUS_WINDOWÚmin)r›   r�   Ú
utcoffsetsÚisdstsÚnÚfirst_std_utcoffÚbeforeÚafterÚindicesÚimpliedÚ
std_utcoffrÀ   rx   Ú	clear_cutÚdstoffsrÈ   Ú
candidatesÚ	plausibler€   r_   ÚnearbyÚ	consensuss                         r   r°   ztzfile._utcoff_to_dstoff3  s4  € ô �	‹Nˆô
  ÙJ¤s¨:°vÓ'>ÔJØó
Ðð �˜!‘ˆØ�˜‘
ˆä�1‹X�vÐ/Ð0Ü�1�q‘5˜"˜bÓ! 5¨$Ð/ð-
ò 		>Ñ(ˆG�W˜jð ò >�Ø ‘l�Ø˜c’{Ø!+¨C¡‘JØÑ+Ø!+¨C¡°:Ñ!=�G˜A’Jñ>ð			>ô ˜1“Xö
àØ�aŠy˜V A™Y¨%°©(Ò2ð �q‰\˜6 !™9Ò%ð
ˆ	ð 
ð �#˜‘'ˆÜ�q“ò $	"ˆAØ˜) A™,Ò'Øà&,¨Q¡i°°q±Ð%:Ö@ ºaš!Ð@ˆJÐ@Ü�:‹ Ò"ð )3ÖC 1°a¸#±gÀ³lšQÐC�	ÐCØ&Ò4¨*�
ä�:‹ Ò"ð '0÷á"˜˜FÜ˜2 	¨!¡Ñ,Ó-Ô1FÒFò ð�ñ ð
 '¨Ñ/�	Ü�y“> QÒ&Ø!*�Jáô ! Ñ1JÔK�˜’
ð "�˜’
ðI$	"ðL ˆùò[
ùò Aùò
 Dùós$   Â!FÃFÃ%FÃ=FÄFÄ*$Fc                 ó‚  — |sg g gS t        |«      t        |«      g}t        |«      dkD  r|d   }|| d      }||kD  r||}}n|d   x}}|d   dxx   |z  cc<   |d   dxx   |z  cc<   t        dt        | «      «      D ]>  }|| |dz
        }|| |      }||kD  r||}}|d   |xx   |z  cc<   |d   |xx   |z  cc<   Œ@ |S )z‡Generate number of seconds since 1970 *in the local time*.

        This is necessary to easily find the transition times in local timer   r   )Úlistr   r¶   )r›   Útrans_list_utcrÎ   Útrans_list_wallÚoffset_0Úoffset_1rÀ   s          r   r´   ztzfile._ts_to_local…  s  € ñ
 Ø˜�8ˆOô   Ó/´°nÓ1EÐFˆäˆz‹?˜QÒØ! !‘}ˆHØ! )¨A¡,Ñ/ˆHØ˜(Ò"Ø%-¨x˜(‘à",¨Q¡-Ð/ˆH�xà˜Ñ˜1Ó Ñ)ÓØ˜Ñ˜1Ó Ñ)Óä�qœ#˜i›.Ó)ò 	.ˆAØ! )¨A°©EÑ"2Ñ3ˆHØ! )¨A¡,Ñ/ˆHà˜(Ò"Ø%-¨x˜(�à˜AÑ˜qÓ! XÑ-Ó!Ø˜AÑ˜qÓ! XÑ-Ô!ð	.ð Ðr'   c                 óH  — t        |t        «      st        S | j                  |j                  k(  xrr | j                  |j                  k(  xrW | j
                  |j
                  k(  xr< | j                  |j                  k(  xr! | j                  «       |j                  «       k(  S r   )r>   r8   ÚNotImplementedrj   r}   rp   rk   Ú_fallback_key©rE   Úothers     r   Ú__eq__ztzfile.__eq__§  s•   € Ü˜%¤Ô(Ü!Ð!ð �O‰O˜u×/Ñ/Ñ/ò >Ø×!Ñ! U×%7Ñ%7Ñ7ò>à—‘ §¡Ñ/ò>ð × Ñ  E×$5Ñ$5Ñ5ò>ð ×"Ñ"Ó$¨×(;Ñ(;Ó(=Ñ=ð	
r'   c                 óf   — t        | j                  t        «      r| j                  S | j                  S r   )r>   rl   rm   r�   rK   s    r   rå   ztzfile._fallback_key³  s&   € ô �d—n‘n¤gÔ.Ø—>‘>Ð!Ø�|‰|Ðr'   c                 ó   — | |k(   S r   r   ræ   s     r   Ú__ne__ztzfile.__ne__½  s   € Ø˜E‘MÐ"Ð"r'   c                 ó`   — | j                   j                  ›dt        | j                  «      ›d�S )Nú(ú))rI   Ú__name__rC   r/   rK   s    r   Ú__repr__ztzfile.__repr__À  s    € ØŸ>™>×2Ó2´D¸¿¹Õ4HÐIÐIr'   ©NN)rï   Ú
__module__Ú__qualname__Ú__doc__r=   Úpropertyr2   rP   rM   r\   r`   r
   rb   ry   rV   rU   Ú	frozensetr—   r“   r’   rD   r0   Ústaticmethodr°   r´   rè   rå   Ú__hash__rë   rð   Ú__classcell__)rI   s   @r   r8   r8   [   sÍ   ø„ ñVõpð4 ñó ðò8ò 
ò+ò+ð ñ+ó ð+òGóR/&òb
ñ  ò	
ó€Oò$(ò!ò8	#òmCð^ ñOó ðOðb ñó ðòB

òð €Hò#öJr'   r8   Úwin32)r­   é   c                 ó2  — t        | d«      syt        | dd «      }|� |«       syt        sy	 | j                  «       }	 t        j                  t        j                  |«      j                  «      S # t        t
        t        f$ r Y yw xY w# t
        $ r Y yw xY w)NÚseekFÚseekableT)rB   r|   Ú_SEEKABLE_PIPES_BUGÚfilenoÚAttributeErrorÚOSErrorri   ÚstatÚS_ISREGÚosÚfstatÚst_mode)rª   rþ   Úfds      r   r¥   r¥   É  s�   € Ü�4˜Ô Øä�t˜Z¨Ó.€HàÐ¡H¤JØåØðØ�[‰[‹]ˆð
Ü�|‰|œBŸH™H R›L×0Ñ0Ó1Ð1øô œG¤ZÐ0ò áðûô ò Ùðús"   ­A0 ¾1B
 Á0BÂBÂ
	BÂBc                 ó˜   — 	 t        | «      S # t        j                  $ r)}t        j                  t        d«      |«       Y d }~y d }~ww xY w)Nú)Invalid TZif file: unexpected end of file)Ú
_load_dataÚstructÚerrorr?   Ú
raise_fromri   )rª   Úes     r   r©   r©   â  sB   € ð
Ü˜$ÓÐøÜ�<‰<ò 
ä�‰ÜÐBÓCÀQ÷	
ñ 	
ûð
ús   ‚
 �A	 AÁA	c                 óÀ  ‡ ‡‡‡— t         j                  ‰ «      }|j                  dk(  rd}d}n�d}d}|j                  dz  |j                  dz  z   |j
                  z   |j                  dz  z   |j                  z   |j                  z   }‰ j                  |d«       t         j                  ‰ «      }|j                  }|j                  }|j
                  }|rzt        j                  d|›|›�‰ j                  ||z  «      «      }t        j                  d	|z  ‰ j                  |«      «      }	t        |	«      |k\  rt        d
t        |	«      z  «      ‚d}d}	|rt        ˆ fd„t!        |«      D «       Ž \  }
}}nd}
d}d}i Š‰ j                  |«      Šˆˆfd„Št#        ˆfd„|D «       «      }|j                  |j                  z   |j                  |dz   z  z   }‰ j                  |d«       |j                  dk\  rb‰ j                  d«      }|dk7  rt        d|z  «      ‚‰ j%                  «       }|j'                  d«      st        d«      ‚|j)                  d«      }nd }|	||
|||fS )Nr   é   Úlé   Úqé   r®   ú>z>%sBz5Invalid transition index found while reading TZif: %sr   c              3   óh   •K  — | ])  }t        j                  d ‰j                  d«      «      –— Œ+ y­w)z>lbbr®   N)r  Úunpackr¨   )rÃ   rÀ   rª   s     €r   rÄ   z_load_data.<locals>.<genexpr>  s$   øè ø€ ÒJ°aŒf�m‰m˜F D§I¡I¨a£L×1ÑJùs   ƒ/2c                 óf   •— | ‰vr(‰j                  d| «      }‰| | j                  «       ‰| <   ‰|    S )Nó    )Úfindr¸   )rx   Úspan_endÚ
abbr_charsÚ	abbr_valss     €€r   Úget_abbrz_load_data.<locals>.get_abbr-  s@   ø€ ð �iÑØ!—‘ w°Ó4ˆHØ'¨¨HÐ5×<Ñ<Ó>ˆI�c‰Nà˜‰~Ðr'   c              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr   r   )rÃ   rx   r  s     €r   rÄ   z_load_data.<locals>.<genexpr>>  s   øè ø€ Ò2 3‘˜#—Ñ2ùs   ƒrf   ó   
z+Invalid TZif file: expected newline, got %rr
  )Ú_TZifHeaderÚ	from_fileÚversionÚtimecntÚtypecntÚcharcntÚleapcntÚisstdcntÚisutcntrý   r  r  r¨   Úmaxri   r±   r¶   Útupler¤   ÚendswithÚrstrip)rª   ÚheaderÚ	time_sizeÚ	time_typeÚ
skip_bytesr&  r%  r'  rß   r›   rX   rœ   Úabbrindrš   rÈ   Úlinerž   r  r  r  s   `                @@@r   r  r  ì  sb  û€ Ü×"Ñ" 4Ó(€Fà‡~�~˜ÒØˆ	Ø‰	ð ˆ	Øˆ	ð
 �N‰N˜QÑØ�n‰n˜qÑ ñ!à�n‰nñð �n‰n˜qÑ ñ!ð �o‰oñ	ð
 �n‰nñð 	ð 	�	‰	�*˜aÔ ô ×&Ñ& tÓ,ˆà�n‰n€GØ�n‰n€GØ�n‰n€Gñ ÜŸšÙ¡	Ð*¨D¯I©I°gÀ	Ñ6IÓ,Jó
ˆô —M‘M &¨7Ñ"2°D·I±I¸gÓ4FÓGˆ	äˆy‹>˜WÒ$ÜØGÜ�i“.ñ!óð ð
 ˆØˆ	ñ Ü!$ÛJ¼5À»>ÔJð"
Ñˆ�‘wð ˆØˆØˆð €IØ—‘˜7Ó#€Jõô" Ó2¨'Ô2Ó2€Dð 	�‰˜Ÿ™Ñ(¨6¯>©>¸YÈ¹]Ñ+KÑKð ð 	‡I�Iˆj˜!ÔØ‡~�~˜ÒØ�I‰I�a‹LˆØ�Š:ÜÐJÈQÑNÓOÐOà�}‰}‹ˆØ�}‰}˜UÔ#ÜÐHÓIÐIØ—‘˜UÓ#‰àˆà�n f¨e°T¸6ÐAÐAr'   i Ìc                   ó*   — e Zd Zg d¢Zd„ Zed„ «       Zy)r"  )r$  r*  r)  r(  r%  r&  r'  c                 ó    — t        | j                  «      t        |«      k(  sJ ‚t        | j                  |«      D ]  \  }}t        | ||«       Œ y r   )r   Ú	__slots__r±   Úsetattr)rE   rŸ   ÚattrÚvals       r   r=   z_TZifHeader.__init__i  sG   € Ü�4—>‘>Ó"¤c¨$£iÒ/Ð/Ð/Ü˜TŸ^™^¨TÓ2ò 	%‰IˆD�#Ü�D˜$ Õ$ñ	%r'   c                 ó
  — |j                  d«      dk7  rt        d«      ‚|j                  d«      }|dk(  rd}nt        |«      }|j                  d«       |f}|t        j                  d|j                  d«      «      z   } | |Ž S )	Nr  s   TZifz"Invalid TZif file: magic not foundr   r  é   z>6lé   )r¨   ri   rW   r  r  )r1   ÚstreamÚ_versionr$  rŸ   s        r   r#  z_TZifHeader.from_filen  s~   € ð �;‰;�q‹>˜WÒ$ÜÐAÓBÐBà—;‘;˜q“>ˆØ�wÒØ‰Gä˜(“mˆGØ�‰�BŒàˆzˆð ”f—m‘m E¨6¯;©;°r«?Ó;Ñ;ˆá�DˆzÐr'   N)rï   rò   ró   r7  r=   Úclassmethodr#  r   r'   r   r"  r"  ^  s"   „ ò€Iò%ð
 ñó ñr'   r"  c                   ó,   — e Zd Zg d¢Zd„ Zd„ Zd„ Zd„ Zy)rm   ©rX   r_   rb   c                 ó.   — || _         || _        || _        y r   rB  )rE   rX   r_   rb   s       r   r=   z_ttinfo.__init__†  s   € ØˆŒØˆŒØˆ�r'   c                 óÌ   — t        |t        «      st        S | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S r   )r>   rm   rä   rX   r_   rb   ræ   s     r   rè   z_ttinfo.__eq__‹  sS   € Ü˜%¤Ô)Ü!Ð!ð �K‰K˜5Ÿ<™<Ñ'ò ,Ø—‘˜uŸ|™|Ñ+ò,à—‘˜uŸ|™|Ñ+ð	
r'   c                 ó>   — | j                  |«      }|t        u r|S | S r   )rè   rä   )rE   rç   Úeqs      r   rë   z_ttinfo.__ne__•  s$   € à�[‰[˜ÓˆØ”ÑØˆIØˆvˆr'   c                 ó‚   — | j                   j                  ›d| j                  ›d| j                  ›d| j                  ›d�S )Nrí   z, rî   )rI   rï   rX   r_   rb   rK   s    r   rð   z_ttinfo.__repr__œ  s.   € à�N‰N×#Ó#Ø�K‹KØ�K‹KØ�K‹Kð	
ð 	
r'   N)rï   rò   ró   r7  r=   rè   rë   rð   r   r'   r   rm   rm   ƒ  s   „ Ú.€Iòò

òó
r'   rm   c                 ó   — | d   | dd  fS )Nr   r   r   ©Úts    r   Ú_unpackrK  ¨  s   € àˆQ‰4��1�2�ˆ;Ðr'   ÚASCIIc                 ó6   — t        j                  d| z  ||«      S )Nz(?:%s)\Z)ÚreÚmatch)ÚpatternÚstringÚflagss      r   Ú
_fullmatchrS  ²  s   € ä�8‰8�K 'Ñ)¨6°5Ó9Ð9r'   c                 óB   — t         j                  dk  rd| dz   dz  z  S | S )Nr¬   r†   r¯   )r²   r³   r*   s    r   Ú_round_offsetrU  ·  s+   € ô ×Ñ˜&Ò Ø�g ‘l rÑ)Ñ*Ð*Ø€Nr'   c                 ó~  — t        | j                  dd«      «      \  }}d}t        ||t        «      }|€t	        d| z  «      ‚|j                  d«      }|j                  d«      }d }|j                  d«      }|r|j                  d«      }|j                  d«      }|r	 t        t        |«      «      }nt	        d	| z  «      ‚|�p|j                  d
«      }|r	 t        t        |«      «      }n|dz   }|st	        d| z  «      ‚|d   j                  dd«      }
	 d„ |
D «       \  }}t        ||||||«      S |rt	        d| z  «      ‚t        t        |«      t        d«      |«      S # t        $ r}	t	        d	| z  «      ‚d }	~	ww xY w# t        $ r}	t	        d| z  «      ‚d }	~	ww xY w# t        $ r}	t	        d| z  «      ‚d }	~	ww xY w)Nú,r   z­(?P<std>[a-zA-Z]+|<[a-zA-Z0-9+-]+>)(?:(?P<stdoff>[+-]?\d{1,3}(?::\d{2}(?::\d{2})?)?)(?:(?P<dst>[a-zA-Z]+|<[a-zA-Z0-9+-]+>)(?P<dstoff>[+-]?\d{1,3}(?::\d{2}(?::\d{2})?)?)?)?)?z%s is not a valid TZ stringÚstdr`   z<>ÚstdoffzInvalid STD offset in %sr_   zInvalid DST offset in %sr…   zMissing transition rules: %sr   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Ú_parse_dst_start_end)rÃ   Úxs     r   rÄ   z _parse_tz_str.<locals>.<genexpr>   s   è ø€ ÒJ°aÔ.¨q×1ÑJùs   ‚zInvalid TZ string: %sz'Transition rule present without DST: %s)rK  ÚsplitrS  Ú	_RE_ASCIIri   ÚgroupÚstriprU  Ú_parse_tz_deltar~   rm   r+   )rž   Ú
offset_strÚstart_end_strÚ	parser_reÚmÚstd_abbrÚdst_abbrÚ
dst_offsetÚ
std_offsetr  Ústart_end_strsÚstartÚends                r   r·   r·   ¿  sñ  € ô !(¨¯©°S¸!Ó(<Ó =Ñ€J�ð	ð ô 	�9˜j¬)Ó4€Aà€yÜÐ6¸Ñ?Ó@Ð@à�w‰w�u‹~€HØ�w‰w�u‹~€HØ€Jà�~‰~˜dÓ#€HáØ—>‘> $Ó'ˆà—‘˜Ó"€JÙð	BÜ&¤°zÓ'BÓC‰Jô
 Ð3°fÑ<Ó=Ð=àÐØ—W‘W˜XÓ&ˆ
ÙðFÜ*¬?¸:Ó+FÓG‘
ð $ dÑ*ˆJáÜÐ;¸fÑDÓEÐEà& qÑ)×/Ñ/°°QÓ7ˆð	?ÙJ¸>ÔJ‰JˆE�3ô �h 
¨H°jÀ%ÈÓMÐMÙ	ÜÐBÀVÑKÓLÐLô Ü˜JÓ'¬¸Ó);¸Xó
ð 	
øô= ò 	BÜÐ7¸&Ñ@ÓAÐAûð	Bûô ò FÜ Ð!;¸fÑ!DÓEÐEûðFûô ò 	?ÜÐ4°vÑ=Ó>Ð>ûð	?úsH   ÂE" ÃF ÄF  Å"	E>Å+E9Å9E>Æ	FÆ
FÆFÆ 	F<Æ)F7Æ7F<c                 óÌ  — t        | j                  dd«      «      \  }}|d d }|dk(  rSd}t        d|t        «      }|€t	        d| z  «      ‚t        t        t        |j                  «       «      «      }t        |Ž }nE|dk(  rd}|dd  }nd}t        d	|t        «      €t	        d| z  «      ‚t        |«      }t        ||«      }|r!t        |d
   «      \  |_        |_        |_        |S )Nú/r   ÚMFzM(\d{1,2})\.(\d)\.(\d)zInvalid dst start/end date: %sÚJTz\d{1,3}r   )rK  r]  rS  r^  ri   r,  ÚmaprW   ÚgroupsÚ_CalendarOffsetÚ
_DayOffsetÚ_parse_transition_timer‰   rŠ   r‹   )	ÚdststrÚdateÚtimeÚ	date_typeÚn_is_julianre  Údate_offsetÚoffsetÚdoys	            r   r[  r[    só   € Ü˜Ÿ™ c¨1Ó-Ó.�J€Dˆ$Ø�R�a�€IØ�CÒØˆÜÐ0°$¼	ÓBˆØˆ9ÜÐ=ÀÑFÓGÐGÜœC¤ Q§X¡X£ZÓ0Ó1ˆÜ  +Ð.‰à˜ÒØˆKØ˜˜�8‰DàˆKä�j $¬	Ó2Ð:ÜÐ=ÀÑFÓGÐGÜ�$‹iˆÜ˜C Ó-ˆáÜ4JØ�‰Gó5
Ñ1ˆŒ�V”] F¤Mð €Mr'   c                 óð   — t        d| t        «      }|€t        d| z  «      ‚d„ t        |j                  d«      D «       \  }}}|dkD  rt        d| z  «      ‚|j	                  d«      dk(  r	| | | }}}|||fS )	Nú=(?P<sign>[+-])?(?P<h>\d{1,3})(:(?P<m>\d{2})(:(?P<s>\d{2}))?)?zInvalid time: %sc              3   ó:   K  — | ]  }t        |xs d «      –— Œ y­w©r   N©rW   ©rÃ   r¡   s     r   rÄ   z)_parse_transition_time.<locals>.<genexpr>5  ó   è ø€ ÒF˜qŒs�1’6˜�{ÑFùó   ‚©Úhre  r»   é§   zHour must be in [0, 167]: %sÚsignú-)rS  r^  ri   rq  r_  )Útime_strrO  r‡  re  r»   s        r   ru  ru  ,  s�   € ÜØHØÜó€Eð
 €}ÜÐ+¨hÑ6Ó7Ð7áF¤C¨¯©°_Ó$EÔF�G€A€qˆ!àˆ3‚wÜÐ7¸(ÑBÓCÐCà‡{�{�6Ó˜cÒ!Ø�"�q�b˜1˜"ˆaˆ1ˆàˆa�ˆ7€Nr'   c                 óð   — t        d| t        «      }|€J | «       ‚d„ t        |j                  d«      D «       \  }}}|dz  |dz  z   |z   }|dkD  rt	        d| z  «      ‚|j                  d«      d	k7  r|d
z  }|S )Nr  c              3   ó:   K  — | ]  }t        |xs d «      –— Œ y­wr�  r‚  rƒ  s     r   rÄ   z"_parse_tz_delta.<locals>.<genexpr>J  r„  r…  r†  r…   r†   r=  z#Offset hours must be in [0, 24]: %sr‰  rŠ  rd   )rS  r^  rq  r_  ri   )Útz_deltarO  r‡  re  r»   Útotals         r   ra  ra  @  s“   € ÜØHØÜó€Eð ÐÐ&˜hÓ&ÐáF¤C¨¯©°_Ó$EÔF�G€A€qˆ!à�‰H�q˜2‘vÑ Ñ!€Eàˆ2‚vÜÐ>ÀÑIÓJÐJð ‡{�{�6Ó˜cÒ!Ø�‰ˆà€Lr'   c                   ó>   — e Zd ZdZ	 d
d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
y)r~   )rX  r`   rk  rl  r   rn   Údst_diffNc                 óP  — ||z
  | _         t        |«      }t        |t        d«      |¬«      | _        || _        || _        t        |«      }t        | j                   «      }t        |||¬«      | _        |€J d«       ‚|€J d«       ‚| j                  | _        | j                  | _
        y )Nr   rB  zNo transition start specifiedzNo transition end specified)r‘  r+   rm   rX  rk  rl  r`   Ú_get_trans_infor   Ú_get_trans_info_fromutcrn   )rE   rf  ri  rg  rh  rk  rl  Údeltas           r   r=   z_TZStr.__init__c  sª   € ð # ZÑ/ˆŒÜ$ ZÓ0ˆ
ÜØ¤o°aÓ&8Àô
ˆŒð ˆŒ
ØˆŒä$ ZÓ0ˆ
Ü §¡Ó.ˆÜ *°UÀ8ÔLˆŒð Ð ÐAÐ"AÓAÐ ØˆÐ=Ð =Ó=ˆà"×2Ñ2ˆÔØ&*×&BÑ&BˆÕ#r'   c                 óv   — | j                   j                  |«      }| j                  j                  |«      }||fS r   )rk  Úyear_to_epochrl  )rE   ro   rk  rl  s       r   Útransitionsz_TZStr.transitions{  s4   € Ø—
‘
×(Ñ(¨Ó.ˆØ�h‰h×$Ñ$ TÓ*ˆØ�cˆzÐr'   c                 ót   — t        |«      dz  }t        |dz   «      dz  }||t        z   k  xs ||t        z
  k\  S )zmWhether ts is close enough to the new year that the rules for the
        previous or next year might matter.r„   r   )Ú_post_epoch_days_before_yearÚ_NEW_YEAR_MARGIN)rE   r€   ro   Ú
year_startÚyear_ends        r   Ú_near_new_yearz_TZStr._near_new_year€  sL   € ô 2°$Ó7¸%Ñ?ˆ
Ü/°°q±Ó9¸EÑAˆà�Ô.Ñ.Ñ.ò 1Ø�XÔ 0Ñ0Ñ0ð	
r'   c                 óV  — | j                  ||«      r| j                  ||«      S | j                  |«      \  }}|| j                  dk\  k(  r|| j                  z  }n|| j                  z  }||k  r||cxk  xr |k  nc }n||cxk  xr |k  nc  }|r| j                  S | j
                  S )z6Get the information about the current transition - ttir   )rž  Ú_get_trans_info_near_new_yearr˜  r‘  r`   rX  )rE   r€   ro   rR   rk  rl  rœ   s          r   r“  z_TZStr._get_trans_infoŠ  s¥   € à×Ñ˜r 4Ô(Ø×5Ñ5°b¸$Ó?Ð?à×%Ñ% dÓ+‰
ˆˆsð �D—M‘M QÑ&Ò'Ø�4—=‘=Ñ ‰Cà�T—]‘]Ñ"ˆEà�3Š;Ø˜RÖ% #Ô%‰Eà Ö* UÔ*Ð+ˆEá ˆt�x‰xÐ. d§h¡hÐ.r'   c                 óè  — g }| j                   | j                  fD ]h  }||j                  j                  «       z
  }	 t        t        |¬«      z   j                  }| j                  ||«      \  }}||u sŒX|j                  |«       Œj t        |«      dk(  r|d   S t        | j                   | j                  fd„ ¬«      \  }	}
|r	|dk(  r|
S |	S |dk(  r|	S |
S # t        $ r |dk  rt        nt        }Y Œ—w xY w)Nr*   r   r   c                 ó   — | j                   S r   )rX   rI  s    r   rÉ   z6_TZStr._get_trans_info_near_new_year.<locals>.<lambda>»  s
   € ÀQÇXÁX€ r'   rÊ   )rX  r`   rX   rq   ÚEPOCHr   ro   ÚOverflowErrorr   r   Ú%_get_trans_info_fromutc_near_new_yearrµ   r   Úsorted)rE   r€   rR   Úvalidru   Úutc_tsÚutc_yearÚactualÚ_ÚsmallerÚlargers              r   r   z$_TZStr._get_trans_info_near_new_year¥  sÿ   € ð
 ˆØ—H‘H˜dŸh™hÐ'ò 	"ˆCØ˜#Ÿ*™*×2Ñ2Ó4Ñ4ˆFð>Ü!¤I°fÔ$=Ñ=×CÑC�ð ×BÑBØ˜ó‰IˆF�Að ˜Š}Ø—‘˜SÕ!ð	"ô ˆu‹:˜Š?Ø˜‘8ˆOä  $§(¡(¨D¯H©HÐ!5Ñ;MÔN‰ˆ�Ùà! QšY�6Ð3¨GÐ3ð # aši�7Ð3¨VÐ3øô% !ò >à&,¨q¢j�7´g’ð>ús   ¼CÃC1Ã0C1c                 óP  — | j                   j                  j                  «       }| j                  j                  j                  «       }g }|dz
  ||dz   fD ]B  }| j	                  |«      \  }}|j                  ||z
  df«       |j                  ||z
  df«       ŒD |j                  «        |d   d    }	d }
d}|t        |«      k  rx||   d   |k  rm||   d   }|	}|t        |«      k  r2||   d   |k(  r'||   d   }|dz  }|t        |«      k  r||   d   |k(  rŒ'||	k7  r|}	|}
|t        |«      k  r||   d   |k  rŒm|	r| j                  | j                   }}n| j                   | j                  }}d}|
�/|j                  |j                  z
  j                  «       }|||
z
  kD  }||fS )Nr   TFr   )rX  rX   rq   r`   r˜  rµ   Úsortr   )rE   r€   ro   rÖ   Ú
dst_utcoffr˜  Úyrk  rl  rœ   Úlast_changerÀ   Útrans_tsÚ	new_isdstru   rv   rR   rw   s                     r   r¥  z,_TZStr._get_trans_info_fromutc_near_new_yearÃ  sÞ  € ð —X‘X—_‘_×2Ñ2Ó4ˆ
Ø—X‘X—_‘_×2Ñ2Ó4ˆ
àˆØ˜‘(˜D $¨¡(Ð+ò 	:ˆAØ×)Ñ)¨!Ó,‰JˆE�3Ø×Ñ ¨
Ñ 2°DÐ9Ô:Ø×Ñ  jÑ 0°%Ð8Õ9ð	:ð 	×ÑÔà ‘N 1Ñ%Ð%ˆØˆØˆØ”#�kÓ"Ò" {°1¡~°aÑ'8¸BÒ'>Ø" 1‘~ aÑ(ˆHØˆIØ”c˜+Ó&Ò&¨;°q©>¸!Ñ+<ÀÒ+HØ'¨™N¨1Ñ-�	Ø�Q‘�ð ”c˜+Ó&Ò&¨;°q©>¸!Ñ+<ÀÓ+Hð ˜EÒ!Ø!�Ø&�ð ”#�kÓ"Ò" {°1¡~°aÑ'8¸BÓ'>ñ Ø ŸH™H d§h¡h�‰Cà ŸH™H d§h¡h�ˆCð ˆØÐ"Ø—_‘_ s§z¡zÑ1×@Ñ@ÓBˆEØ˜2 Ñ+Ñ+ˆDà�Tˆ{Ðr'   c                 ó  — | j                  ||«      r| j                  ||«      S | j                  |«      \  }}|| j                  j                  j                  «       z  }|| j                  j                  j                  «       z  }||k  r||cxk  xr |k  nc }n||cxk  xr |k  nc  }| j                  dkD  r|}|| j                  z   }n|}|| j                  z
  }||cxk  xr |k  nc }|r| j                  |fS | j                  |fS rÆ   )rž  r¥  r˜  rX  rX   rq   r`   r‘  )	rE   r€   ro   rk  rl  rœ   Úambig_startÚ	ambig_endrR   s	            r   r”  z_TZStr._get_trans_info_fromutcò  sù   € Ø×Ñ˜r 4Ô(Ø×=Ñ=¸bÀ$ÓGÐGà×%Ñ% dÓ+‰
ˆˆsØ�—‘—‘×.Ñ.Ó0Ñ0ˆØˆt�x‰x�‰×,Ñ,Ó.Ñ.ˆà�3Š;Ø˜RÖ% #Ô%‰Eà Ö* UÔ*Ð+ˆEð
 �=‰=˜1ÒØˆKØ˜dŸm™mÑ+‰IàˆKØ §¡Ñ-ˆIà˜bÖ, 9Ô,ˆá!�—‘°Ð6Ð6 t§x¡x°Ð6Ð6r'   rñ   )rï   rò   ró   r7  r=   r˜  rž  r“  r   r¥  r”  r   r'   r   r~   r~   X  s5   „ ð€Ið KOóCò0ò

ò/ò64ò<-ó^7r'   r~   i / c                 óN   — | dz
  }|dz  |dz  z   |dz  z
  |dz  z   dz   t         z
  S )z8Get the number of days between 1970-01-01 and YEAR-01-01r   ém  r  éd   i�  )rˆ   )ro   r±  s     r   rš  rš    s:   € àˆq‰€AØˆs‰7�Q˜!‘VÑ˜a 3™hÑ&¨¨c©Ñ1°AÑ5¼ÑDÐDr'   c                   ó"   — e Zd Zg d¢Zdd„Zd„ Zy)rt  )ÚdÚjulianr‰   rŠ   r‹   c                 ó�   — d|z   }||cxk  rdk  sn t        d|›d|›�«      ‚|| _        || _        || _        || _        || _        y )Nr   r¹  zd must be in [z, 365], not: )ri   r¼  r½  r‰   rŠ   r‹   )rE   r¼  r½  r‰   rŠ   r‹   Úmin_days          r   r=   z_DayOffset.__init__  sK   € Ø�f‘*ˆØ˜!Ô"˜sÔ"ÝÂ'É1ÐMÓNÐNàˆŒØˆŒØˆŒ	ØˆŒØˆ�r'   c                 ó  — t        |«      }| j                  }| j                  r$|dz  }|dk\  rt        j                  |«      r|dz  }||z   dz  }|| j
                  dz  | j                  dz  z   | j                  z   z  }|S )Nr   é;   r„   r…   r†   )rš  r¼  r½  ÚcalendarÚisleapr‰   rŠ   r‹   )rE   ro   Údays_before_yearr¼  Úepochs        r   r—  z_DayOffset.year_to_epoch)  s�   € Ü7¸Ó=Ðð
 �F‰FˆØ�;Š;Ø�‰FˆAØ�BŠwœ8Ÿ?™?¨4Ô0Ø�Q‘�à! AÑ%¨Ñ.ˆØ�—‘˜TÑ! D§K¡K°"Ñ$4Ñ4°t·{±{ÑBÑBˆàˆr'   N©rf   r   r   )rï   rò   ró   r7  r=   r—  r   r'   r   rt  rt    s   „ Ú;€Ió	ór'   rt  c                   ó6   — e Zd Zg d¢ZdZdd„Zed„ «       Zd„ Zy)rs  )re  Úwr¼  r‰   rŠ   r‹   )rd   r   é   rÁ  éZ   éx   é—   éµ   éÔ   éó   i  i0  iN  c                 ó$  — d|cxk  rdk  st        d«      ‚ t        d«      ‚d|cxk  rdk  st        d«      ‚ t        d«      ‚d|cxk  rdk  st        d«      ‚ t        d«      ‚|| _        || _        || _        || _        || _        || _        y )	Nr   é   zm must be in [1, 12]r  zw must be in [1, 5]r   r®   zd must be in [0, 6])ri   re  rÈ  r¼  r‰   rŠ   r‹   )rE   re  rÈ  r¼  r‰   rŠ   r‹   s          r   r=   z_CalendarOffset.__init__N  s¤   € Ø�AŒ|˜Š|ÜÐ3Ó4Ð4ð ÜÐ3Ó4Ð4à�AŒ{˜Š{ÜÐ2Ó3Ð3ð ÜÐ2Ó3Ð3à�AŒ{˜Š{ÜÐ2Ó3Ð3ð ÜÐ2Ó3Ð3àˆŒØˆŒØˆŒØˆŒ	ØˆŒØˆ�r'   c                 ó~   — t        |«      | j                  |   z   |dkD  xr t        j                  |«      z   |z   dz
  S )Nrf   r   )rš  Ú_DAYS_BEFORE_MONTHrÂ  rÃ  )r1   ro   ÚmonthÚdays       r   Ú_ymd2ordz_CalendarOffset._ymd2ord_  sR   € ô )¨Ó.Ø×$Ñ$ UÑ+ñ,à�q‰yÒ2œXŸ_™_¨TÓ2ñ4ð ñð ñ	ð	
r'   c                 óö  — | j                  || j                  d«      }|dz   dz  }| j                  dk(  r| j                  |dz   dd«      }n | j                  || j                  dz   d«      }||z
  }| j                  |dz   z
  dz  dz   }|| j                  dz
  dz  z  }||kD  r|dz  }| j                  || j                  |«      }|dz  }|| j                  dz  | j
                  dz  z   | j                  z   z  }|S )z7Calculates the datetime of the occurrence from the yearr   r­   é   rÑ  r„   r…   r†   )rÖ  re  r¼  rÈ  r‰   rŠ   r‹   )	rE   ro   Úfirst_ordinalÚ	first_dayÚnext_ordinalÚdays_in_monthÚ	month_dayÚordinalrÅ  s	            r   r—  z_CalendarOffset.year_to_epochj  s  € ð Ÿ™ d¨D¯F©F°AÓ6ˆØ" QÑ&¨!Ñ+ˆ	Ø�6‰6�RŠ<ØŸ=™=¨°©°1°aÓ8‰LàŸ=™=¨¨t¯v©v¸©z¸1Ó=ˆLØ$ }Ñ4ˆð —V‘V˜y¨1™}Ñ-°Ñ2°QÑ6ˆ	ð 	�d—f‘f˜q‘j AÑ%Ñ%ˆ	ð
 �}Ò$Ø˜‰NˆIà—-‘-  d§f¡f¨iÓ8ˆØ˜%‘ˆØ�—‘˜TÑ! D§K¡K°"Ñ$4Ñ4°t·{±{ÑBÑBˆØˆr'   NrÆ  )	rï   rò   ró   r7  rÓ  r=   r@  rÖ  r—  r   r'   r   rs  rs  ;  s-   „ Ú;€IðÐó ð" ñ
ó ð
ó*r'   rs  )r   ):rr   rÂ  r$   r¦   r  rN  r  r  r²   r   r   r   r   r?   Ú_commonr   r	   r
   r£  r‡   rˆ   Ú
contextlibr   r   ÚImportErrorÚcontextmanagerr   ÚPY2r&   Ú	lru_cacher+   r6   r8   Úplatformr³   rÿ   r¥   r©   r  rÌ   Úobjectr"  rm   r{   rK  r|   r^  rS  rU  r·   r[  ru  ra  r~   r›  rš  rt  rs  r   r'   r   ú<module>rç     s£  ðã Û Û Û 	Û 	Û 	Û Û Û 
ß :Ó :ã 
ç 7Ñ 7á��q˜!Ó€Ø�‰Ó €ðå6ð( Ð Ø‡7‚7ó%ð6 0˜I×/Ñ/¸Ô<Ðð ñ&ó ð&òôf	JˆWô f	JðV —l‘l gÑ-ÒL°#×2BÑ2BÀWÑ2LÐ òò2
òjBð^ )Ð ô"�&ô "ôJ
ˆfô 
ñD �T˜4 Ó&€
òñ �B˜ Ó#€	ó:ò
òL
ò^ò<ò(ô0s7ˆVô s7ðt Ð òEô�ô ô@Y�fõ YøðG) ò Ûà×Ññó òð	ús   ÁD- Ä-EÅ
E