+
     h)  c                   s    ^ RI t ^ RIHt ^ RIHtHtHt  ! R R4      t]]]]]3,          ]],          3,          ,          t	 ! R R4      t
 ! R R	]
4      tR# )
i    N)filterfalse)ListTupleUnionc                   s,   a  ] tR t^t o R tR tRtV tR# )_lazyclasspropertyc                sV    Wn         VP                  V n        VP                  V n        R # )N)fn__doc____name__)selfr   s   &&6/usr/lib/python3.14/site-packages/pyparsing/unicode.py__init__Z_lazyclassproperty.__init__	   s    zz    c                s  a Sf   \        V4      o\        SR4      '       dc   \        ;QJ d0    V3R lSP                  R,           4       F  '       g   K   RM%	  RM!! V3R lSP                  R,           4       4      '       d   / Sn        V P
                  P                  pVSP                  9  d   V P                  S4      SP                  V&   SP                  V,          # )N_internc              3   sV   <"   T F  pSP                   \        VR . 4      J x  K   	  R# 5i)r   N)r   getattr).0Z
superclassclss   & r	   	<genexpr>Z-_lazyclassproperty.__get__.<locals>.<genexpr>   s*      .
-
 KK7:y"==-s   &):i   NNTF)ZtypeZhasattrZany__mro__r   r   r   )r   Zobjr   Zattrnames   &&f r	   __get__Z_lazyclassproperty.__get__   s    ;s)CsI&&## .
!kk"o.
### .
!kk"o.
 +
 +
 CK77##3;;&$(GGCLCKK!{{8$$r   )r   r   r   N)r   
__module____qualname____firstlineno__r
   r   __static_attributes____classdictcell____classdict__   @r	   r   r      s     $
% %r   r   c                   s   a  ] tR t^t o Rt. t]R 4       t]R 4       t]R 4       t	]R 4       t
]R 4       t]R 4       t]R 4       t]R	 4       tV 3R
 ltRtV tR# )unicode_setad  
A set of Unicode characters, for language-specific strings for
``alphas``, ``nums``, ``alphanums``, and ``printables``.
A unicode_set is defined by a list of ranges in the Unicode character
set, in a class attribute ``_ranges``. Ranges can be specified using
2-tuples or a 1-tuple, such as::

    _ranges = [
        (0x0020, 0x007e),
        (0x00a0, 0x00ff),
        (0x0100,),
        ]

Ranges are left- and right-inclusive. A 1-tuple of (x,) is treated as (x, x).

A unicode set can also be defined using multiple inheritance of other unicode sets::

    class CJK(Chinese, Japanese, Korean):
        pass
c           	     s0   . pV P                    FS  pV\        J d    MH\        VR R4       F3  pVP                  \	        V^ ,          VR,          ^,           4      4       K5  	  KU  	  \        \        V4      4       Uu. uF  p\        V4      NK  	  up# u upi )_ranges i)r   r   r   ZextendZrangesortedsetZchr)r   ZretZccZrrcs   &    r	   _chars_for_rangesZunicode_set._chars_for_ranges7   s{    ++B[ b)R0

5A2
34 1 
 !'s3x 01 01A 0111s   <Bc                h    RP                  \        \        P                  V P                  4      4      # )z+all non-whitespace characters in this range )joinr    strZisspacer!   r      &r	   
printablesZunicode_set.printablesA   s$     ww{3;;0E0EFGGr   c                r"   )z'all alphabetic characters in this ranger#   )r$   filterr%   Zisalphar!   r&   r'   r	   alphasZunicode_set.alphasF   $     wwvckk3+@+@ABBr   c                r"   )z*all numeric digit characters in this ranger#   )r$   r)   r%   Zisdigitr!   r&   r'   r	   numsZunicode_set.numsK   r+   r   c                s<    V P                   V P                  ,           # )z)all alphanumeric characters in this range)r*   r,   r&   r'   r	   	alphanumsZunicode_set.alphanumsP   s     zzCHH$$r   c                s    RP                  \        \        RP                  \        \        P
                  V P                  4      4      R,           R,           R,           4      4      4      # )zVall characters in this range that are valid identifier characters, plus underscore '_'r#   u:   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºu|   ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ_)r$   r   r   r)   r%   isidentifierr!   r&   r'   r	   
identcharsZunicode_set.identcharsU   sc     wwGGF3#3#3S5J5JKLRS UU 	
 		
r   c           	     s    \        R V P                   4       4      pRP                  \        V\        V P                  R,           4      ,          4      4      # )uz   
all characters in this range that are valid identifier body characters,
plus the digits 0-9, and · (Unicode MIDDLE DOT)
c              3   sd   "   T F&  pR V,           P                  4       '       g   K"  Vx  K(  	  R# 5i)r.   N)r/   )r   r       & r	   r   Z-unicode_set.identbodychars.<locals>.<genexpr>i   s%      
,!q0F0F0HAA,s   0
0r#   u   0123456789·)r   r!   r$   r   r0   )r   Zidentifier_charsr1   r	   identbodycharsZunicode_set.identbodycharsc   sL      
,,
 
 wwv.S^^n5T1UUVWWr   c                sH    ^ RI Hp V! V P                  V P                  4      # )zp
a pyparsing Word expression for an identifier using this range's definitions for
identchars and identbodychars
)Word)Z	pyparsingr3   r0   r2   )r   r3   r1   r	   
identifierZunicode_set.identifiern   s     	#CNNC$6$677r   c                &   < V ^8  d   Qh/ S[ ;R&   # i   r   UnicodeRangeListZformatr      "r	   __annotate__Zunicode_set.__annotate__   s     , "- r   r   N)r   r   r   r   r   r   r   r!   r(   r*   r,   r-   r0   r2   r4   __annotate_func__r   r   r   r   r	   r   r      s     * !#G2 2 H H C C C C % % 
 
 X X 8 8a  r   r   c                   s  a  ] tR t^yt o Rt^ ]P                  3.t ! R R]4      t	 ! R R]4      t
 ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t]t ! R R]]]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t]	t]t]t]t]t]t]t]t]t ]t!V 3R lt"Rt#V t$R # )!pyparsing_unicodez>
A namespace class for defining common language unicode_sets.
c                   s6   a  ] tR t^t o RtR.tV 3R ltRtV tR# )(pyparsing_unicode.BasicMultilingualPlanez,Unicode set for the Basic Multilingual Planec                r5   r6   r7   r9   r:   r	   r;   Z5pyparsing_unicode.BasicMultilingualPlane.__annotate__        ! 	
 r   r   N)    i  	r   r   r   r   r   r   r<   r   r   r   r   r	   BasicMultilingualPlaner>      s     :%
  r   rB   c                   s8   a  ] tR t^t o RtRR.tV 3R ltRtV tR# )pyparsing_unicode.Latin1z/Unicode set for Latin-1 Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z%pyparsing_unicode.Latin1.__annotate__        ! 	
 r   r   N)r@   i~   )i   i   rA   r   r   r	   Latin1rC      s     =%
  r   rE   c                   s6   a  ] tR t^t o RtR.tV 3R ltRtV tR# )pyparsing_unicode.LatinAz/Unicode set for Latin-A Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z%pyparsing_unicode.LatinA.__annotate__   r?   r   r   N)   i  rA   r   r   r	   LatinArF           =%
  r   rH   c                   s6   a  ] tR t^t o RtR.tV 3R ltRtV tR# )pyparsing_unicode.LatinBz/Unicode set for Latin-B Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z%pyparsing_unicode.LatinB.__annotate__   r?   r   r   N)i  iO  rA   r   r   r	   LatinBrJ      rI   r   rK   c                   s   a  ] tR t^t o Rt. RNRNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NtV 3R ltRtV tR# )(pyparsing_unicode.Greekz.Unicode set for Greek Unicode Character Rangesc                r5   r6   r7   r9   r:   r	   r;   Z$pyparsing_unicode.Greek.__annotate__   s     ! $	
 r   r   N)iB  iE  )ip  iw  )iz  i  )i  i  )i  )i  i  )i  i  )i  i  )i&  i*  )i^  )i`  )if  ij  )i   i  )i  i  )i   iE  )iH  iM  )iP  iW  )iY  )i[  )i]  )i_  i}  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i)!  )i'  i'  )ie  )i@ i )i )i  iE )i i rA   r   r   r	   GreekrL      sx    <$%
$%
$%
 $%
 	$%

 $%
 $%
 $%
 $%
 $%
 $%
 $%
 $%
 $%
 $%
 $%
  !$%
" #$%
$ %$%
& '$%
( )$%
* +$%
, -$%
. /$%
0 1$%
2 3$%
4 5$%
6 7$%
8 9$%
: ;$%
< =$%
> ?$%
@ A$%
B C$%
D E$%
F G$%
  r   rM   c                   s8   a  ] tR t^t o Rt. ROtV 3R ltRtV tR# )pyparsing_unicode.Cyrillicz0Unicode set for Cyrillic Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z'pyparsing_unicode.Cyrillic.__annotate__   s     ! 		
 r   r   N))i   i/  )i  i  )i+  )ix  )i-  i-  )i@  ir  )it  i  )i.  i/  rA   r   r   r	   CyrillicrN      s     >	%
  r   rO   c                   s8   a  ] tR t^t o Rt. ROtV 3R ltRtV tR# )pyparsing_unicode.Chinesez/Unicode set for Chinese Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z&pyparsing_unicode.Chinese.__annotate__   s     ! 	
 r   r   N))i.  i.  )i.  i.  )i1  i1  )i 4  iM  ) N  i  )i   i  )i   im  )ip  i  )io io )i i )i i; )i@ iH )i   i֦ )i  i4 )i@ i )i  i )i i )i  i rA   r   r   r	   ChineserP      s     =%
  r   rR   c                   s    ] tR t^tRt ! R R]4      t ! R R]4      t ! R R]4      t]t	]t
]t]P                  ]P                  ,           ]P                  ,           tRtR	# )
pyparsing_unicode.Japanesez`Unicode set for Japanese Unicode Character Range, combining Kanji, Hiragana, and Katakana rangesc                   s8   a  ] tR t^t o RtRR.tV 3R ltRtV tR# ) pyparsing_unicode.Japanese.Kanjiz-Unicode set for Kanji Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z-pyparsing_unicode.Japanese.Kanji.__annotate__   s     %  r   r   N)rQ   i  )i 0  i?0  rA   r   r   r	   KanjirT      s     ;  )G  r   rU   c                   s8   a  ] tR t^t o Rt. ROtV 3R ltRtV tR# )#pyparsing_unicode.Japanese.Hiraganaz0Unicode set for Hiragana Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z0pyparsing_unicode.Japanese.Hiragana.__annotate__   s     %  r   r   N))iA0  i0  )0  0  )i0  )ip  )i )iP iR )i  rA   r   r   r	   HiraganarV      s     B)G  r   rY   c                   8   a  ] tR tRt o Rt. ROtV 3R ltRtV tR# )#pyparsing_unicode.Japanese.KatakanarG   z1Unicode set for Katakana  Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z0pyparsing_unicode.Japanese.Katakana.__annotate__   s     % 
 r   r   N)	)rW   i0  )rX   i0  )i1  i1  )i2  i2  )ie  i  )i  )id ig )i i )i rA   r   r   r	   Katakanar[      s     C
)G  r   r\   r   N)r   r   r   r   r   r   rU   rY   r\   t   漢字t   カタカナt   ひらがなr   r   r   r   r	   JapaneserS      sd    n	K 	
	{ 
		{ 	  MM 	r   r]   c                   rZ   )pyparsing_unicode.Hanguli  z7Unicode set for Hangul (Korean) Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z%pyparsing_unicode.Hangul.__annotate__  s     ! 	
 r   r   N))i   i  )i.0  i/0  )i11  i1  )i 2  i2  )i`2  i{2  )i~2  )i`  i|  )i   i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  rA   r   r   r	   Hangulr^     s     E%
  r   r_   c                   s    ] tR tRtRtRtR# )pyparsing_unicode.CJKi.  zTUnicode set for combined Chinese, Japanese, and Korean (CJK) Unicode Character Ranger   N)r   r   r   r   r   r   r   r   r	   CJKr`   .  s    br   ra   c                   8   a  ] tR tRt o RtRR.tV 3R ltRtV tR# )pyparsing_unicode.Thaii1  z,Unicode set for Thai Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z#pyparsing_unicode.Thai.__annotate__1  rD   r   r   N)i  i:  )i?  i[  rA   r   r   r	   Thairc   1  s     :%
  r   rd   c                   rZ   )pyparsing_unicode.Arabici8  z.Unicode set for Arabic Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z%pyparsing_unicode.Arabic.__annotate__8  s     ! 	
 r   r   N))i   i  )i  i  )i   i  rA   r   r   r	   Arabicre   8  s     <%
  r   rf   c                   rZ   )pyparsing_unicode.Hebrewi@  z.Unicode set for Hebrew Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z%pyparsing_unicode.Hebrew.__annotate__@  s     ! 
	
 r   r   N)	)i  i  )i  i  )i  i  )i  i6  )i8  i<  )i>  )i@  iA  )iC  iD  )iF  iO  rA   r   r   r	   Hebrewrg   @  s     <
%
  r   rh   c                   rb   )pyparsing_unicode.DevanagariiN  z2Unicode set for Devanagari Unicode Character Rangec                r5   r6   r7   r9   r:   r	   r;   Z)pyparsing_unicode.Devanagari.__annotate__N  rD   r   r   N)i 	  i	  )i  i  rA   r   r   r	   
Devanagariri   N  s     @%
  r   rj   c                r5   r6   r7   r9   r:   r	   r;   Zpyparsing_unicode.__annotate__y   s        r   r   N)%r   r   r   r   r   sysZ
maxunicoder   r   rB   rE   rH   rK   rM   rO   rR   r]   r_   ZKoreanra   rd   rf   rh   rj   ZBMPt   العربيةt   中文t   кириллицаt   Ελληνικάt   עִברִיתt	   日本語t	   한국어t	   ไทยt   देवनागरीr<   r   r   r   r   r	   r=   r=   y   s     
 !G
 

 

 

 
&
 &
P
; 

+ 
.,
; ,
\
 
( Fcgx c
{ 

 

 

[ 
 !C NF!NIII)O  r   r=   )rk   Z	itertoolsr    Ztypingr   r   r   r   Zintr8   r   r=   r   r   r	   <module>rl      s[     ! % %% %( eCHouSz9:; W8 W8tg* g*r   