Ë
    ”U.j   ã                   óˆ   — d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ  ej                  d«      Z
 ed«      Zd„ Zd	„ Zdd
„Zy)a  
    pygments.regexopt
    ~~~~~~~~~~~~~~~~~

    An algorithm that generates optimized regexes for matching long lists of
    literal strings.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Úescape)Úcommonprefix)Úgroupby)Ú
itemgetterz[\[\^\\\-\]]c                 óZ   — dt         j                  d„ dj                  | «      «      z   dz   S )NÚ[c                 ó(   — d| j                  «       z   S )NÚ\)Úgroup)Úms    ú_C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pip/_vendor/pygments/regexopt.pyÚ<lambda>zmake_charset.<locals>.<lambda>   s   € ¨°·±³	Ò)9ó    Ú Ú])Ú	CS_ESCAPEÚsubÚjoin)Úletterss    r   Úmake_charsetr      s'   € Ø”—‘Ñ9¸2¿7¹7À7Ó;KÓLÑLÈsÑRÐRr   c           	      ór  ‡
‡— |xr dxs d}| sy| d   Š
t        | «      dk(  r|t        ‰
«      z   |z   S ‰
s|t        | dd d«      z   dz   |z   S t        ‰
«      dk(  r~g }g }| D ]3  }t        |«      dk(  r|j                  |«       Œ#|j                  |«       Œ5 t        |«      dkD  r4|r!|t        |d«      z   dz   t	        |«      z   |z   S |t	        |«      z   |z   S t        | «      }|r:t        |«      }|t        |«      z   t        | D �cg c]  }||d ‘Œ	 c}d«      z   |z   S | D �cg c]
  }|ddd	…   ‘Œ }}t        |«      }	|	rAt        |	«      Š|t        t        ˆfd
„| D «       «      d«      z   t        |	ddd	…   «      z   |z   S |dj                  d„ t        | ˆ
fd„«      D «       «      z   |z   S c c}w c c}w )zEReturn a regex that matches any string in the sorted list of strings.Ú)r   r   é   Nz(?:Ú?Ú|éÿÿÿÿc              3   ó*   •K  — | ]
  }|d ‰  –— Œ y ­w)N© )Ú.0ÚsÚslens     €r   Ú	<genexpr>z"regex_opt_inner.<locals>.<genexpr>H   s   øè ø€ Ð$@¹°1 Q v¨¨¤Y¹ùs   ƒc              3   óL   K  — | ]  }t        t        |d    «      d«      –— Œ y­w)r   r   N)Úregex_opt_innerÚlist)r   r   s     r   r"   z"regex_opt_inner.<locals>.<genexpr>M   s(   è ø€ ð LÙJ�Uô !¤ e¨A¡h£°×4ÙJùs   ‚"$c                 ó   •— | d   ‰d   k(  S )Nr   r   )r    Úfirsts    €r   r   z!regex_opt_inner.<locals>.<lambda>N   s   ø€ ¸¸1¹ÀÀqÁÒ9Ir   )	Úlenr   r$   Úappendr   r   Úsortedr   r   )ÚstringsÚ
open_parenÚclose_parenÚ	oneletterÚrestr    ÚprefixÚplenÚstrings_revÚsuffixr'   r!   s             @@r   r$   r$      s  ù€ àÒ$ Ò*¨€KáàØ�A‰J€EÜ
ˆ7ƒ|�qÒàœF 5›MÑ)¨KÑ7Ð7ÙàœO¨G°A°B¨K¸Ó?Ñ?ØñØñ ð 	 ä
ˆ5ƒz�Q‚àˆ	ØˆÛˆAÜ�1‹v˜Š{Ø× Ñ  Õ#à—‘˜A•ð	 ô
 ˆy‹>˜AÒÙà!¤O°D¸"Ó$=Ñ=ÀÑCÜ" 9Ó-ñ.Ø0;ñ<ð <ð ¤¨YÓ 7Ñ7¸+ÑEÐEÜ˜'Ó"€FÙÜ�6‹{ˆð œF 6›NÑ*Ü±Ó9±¨A˜q  šx°Ñ9¸5ÓAñBàñð 	ñ %,Ó,¡G˜q�1‘T�r�T“7 G€KÐ,Ü˜+Ó&€FÙÜ�6‹{ˆàÜœfÓ$@¹Ó$@Ó@À%ÓHñIä�V™D˜b˜D‘\Ó"ñ#à%0ñ1ð 	1ð
 Ø�‰ñ LÜ% gÓ/IÔJóLó 	LñLð ñð ùò :ùò -s   ÄF/
Ä%F4c                 ó<   — t        | «      } |t        | d«      z   |z   S )zíReturn a compiled regex that matches any string in the given list.

    The strings to match must be literal strings, not regexes.  They will be
    regex-escaped.

    *prefix* and *suffix* are pre- and appended to the final regex.
    Ú()r*   r$   )r+   r0   r3   s      r   Ú	regex_optr6   R   s$   € ô �W‹o€GØ”O G¨SÓ1Ñ1°FÑ:Ð:r   )r   r   )Ú__doc__Úrer   Úos.pathr   Ú	itertoolsr   Úoperatorr   Úcompiler   ÚFIRST_ELEMENTr   r$   r6   r   r   r   Ú<module>r>      sE   ðñ	ó 
Ý Ý  Ý Ý àˆB�J‰J�Ó'€	Ù˜1“€òSò5ôp	;r   