Ë
    ˜Qj–  ã                  ó"  — d Z ddlmZ ddlZddlmZ ddlmZmZ ddl	m
Z
 ddlmZ dd	lmZ dd
lmZmZmZmZ ddlmZ ddlmZmZmZmZmZmZ ddlmZ ddlm Z m!Z! eee"e"f   df   Z#dZ$ e% e&ed   d   ed   d   dz   «      «      Z' e%d„ g e¢e¢­D «       «      Z( e«       d   Z)e
e)   Z* e%d„ eD «       «      e'z  Z+dZ,ee)   Z-ee)   Z.ee)   Z/dd„Z0dd„Z1 G d„ de«      Z2 e2dddddd«      Z3 ed¬«      d d„«       Z4 ed¬«      d!d"d„«       Z5y)#zOShared data tables and constants for wcwidth.py, _wcwidth.py, and _wcswidth.py.é    )ÚannotationsN)Ú	lru_cache)ÚTupleÚ
NamedTupleé   )ÚCATEGORY_MC)ÚWIDE_EASTASIAN)Ú
ZERO_WIDTH)Ú
ISC_VIRAMAÚEXTENDED_PICTOGRAPHICÚISC_INVISIBLE_STACKERÚGRAPHEME_REGIONAL_INDICATOR)ÚAMBIGUOUS_EASTASIAN)ÚSFZ_OVERRIDESÚSRI_OVERRIDESÚVS15_OVERRIDESÚVS16_OVERRIDESÚWIDE_OVERRIDESÚNARROW_OVERRIDES)Úlist_versions)ÚALIASESÚKNOWN_TERMINALS.)Ú_REGIONAL_INDICATOR_SETÚ_ISC_VIRAMA_SETÚ_LATEST_VERSIONÚ_CATEGORY_MC_TABLEÚ_EMOJI_ZWJ_SETÚ_FITZPATRICK_RANGEÚ_ZERO_WIDTH_TABLEÚ_WIDE_EASTASIAN_TABLEÚ_AMBIGUOUS_TABLEÚresolve_terminalÚget_term_overridesÚlist_term_programsc              #  óN   K  — | ]  \  }}t        ||d z   «      D ]  }|–— Œ Œ y­w©r   N©Úrange©Ú.0ÚloÚhiÚcps       úN/var/www/html/truck-me/venv/lib/python3.12/site-packages/wcwidth/_constants.pyú	<genexpr>r/   1   s:   è ø€ ò Ùˆ2ˆrÜ�B˜˜Q™Óòà
ô ðØñùó   ‚#%éÿÿÿÿc              #  óN   K  — | ]  \  }}t        ||d z   «      D ]  }|–— Œ Œ y­wr&   r'   r)   s       r.   r/   r/   8   s6   è ø€ ò Ùˆ2ˆr´U¸2¸rÀA¹vÓ5FòØ/1„BðØñùr0   )iûó iÿó c                 ó\   — t        t        t        t        j                  «       z  «      «      S )z²
    Return all recognized values for the ``term_program`` argument.

    Includes canonical terminal names and their TERM/TERM_PROGRAM aliases.

    .. versionadded:: 0.8.0
    )ÚtupleÚsortedr   r   Úkeys© ó    r.   r$   r$   B   s   € ô ”œ¬'¯,©,«.Ñ8Ó9Ó:Ð:r8   c                 ó  — g }| D ]  }|j                  |«       Œ |sy|j                  d„ ¬«       |d   g}|dd D ]=  \  }}|d   \  }}||k  r|d   d   t        ||«      f|d<   Œ+|j                  ||f«       Œ? t	        |«      S )zJMerge multiple sorted range tuples into one sorted, non-overlapping tuple.r7   c                ó   — | d   S )Nr   r7   )Úrs    r.   ú<lambda>z_merge_ranges.<locals>.<lambda>T   s
   €  ! A¡$€ r8   )Úkeyr   r   Nr1   )ÚextendÚsortÚmaxÚappendr4   )ÚtuplesÚ
all_rangesÚtÚmergedr+   r,   Ú_Úprev_his           r.   Ú_merge_rangesrH   M   s©   € à(*€JØò ˆØ×Ñ˜!ÕðáØØ‡O�O™€OÔ'Ø˜‰mˆ_€FØ˜Q˜R�.ò $‰ˆˆBØ˜B‘Z‰
ˆˆ7Ø�Š=Ø  ™* Q™-¬¨W°bÓ)9Ð:ˆF�2ŠJà�M‰M˜2˜r˜(Õ#ð$ô �‹=Ðr8   c                  óN   — e Zd ZU dZded<   ded<   ded<   ded<   ded<   ded<   y	)
ÚTerminalOverridesz7Pre-merged override range tuples for a single terminal.Ú_RangeTupleÚnarrowerÚvs16_narrowerÚ
vs15_widerÚzeroerÚnarrow_widerÚnarrow_zeroerN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r7   r8   r.   rJ   rJ   _   s)   … ÙAàÓØÓØÓØÓØÓØÔr8   rJ   r7   é    )Úmaxsizec                óZ  — t        t        j                  | i «      j                  dd«      t        j                  | i «      j                  dd«      t	        j                  | i «      j                  dd«      «      }t        j                  | i «      j                  dd«      }t        j                  | i «      j                  dd«      }t        t        j                  | i «      j                  dd«      t        j                  | i «      j                  dd«      t	        j                  | i «      j                  dd«      «      }t        j                  | i «      j                  dd«      }t        j                  | i «      j                  dd«      }|s|s|s|s
|s|st        S t        ||||||«      S )zNReturn a TerminalOverrides, with all empty tuples when there are no overrides.rL   r7   ÚwiderrO   rQ   )
rH   r   Úgetr   r   r   r   r   Ú_EMPTY_OVERRIDESrJ   )Úterm_canonicalrL   rM   rN   rO   rP   rQ   s          r.   r#   r#   m   sw  € ô Ü×Ñ˜>¨2Ó.×2Ñ2°:¸rÓBÜ×Ñ˜.¨"Ó-×1Ñ1°*¸bÓAÜ×Ñ˜.¨"Ó-×1Ñ1°*¸bÓAó€Hô
 #×&Ñ& ~°rÓ:×>Ñ>¸zÈ2ÓN€MÜ×#Ñ# N°BÓ7×;Ñ;¸GÀRÓH€JÜÜ×Ñ˜>¨2Ó.×2Ñ2°8¸RÓ@Ü×Ñ˜.¨"Ó-×1Ñ1°(¸BÓ?Ü×Ñ˜.¨"Ó-×1Ñ1°(¸BÓ?ó€Fô
 $×'Ñ'¨¸Ó;×?Ñ?ÀÈÓL€LÜ$×(Ñ(¨¸Ó<×@Ñ@ÀÐRTÓU€Mñ ™©±vÙ™}ÜÐÜ˜X }°jÀ&Ø)¨=ó:ð :r8   c                ó  — | du ry| du rBt         j                  j                  dd«      xs  t         j                  j                  dd«      } | sy| j                  «       j	                  «       }t        j                  ||«      }|t        vry|S )aÖ  
    Resolve a terminal identifier to its canonical name.

    :param term_program: Terminal identifier.  ``False`` (default) disables override lookup.
        ``True`` reads the ``TERM_PROGRAM`` environment variable, falling back to ``TERM``.
        A string value is used directly (canonical name, alias, XTVERSION/ENQ result, etc.).
    :returns: Canonical terminal name if recognized, ``None`` otherwise.

    The auto-detection path (``term_program=True``) reads environment variables at call time
    and caches the result.  The environment is assumed immutable for the process lifetime;
    callers that change ``TERM`` or ``TERM_PROGRAM`` mid-process must call
    :func:`resolve_terminal.cache_clear` afterward.
    FNTÚTERM_PROGRAMÚ ÚTERM)ÚosÚenvironr[   ÚstripÚlowerr   r   )Úterm_programr=   Ú	canonicals      r.   r"   r"   ‹   s~   € ð �uÑØØ�tÑÜ—z‘z—~‘~ n°bÓ9ÒW¼R¿Z¹Z¿^¹^ÈFÐTVÓ=WˆÙØØ
×
Ñ
Ó
×
$Ñ
$Ó
&€CÜ—‘˜C Ó%€IØœÑ'ØØÐr8   )Úreturnztuple[str, ...])rB   rK   rh   rK   )r]   Ústrrh   rJ   )F)rf   z
bool | strrh   z
str | None)6rU   Ú
__future__r   rb   Ú	functoolsr   Útypingr   r   Útable_mcr   Ú
table_wider	   Ú
table_zeror
   Útable_graphemer   r   r   r   Útable_ambiguousr   Útable_overridesr   r   r   r   r   r   Úunicode_versionsr   Útable_term_programsr   r   ÚintrK   Ú__all__Ú	frozensetr(   r   r   r   r   r   r   r   r    r!   r$   rH   rJ   r\   r#   r"   r7   r8   r.   ú<module>rx      sw  ðÙ UÝ "ó 
Ý ç $õ "Ý &Ý "÷:ó :õ 1÷0÷ 0õ ,ß 9à�E˜#˜s˜(‘O SÐ(Ñ)€ð€ñ $Ù	Ð
% aÑ
(¨Ñ
+Ð-HÈÑ-KÈAÑ-NÐQRÑ-RÓSóÐ ñ ñ Ø:�zÐ:Ð$9Ñ:ôó €ñ
  “/ "Ñ%€Ø  Ñ1Ð Ùñ Ø*ôó àñ€ð (Ð à˜Ñ/Ð Ø& Ñ7Ð Ø& Ñ7Ð ó;óô$˜
ô ñ % R¨¨R°°R¸Ó<Ð ñ �2Ôò:ó ð:ñ: �2Ôóó ñr8   