Ë
    ªŒj‚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r0d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j8                  «      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!<   d6d"„Z'd7d#„Z(d7d$„Z)d8d%„Z*d9d&„Z+d9d'„Z,d9d(„Z-d:d)„Z.d;d*„Z/	 	 	 	 	 	 d<d+„Z0	 d=	 	 	 	 	 	 	 	 	 	 	 d>d,„Z1d7d-„Z2d?d.„Z3d@d/„Z4dAd0„Z5dBd1„Z6dCd2„Z7	 	 	 	 dDd3„Z8dEd4„Z9	 	 	 	 	 	 dFd5„Z:y)GzBPrivate 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                  óT   — e Zd ZdZ ej
                  «       Z ej
                  «       Zy)ÚBoundaryKindz5Where a boundary marker sits in the version ordering.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚenumÚautoÚAFTER_LOCALSÚAFTER_POSTS© ó    ú[/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/packaging/_ranges.pyr"   r"   7   s   „ Ù?à�4—9‘9“;€LØ�$—)‘)“+�Kr,   r"   c                  óT   — 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y)Ú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Úversionc                óÜ   — || _         || _        t        |j                  «      | _        |j
                  | _        |j                  | _        |j                  | _
        |j                  | _        y ©N)r6   r5   Útrim_releaseÚreleaser4   Úepochr1   Úprer3   Úpostr2   Údevr0   )Úselfr6   r5   s      r-   Ú__init__zBoundaryVersion.__init__V   sQ   € ØˆŒØˆŒ	Ü'3°G·O±OÓ'DˆÔ$Ø$Ÿ]™]ˆÔØ"Ÿ;™;ˆÔØ#ŸL™LˆÔØ"Ÿ;™;ˆÕr,   c                ó  — |j                   | j                  k7  ry|j                  }| j                  }t	        |«      }t	        |«      |k  ry|d| |k7  ryt        |t	        |«      «      D ]  }||   dk7  sŒ y |j                  | j                  k7  ry| j                  t        j                  k(  r4|j                  | j                  k(  xr |j                  | j                  k(  S |j                  | j                  k(  xs |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   )r?   ÚotherÚother_releaseÚtrimmed_releaseÚtrimmed_lengthÚis         r-   Ú
_is_familyzBoundaryVersion._is_family_   sô   € à�;‰;˜$×,Ñ,Ò,Øð Ÿ™ˆØ×6Ñ6ˆÜ˜_Ó-ˆÜˆ}Ó Ò.ØØ˜˜.Ð)¨_Ò<ØÜ�~¤s¨=Ó'9Ö:ˆAØ˜QÑ 1Ó$Ùð ;ð �9‰9˜×(Ñ(Ò(ØØ�9‰9œ×1Ñ1Ò1à—:‘: ×!2Ñ!2Ñ2ÒT°u·y±yÀD×DTÑDTÑ7TÐTà�y‰y˜D×,Ñ,Ñ,ÒF°·
±
À$Ð0FÐFr,   c                ó¶   — | 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    )r?   Úversion_keyÚsuffixs      r-   Ú
_order_keyzBoundaryVersion._order_keyx   s_   € ð —l‘l×'Ñ'ˆØ'2°1¡~ˆà�9‰9œ×0Ñ0Ò0Ø˜Q‘i ¨¡¨A¬}¸aÀÐCˆFà˜1‰~˜{¨1™~¨v´}ÐDÐDr,   c                óp   — t        |t        «      r!| j                  «       |j                  «       k(  S t        S r8   )Ú
isinstancer/   rO   ÚNotImplemented©r?   rD   s     r-   Ú__eq__zBoundaryVersion.__eq__�   s/   € ô �eœ_Ô-Ø—?‘?Ó$¨×(8Ñ(8Ó(:Ñ:Ð:ÜÐr,   c                ó¨   — t        |t        «      r!| j                  «       |j                  «       k  S | j                  |k  sy| j	                  |«       S ©NF©rQ   r/   rO   r6   rI   rS   s     r-   Ú__lt__zBoundaryVersion.__lt__”   sJ   € Ü�eœ_Ô-Ø—?‘?Ó$ u×'7Ñ'7Ó'9Ñ9Ð9ð —‘˜uÒ$ØØ—?‘? 5Ó)Ð)Ð)r,   c                ó¦   — t        |t        «      r!| j                  «       |j                  «       kD  S | j                  |k\  ry| j	                  |«      S )NTrW   rS   s     r-   Ú__gt__zBoundaryVersion.__gt__�   sG   € ô �eœ_Ô-Ø—?‘?Ó$ u×'7Ñ'7Ó'9Ñ9Ð9Ø�<‰<˜5Ò ØØ�‰˜uÓ%Ð%r,   c                ó4   — t        | j                  «       «      S r8   )ÚhashrO   ©r?   s    r-   Ú__hash__zBoundaryVersion.__hash__¦   s   € ä�D—O‘OÓ%Ó&Ð&r,   c                ó|   — | j                   j                  › d| j                  ›d| j                  j                  › d�S )NÚ(z, Ú))Ú	__class__r#   r6   r5   Únamer]   s    r-   Ú__repr__zBoundaryVersion.__repr__ª   s4   € Ø—.‘.×)Ñ)Ð*¨!¨D¯L©LÐ+;¸2¸d¿i¹i¿n¹nÐ=MÈQÐOÐOr,   N)r6   r	   r5   r"   ÚreturnÚNone)rD   r	   re   Úbool)re   Ú_BoundaryOrderKey©rD   Úobjectre   rg   )rD   zBoundaryVersion | Versionre   rg   ©re   Úint©re   Ústr)r#   r$   r%   r&   Ú	__slots__r@   rI   rO   rT   rX   rZ   r^   rd   r+   r,   r-   r/   r/   >   s9   „ ñ
ð€Ió'óGó2Eó*ó*ó&ó'ô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	y)Ú
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   c                óD  — || _         || _        |€d | _        y t        |t        «      rS|j
                  t        j                  k(  rt        |j                   «      | _        y t        |j                   «      | _        y |r|j                  | _        y |j                  | _        y r8   )r6   rs   rr   rQ   r/   r5   r"   r*   Ú_make_above_after_postsÚ_make_above_after_localsÚ__le__rX   ©r?   r6   rs   s      r-   r@   zLowerBound.__init__½   su   € ØˆŒØ"ˆŒð ˆ?Ø<@ˆD�KÜ˜¤Ô1ð �|‰|œ|×7Ñ7Ò7Ü5°g·o±oÓF�•ä6°w·±ÓG�•ÙØ!Ÿ.™.ˆD�Kà!Ÿ.™.ˆD�Kr,   c                ó–   — t        |t        «      st        S | j                  |j                  k(  xr | j                  |j                  k(  S r8   ©rQ   rq   rR   r6   rs   rS   s     r-   rT   zLowerBound.__eq__Ñ   ó7   € Ü˜%¤Ô,Ü!Ð!Ø�|‰|˜uŸ}™}Ñ,ÒR°·±À5Ç?Á?Ñ1RÐRr,   c                ó  — t        |t        «      st        S | j                  €|j                  d uS |j                  €y| j                  |j                  k7  r| j                  |j                  k  S | j                  xr |j                   S rV   rz   rS   s     r-   rX   zLowerBound.__lt__Ö   sq   € Ü˜%¤Ô,Ü!Ð!à�<‰<ÐØ—=‘=¨Ð,Ð,Ø�=‰=Ð ØØ�<‰<˜5Ÿ=™=Ò(Ø—<‘< %§-¡-Ñ/Ð/à�~‰~Ò5 e§o¡oÐ"5Ð5r,   c                óD   — t        | j                  | j                  f«      S r8   ©r\   r6   rs   r]   s    r-   r^   zLowerBound.__hash__ã   ó   € Ü�T—\‘\ 4§>¡>Ð2Ó3Ð3r,   c                ót   — | j                   rdnd}d| j                  j                  › d|› | j                  ›d�S )NÚ[r`   Ú<Ú Ú>©rs   rb   r#   r6   ©r?   Úbrackets     r-   rd   zLowerBound.__repr__æ   s8   € ØŸš‘#¨SˆØ�4—>‘>×*Ñ*Ð+¨1¨W¨I°d·l±lÐ5EÀQÐGÐGr,   N©r6   Ú_VersionOrBoundaryrs   rg   re   rf   ri   )rD   rq   re   rg   rk   rm   ©
r#   r$   r%   r&   ro   r@   rT   rX   r^   rd   r+   r,   r-   rq   rq   ²   s)   „ ñð 3€Ió)ó(Só
6ó4ôHr,   rq   c                  ó<   — e Zd ZdZdZd	d„Zd
d„Zdd„Zdd„Zdd„Z	y)Ú
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.
    )Ú_belowrs   r6   c                ó2  — || _         || _        |€d | _        y t        |t        «      rJ|j
                  t        j                  k(  rt        |j                   «      | _        y |j                  | _        y |r|j                  | _        y |j                  | _        y r8   )r6   rs   r�   rQ   r/   r5   r"   r)   Ú_make_below_after_localsÚ__ge__rZ   rx   s      r-   r@   zUpperBound.__init__ö   sr   € ØˆŒØ"ˆŒð ˆ?Ø<@ˆD�KÜ˜¤Ô1ð �|‰|œ|×8Ñ8Ò8Ü6°w·±ÓG�•ð
 &Ÿn™n�•ÙØ!Ÿ.™.ˆD�Kà!Ÿ.™.ˆD�Kr,   c                ó–   — t        |t        «      st        S | j                  |j                  k(  xr | j                  |j                  k(  S r8   ©rQ   rŒ   rR   r6   rs   rS   s     r-   rT   zUpperBound.__eq__  r{   r,   c                óü   — t        |t        «      st        S | j                  €y|j                  €y| j                  |j                  k7  r| j                  |j                  k  S | j                   xr |j                  S )NFTr’   rS   s     r-   rX   zUpperBound.__lt__  se   € Ü˜%¤Ô,Ü!Ð!à�<‰<ÐØØ�=‰=Ð ØØ�<‰<˜5Ÿ=™=Ò(Ø—<‘< %§-¡-Ñ/Ð/à—>‘>Ð!Ò5 e§o¡oÐ5r,   c                óD   — t        | j                  | j                  f«      S r8   r~   r]   s    r-   r^   zUpperBound.__hash__  r   r,   c                ót   — | j                   rdnd}d| j                  j                  › d| j                  ›|› d�S )NÚ]ra   r‚   rƒ   r„   r…   r†   s     r-   rd   zUpperBound.__repr__!  s8   € ØŸš‘#¨SˆØ�4—>‘>×*Ñ*Ð+¨1¨T¯\©\Ð,<¸W¸IÀQÐGÐGr,   Nrˆ   ri   )rD   rŒ   re   rg   rk   rm   rŠ   r+   r,   r-   rŒ   rŒ   ë   s)   „ ñð 3€Ió)ó,Só
6ó4ôHr,   rŒ   FzFinal[LowerBound]ÚNEG_INFzFinal[UpperBound]ÚPOS_INFzFinal[tuple[Interval]]r   c                óŽ   — t        | «      }|dkD  r!| |dz
     dk(  r|dz  }|dkD  r| |dz
     dk(  rŒ|t        | «      k(  r| S | d| S )zDStrip trailing zeros from a release tuple for normalized comparison.r   r   N)rB   )r:   Úends     r-   r9   r9   0  s`   € ä
ˆg‹,€CØ
�Š'�g˜c A™gÑ&¨!Ò+Øˆq‰ˆð �Š'�g˜c A™gÑ&¨!Ó+àœS ›\Ò)ˆ7Ð<¨w°t¸¨}Ð<r,   c                óŽ   — g | j                   dd ¢| j                   d   dz   ‘­}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  sC   € à>�—‘  Ð$Ð> g§o¡o°bÑ&9¸AÑ&=Ñ>€GÜ×Ñ G§M¡M¸7ÈÔJÐJr,   c                óZ   — 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¡M¸7¿?¹?ÐPQÔRÐRr,   c                ó`   — t        | t        «      s	 t        | «      } | S | S # t        $ r Y y w xY wr8   )rQ   r	   r   r¡   s    r-   r   r   C  s:   € Ü�gœwÔ'ð	Ü˜gÓ&ˆGð €Nˆ7€Nøô ò 	Ùð	ús   ’! ¡	-¬-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.
    c                óè   •—  ‰| «      ry| j                   ‰k7  ry| j                  }t        |«      ‰k  ry|d ‰ ‰k7  ryt        ‰t        |«      «      D ]  }||   dk7  sŒ y | j                  ‰k7  ryy©NFTr   )r;   r:   rB   rC   r<   )ÚparsedÚparsed_releaserH   rG   Úversion_epochÚ
version_geÚversion_preÚversion_release_trimmeds      €€€€€r-   Úabovez&_make_above_after_posts.<locals>.aboveY  s‡   ø€ Ù�fÔØð �<‰<˜=Ò(ØØŸ™ˆÜˆ~Ó Ò/ØØ˜/˜>Ð*Ð.EÒEØÜ�~¤s¨>Ó':Ö;ˆAØ˜aÑ  AÓ%Ùð <ð �:‰:˜Ò$Øð r,   ©r§   r	   re   rg   )r�   r;   r<   r9   r:   rB   )r6   r­   rG   r©   rª   r«   r¬   s     @@@@@r-   ru   ru   L  sK   ü€ ð —‘€JØ—M‘M€MØ—+‘+€KÜ*¨7¯?©?Ó;ÐÜÐ0Ó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``.
    c                ó$  •—  ‰| «      ry| j                   ‰k7  ry| j                  }t        |«      ‰k  ry|d ‰ ‰	k7  ryt        ‰t        |«      «      D ]  }||   dk7  sŒ y | j                  ‰k7  ry| j
                  ‰k7  ry| j                  ‰k7  S r¦   ©r;   r:   rB   rC   r<   r=   r>   ©
r§   r¨   rH   rG   Úversion_devr©   rª   Úversion_postr«   r¬   s
      €€€€€€€r-   r­   z'_make_above_after_locals.<locals>.aboveƒ  s    ø€ Ù�fÔØð �<‰<˜=Ò(ØØŸ™ˆÜˆ~Ó Ò/ØØ˜/˜>Ð*Ð.EÒEØÜ�~¤s¨>Ó':Ö;ˆAØ˜aÑ  AÓ%Ùð <ð �:‰:˜Ò$ØØ�;‰;˜,Ò&ØØ�z‰z˜[Ñ(Ð(r,   r®   ©r�   r;   r<   r=   r>   r9   r:   rB   )	r6   r­   rG   r³   r©   rª   r´   r«   r¬   s	     @@@@@@@r-   rv   rv   t  ó]   þ€ ð —‘€JØ—M‘M€MØ—+‘+€KØ—<‘<€LØ—+‘+€KÜ*¨7¯?©?Ó;ÐÜÐ0Ó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.
    c                ó$  •—  ‰| «      ry| j                   ‰k7  ry| j                  }t        |«      ‰k  ry|d ‰ ‰	k7  ryt        ‰t        |«      «      D ]  }||   dk7  sŒ y | j                  ‰k7  ry| j
                  ‰k7  ry| j                  ‰k(  S )NTFr   r±   r²   s
      €€€€€€€r-   Úbelowz'_make_below_after_locals.<locals>.belowª  s    ø€ Ù�fÔØð �<‰<˜=Ò(ØØŸ™ˆÜˆ~Ó Ò/ØØ˜/˜>Ð*Ð.EÒEØÜ�~¤s¨>Ó':Ö;ˆAØ˜aÑ  AÓ%Ùð <ð �:‰:˜Ò$ØØ�;‰;˜,Ò&ØØ�z‰z˜[Ñ(Ð(r,   r®   rµ   )	r6   r¹   rG   r³   r©   rª   r´   r«   r¬   s	     @@@@@@@r-   r�   r�   ›  r¶   r,   c                óz  — | j                   }| j                  t        j                  k(  r]|j                  � |j                  |j                  dz   d¬«      S |j                  �|j                  dz   nd}|j                  |dd¬«      S |j                  �)|j                  \  }}|j                  ||dz   fddd¬«      S y)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<   )ÚboundaryÚbaseÚ	next_postr5   Únumbers        r-   r   r   Â  s¹   € à×Ñ€Dà‡}�}œ×1Ñ1Ò1ð �8‰8ÐØ×#Ñ#¨¯©°1©¸DÐ#ÓAÐAØ'+§y¡yÐ'<�T—Y‘Y ’]À!ˆ	Ø×Ñ Y°A¸TÐÓBÐBð ‡x�xÐØ—x‘x‰ˆˆfØ×Ñ T¨6°A©:Ð$6¸TÀqÐPTÐÓUÐUàr,   c                ó  — |j                   €y| j                   €>|j                   xr/ t        |j                   t        «      xr |j                   t        k  S t        | j                   t
        «      rBt        | j                   «      }|�+|j                   |k(  r|j                   S |j                   |k  S | j                   |j                   k(  r| j                  xr |j                   S | j                   |j                   kD  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.
    F)r6   rs   rQ   r	   r   r/   r   )ÚlowerÚupperÚ	successors      r-   r   r   ×  sÕ   € ð ‡}�}ÐØà‡}�}Ðð —‘Ðò -Ü˜5Ÿ=™=¬'Ó2ò-à—‘¤Ñ,ð	
ô �%—-‘-¤Ô1Ü'¨¯©Ó6ˆ	ØÐ Ø�}‰} 	Ò)Ø Ÿ?™?Ð*Ð*Ø—=‘= 9Ñ,Ð,à‡}�}˜Ÿ™Ò%Ø—O‘OÒ7¨¯©Ð8Ð8à�=‰=˜5Ÿ=™=Ñ(Ð(r,   c                ó2  — g }dx}}|t        | «      k  r‚|t        |«      k  rt| |   \  }}||   \  }}t        ||«      }	t        ||«      }
t        |	|
«      s|j	                  |	|
f«       ||k  r|dz  }n|dz  }|t        | «      k  r|t        |«      k  rŒt|S )zFIntersect two sorted, non-overlapping range lists (two-pointer merge).r   r   )rB   ÚmaxÚminr   Úappend)ÚleftÚrightÚresultÚ
left_indexÚright_indexÚ
left_lowerÚ
left_upperÚright_lowerÚright_upperrÅ   rÆ   s              r-   r   r   ÷  s·   € ð
  €FØ Ð €J�Ø
”s˜4“yÒ
  [´3°u³:Ò%=Ø!% jÑ!1Ñˆ
�JØ#(¨Ñ#5Ñ ˆ�[ä�J Ó,ˆÜ�J Ó,ˆä˜e UÔ+Ø�M‰M˜5 %˜.Ô)ð ˜Ò#Ø˜!‰O‰Jà˜1ÑˆKð ”s˜4“yÒ
  [´3°u³:Ó%=ð  €Mr,   c              #  ó„  K  — |�€Mg }d}t        | «      dk(  rœ| d   \  }}|j                  }	|j                  }
|D ]j  }t        |€|n ||«      «      }|€Œ|	�	 |	|«      sŒ&|
�	 |
|«      sŒ1|j                  sd}|–— ŒD|rt        ||«      r|–— ŒW|rŒZ|j                  |«       Œl |s
|E d{  –—†  y|D ]�  }t        |€|n ||«      «      }|€Œ| D ]n  \  }}|j                  }	|	�
 |	|«      s Œ;|j                  }
|
�	 |
|«      sŒ5|j                  sd}|–— n&|rt        ||«      r|–— n|s|j                  |«        Œ� Œ� |s
|E d{  –—†  y|du }t        | «      dk(  ri| d   \  }}|j                  }	|j                  }
|D ]C  }t        |€|n ||«      «      }|€Œ|r|j                  rŒ*|	�	 |	|«      sŒ5|
�	 |
|«      sŒ@|–— ŒE y|D ]g  }t        |€|n ||«      «      }|€Œ|r|j                  rŒ*| D ]9  \  }}|j                  }	|	�
 |	|«      s ŒJ|j                  }
|
�	 |
|«      sŒ5|–—  Œg Œi y7 �Œ�7 Œð­w)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)rB   rr   r�   r   Úis_prereleaser   rË   )ÚrangesÚiterableÚkeyÚprereleasesÚregionÚprerelease_bufferÚfound_finalrÅ   rÆ   r­   r¹   Úitemr§   Úexclude_prereleasess                 r-   r   r     s�  è ø€ ð ÑØ')ÐØˆäˆv‹;˜!Òð " !™9‰LˆE�5Ø—L‘LˆEØ—L‘LˆEÛ �Ü'°°©ÁÀTÃÓK�Ø�>ØØÐ$©U°6¬]ØØÐ$©U°6¬]ØØ×+Ò+Ø"&�KØ“JÙÔ 3°F¸FÔ CØ“JÚ$Ø%×,Ñ,¨TÕ2ð !ñ Ø,×,Ð,ØãˆDÜ#¨C¨K¡D¹SÀ»YÓGˆFØˆ~ØÛ &‘��uØŸ™�ØÐ$©U°6¬]ÙØŸ™�Ø�=¡E¨&¥MØ!×/Ò/Ø&*˜Ø"›
ÙÔ$7¸ÀÔ$GØ"›
Ù(Ø)×0Ñ0°Ô6Ùñ !'ð	 ñ$ Ø(×(Ð(Øà%¨Ð.Ðä
ˆ6ƒ{�aÒð ˜a‘y‰ˆˆuØ—‘ˆØ—‘ˆÛˆDÜ#¨C¨K¡D¹SÀ»YÓGˆFØˆ~ØÙ" v×';Ò';ØØÐ ©¨v¬ØØˆ}¡ f¥Ø“
ð ð 	ãˆÜ¨¨¡¹¸T»ÓCˆØˆ>ØÙ 6×#7Ò#7ØÛ"‰LˆE�5Ø—L‘LˆEØÐ ©¨v¬ÙØ—L‘LˆEØˆ}¡ f¥Ø’
Ùñ #ñ ð[ -ùð, )ús@   ‚BI ÂI Â.H;Â/AI ÄAI ÅH>ÅA8I ÇA)I È1I È>I c                ój   — | j                   �| j                  dddd¬«      S | j                  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  s@   € à‡{�{Ðð ×"Ñ" t°$¸DÈÐ"ÓMÐMð ×Ñ 4¨tÐÓ4Ð4r,   c                ó
  — | €t         S t        | t        «      rS| j                  }|j                  rt        |«      S |j                  �|j                  dz   nd}|j                  |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   rQ   r/   r6   rÖ   rá   r=   r¿   )ÚvalueÚinner_versionrÂ   s      r-   Ú_lowest_release_at_or_aboverå   ƒ  s…   € ð €}ÜÐÜ�%œÔ)ØŸ™ˆØ×&Ò&Ü4°]ÓCÐCð 1>×0BÑ0BÐ0N�]×'Ñ'¨!Ò+ÐTUˆ	Ø×(Ñ(¨i¸tÐ(ÓDÐDà×ÒØˆä,¨UÓ3Ð3r,   c                ó¸   — | D ]U  \  }}t        |j                  «      }|j                  �||j                  k  r y||j                  k(  sŒH|j                  sŒU y y)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.
    FT)rå   r6   rs   )r×   rÅ   rÆ   Únearests       r-   r   r   š  sR   € ó ‰ˆˆuÜ-¨e¯m©mÓ<ˆØ�=‰=Ð  G¨e¯m©mÒ$;ÙØ�e—m‘mÓ#¨¯«Ùð ð 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Ÿ   rq   rŒ   r—   r˜   )ÚoprÁ   rÅ   rÆ   s       r-   r   r   ©  se   € ô
 �tÓ€EÜ˜dÓ#€EØ	ˆT‚zÜ˜E 4Ó(¬*°U¸EÓ*BÐCÐDÐDô 
”*˜U EÓ*Ð+Ü	�E˜4Ó	 ¤'Ð*ðð r,   c                óî  — | dk(  rt        |d«      t        fgS | dk(  r+t        t        t	        |t
        j                  «      d«      fgS | dk(  rª|j                  �3|j                  |j                  dz   d¬«      }t        |d«      t        fgS |j                  �4|j                  |j                  dz   dd¬	«      }t        |d«      t        fgS t        t	        |t
        j                  «      d
«      t        fgS | dk(  r?|j                  r|n|j                  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(  rA|j                  |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: )rq   r˜   r—   rŒ   r/   r"   r)   r>   r¿   r=   r*   rÖ   r   r:   rŸ   Ú
ValueError)rê   r6   Ú	has_localÚlower_boundÚboundÚafter_localsrÆ   Úprefixs           r-   r   r   ¹  s(  € ð 
ˆT‚zÜ˜G TÓ*¬GÐ4Ð5Ð5à	ˆT‚zô Üœ?¨7´L×4MÑ4MÓNÐPTÓUðð
ð 	
ð 
ˆS‚yØ�;‰;Ð"ð "×-Ñ-°'·+±+À±/ÈÐ-ÓNˆKÜ ¨TÓ2´GÐ<Ð=Ð=Ø�<‰<Ð#à!×-Ñ-°7·<±<À!Ñ3CÈÐRVÐ-ÓWˆKÜ ¨TÓ2´GÐ<Ð=Ð=ô
 œ?¨7´L×4LÑ4LÓMÈuÓUÜðð
ð 	
ð 
ˆS‚yð ×,Ò,‰G°'×2EÑ2EÈ!ÐSWÐ2EÓ2Xð 	ð ”KÒØˆIÜœ* U¨EÓ2Ð3Ð4Ð4ô # 7¬L×,EÑ,EÓF€LÙ ‰G l€Eà	ˆT‚zÜ˜G TÓ*¬J°u¸dÓ,CÐDÐEÐEà	ˆT‚zä”j ¨%Ó0Ð1Ü˜˜uÓ%¤wÐ/ð
ð 	
ð
 
ˆT‚zØ×$Ñ$¨W¯_©_¸S¸bÐ-AÐ$ÓBˆä˜ Ó&¬
Ô3DÀVÓ3LÈeÓ(TÐUð
ð 	
ô Ð)¨"¨Ð0Ó
1Ð1r,   c                óZ   — |j                  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ê   Úversion_strr6   s      r-   r   r   þ  s3   € ð ×Ñ˜DÔ!Ü˜r 7Ó+Ð+ä˜2˜w¨¨{Ð(:Ó;Ð;r,   c                ó\   — d}| D ]  }|€|}Œt        ||«      }|rŒ 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)Úper_specifier_rangesrÎ   Úsubs      r-   r   r     sG   € ð )-€FÛ#ˆØˆ>Ø‰Fä% f¨cÓ2ˆFÚÙð $ð €~ÜÐQÓRÐRà€Mr,   c                óx   — | D ]5  \  }}|j                   }|�
 ||«      s y|j                  }|�	 ||«      sŒ5 y y)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.
    FT)rr   r�   )r×   r6   rÅ   rÆ   r­   r¹   s         r-   r   r   #  sF   € ó ‰ˆˆuØ—‘ˆØÐ¡U¨7¤^Ùà—‘ˆØˆ=™E '�NÙð ð r,   c                ó   — | �| S |ryy)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+   )Ú
configuredÚautodetecteds     r-   r   r   6  s   € ð ÐØÐáØàr,   )r:   útuple[int, ...]re   rþ   )r6   r	   re   r	   )r6   zVersion | strre   úVersion | None)r6   r	   re   zCallable[[Version], bool])rÀ   r/   re   rÿ   )rÅ   rq   rÆ   rŒ   re   rg   )rÌ   úSequence[Interval]rÍ   r   re   úlist[Interval])r+   )r×   r   rØ   zIterable[Any]rÙ   z%Callable[[Any], Version | str] | NonerÚ   úbool | NonerÛ   r   re   zIterator[Any])rã   z Version | BoundaryVersion | Nonere   r	   )r×   r   re   rg   )rê   rn   rÁ   r	   re   r  )rê   rn   r6   r	   rí   rg   re   r  )rê   rn   rõ   rn   r6   r	   re   r  )rø   zIterable[Sequence[Interval]]re   r   )r×   r   r6   r	   re   rg   )rü   r  rý   r  re   r  );r&   Ú
__future__r   r'   Ú	functoolsÚtypingr   r   r   r6   r   r	   Úcollections.abcr
   r   r   r   r   Útuplerl   ÚfloatÚ_BoundaryOrderSuffixrh   Ú__all__r   Ú__annotations__r   r    ÚEnumr"   Útotal_orderingr/   r‰   rq   rŒ   ÚIntervalr—   r˜   r   r9   rŸ   r¢   r   ru   rv   r�   r   r   r   r   rá   rå   r   r   r   r   r   r   r   r+   r,   r-   Ú<module>r     sz  ðò Iå "ã Û ÷ñ ÷ -áßFÓFÝð !  c¨3°°c¸5°jÑ0AÀ3ÈÐ!KÑLÐØ˜c 5¨¨c¨¡?Ð4HÈ%ÐOÑPÐò€ñ" & hÓ/€ˆ^Ó /ñ & c›l€ˆ^Ó *ñ $ E›l€ˆ|Ó *ô�4—9‘9ô ð ×Ñ÷lPð lPó ðlPñ^ Ø˜w¨¸Ð=Ñ>Ðð ×Ñ÷5Hð 5Hó ð5Hðp ×Ñ÷7Hð 7Hó ð7Hñt à�Z Ð+Ñ,€Hñ (¨¨eÓ4€Ð	Ó 4Ù'¨¨eÓ4€Ð	Ó 4Ø'.°Ð&8Ð%:€
Ð"Ó :ó=óKóSó
ó%óP$óN$óNó*)ð@Ø
ðàðð óð> "$ðcØðcàðcð 
/ðcð ð	cð
 ðcð ócóL	5ó4ó.óó B2óJ<ðØ6ðàóó.ð&ØðØ+6ðàôr,   