
    0j(                         S SK r S SKrSSKJr  SSKJrJrJrJrJrJ	r	J
r
JrJrJrJrJrJr   " S S\5      r\R'                  5         g)    N   )messages)unicode_blockUNICODE_BASIC_LATINUNICODE_LATIN_1_SUPPLEMENTUNICODE_LATIN_EXTENDED_BUNICODE_GENERAL_PUNCTUATIONUNICODE_ARABIC!UNICODE_LATIN_EXTENDED_ADDITIONALUNICODE_HIRAGANAUNICODE_KATAKANAUNICODE_BOPOMOFOUNICODE_BOPOMOFO_EXTENDEDUNICODE_CJK_UNIFIED_IDEOGRAPHSUNICODE_HANGUL_SYLLABLESc                      \ rS rSr\R
                  " S5      rSrS rS r	S r
\S 5       r\S 5       r\R
                  " S	5      \R
                  " S
5      \R
                  " S5      \R
                  " S5      \R
                  " S5      /r\R
                  " S5      r\R
                  " S5      r\R$                  " S\-   S-   \-   S-   \R&                  5      r/ \R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S 5      P\R
                  " S!5      P\R
                  " S"5      P\R
                  " S#5      P\R
                  " S$5      P\R
                  " S%5      P\R
                  " S&5      P\R
                  " S'5      P\R
                  " S(5      P\R
                  " S)5      P\R
                  " S*5      P\R
                  " S+5      P\R
                  " S,5      P\R
                  " S-5      P\R
                  " S.5      P\R
                  " S/5      P\R
                  " S05      P\R
                  " S15      P\R
                  " S25      P\R
                  " S35      P\R
                  " S45      P\R
                  " S55      P\R
                  " S65      P\R
                  " S75      P\R
                  " S85      P\R
                  " S95      P\R
                  " S:5      P\R
                  " S;5      P\R
                  " S<5      P\R
                  " S=5      P\R
                  " S>5      P\R
                  " S?5      P\R
                  " S@5      P\R
                  " SA5      P\R
                  " SB5      P\R
                  " SC5      P\R
                  " SD5      P\R
                  " SE5      P\R
                  " SF5      P\R
                  " SG5      P\R
                  " SH5      P\R
                  " SI5      P\R
                  " SJ5      P\R
                  " SK5      P\R
                  " SL5      P\R
                  " SM5      P\R
                  " SN5      P\R
                  " SO5      P\R
                  " SP5      P\R
                  " SQ5      P\R
                  " SR5      P\R
                  " SS5      P\R
                  " ST5      P\R
                  " SU5      P\R
                  " SV5      P\R
                  " SW5      P\R
                  " SX5      P\R
                  " SY5      P\R
                  " SZ5      P\R
                  " S[5      P\R
                  " S\5      P\R
                  " S]5      P\R
                  " S^5      P\R
                  " S_5      P\R
                  " S`5      P\R
                  " Sa5      P\R
                  " Sb5      P\R
                  " Sc5      P\R
                  " Sd5      P\R
                  " Se5      P\R
                  " Sf5      P\R
                  " Sg5      P\R
                  " Sh5      P\R
                  " Si5      P\R
                  " Sj5      P\R
                  " Sk5      P\R
                  " Sl5      P\R
                  " Sm5      P\R
                  " Sn5      P\R
                  " So5      P\R
                  " Sp5      P\R
                  " Sq5      P\R
                  " Sr5      P\R
                  " Ss5      P\R
                  " St5      P\R
                  " Su5      P\R
                  " Sv5      P\R
                  " Sw5      P\R
                  " Sx5      P\R
                  " Sy5      P\R
                  " Sz5      P\R
                  " S{5      P\R
                  " S|5      P\R
                  " S}5      P\R
                  " S~5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      P\R
                  " S5      Pr0 r\S 5       rSrg)NGram   zNGram.LATIN1_EXCLUDE   c                      SU l         SU l        g )N F)gramscapitalword)selfs    P/home/wildlama/miniconda3/lib/python3.13/site-packages/langdetect/utils/ngram.py__init__NGram.__init__   s    
     c                    U R                  U5      nU R                  S   nUS:X  a  SU l        SU l        US:X  a  gO7[        U R                  5      U R                  :  a  U R                  SS U l        U =R                  U-  sl        UR                  5       (       a  UR                  5       (       a  SU l        ggSU l        g)z%Append a character into ngram buffer.r   FNr   T)	normalizer   r   lenN_GRAMisupper)r   ch	last_chars      r   add_charNGram.add_char   s    ^^BJJrN	DJ$DSy _+ABDJ

b
::<<  ""#'  #  %Dr   c                     U R                   (       a  gUS:  d(  XR                  :  d  [        U R                  5      U:  a  gUS:X  a  U R                  S   nUS:X  a  gU$ U R                  U* S $ )zGet n-gram.Nr   r    r   )r   r#   r"   r   )r   nr%   s      r   get	NGram.get2   sd    q5AOs4::':6BBSyI::qbc?"r   c                    [        U5      nU[        :X  a  US:  d  SUs=:  a  S:  d  O  SU:  a  SnU$ U[        :X  a#  U R                  R	                  U5      S:  a  SnU$ U[
        :X  ab  U[        R                  " S5      :X  a  [        R                  " S5      nU[        R                  " S	5      :X  a  [        R                  " S
5      nU$ U[        :X  a  SnU$ U[        :X  a2  U[        R                  " S5      :X  a  [        R                  " S5      nU$ U[        :X  a2  U[        R                  " S5      :  a  [        R                  " S5      nU$ U[        :X  a  [        R                  " S5      nU$ U[        :X  a  [        R                  " S5      nU$ U[        [        4;   a  [        R                  " S5      nU$ U[        :X  a  U R                   R#                  X5      nU$ U[$        :X  a  [        R                  " S5      nU$ )NAZazr   r   u   șu   şu   țu   ţu   یu   يu   Ạu   ểu   あu   アu   ㄅu   가)r   r   r   LATIN1_EXCLUDEDfindr   sixur	   r
   r   r   r   r   r   r   CJK_MAPr+   r   )clsr%   blocks      r   r!   NGram.normalize@   s   b!''CxC"NsNsRx8 	7 00""''+q02 	1 ..SUU8_$UU8_SUU8_$UU8_& 	% 11B" 	! n$SUU8_$UU8_ 	 77SUU8_$UU8_ 	 &&xB 	 &&xB 	 ')BCCxB
 		 44(B 	 ..xB	r   c                 F   ^  U 4S jnT R                   R                  X!5      $ )zVNormalizer for Vietnamese.
Normalize Alphabet + Diacritical Mark(U+03xx) into U+1Exx.
c                    > TR                   R                  U R                  S5      5      nTR                  R                  U R                  S5      5      nTR                  U   U   $ )Nr      )TO_NORMALIZE_VI_CHARSr3   groupDMARK_CLASSNORMALIZED_VI_CHARS)malphabetdmarkr7   s      r   repl NGram.normalize_vi.<locals>.replh   sS    0055aggajAHOO((4E**51(;;r   )ALPHABET_WITH_DMARKsub)r7   textrD   s   `  r   normalize_viNGram.normalize_vic   s!    
	< &&**466r   NORMALIZED_VI_CHARS_0300NORMALIZED_VI_CHARS_0301NORMALIZED_VI_CHARS_0303NORMALIZED_VI_CHARS_0309NORMALIZED_VI_CHARS_0323r=   r?   z([z])([z])zNGram.KANJI_1_0zNGram.KANJI_1_2zNGram.KANJI_1_4zNGram.KANJI_1_8zNGram.KANJI_1_11zNGram.KANJI_1_12zNGram.KANJI_1_13zNGram.KANJI_1_14zNGram.KANJI_1_16zNGram.KANJI_1_18zNGram.KANJI_1_22zNGram.KANJI_1_27zNGram.KANJI_1_29zNGram.KANJI_1_31zNGram.KANJI_1_35zNGram.KANJI_2_0zNGram.KANJI_2_1zNGram.KANJI_2_4zNGram.KANJI_2_9zNGram.KANJI_2_10zNGram.KANJI_2_11zNGram.KANJI_2_12zNGram.KANJI_2_13zNGram.KANJI_2_15zNGram.KANJI_2_16zNGram.KANJI_2_18zNGram.KANJI_2_21zNGram.KANJI_2_22zNGram.KANJI_2_23zNGram.KANJI_2_28zNGram.KANJI_2_29zNGram.KANJI_2_30zNGram.KANJI_2_31zNGram.KANJI_2_32zNGram.KANJI_2_35zNGram.KANJI_2_36zNGram.KANJI_2_37zNGram.KANJI_2_38zNGram.KANJI_3_1zNGram.KANJI_3_2zNGram.KANJI_3_3zNGram.KANJI_3_4zNGram.KANJI_3_5zNGram.KANJI_3_8zNGram.KANJI_3_9zNGram.KANJI_3_11zNGram.KANJI_3_12zNGram.KANJI_3_13zNGram.KANJI_3_15zNGram.KANJI_3_16zNGram.KANJI_3_18zNGram.KANJI_3_19zNGram.KANJI_3_22zNGram.KANJI_3_23zNGram.KANJI_3_27zNGram.KANJI_3_29zNGram.KANJI_3_30zNGram.KANJI_3_31zNGram.KANJI_3_32zNGram.KANJI_3_35zNGram.KANJI_3_36zNGram.KANJI_3_37zNGram.KANJI_3_38zNGram.KANJI_4_0zNGram.KANJI_4_9zNGram.KANJI_4_10zNGram.KANJI_4_16zNGram.KANJI_4_17zNGram.KANJI_4_18zNGram.KANJI_4_22zNGram.KANJI_4_24zNGram.KANJI_4_28zNGram.KANJI_4_34zNGram.KANJI_4_39zNGram.KANJI_5_10zNGram.KANJI_5_11zNGram.KANJI_5_12zNGram.KANJI_5_13zNGram.KANJI_5_14zNGram.KANJI_5_18zNGram.KANJI_5_26zNGram.KANJI_5_29zNGram.KANJI_5_34zNGram.KANJI_5_39zNGram.KANJI_6_0zNGram.KANJI_6_3zNGram.KANJI_6_9zNGram.KANJI_6_10zNGram.KANJI_6_11zNGram.KANJI_6_12zNGram.KANJI_6_16zNGram.KANJI_6_18zNGram.KANJI_6_20zNGram.KANJI_6_21zNGram.KANJI_6_22zNGram.KANJI_6_23zNGram.KANJI_6_25zNGram.KANJI_6_28zNGram.KANJI_6_29zNGram.KANJI_6_30zNGram.KANJI_6_32zNGram.KANJI_6_34zNGram.KANJI_6_35zNGram.KANJI_6_37zNGram.KANJI_6_39zNGram.KANJI_7_0zNGram.KANJI_7_3zNGram.KANJI_7_6zNGram.KANJI_7_7zNGram.KANJI_7_9zNGram.KANJI_7_11zNGram.KANJI_7_12zNGram.KANJI_7_13zNGram.KANJI_7_16zNGram.KANJI_7_18zNGram.KANJI_7_19zNGram.KANJI_7_20zNGram.KANJI_7_21zNGram.KANJI_7_23zNGram.KANJI_7_25zNGram.KANJI_7_28zNGram.KANJI_7_29zNGram.KANJI_7_32zNGram.KANJI_7_33zNGram.KANJI_7_35zNGram.KANJI_7_37c                 b    U R                    H  nUS   nU H  nX R                  U'   M     M!     g )Nr   )	CJK_CLASSr6   )r7   cjk_listrepresentativer%   s       r   _init_cjk_mapNGram._init_cjk_map   s.    H%a[N"0B  &r   )r   r   N)__name__
__module____qualname____firstlineno__r   
get_stringr2   r#   r   r'   r+   classmethodr!   rI   r@   r=   r?   recompileUNICODErF   rQ   r6   rT   __static_attributes__ r   r   r   r      s%   ))*@AOF!%&#    D 7 7 	67676767679 %//0GH%%m4K**$$v-;dB



~1-.~1-.~1 	-.~1 	-.	~1
 	./~1 	./~1 	./~1 	./~1 	./~1 	./~1 	./~1 	./~1 	./~1 	./~1 	./~1  	-.!~1" 	-.#~1$ 	-.%~1& 	-.'~1( 	./)~1* 	./+~1, 	./-~1. 	.//~10 	./1~12 	./3~14 	./5~16 	./7~18 	./9~1: 	./;~1< 	./=~1> 	./?~1@ 	./A~1B 	./C~1D 	./E~1F 	./G~1H 	./I~1J 	./K~1L 	./M~1N 	-.O~1P 	-.Q~1R 	-.S~1T 	-.U~1V 	-.W~1X 	-.Y~1Z 	-.[~1\ 	./]~1^ 	./_~1` 	./a~1b 	./c~1d 	./e~1f 	./g~1h 	./i~1j 	./k~1l 	./m~1n 	./o~1p 	./q~1r 	./s~1t 	./u~1v 	./w~1x 	./y~1z 	./{~1| 	./}~1~ 	./~1@ 	-.A~1B 	-.C~1D 	./E~1F 	./G~1H 	./I~1J 	./K~1L 	./M~1N 	./O~1P 	./Q~1R 	./S~1T 	./U~1V 	./W~1X 	./Y~1Z 	./[~1\ 	./]~1^ 	./_~1` 	./a~1b 	./c~1d 	./e~1f 	./g~1h 	./i~1j 	-.k~1l 	-.m~1n 	-.o~1p 	./q~1r 	./s~1t 	./u~1v 	./w~1x 	./y~1z 	./{~1| 	./}~1~ 	./~1@ 	./A~1B 	./C~1D 	./E~1F 	./G~1H 	./I~1J 	./K~1L 	./M~1N 	./O~1P 	./Q~1R 	./S~1T 	-.U~1V 	-.W~1X 	-.Y~1Z 	-.[~1\ 	-.]~1^ 	./_~1` 	./a~1b 	./c~1d 	./e~1f 	./g~1h 	./i~1j 	./k~1l 	./m~1n 	./o~1p 	./q~1r 	./s~1t 	./u~1v 	./w~1x 	./y~1z 	./{~1| 	./}~1I@ G1 1r   r   )r\   r4    r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   objectr   rT   r`   r   r   <module>rc      s?    	 
    "k1F k1Z    r   