
    $pj                        S r SSKJr  SSKrSSKJr  SSKJrJr  SSK	J
r
  SSKJr  SS	KJr  SS
KJrJrJrJr  SSKJr  SSKJrJrJrJrJrJr  SSKJr  SSKJ r J!r!  \\\"\"4   S4   r#Sr$\%" \&" \S   S   \S   S   S-   5      5      r'\%" S / \Q\Q7 5       5      r(\" 5       S   r)\
\)   r*\%" S \ 5       5      \'-  r+Sr,\\)   r-\\)   r.\\)   r/SS jr0SS jr1 " S S\5      r2\2" SSSSSS5      r3\" SS9S S j5       r4\" SS9S!S"S jj5       r5g)#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              #  V   #    U  H  u  p[        XS -   5        H  nUv   M	     M!     g7fr   Nrange.0lohicps       N/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/wcwidth/_constants.py	<genexpr>r/   1   s/      :62BQ  :s   ')c              #  T   #    U  H  u  p[        XS -   5        H  o3v   M     M      g7fr&   r'   r)   s       r.   r/   r/   8   s(      *62U2Av5FrB5FB*s   &()i i c                 ^    [        [        [        [        R                  " 5       -  5      5      $ )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::r7   c                    / nU  H  nUR                  U5        M     U(       d  gUR                  S S9  US   /nUSS  H;  u  pEUS   u  pgXG::  a  US   S   [        Xu5      4US'   M)  UR                  XE45        M=     [	        U5      $ )zJMerge multiple sorted range tuples into one sorted, non-overlapping tuple.r6   c                    U S   $ )Nr   r6   )rs    r.   <lambda>_merge_ranges.<locals>.<lambda>T   s    !A$r7   )keyr   r   Nr0   )extendsortmaxappendr3   )tuples
all_rangestmergedr+   r,   _prev_his           r.   _merge_rangesrH   M   s    (*J! OOO'm_FQR.BZ
= *Q-W)9:F2JMM2(# ! =r7   c                  V    \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S\S'   S\S	'   S
rg)TerminalOverrides_   z7Pre-merged override range tuples for a single terminal._RangeTuplenarrowervs16_narrower
vs15_widerzeroernarrow_widernarrow_zeroerr6   N)__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r6   r7   r.   rJ   rJ   _   s)    Ar7   rJ   r6       )maxsizec                   [        [        R                  " U 0 5      R                  SS5      [        R                  " U 0 5      R                  SS5      [        R                  " U 0 5      R                  SS5      5      n[
        R                  " U 0 5      R                  SS5      n[        R                  " U 0 5      R                  SS5      n[        [        R                  " U 0 5      R                  SS5      [        R                  " U 0 5      R                  SS5      [        R                  " U 0 5      R                  SS5      5      n[        R                  " U 0 5      R                  SS5      n[        R                  " U 0 5      R                  SS5      nU(       d)  U(       d"  U(       d  U(       d  U(       d  U(       d  [        $ [        XX4XV5      $ )zNReturn a TerminalOverrides, with all empty tuples when there are no overrides.rM   r6   widerrP   rR   )
rH   r   getr   r   r   r   r   _EMPTY_OVERRIDESrJ   )term_canonicalrM   rN   rO   rP   rQ   rR   s          r.   r#   r#   m   sq    >2.22:rB."-11*bA."-11*bAH
 #&&~r:>>z2NM##NB7;;GRHJ>2.228R@."-11(B?."-11(B?F
 $'';??LL$((<@@RTUM v}Xj): :r7   c                8   U SL a  gU SL aG  [         R                  R                  SS5      =(       d     [         R                  R                  SS5      n U (       d  gU R                  5       R	                  5       n[
        R                  " X5      nU[        ;  a  gU$ )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zz~~nb9WRZZ^^FTV=W




$
$
&CC%I'r7   )returnztuple[str, ...])rB   rL   rk   rL   )r`   strrk   rJ   )F)ri   z
bool | strrk   z
str | None)6rW   
__future__r   re   	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   intrL   __all__	frozensetr(   r   r   r   r   r   r   r   r    r!   r$   rH   rJ   r_   r#   r"   r6   r7   r.   <module>r{      sw   U " 
  $ " & ": : 10 0 , 9E#s(OS() $	
%a
(
+-H-KA-NQR-RS   :z:$9: 
  /"% 1  *  ( / &7 &7 ;$
  %RRR<  2: :: 2 r7   