§
    ZŠtj‚x  ã                  ó   — U d Z ddlmZ ddlZddlZddlmZmZmZ ddl	m
Z
mZ er<ddlmZmZmZmZ ddlmZ eeeeeeef         eef         Zeeeed	f         eef         Zg d
¢Z ed¦  «        Zded<    ed¦  «        Zded<    ed¦  «        Zded<    G d„ dej        ¦  «        Zej         G d„ d¦  «        ¦   «         Zereeedf         Z ej         G d„ d¦  «        ¦   «         Z!ej         G d„ d¦  «        ¦   «         Z"er
ee!e"f         Z# e!dd¦  «        Z$ded<    e"dd¦  «        Z%ded<   e$e%ffZ&d ed!<   d[d%„Z'd\d(„Z(d\d)„Z)d]d,„Z*d^d.„Z+d^d/„Z,d^d0„Z-d_d2„Z.d`d6„Z/dad;„Z0	 dbdcdF„Z1d\dG„Z2dddJ„Z3dedK„Z4dfdO„Z5dgdQ„Z6dhdS„Z7didV„Z8djdW„Z9dkdZ„Z:dS )lzBPrivate version-range helpers used by :mod:`packaging.specifiers`.é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚFinalé   )ÚInvalidVersionÚVersion)ÚCallableÚIterableÚIteratorÚSequence)ÚUnion.)Ú
FULL_RANGEÚbounds_for_specÚcoerce_versionÚfilter_by_rangesÚintersect_rangesÚintersect_specifier_boundsÚleast_version_aboveÚmatches_bounds_onlyÚrange_is_emptyÚranges_are_prerelease_onlyÚresolve_prereleasesÚstandard_rangesÚwildcard_rangesz0.dev0zFinal[Version]ÚMIN_VERSIONÚ0ÚMIN_RELEASEÚinfzFinal[float]Ú_BOUNDARY_INFc                  óN   — e Zd ZdZ ej        ¦   «         Z ej        ¦   «         ZdS )ÚBoundaryKindz5Where a boundary marker sits in the version ordering.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚenumÚautoÚAFTER_LOCALSÚAFTER_POSTS© ó    úO/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/packaging/_ranges.pyr"   r"   7   s.   € € € € € Ø?Ð?à�4”9‘;”;€LØ�$”)‘+”+€K€K€Kr,   r"   c                  óV   — e Zd ZdZdZdd	„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd„Zdd„ZdS ) ÚBoundaryVersiona§  A point on the version line between two real PEP 440 versions.

    Relative to a base version V::

        V < V+local < AFTER_LOCALS(V) < V.post0 < AFTER_POSTS(V)

    AFTER_LOCALS is the upper bound of ``<=V``, ``==V``, ``!=V`` (no
    local), and the lower bound of the upper-side range of ``!=V``.
    AFTER_POSTS is the lower bound of ``>V`` (V final or pre-release),
    excluding V's post-releases per PEP 440.
    )Ú_cached_devÚ_cached_epochÚ_cached_postÚ_cached_preÚ_cached_trimmed_releaseÚkindÚversionr6   r	   r5   r"   ÚreturnÚNonec                ó´   — || _         || _        t          |j        ¦  «        | _        |j        | _        |j        | _        |j	        | _
        |j        | _        d S ©N)r6   r5   Útrim_releaseÚreleaser4   Úepochr1   Úprer3   Úpostr2   Údevr0   )Úselfr6   r5   s      r-   Ú__init__zBoundaryVersion.__init__V   sP   € ØˆŒØˆŒ	Ý'3°G´OÑ'DÔ'DˆÔ$Ø$œ]ˆÔØ"œ;ˆÔØ#œLˆÔØ"œ;ˆÔÐÐr,   ÚotherÚboolc                óÈ  — |j         | j        k    rdS |j        }| j        }t	          |¦  «        }t	          |¦  «        |k     rdS |d|…         |k    rdS t          |t	          |¦  «        ¦  «        D ]}||         dk    r dS Œ|j        | j        k    rdS | j        t          j
        k    r |j        | j        k    o|j        | j        k    S |j        | j        k    p|j        duS )z6Is ``other`` a version that this boundary sorts above?FNr   )r=   r1   r<   r4   ÚlenÚranger>   r3   r5   r"   r)   r?   r2   r@   r0   )rA   rC   Úother_releaseÚtrimmed_releaseÚtrimmed_lengthÚis         r-   Ú
_is_familyzBoundaryVersion._is_family_   s  € àŒ;˜$Ô,Ò,Ð,Ø�5ð œˆØÔ6ˆÝ˜_Ñ-Ô-ˆÝˆ}ÑÔ Ò.Ð.Ø�5Ø˜˜.˜Ô)¨_Ò<Ð<Ø�5Ý�~¥s¨=Ñ'9Ô'9Ñ:Ô:ð 	ð 	ˆAØ˜QÔ 1Ò$Ð$Ø�u�uð %àŒ9˜Ô(Ò(Ð(Ø�5ØŒ9�Ô1Ò1Ð1à”: Ô!2Ò2ÐT°u´yÀDÔDTÒ7TÐTàŒy˜DÔ,Ò,ÐF°´
À$Ð0FÐFr,   Ú_BoundaryOrderKeyc                ó´   — | j         j        }|d         }| j        t          j        k    r|d         |d         dt
          ddf}|d         |d         |t
          fS )a’  Sort key placing this boundary just above the versions it covers.

        It extends ``V``'s comparison key ``(epoch, release, suffix)`` with
        a trailing ``_BOUNDARY_INF`` local component, so the key sorts after
        ``V`` and every ``V+local`` (whose keys carry a real, finite local
        segment). ``suffix`` is the 6-int comparison suffix
        ``(pre_rank, pre_n, post_rank, post_n, dev_rank, dev_n)``.

        For an AFTER_POSTS boundary the suffix is replaced with one whose
        post number is ``_BOUNDARY_INF``, so the key also sorts after every
        ``V.postN``. An AFTER_LOCALS boundary uses ``V``'s suffix unchanged.
        é   r   r   )r6   Ú_keyr5   r"   r*   r    )rA   Úversion_keyÚsuffixs      r-   Ú
_order_keyzBoundaryVersion._order_keyx   sX   € ð ”lÔ'ˆØ'2°1¤~ˆàŒ9�Ô0Ò0Ð0Ø˜Q”i ¨¤¨A­}¸aÀÐCˆFà˜1Œ~˜{¨1œ~¨vµ}ÐDÐDr,   Úobjectc                óŽ   — t          |t          ¦  «        r*|                      ¦   «         |                     ¦   «         k    S t          S r:   )Ú
isinstancer/   rS   ÚNotImplemented©rA   rC   s     r-   Ú__eq__zBoundaryVersion.__eq__�   s=   € õ �e�_Ñ-Ô-ð 	;Ø—?’?Ñ$Ô$¨×(8Ò(8Ñ(:Ô(:Ò:Ð:ÝÐr,   úBoundaryVersion | Versionc                óÆ   — t          |t          ¦  «        r*|                      ¦   «         |                     ¦   «         k     S | j        |k     sdS |                      |¦  «         S ©NF©rV   r/   rS   r6   rL   rX   s     r-   Ú__lt__zBoundaryVersion.__lt__”   s^   € Ý�e�_Ñ-Ô-ð 	:Ø—?’?Ñ$Ô$ u×'7Ò'7Ñ'9Ô'9Ò9Ð9ð ”˜uÒ$Ð$Ø�5Ø—?’? 5Ñ)Ô)Ð)Ð)r,   c                óÄ   — t          |t          ¦  «        r*|                      ¦   «         |                     ¦   «         k    S | j        |k    rdS |                      |¦  «        S )NTr]   rX   s     r-   Ú__gt__zBoundaryVersion.__gt__�   s[   € õ �e�_Ñ-Ô-ð 	:Ø—?’?Ñ$Ô$ u×'7Ò'7Ñ'9Ô'9Ò9Ð9ØŒ<˜5Ò Ð Ø�4Ø�Š˜uÑ%Ô%Ð%r,   Úintc                óD   — t          |                      ¦   «         ¦  «        S r:   )ÚhashrS   ©rA   s    r-   Ú__hash__zBoundaryVersion.__hash__¦   s   € å�D—O’OÑ%Ô%Ñ&Ô&Ð&r,   Ústrc                óJ   — | j         j        › d| j        ›d| j        j        › d�S )Nú(z, ú))Ú	__class__r#   r6   r5   Únamerd   s    r-   Ú__repr__zBoundaryVersion.__repr__ª   s,   € Ø”.Ô)ÐOÐO¨D¬LÐOÐO¸d¼i¼nÐOÐOÐOÐOr,   N)r6   r	   r5   r"   r7   r8   )rC   r	   r7   rD   )r7   rM   ©rC   rT   r7   rD   )rC   rZ   r7   rD   ©r7   ra   ©r7   rf   )r#   r$   r%   r&   Ú	__slots__rB   rL   rS   rY   r^   r`   re   rl   r+   r,   r-   r/   r/   >   sÓ   € € € € € ð
ð 
ð€Ið'ð 'ð 'ð 'ðGð Gð Gð Gð2Eð Eð Eð Eð*ð ð ð ð*ð *ð *ð *ð&ð &ð &ð &ð'ð 'ð 'ð 'ðPð Pð Pð Pð Pð Pr,   r/   c                  ó>   — e Zd ZdZdZdd	„Zdd„Zdd„Zdd„Zdd„Z	dS )Ú
LowerBoundzÂLower bound of a version range.

    A version *v* of ``None`` means unbounded below (-inf).
    At equal versions, ``[v`` sorts before ``(v`` because an inclusive
    bound starts earlier.
    )Ú_aboveÚ	inclusiver6   r6   Ú_VersionOrBoundaryrt   rD   r7   r8   c                ó0  — || _         || _        |€	d | _        d S t          |t          ¦  «        rK|j        t          j        k    rt          |j         ¦  «        | _        d S t          |j         ¦  «        | _        d S |r|j
        | _        d S |j        | _        d S r:   )r6   rt   rs   rV   r/   r5   r"   r*   Ú_make_above_after_postsÚ_make_above_after_localsÚ__le__r^   ©rA   r6   rt   s      r-   rB   zLowerBound.__init__½   s’   € ØˆŒØ"ˆŒð ˆ?Ø<@ˆDŒKˆKˆKÝ˜¥Ñ1Ô1ð 
	)ð Œ|�|Ô7Ò7Ð7Ý5°g´oÑFÔF�”��å6°w´ÑGÔG�”��Øð 	)Ø!œ.ˆDŒKˆKˆKà!œ.ˆDŒKˆKˆKr,   rC   rT   c                óz   — t          |t          ¦  «        st          S | j        |j        k    o| j        |j        k    S r:   ©rV   rr   rW   r6   rt   rX   s     r-   rY   zLowerBound.__eq__Ñ   ó7   € Ý˜%¥Ñ,Ô,ð 	"Ý!Ð!ØŒ|˜uœ}Ò,ÐR°´À5Ä?Ò1RÐRr,   c                óÊ   — t          |t          ¦  «        st          S | j        €	|j        d uS |j        €dS | j        |j        k    r| j        |j        k     S | j        o|j         S r\   r|   rX   s     r-   r^   zLowerBound.__lt__Ö   sl   € Ý˜%¥Ñ,Ô,ð 	"Ý!Ð!àŒ<ÐØ”=¨Ð,Ð,ØŒ=Ð Ø�5ØŒ<˜5œ=Ò(Ð(Ø”< %¤-Ò/Ð/àŒ~Ð5 e¤oÐ"5Ð5r,   ra   c                ó8   — t          | j        | j        f¦  «        S r:   ©rc   r6   rt   rd   s    r-   re   zLowerBound.__hash__ã   ó   € Ý�T”\ 4¤>Ð2Ñ3Ô3Ð3r,   rf   c                óL   — | j         rdnd}d| j        j        › d|› | j        ›d�S )Nú[rh   ú<ú ú>©rt   rj   r#   r6   ©rA   Úbrackets     r-   rl   zLowerBound.__repr__æ   s7   € ØœÐ0�#�#¨SˆØG�4”>Ô*ÐGÐG¨WÐG°d´lÐGÐGÐGÐGr,   N©r6   ru   rt   rD   r7   r8   rm   )rC   rr   r7   rD   rn   ro   ©
r#   r$   r%   r&   rp   rB   rY   r^   re   rl   r+   r,   r-   rr   rr   ²   s“   € € € € € ðð ð 3€Ið)ð )ð )ð )ð(Sð Sð Sð Sð
6ð 6ð 6ð 6ð4ð 4ð 4ð 4ðHð Hð Hð Hð Hð Hr,   rr   c                  ó>   — e Zd ZdZdZdd	„Zdd„Zdd„Zdd„Zdd„Z	dS )Ú
UpperBoundzÀUpper bound of a version range.

    A version *v* of ``None`` means unbounded above (+inf).
    At equal versions, ``v)`` sorts before ``v]`` because an exclusive
    bound ends earlier.
    )Ú_belowrt   r6   r6   ru   rt   rD   r7   r8   c                ó  — || _         || _        |€	d | _        d S t          |t          ¦  «        r>|j        t          j        k    rt          |j         ¦  «        | _        d S |j	        | _        d S |r|j	        | _        d S |j
        | _        d S r:   )r6   rt   rŽ   rV   r/   r5   r"   r)   Ú_make_below_after_localsÚ__ge__r`   rz   s      r-   rB   zUpperBound.__init__ö   sŒ   € ØˆŒØ"ˆŒð ˆ?Ø<@ˆDŒKˆKˆKÝ˜¥Ñ1Ô1ð 	)ð Œ|�|Ô8Ò8Ð8Ý6°w´ÑGÔG�”��ð
 &œn�”��Øð 	)Ø!œ.ˆDŒKˆKˆKà!œ.ˆDŒKˆKˆKr,   rC   rT   c                óz   — t          |t          ¦  «        st          S | j        |j        k    o| j        |j        k    S r:   ©rV   r�   rW   r6   rt   rX   s     r-   rY   zUpperBound.__eq__  r}   r,   c                ó¼   — t          |t          ¦  «        st          S | j        €dS |j        €dS | j        |j        k    r| j        |j        k     S | j         o|j        S )NFTr“   rX   s     r-   r^   zUpperBound.__lt__  sd   € Ý˜%¥Ñ,Ô,ð 	"Ý!Ð!àŒ<ÐØ�5ØŒ=Ð Ø�4ØŒ<˜5œ=Ò(Ð(Ø”< %¤-Ò/Ð/à”>Ð!Ð5 e¤oÐ5r,   ra   c                ó8   — t          | j        | j        f¦  «        S r:   r€   rd   s    r-   re   zUpperBound.__hash__  r�   r,   rf   c                óL   — | j         rdnd}d| j        j        › d| j        ›|› d�S )Nú]ri   r„   r…   r†   r‡   rˆ   s     r-   rl   zUpperBound.__repr__!  s7   € ØœÐ0�#�#¨SˆØG�4”>Ô*ÐGÐG¨T¬\ÐG¸WÐGÐGÐGÐGr,   NrŠ   rm   )rC   r�   r7   rD   rn   ro   r‹   r+   r,   r-   r�   r�   ë   s“   € € € € € ðð ð 3€Ið)ð )ð )ð )ð,Sð Sð Sð Sð
6ð 6ð 6ð 6ð4ð 4ð 4ð 4ðHð Hð Hð Hð Hð Hr,   r�   FzFinal[LowerBound]ÚNEG_INFzFinal[UpperBound]ÚPOS_INFzFinal[tuple[Interval]]r   r<   útuple[int, ...]r7   c                ó¼   — t          | ¦  «        }|dk    r)| |dz
           dk    r|dz  }|dk    r| |dz
           dk    °|t          | ¦  «        k    r| n	| d|…         S )zDStrip trailing zeros from a release tuple for normalized comparison.r   r   N)rF   )r<   Úends     r-   r;   r;   0  sr   € å
ˆg‰,Œ,€CØ
�Š'ˆ'�g˜c A™gÔ&¨!Ò+Ð+Øˆq‰ˆð �Š'ˆ'�g˜c A™gÔ&¨!Ò+Ð+à�S ™\œ\Ò)Ð)ˆ7ˆ7¨w°t¸°t¬}Ð<r,   r6   r	   c                ó~   — g | j         dd…         ¢| j         d         dz   ‘R }t          j        | j        |d¬¦  «        S )z5Smallest version in the next prefix: 1.2 -> 1.3.dev0.Néÿÿÿÿr   r   ©r=   r<   r@   )r<   r	   Ú
from_partsr=   )r6   r<   s     r-   Ú_next_prefix_dev0r¡   8  sE   € à>�”   Ô$Ð> g¤o°bÔ&9¸AÑ&=Ð>Ð>€GÝÔ G¤M¸7ÈÐJÑJÔJÐJr,   c                óD   — t          j        | j        | j        d¬¦  «        S )z7The .dev0 of a version's base release: 1.2 -> 1.2.dev0.r   rŸ   )r	   r    r=   r<   ©r6   s    r-   Ú
_base_dev0r¤   >  s   € åÔ G¤M¸7¼?ÐPQÐRÑRÔRÐRr,   úVersion | strúVersion | Nonec                ót   — t          | t          ¦  «        s"	 t          | ¦  «        } n# t          $ r Y d S w xY w| S r:   )rV   r	   r   r£   s    r-   r   r   C  sO   € Ý�g�wÑ'Ô'ð ð	Ý˜gÑ&Ô&ˆGˆGøÝð 	ð 	ð 	Ø�4�4ð	øøøà€Ns   —' §
5´5úCallable[[Version], bool]c                ó”   ‡‡‡‡‡— | j         Š| j        Š| j        Št          | j        ¦  «        Št          ‰¦  «        Šdˆˆˆˆˆfd„}|S )a  Predicate ``parsed > AFTER_POSTS(V)`` for a lower bound.

    Per PEP 440, ``>V`` excludes V's post-releases unless V is itself
    a post-release. AFTER_POSTS sits above V and every V.postN (with
    or without local), and just below the next release.
    Úparsedr	   r7   rD   c                ó  •—  ‰| ¦  «        rdS | j         ‰k    rdS | j        }t          |¦  «        ‰k     rdS |d ‰…         ‰k    rdS t          ‰t          |¦  «        ¦  «        D ]}||         dk    r dS Œ| j        ‰k    rdS dS ©NFTr   )r=   r<   rF   rG   r>   )rª   Úparsed_releaserK   rJ   Úversion_epochÚ
version_geÚversion_preÚversion_release_trimmeds      €€€€€r-   Úabovez&_make_above_after_posts.<locals>.aboveY  s½   ø€ Øˆ:�fÑÔð 	Ø�5ð Œ<˜=Ò(Ð(Ø�4ØœˆÝˆ~ÑÔ Ò/Ð/Ø�4Ø˜/˜>˜/Ô*Ð.EÒEÐEØ�4Ý�~¥s¨>Ñ':Ô':Ñ;Ô;ð 	ð 	ˆAØ˜aÔ  AÒ%Ð%Ø�t�tð &àŒ:˜Ò$Ð$Ø�4ð ˆur,   ©rª   r	   r7   rD   )r‘   r=   r>   r;   r<   rF   )r6   r²   rJ   r®   r¯   r°   r±   s     @@@@@r-   rw   rw   L  su   øøøøø€ ð ”€JØ”M€MØ”+€KÝ*¨7¬?Ñ;Ô;ÐÝÐ0Ñ1Ô1€Nðð ð ð ð ð ð ð ð ð ð0 €Lr,   c                ó¸   ‡‡‡‡‡‡‡— | j         Š| j        Š| j        Š| j        Š| j        Št          | j        ¦  «        Št          ‰¦  «        Šdˆˆˆˆˆˆˆfd„}|S )zÞPredicate ``parsed > AFTER_LOCALS(V)`` for a lower bound.

    Used by the upper-side range of ``!=V`` (when V has no local
    segment). AFTER_LOCALS sits above V and every ``V+local`` but
    just below ``V.post0``.
    rª   r	   r7   rD   c                ó8  •—  ‰| ¦  «        rdS | j         ‰k    rdS | j        }t          |¦  «        ‰k     rdS |d ‰…         ‰	k    rdS t          ‰t          |¦  «        ¦  «        D ]}||         dk    r dS Œ| j        ‰k    rdS | j        ‰k    rdS | j        ‰k    S r¬   ©r=   r<   rF   rG   r>   r?   r@   ©
rª   r­   rK   rJ   Úversion_devr®   r¯   Úversion_postr°   r±   s
      €€€€€€€r-   r²   z'_make_above_after_locals.<locals>.aboveƒ  sÕ   ø€ Øˆ:�fÑÔð 	Ø�5ð Œ<˜=Ò(Ð(Ø�4ØœˆÝˆ~ÑÔ Ò/Ð/Ø�4Ø˜/˜>˜/Ô*Ð.EÒEÐEØ�4Ý�~¥s¨>Ñ':Ô':Ñ;Ô;ð 	ð 	ˆAØ˜aÔ  AÒ%Ð%Ø�t�tð &àŒ:˜Ò$Ð$Ø�4ØŒ;˜,Ò&Ð&Ø�4ØŒz˜[Ò(Ð(r,   r³   ©r‘   r=   r>   r?   r@   r;   r<   rF   )	r6   r²   rJ   r¸   r®   r¯   r¹   r°   r±   s	     @@@@@@@r-   rx   rx   t  ó�   øøøøøøø€ ð ”€JØ”M€MØ”+€KØ”<€LØ”+€KÝ*¨7¬?Ñ;Ô;ÐÝÐ0Ñ1Ô1€Nð)ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð* €Lr,   c                ó¸   ‡‡‡‡‡‡‡— | j         Š| j        Š| j        Š| j        Š| j        Št          | j        ¦  «        Št          ‰¦  «        Šdˆˆˆˆˆˆˆfd„}|S )zëPredicate ``parsed <= AFTER_LOCALS(V)`` for an upper bound.

    Used by ``<=V``, ``==V``, ``!=V`` (no local). ``parsed`` is at or
    below the boundary when it is at or below V cmpkey-wise, or when
    it is in V's local family.
    rª   r	   r7   rD   c                ó8  •—  ‰| ¦  «        rdS | j         ‰k    rdS | j        }t          |¦  «        ‰k     rdS |d ‰…         ‰	k    rdS t          ‰t          |¦  «        ¦  «        D ]}||         dk    r dS Œ| j        ‰k    rdS | j        ‰k    rdS | j        ‰k    S )NTFr   r¶   r·   s
      €€€€€€€r-   Úbelowz'_make_below_after_locals.<locals>.belowª  sÕ   ø€ Øˆ:�fÑÔð 	Ø�4ð Œ<˜=Ò(Ð(Ø�5ØœˆÝˆ~ÑÔ Ò/Ð/Ø�5Ø˜/˜>˜/Ô*Ð.EÒEÐEØ�5Ý�~¥s¨>Ñ':Ô':Ñ;Ô;ð 	ð 	ˆAØ˜aÔ  AÒ%Ð%Ø�u�uð &àŒ:˜Ò$Ð$Ø�5ØŒ;˜,Ò&Ð&Ø�5ØŒz˜[Ò(Ð(r,   r³   rº   )	r6   r¾   rJ   r¸   r®   r¯   r¹   r°   r±   s	     @@@@@@@r-   r�   r�   ›  r»   r,   Úboundaryc                ó>  — | j         }| j        t          j        k    rQ|j        �|                     |j        dz   d¬¦  «        S |j        �
|j        dz   nd}|                     |dd¬¦  «        S |j        �(|j        \  }}|                     ||dz   fddd¬¦  «        S dS )zLSmallest real version strictly above *boundary*, or ``None`` if none exists.Nr   ©r@   Úlocalr   ©r?   r@   rÂ   ©r>   r?   r@   rÂ   )r6   r5   r"   r)   r@   Ú__replace__r?   r>   )r¿   ÚbaseÚ	next_postr5   Únumbers        r-   r   r   Â  sµ   € àÔ€Dà„}�Ô1Ò1Ð1ð Œ8ÐØ×#Ò#¨¬°1©¸DÐ#ÑAÔAÐAØ'+¤yÐ'<�T”Y ‘]�]À!ˆ	Ø×Ò Y°A¸TÐÑBÔBÐBð „xÐØ”x‰ˆˆfØ×Ò T¨6°A©:Ð$6¸TÀqÐPTÐÑUÔUÐUàˆ4r,   ÚlowerÚupperrD   c                ó€  — |j         €dS | j         €2|j         o)t          |j         t          ¦  «        o|j         t          k    S t          | j         t
          ¦  «        r4t          | j         ¦  «        }|�|j         |k    r|j         S |j         |k     S | j         |j         k    r| j        o|j         S | j         |j         k    S )a  True when the range defined by *lower* and *upper* contains no versions.

    A boundary lower sits just below the next real version, so an ordered pair
    is still empty when the upper excludes that least successor:
    ``(AFTER_POSTS(1.0a1), 1.0a2.dev0)`` holds no version.
    NF)r6   rt   rV   r	   r   r/   r   )rÉ   rÊ   Ú	successors      r-   r   r   ×  sË   € ð „}ÐØˆuà„}Ðð ”Ðð -Ý˜5œ=­'Ñ2Ô2ð-à”¥Ò,ð	
õ �%”-¥Ñ1Ô1ð -Ý'¨¬Ñ6Ô6ˆ	ØÐ ØŒ} 	Ò)Ð)Ø œ?Ð*Ð*Ø”= 9Ò,Ð,à„}˜œÒ%Ð%Ø”OÐ7¨¬Ð8Ð8àŒ=˜5œ=Ò(Ð(r,   ÚleftúSequence[Interval]Úrightúlist[Interval]c                ó†  — g }dx}}|t          | ¦  «        k     r§|t          |¦  «        k     r”| |         \  }}||         \  }}t          ||¦  «        }	t          ||¦  «        }
t          |	|
¦  «        s|                     |	|
f¦  «         ||k     r|dz  }n|dz  }|t          | ¦  «        k     r|t          |¦  «        k     °”|S )zFIntersect two sorted, non-overlapping range lists (two-pointer merge).r   r   )rF   ÚmaxÚminr   Úappend)rÍ   rÏ   ÚresultÚ
left_indexÚright_indexÚ
left_lowerÚ
left_upperÚright_lowerÚright_upperrÉ   rÊ   s              r-   r   r   ÷  sä   € ð
  €FØ Ð €J�Ø
•s˜4‘y”yÒ
 Ð
  [µ3°u±:´:Ò%=Ð%=Ø!% jÔ!1Ñˆ
�JØ#(¨Ô#5Ñ ˆ�[å�J Ñ,Ô,ˆÝ�J Ñ,Ô,ˆå˜e UÑ+Ô+ð 	*Ø�MŠM˜5 %˜.Ñ)Ô)Ð)ð ˜Ò#Ð#Ø˜!‰OˆJˆJà˜1ÑˆKð •s˜4‘y”yÒ
 Ð
  [µ3°u±:´:Ò%=Ð%=ð  €Mr,   r+   ÚrangesÚiterableúIterable[Any]Úkeyú%Callable[[Any], Version | str] | NoneÚprereleasesúbool | NoneÚregionúIterator[Any]c              #  óŠ  K  — |�€Xg }d}t          | ¦  «        dk    r¡| d         \  }}|j        }	|j        }
|D ]y}t          |€|n
 ||¦  «        ¦  «        }|€Œ!|	� |	|¦  «        sŒ/|
� |
|¦  «        sŒ=|j        sd}|V — ŒK|rt          ||¦  «        r|V — Œb|s|                     |¦  «         Œz|s|E d{V —† dS |D ]‘}t          |€|n
 ||¦  «        ¦  «        }|€Œ!| D ]m\  }}|j        }	|	� |	|¦  «        s nS|j        }
|
� |
|¦  «        r>|j        sd}|V — n.|rt          ||¦  «        r|V — n|s|                     |¦  «          nŒnŒ’|s|E d{V —† dS |du }t          | ¦  «        dk    rh| d         \  }}|j        }	|j        }
|D ]J}t          |€|n
 ||¦  «        ¦  «        }|€Œ!|r|j        rŒ+|	� |	|¦  «        sŒ9|
� |
|¦  «        r|V — ŒKdS |D ]c}t          |€|n
 ||¦  «        ¦  «        }|€Œ!|r|j        rŒ+| D ]5\  }}|j        }	|	� |	|¦  «        s n|j        }
|
� |
|¦  «        r|V —  nŒ6ŒddS )aÉ  Filter *iterable* against precomputed version *ranges*.

    With ``prereleases=None``, the PEP 440 default applies: pre-releases are
    excluded unless no final matches, in which case buffered pre-releases come
    out at the end. A pre-release inside the opt-in ``region`` is the exception:
    it is force-admitted in place, as ``prereleases=True`` would yield it. A
    force-admitted pre-release is not a final, so it never suppresses the buffer.
    NFr   r   T)rF   rs   rŽ   r   Úis_prereleaser   rÔ   )rÜ   rÝ   rß   rá   rã   Úprerelease_bufferÚfound_finalrÉ   rÊ   r²   r¾   Úitemrª   Úexclude_prereleasess                 r-   r   r     sž  è è € ð ÑØ')ÐØˆåˆv‰;Œ;˜!ÒÐð " !œ9‰LˆE�5Ø”LˆEØ”LˆEØ ð 3ð 3�Ý'°°¨¨ÀÀÀTÁÄÑKÔK�Ø�>ØØÐ$¨U¨U°6©]¬]Ð$ØØÐ$¨U¨U°6©]¬]Ð$ØØÔ+ð 3Ø"&�KØ�J�J�J�JØð 3Õ 3°F¸FÑ CÔ Cð 3Ø�J�J�J�JØ$ð 3Ø%×,Ò,¨TÑ2Ô2Ð2øØð -Ø,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØˆFàð 	ð 	ˆDÝ#¨C¨K D D¸S¸SÀ¹Y¼YÑGÔGˆFØˆ~ØØ &ð ð ‘��uØœ�ØÐ$¨U¨U°6©]¬]Ð$Ø�EØœ�Ø�= E E¨&¡M¤M�=Ø!Ô/ð 7Ø&*˜Ø"˜
˜
˜
˜
Øð 7Õ$7¸ÀÑ$GÔ$Gð 7Ø"˜
˜
˜
˜
Ø(ð 7Ø)×0Ò0°Ñ6Ô6Ð6Ø�Eð !øð ð 	)Ø(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Øˆà%¨Ð.Ðå
ˆ6�{„{�aÒÐð ˜a”y‰ˆˆuØ”ˆØ”ˆØð 		ð 		ˆDÝ#¨C¨K D D¸S¸SÀ¹Y¼YÑGÔGˆFØˆ~ØØ"ð  vÔ';ð ØØÐ ¨¨¨v©¬Ð ØØˆ}   f¡¤ˆ}Ø�
�
�
øØˆàð ð ˆÝ¨¨  ¸¸¸T¹¼ÑCÔCˆØˆ>ØØð 	 6Ô#7ð 	ØØ"ð 	ð 	‰LˆE�5Ø”LˆEØÐ ¨¨¨v©¬Ð Ø�Ø”LˆEØˆ}   f¡¤ˆ}Ø�
�
�
Ø�ð øðð r,   c                óp   — | j         �|                      dddd¬¦  «        S |                      dd¬¦  «        S )z=Smallest non-pre-release at or above a pre-release *version*.NrÄ   rÁ   )r>   rÅ   r£   s    r-   Ú!_nearest_release_above_prereleaserì   w  sD   € à„{Ðð ×"Ò" t°$¸DÈÐ"ÑMÔMÐMð ×Ò 4¨tÐÑ4Ô4Ð4r,   Úvalueú Version | BoundaryVersion | Nonec                óü   — | €t           S t          | t          ¦  «        rG| j        }|j        rt          |¦  «        S |j        �
|j        dz   nd}|                     |d¬¦  «        S | j        s| S t          | ¦  «        S )z™Smallest non-pre-release version at or above *value*.

    ``None`` is the ``-inf`` floor, whose nearest non-pre-release is
    :data:`MIN_RELEASE`.
    Nr   r   )r?   rÂ   )r   rV   r/   r6   ræ   rì   r?   rÅ   )rí   Úinner_versionrÇ   s      r-   Ú_lowest_release_at_or_aboverñ   ƒ  s—   € ð €}ÝÐÝ�%�Ñ)Ô)ð EØœˆØÔ&ð 	DÝ4°]ÑCÔCÐCð 1>Ô0BÐ0N�]Ô'¨!Ñ+Ð+ÐTUˆ	Ø×(Ò(¨i¸tÐ(ÑDÔDÐDàÔð Øˆå,¨UÑ3Ô3Ð3r,   c                ó’   — | D ]C\  }}t          |j        ¦  «        }|j        �||j        k     r dS ||j        k    r
|j        r dS ŒDdS )zÜTrue when every range in *ranges* contains only pre-releases.

    Used to detect unsatisfiable specifier sets when ``prereleases=False``:
    if every range is pre-release-only, every contained version is excluded.
    NFT)rñ   r6   rt   )rÜ   rÉ   rÊ   Únearests       r-   r   r   š  sb   € ð ð ð ‰ˆˆuÝ-¨e¬mÑ<Ô<ˆØŒ=Ð  G¨e¬mÒ$;Ð$;Ø�5�5Ø�e”mÒ#Ð#¨¬Ð#Ø�5�5øØˆ4r,   Úoprf   rÆ   c                óè   — t          |¦  «        }t          |¦  «        }| dk    r!t          |d¦  «        t          |d¦  «        fgS t          t          |d¦  «        ft          |d¦  «        t
          fgS )z^Ranges for ==V.* and !=V.*.

    ==1.2.* -> [1.2.dev0, 1.3.dev0);  !=1.2.* -> complement.
    ú==TF)r¤   r¡   rr   r�   r˜   r™   )rô   rÆ   rÉ   rÊ   s       r-   r   r   ©  sy   € õ
 �tÑÔ€EÝ˜dÑ#Ô#€EØ	ˆT‚z€zÝ˜E 4Ñ(Ô(­*°U¸EÑ*BÔ*BÐCÐDÐDõ 
•*˜U EÑ*Ô*Ð+Ý	�E˜4Ñ	 Ô	 ¥'Ð*ðð r,   Ú	has_localc                ón  — | dk    rt          |d¦  «        t          fgS | dk    r0t          t          t	          |t
          j        ¦  «        d¦  «        fgS | dk    r­|j        �7|                     |j        dz   d¬¦  «        }t          |d¦  «        t          fgS |j	        �8|                     |j	        dz   dd¬	¦  «        }t          |d¦  «        t          fgS t          t	          |t
          j
        ¦  «        d
¦  «        t          fgS | dk    rE|j        r|n|                     dd¬¦  «        }|t          k    rg S t          t          |d
¦  «        fgS t	          |t
          j        ¦  «        }|r|n|}| dk    r!t          |d¦  «        t          |d¦  «        fgS | dk    r.t          t          |d
¦  «        ft          |d
¦  «        t          fgS | dk    rQ|                     |j        dd…         ¬¦  «        }t          |d¦  «        t          t          |¦  «        d
¦  «        fgS t          d| ›�¦  «        ‚)zþRanges for the standard PEP 440 operators (no wildcard, no ===).

    *has_local* indicates whether the spec string included a ``+local``
    segment; relevant only for ``==`` / ``!=`` to decide whether the
    upper bound includes V's local family.
    z>=Tz<=r†   Nr   rÁ   r   rÃ   Fr„   rö   z!=z~=rž   )r<   zUnknown operator: )rr   r™   r˜   r�   r/   r"   r)   r@   rÅ   r?   r*   ræ   r   r<   r¡   Ú
ValueError)rô   r6   r÷   Úlower_boundÚboundÚafter_localsrÊ   Úprefixs           r-   r   r   ¹  so  € ð 
ˆT‚z€zÝ˜G TÑ*Ô*­GÐ4Ð5Ð5à	ˆT‚z€zõ Ý�?¨7µLÔ4MÑNÔNÐPTÑUÔUðð
ð 	
ð 
ˆS‚y€yØŒ;Ð"ð "×-Ò-°'´+À±/ÈÐ-ÑNÔNˆKÝ ¨TÑ2Ô2µGÐ<Ð=Ð=ØŒ<Ð#à!×-Ò-°7´<À!Ñ3CÈÐRVÐ-ÑWÔWˆKÝ ¨TÑ2Ô2µGÐ<Ð=Ð=õ
 �?¨7µLÔ4LÑMÔMÈuÑUÔUÝðð
ð 	
ð 
ˆS‚y€yð Ô,ÐXˆGˆG°'×2EÒ2EÈ!ÐSWÐ2EÑ2XÔ2Xð 	ð •KÒÐØˆIÝ�* U¨EÑ2Ô2Ð3Ð4Ð4õ # 7­LÔ,EÑFÔF€LØ Ð2ˆGˆG l€Eà	ˆT‚z€zÝ˜G TÑ*Ô*­J°u¸dÑ,CÔ,CÐDÐEÐEà	ˆT‚z€zå•j ¨%Ñ0Ô0Ð1Ý˜˜uÑ%Ô%¥wÐ/ð
ð 	
ð
 
ˆT‚z€zØ×$Ò$¨W¬_¸S¸b¸SÔ-AÐ$ÑBÔBˆå˜ Ñ&Ô&­
Õ3DÀVÑ3LÔ3LÈeÑ(TÔ(TÐUð
ð 	
õ Ð0¨"Ð0Ð0Ñ
1Ô
1Ð1r,   Úversion_strc                ór   — |                      d¦  «        rt          | |¦  «        S t          | |d|v ¦  «        S )aD  Ranges for one specifier's ``(op, version_str)``.

    Dispatches between the wildcard and standard builders. ``version`` is the
    parsed ``version_str`` (its base, without the trailing ``.*``, for
    wildcards). ``===`` is not handled here; its match is a literal string
    compared in :mod:`packaging.specifiers`.
    z.*ú+)Úendswithr   r   )rô   rþ   r6   s      r-   r   r   þ  sA   € ð ×Ò˜DÑ!Ô!ð ,Ý˜r 7Ñ+Ô+Ð+å˜2˜w¨¨{Ð(:Ñ;Ô;Ð;r,   Úper_specifier_rangesúIterable[Sequence[Interval]]c                óh   — d}| D ]}|€|}Œt          ||¦  «        }|s nŒ|€t          d¦  «        ‚|S )zÐIntersect each specifier's ranges into a single sequence.

    Short-circuits once the running intersection is empty, since no later
    specifier can revive it. Callers must pass at least one specifier.
    Nz4intersect_specifier_bounds called with no specifiers)r   ÚRuntimeError)r  rÕ   Úsubs      r-   r   r     s`   € ð )-€FØ#ð ð ˆØˆ>ØˆFˆFå% f¨cÑ2Ô2ˆFØð Ø�ðð €~ÝÐQÑRÔRÐRà€Mr,   c                ór   — | D ]3\  }}|j         }|� ||¦  «        s dS |j        }|� ||¦  «        r dS Œ4dS )a$  Whether ``version`` falls within any of ``ranges``.

    The pure bounds membership test, for a single already-parsed version with
    no pre-release policy applied. ``ranges`` are sorted and non-overlapping,
    so a version below one range's lower bound is below every later range too.
    NFT)rs   rŽ   )rÜ   r6   rÉ   rÊ   r²   r¾   s         r-   r   r   #  sc   € ð ð ð ‰ˆˆuØ”ˆØÐ U U¨7¡^¤^ÐØ�5�5à”ˆØˆ=˜E˜E '™NœNˆ=Ø�4�4ð ð ˆ5r,   Ú
configuredÚautodetectedc                ó   — | �| S |rdS dS )zÞResolve a specifier's effective default pre-release policy.

    An explicit ``configured`` value wins; otherwise an autodetected ``True``
    propagates and anything else falls back to the PEP 440 default (``None``).
    NTr+   )r  r	  s     r-   r   r   6  s"   € ð ÐØÐàð Øˆtàˆ4r,   )r<   rš   r7   rš   )r6   r	   r7   r	   )r6   r¥   r7   r¦   )r6   r	   r7   r¨   )r¿   r/   r7   r¦   )rÉ   rr   rÊ   r�   r7   rD   )rÍ   rÎ   rÏ   rÎ   r7   rÐ   )r+   )rÜ   rÎ   rÝ   rÞ   rß   rà   rá   râ   rã   rÎ   r7   rä   )rí   rî   r7   r	   )rÜ   rÎ   r7   rD   )rô   rf   rÆ   r	   r7   rÐ   )rô   rf   r6   r	   r÷   rD   r7   rÐ   )rô   rf   rþ   rf   r6   r	   r7   rÐ   )r  r  r7   rÎ   )rÜ   rÎ   r6   r	   r7   rD   )r  râ   r	  râ   r7   râ   );r&   Ú
__future__r   r'   Ú	functoolsÚtypingr   r   r   r6   r   r	   Úcollections.abcr
   r   r   r   r   Útuplera   ÚfloatÚ_BoundaryOrderSuffixrM   Ú__all__r   Ú__annotations__r   r    ÚEnumr"   Útotal_orderingr/   ru   rr   r�   ÚIntervalr˜   r™   r   r;   r¡   r¤   r   rw   rx   r�   r   r   r   r   rì   rñ   r   r   r   r   r   r   r   r+   r,   r-   ú<module>r     s£  ðð IÐ HÐ Hà "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð -Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,àð QØFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFØÐÐÐÐÐð !  c¨3°°c¸5°jÔ0AÀ3ÈÐ!KÔLÐØ˜c 5¨¨c¨¤?Ð4HÈ%ÐOÔPÐðð ð €ð" &˜g hÑ/Ô/€Ð /Ð /Ð /Ñ /ð &˜g c™lœl€Ð *Ð *Ð *Ñ *ð $˜e E™lœl€Ð *Ð *Ð *Ñ *ðð ð ð ð �4”9ñ ô ð ð ÔðlPð lPð lPð lPð lPñ lPô lPñ ÔðlPð^ ð ?Ø˜w¨¸Ð=Ô>Ðð Ôð5Hð 5Hð 5Hð 5Hð 5Hñ 5Hô 5Hñ Ôð5Hðp Ôð7Hð 7Hð 7Hð 7Hð 7Hñ 7Hô 7Hñ Ôð7Hðt ð -à�Z Ð+Ô,€Hð (˜Z¨¨eÑ4Ô4€Ð 4Ð 4Ð 4Ñ 4Ø'˜Z¨¨eÑ4Ô4€Ð 4Ð 4Ð 4Ñ 4Ø'.°Ð&8Ð%:€
Ð :Ð :Ð :Ñ :ð=ð =ð =ð =ðKð Kð Kð KðSð Sð Sð Sð
ð ð ð ð%ð %ð %ð %ðP$ð $ð $ð $ðN$ð $ð $ð $ðNð ð ð ð*)ð )ð )ð )ð@ð ð ð ð> "$ðcð cð cð cð cðL	5ð 	5ð 	5ð 	5ð4ð 4ð 4ð 4ð.ð ð ð ðð ð ð ð B2ð B2ð B2ð B2ðJ<ð <ð <ð <ðð ð ð ð.ð ð ð ð&ð ð ð ð ð r,   