Ë
    ��h   ã                   óˆ   — 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    ú[/var/www/skyplay_api_hub/venv/lib/python3.12/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Øô !¤ e¨A¡h£°×4ñ Lùs   ‚"$c                 ó   •— | d   ‰d   k(  S )Nr   r   )r    Úfirsts    €r   r   z!regex_opt_inner.<locals>.<lambda>N   s   ø€ ¸¸1¹ÀÀqÁÑ9I€ r   )	Ú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àñð 	ð %,Ö,˜q�1‘T�r�T“7Ð,€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   