+
    ½¾jÊ‰  ã                  ó°  a€ 0 t $ ^ RIHt ^ RIHt ^ RIHt ^RIHtH	t	H
t
HtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHt ^RIHtHtH t H!t!H"t"H#t#H$t$ ]],          ],          ],          ],          t%R]&R&    ! R R	4      t']! R
R7      R R l4       t(])! ^€4       U u. uF  p ]'! ]*! V 4      4      NK  	  up t+R]&R&    ! R R4      t, ! R R],4      t- ! R R],4      t. ! R R],4      t/ ! R R],4      t0 ! R R],4      t1 ! R R],4      t2 ! R R],4      t3 ! R  R!],4      t4 ! R" R#],4      t5 ! R$ R%],4      t6]! R
R7      R& R' l4       t7R*R( R) llt8R
# u up i )+é    )Úannotations)Ú	lru_cache)Ú	getLogger)ÚCOMMON_CJK_CHARACTERSÚCOMMON_SAFE_ASCII_CHARACTERSÚTRACEÚCompatibleFamillyRangeÚ_ACCENTUATEDÚ_ARABICÚ_ARABIC_ISOLATED_FORMÚ&_BASIC_LATIN_COMPATIBLE_RANGE_FAMILIESÚ_CJKÚ_COMPATIBLE_RANGE_FAMILIESÚ#_COMPATIBLE_WITH_ANY_RANGE_FAMILIESÚ_HANGULÚ_HALFWIDTH_KATAKANAÚ	_HIRAGANAÚ	_KATAKANAÚ_LATINÚ	_LIGATUREÚ_RANGE_FAMILIESÚ_SENTENCE_OPEN_PUNCTUATIONÚ_SUPERSCRIPTÚ_THAI)Ú_character_flagsÚis_emoticonÚis_punctuationÚis_separatorÚ	is_symbolÚremove_accentÚunicode_rangeÚintÚ_GLYPH_MASKc                  óD  € ] tR t^,t$ RtR&tR]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R ]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R!]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R" R# ltR$tR%# )'ÚCharInfoz>Pre-computed character properties shared across all detectors.Ú	characterÚ	printableÚalphaÚupperÚlowerÚspaceÚdigitÚis_asciiÚcase_variableÚflagsÚaccentuatedÚlatinÚis_cjkÚis_katakanaÚis_halfwidth_katakanaÚ	is_arabicÚis_ligatureÚis_superscriptÚis_sentence_open_punctuationÚis_glyphÚpunctÚsymÚrangeÚsepÚemoticonÚsafeÚ
common_cjkÚ
unaccentedÚstrÚboolr"   ú
str | Nonec               ó    € V ^8„  d   QhRRRR/# )é   r&   rB   ÚreturnÚNone© )Úformats   "ÚT/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/charset_normalizer/md.pyÚ__annotate__ÚCharInfo.__annotate__k   s   € ÷ H+ñ H+ #ð H+¨$ñ H+ó    c                óÄ
  € Wn         \        V4      pV^€8  Ed–   RV n        RV n        Wn        RV n        RV n        V\        9   V n        RV n	        RV n
        RV n        RV n        RV n        RV n        RV n        RV n        ^ATu;8:  d   ^Z8:  dW   M MSRV n        RV n        RV n        RV n        RV n        RV n        RV n        \0        V n        RV n        RV n        RV n        EMY^aTu;8:  d   ^z8:  dW   M MSRV n        RV n        RV n        RV n        RV n        RV n        RV n        \0        V n        RV n        RV n        RV n        EMô^0Tu;8:  d   ^98:  dS   M MORV n        RV n        RV n        RV n        RV n        RV n        RV n        ^ V n        RV n        RV n        RV n        EM“V^ 8X  g   ^	Tu;8:  d   ^8:  dV   M MRRV n        RV n        RV n        RV n        RV n        V^ 8H  V n        RV n        ^ V n        RV n        RV n        RV n        EM(VP;                  4       V n        RV n        RV n        RV n        RV n        RV n        RV n        ^ V n        RV n        V P,                  '       d   \=        V4      MRV n        V P,                  '       d   \?        V4      MRV n        EM‘RV n        RV n        VP;                  4       V n        VPA                  4       V n        VPC                  4       V n        VPE                  4       V n        VPG                  4       V n        VPI                  4       V n        V P&                  V P$                  8g  V n        \K        V4      pV P"                  '       d	   RV n        M\M        V4      V n        W0n        \O        V\P        ,          4      V n        \O        V\0        ,          4      V n        \O        V\R        ,          4      V n	        \O        V\T        ,          4      V n
        \O        V\V        ,          4      V n        \O        V\X        ,          4      V n        \O        V\Z        ,          4      V n        \O        V\\        ,          4      V n        \O        V\^        ,          4      V n        \O        V\`        ,          4      V n        V P4                  '       d$   V P                  '       d   \c        V4      V n        MWn        V P                  ;'       d
    V\d        9   V n        V P,                  '       d"   \=        V4      V n        \?        V4      V n        MRV n        RV n        \g        V4      V n4        \k        V4      V n6        R# )zcCompute all properties for *character* (built once per codepoint,
every branch assigns every slot).TFN)7r&   Úordr-   r0   rA   r>   r@   r   r?   r2   r3   r4   r5   r6   r7   r8   r9   r(   r)   r*   r+   r,   r'   r.   r   r/   r1   r:   r;   Úisprintabler   r   ÚisalphaÚisupperÚislowerÚisspaceÚisdigitr   r   rC   r
   r   r   r   r   r   r   r   r#   r    r   r!   r<   r   r=   )Úselfr&   Úor/   s   &&  rK   Ú__init__ÚCharInfo.__init__k   sT  € ð #Œô �Y“ˆØˆs�7Ø ˆDŒMØ$ˆDÔØ'ŒOØ!ˆDŒMØ#ˆDŒOØ!Ô%AÑAˆDŒIØˆDŒKØ$ˆDÔØ).ˆDÔ&Ø"ˆDŒNØ$ˆDÔØ"'ˆDÔØ05ˆDÔ-Ø!ˆDŒMà�QŽ}˜"�}à!�”
Ø!�”
Ø"�”
Ø"�”
Ø"�”
Ø!%�”Ø%)�Ô"Ü#�”
Ø!�”
Ø"�”
Ø �–Ø�q–˜C—à!�”
Ø"�”
Ø!�”
Ø"�”
Ø"�”
Ø!%�”Ø%)�Ô"Ü#�”
Ø!�”
Ø"�”
Ø �–Ø�q–˜B—à"�”
Ø"�”
Ø"�”
Ø"�”
Ø!�”
Ø!%�”Ø%*�Ô"Ø�”
Ø"�”
Ø"�”
Ø �–Ø�b”˜Q !ž\ rŸ\à"�”
Ø"�”
Ø"�”
Ø!�”
Ø"�”
Ø!" b¡�”Ø%*�Ô"Ø�”
Ø"�”
Ø"�”
Ø �–ð "+×!6Ñ!6Ó!8�”Ø"�”
Ø"�”
Ø"�”
Ø"�”
Ø"�”
Ø%*�Ô"Ø�”
Ø"�”
Ø:>¿.¿.¸.œ^¨IÔ6Èe�”
Ø37·>·>°>œ9 YÔ/Àu�–ð "ˆDŒMØˆDŒIØ&×2Ñ2Ó4ˆDŒNØ"×*Ñ*Ó,ˆDŒJØ"×*Ñ*Ó,ˆDŒJØ"×*Ñ*Ó,ˆDŒJØ"×*Ñ*Ó,ˆDŒJØ"×*Ñ*Ó,ˆDŒJØ!%§¡¨t¯z©zÑ!9ˆDÔô *¨)Ó4ˆEØ�z�zˆzØ %�•ä +¨IÓ 6�”ØŒJÜ# E¬LÕ$8Ó9ˆDÔÜ˜e¤f�nÓ-ˆDŒJÜ˜u¤t�|Ó,ˆDŒKÜ# E¬IÕ$5Ó6ˆDÔÜ)-¨eÔ6IÕ.IÓ)JˆDÔ&Ü! %¬'¥/Ó2ˆDŒNÜ# E¬IÕ$5Ó6ˆDÔÜ"& u¬|Õ';Ó"<ˆDÔÜ04°UÔ=WÕ5WÓ0XˆDÔ-Ü  ¬Õ!4Ó5ˆDŒMà�z�zˆz˜d×.×.Ð.Ü"/°	Ó":�•à"+”à"Ÿk™k×PÐP¨iÔ;PÑ.PˆDŒOð �~�~ˆ~Ü+¨IÓ6�”
Ü$ YÓ/�•à"�”
Ø �”ä" 9Ó-ˆŒ
Ü 	Ó*ˆŽrN   )r0   r(   r.   r&   r@   r,   r>   r/   r5   r-   r2   r9   r4   r3   r6   r8   r7   r1   r*   r'   r:   r<   r?   r=   r+   r;   rA   r)   N)r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__Ú__annotations__rY   Ú__static_attributes__rI   rN   rK   r%   r%   ,   s¯   ‡ ÙHð€Ið> ƒNØƒOØƒKØƒKØƒKØƒKØƒKØƒNØÓØƒJØÓØƒKØƒLØÓØÓØƒOØÓØÓØ"&Ó&ØƒNØƒKØ	ƒIØÓØ	ƒIØƒNØ
ƒJØÓØƒO÷H+ñ H+rN   r%   N)Úmaxsizec               ó    € V ^8„  d   QhRRRR/# )rF   r&   rB   rG   r%   rI   )rJ   s   "rK   rL   rL   ù   s   € ÷ ñ ˜#ð  (ñ rN   c                ó   € \        V 4      # )zBBuild (once per codepoint) and cache the CharInfo for *character*.)r%   )r&   s   &rK   Ú
_char_inforf   ø   s   € ô �IÓÐrN   zlist[CharInfo]Ú_ASCII_CHAR_INFOc                  óL   € ] tR tRtRtR	tR R ltR R lt]R R l4       t	R	t
R
# )ÚMessDetectorPlugini  zm
Base abstract class used for mess detection plugins.
All detectors MUST extend and implement given methods.
c               ó$   € V ^8„  d   QhRRRRRR/# ©rF   r&   rB   Úinfor%   rG   rH   rI   )rJ   s   "rK   rL   ÚMessDetectorPlugin.__annotate__  s!   € ÷ "ñ " 3ð "¨hð "¸4ñ "rN   c                ó   € \         h)zq
The main routine to be executed upon character.
Insert the logic in witch the text would be considered chaotic.
©ÚNotImplementedError©rW   r&   rl   s   &&&rK   Ú	feed_infoÚMessDetectorPlugin.feed_info  s
   € ô
 "Ð!rN   c               ó   € V ^8„  d   QhRR/# ©rF   rG   rH   rI   )rJ   s   "rK   rL   rm     s   € ÷ "ñ "�tñ "rN   c                ó   € \         h)z2
Permit to reset the plugin to the initial state.
ro   ©rW   s   &rK   ÚresetÚMessDetectorPlugin.reset  s
   € ô "Ð!rN   c               ó   € V ^8„  d   QhRR/# ©rF   rG   ÚfloatrI   )rJ   s   "rK   rL   rm     s   € ÷ "ñ "�uñ "rN   c                ó   € \         h)zm
Compute the chaos ratio based on what your feed() has seen.
Must NOT be lower than 0.; No restriction gt 0.
ro   rw   s   &rK   ÚratioÚMessDetectorPlugin.ratio  s
   € ô "Ð!rN   rI   N)r[   r\   r]   r^   r_   r`   rr   rx   Úpropertyr~   rb   rI   rN   rK   ri   ri     s,   † ñð
 €Iõ"õ"ð ô"ó ô"rN   ri   c                  óT   € ] tR tRtRtR R ltR R ltR R lt]R R	 l4       t	R
t
R# )Ú TooManySymbolOrPunctuationPlugini"  c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   Ú-TooManySymbolOrPunctuationPlugin.__annotate__*  s   € ÷ 5ñ 5˜$ñ 5rN   c                	ó>   € ^ V n         ^ V n        ^ V n        RV n        R# ©r   N©Ú_punctuation_countÚ_symbol_countÚ_character_countÚ_last_printable_charrw   s   &rK   rY   Ú)TooManySymbolOrPunctuationPlugin.__init__*  s"   € Ø'(ˆÔØ"#ˆÔØ%&ˆÔà04ˆÖ!rN   c               ó$   € V ^8„  d   QhRRRRRR/# rk   rI   )rJ   s   "rK   rL   r„   1  s!   € ÷ 
.ñ 
. 3ð 
.¨hð 
.¸4ñ 
.rN   c                ó~  € V ;P                   ^,          un         WP                  8w  dŽ   VP                  '       g|   VP                  '       d   V ;P                  ^,          un        MOVP
                  '       g>   VP                  '       d,   VP                  '       g   V ;P                  ^,          un        Wn        R# ©ú1Optimized feed using pre-computed character info.N)	rŠ   r‹   r?   r:   rˆ   r,   r;   r>   r‰   rq   s   &&&rK   rr   Ú*TooManySymbolOrPunctuationPlugin.feed_info1  sq   € à×Ò Õ"Õà×1Ñ1Ô1¸$¿)¿)¸)Ø�z�zˆzØ×'Ò'¨1Õ,Ö'Ø—Z—Z�Z D§H§H H°T·]·]°]Ø×"Ò" aÕ'Õ"à$-Ö!rN   c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   r„   =  s   € ÷ ñ �tñ rN   c                	ó0   € ^ V n         ^ V n        ^ V n        R# r†   )rˆ   rŠ   r‰   rw   s   &rK   rx   Ú&TooManySymbolOrPunctuationPlugin.reset=  s   € Ø"#ˆÔØ !ˆÔØˆÖrN   c               ó   € V ^8„  d   QhRR/# r{   rI   )rJ   s   "rK   rL   r„   C  s   € ÷ Lñ L�uñ LrN   c                	óš   € V P                   ^ 8X  d   R# V P                  V P                  ,           V P                   ,          pVR8¼  d   V# R# )r   ç        ç333333Ó?)rŠ   rˆ   r‰   )rW   Úratio_of_punctuations   & rK   r~   Ú&TooManySymbolOrPunctuationPlugin.ratioB  sO   € à× Ñ  AÔ%Ùð ×#Ñ# d×&8Ñ&8Õ8Ø×!Ñ!õ'"Ðð (<¸sÔ'BÐ#ÐKÈÐKrN   )rŠ   r‹   rˆ   r‰   Nr‡   ©r[   r\   r]   r^   r`   rY   rr   rx   r€   r~   rb   rI   rN   rK   r‚   r‚   "  s.   † ð€Iõ5õ
.õð
 ôLó ôLrN   r‚   c                  óT   € ] tR tRtRtR R ltR R ltR R lt]R R	 l4       t	R
t
R# )ÚTooManyAccentuatedPluginiN  c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   Ú%TooManyAccentuatedPlugin.__annotate__Q  s   € ÷ )ñ )˜$ñ )rN   c                	ó"   € ^ V n         ^ V n        R# r†   ©rŠ   Ú_accentuated_countrw   s   &rK   rY   Ú!TooManyAccentuatedPlugin.__init__Q  s   € Ø%&ˆÔØ'(ˆÖrN   c               ó$   € V ^8„  d   QhRRRRRR/# rk   rI   )rJ   s   "rK   rL   rŸ   U  s!   € ÷ )ñ ) 3ð )¨hð )¸4ñ )rN   c                ó’   € V ;P                   ^,          un         VP                  '       d   V ;P                  ^,          un        R# R# r�   )rŠ   r0   r¢   rq   s   &&&rK   rr   Ú"TooManyAccentuatedPlugin.feed_infoU  s5   € à×Ò Õ"Õà××ÐØ×#Ò# qÕ(×#ñ rN   c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   rŸ   \  s   € ÷ $ñ $�tñ $rN   c                	ó"   € ^ V n         ^ V n        R# r†   r¡   rw   s   &rK   rx   ÚTooManyAccentuatedPlugin.reset\  s   € Ø !ˆÔØ"#ˆÖrN   c               ó   € V ^8„  d   QhRR/# r{   rI   )rJ   s   "rK   rL   rŸ   a  s   € ÷ Oñ O�uñ OrN   c                	óx   € V P                   ^8  d   R# V P                  V P                   ,          pVR8¼  d   V# R# )é   r—   gffffffÖ?r¡   )rW   Úratio_of_accentuations   & rK   r~   ÚTooManyAccentuatedPlugin.ratio`  s=   € à× Ñ  1Ô$Ùà'+×'>Ñ'>À×AVÑAVÕ'VÐØ(=ÀÔ(EÐ$ÐNÈ3ÐNrN   )r¢   rŠ   Nr¡   r›   rI   rN   rK   r�   r�   N  s,   † Ø:€Iõ)õ)õ$ð ôOó ôOrN   r�   c                  óT   € ] tR tRtRtR R ltR R ltR R lt]R R	 l4       t	R
t
R# )ÚUnprintablePluginii  c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   ÚUnprintablePlugin.__annotate__l  s   € ÷ 'ñ '˜$ñ 'rN   c                	ó0   € ^ V n         ^ V n        RV n        R# ©r   FN©Ú_unprintable_countrŠ   Ú_has_escaperw   s   &rK   rY   ÚUnprintablePlugin.__init__l  s   € Ø'(ˆÔØ%&ˆÔØ!&ˆÖrN   c               ó$   € V ^8„  d   QhRRRRRR/# rk   rI   )rJ   s   "rK   rL   r²   q  s!   € ÷ #ñ # 3ð #¨hð #¸4ñ #rN   c                óê   € VR8X  d   RV n         VP                  '       g:   VP                  '       g(   VR8w  d!   VR8w  d   V ;P                  ^,          un        V ;P                  ^,          un        R# )r�   ÚTÚu   ï»¿N)r·   r'   r+   r¶   rŠ   rq   s   &&&rK   rr   ÚUnprintablePlugin.feed_infoq  sX   € à˜ÔØ#ˆDÔð ——�Ø—J—J�JØ˜VÔ#Ø˜XÔ%à×#Ò# qÕ(Õ#Ø×Ò Õ"×rN   c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   r²     ó   € ÷ !ñ !�tñ !rN   c                	ó"   € ^ V n         RV n        R# r´   )r¶   r·   rw   s   &rK   rx   ÚUnprintablePlugin.reset  s   € Ø"#ˆÔØ ˆÖrN   c               ó   € V ^8„  d   QhRR/# r{   rI   )rJ   s   "rK   rL   r²   „  s   € ÷ Eñ E�uñ ErN   c                	ó˜   € V P                   ^ 8X  d   R# V P                  '       d   R# V P                  ^,          V P                   ,          # )r   r—   ç      ð?©rŠ   r·   r¶   rw   s   &rK   r~   ÚUnprintablePlugin.ratioƒ  s>   € à× Ñ  AÔ%Ùà××ÐÙà×'Ñ'¨!Õ+¨t×/DÑ/DÕDÐDrN   rÅ   Nrµ   r›   rI   rN   rK   r°   r°   i  s,   † ØI€Iõ'õ
#õ!ð ôEó ôErN   r°   c                  óT   € ] tR tRtRtR R ltR R ltR R lt]R R	 l4       t	R
t
R# )ÚSuspiciousDuplicateAccentPluginiŽ  c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   Ú,SuspiciousDuplicateAccentPlugin.__annotate__–  s   € ÷ 1ñ 1˜$ñ 1rN   c                	ó>   € ^ V n         ^ V n        RV n        RV n        R# ©r   NF©Ú_successive_countrŠ   Ú_last_latin_characterÚ_last_was_accentuatedrw   s   &rK   rY   Ú(SuspiciousDuplicateAccentPlugin.__init__–  s"   € Ø&'ˆÔØ%&ˆÔà6:ˆÔ"Ø+0ˆÖ"rN   c               ó$   € V ^8„  d   QhRRRRRR/# rk   rI   )rJ   s   "rK   rL   rÊ   �  s!   € ÷ 6ñ 6 3ð 6¨hð 6¸4ñ 6rN   c                óÔ  € V ;P                   ^,          un         V P                  eª   VP                  '       d˜   V P                  '       d†   VP                  '       d6   V P                  P                  '       d   V ;P
                  ^,          un        VP                  V P                  P                  8X  d   V ;P
                  ^,          un        W n        VP                  V n        R# r�   )rŠ   rÏ   r0   rÐ   r)   rÎ   rA   rq   s   &&&rK   rr   Ú)SuspiciousDuplicateAccentPlugin.feed_info�  sŸ   € à×Ò Õ"Õà×&Ñ&Ò2Ø× × Ð Ø×*×*Ð*à�z�zˆz˜d×8Ñ8×>×>Ð>Ø×&Ò&¨!Õ+Õ&Ø�‰ $×"<Ñ"<×"GÑ"GÔGØ×&Ò&¨!Õ+Õ&Ø%)Ô"Ø%)×%5Ñ%5ˆÖ"rN   c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   rÊ   ¬  s   € ÷ +ñ +�tñ +rN   c                	ó>   € ^ V n         ^ V n        RV n        RV n        R# rÌ   rÍ   rw   s   &rK   rx   Ú%SuspiciousDuplicateAccentPlugin.reset¬  s"   € Ø!"ˆÔØ !ˆÔØ%)ˆÔ"Ø%*ˆÖ"rN   c               ó   € V ^8„  d   QhRR/# r{   rI   )rJ   s   "rK   rL   rÊ   ³  s   € ÷ Dñ D�uñ DrN   c                	óp   € V P                   ^ 8X  d   R# V P                  ^,          V P                   ,          # ©r   r—   )rŠ   rÎ   rw   s   &rK   r~   Ú%SuspiciousDuplicateAccentPlugin.ratio²  s/   € à× Ñ  AÔ%Ùà×&Ñ&¨Õ*¨d×.CÑ.CÕCÐCrN   )rŠ   rÏ   rÐ   rÎ   NrÍ   r›   rI   rN   rK   rÈ   rÈ   Ž  s.   † ð€Iõ1õ6õ+ð ôDó ôDrN   rÈ   c                  óT   € ] tR tRtRtR R ltR R ltR R lt]R R	 l4       t	R
t
R# )ÚSuspiciousRangeiº  c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   ÚSuspiciousRange.__annotate__Â  s   € ÷ 6ñ 6˜$ñ 6rN   c                	ó>   € ^ V n         ^ V n        RV n        RV n        R# r†   ©Ú"_suspicious_successive_range_countrŠ   Ú_last_printable_seenÚ_last_printable_rangerw   s   &rK   rY   ÚSuspiciousRange.__init__Â  s"   € Ø78ˆÔ/Ø%&ˆÔØ04ˆÔ!Ø15ˆÖ"rN   c               ó$   € V ^8„  d   QhRRRRRR/# rk   rI   )rJ   s   "rK   rL   rß   È  s!   € ÷ 5ñ 5 3ð 5¨hð 5¸4ñ 5rN   c                óÂ  € V ;P                   ^,          un         VP                  '       g%   VP                  '       g   VP                  '       d   RV n        RV n        R# V P                  f   Wn        VP                  V n        R# V P
                  pVP                  pW48w  g   Vf+   \        W44      '       d   V ;P                  ^,          un        Wn        W@n        R# r�   )	rŠ   r+   r:   r?   rã   rä   r<   Ú is_suspiciously_successive_rangerâ   )rW   r&   rl   Úunicode_range_aÚunicode_range_bs   &&&  rK   rr   ÚSuspiciousRange.feed_infoÈ  s©   € à×Ò Õ"Õà�:�:ˆ:˜ŸŸ˜ t§y§y yØ(,ˆDÔ%Ø)-ˆDÔ&Ùà×$Ñ$Ò,Ø(1Ô%Ø)-¯©ˆDÔ&Ùà&*×&@Ñ&@ˆØ&*§j¡jˆð Ô-°Ò1HÜ/°×QÒQØ×7Ò7¸1Õ<Õ7à$-Ô!Ø%4Ö"rN   c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   rß   á  s   € ÷ *ñ *�tñ *rN   c                	ó>   € ^ V n         ^ V n        RV n        RV n        R# r†   )rŠ   râ   rã   rä   rw   s   &rK   rx   ÚSuspiciousRange.resetá  s"   € Ø !ˆÔØ23ˆÔ/Ø$(ˆÔ!Ø%)ˆÖ"rN   c               ó   € V ^8„  d   QhRR/# r{   rI   )rJ   s   "rK   rL   rß   è  s   € ÷ /ñ /�uñ /rN   c                	ót   € V P                   ^8:  d   R# V P                  ^,          V P                   ,          pV# )é   r—   )rŠ   râ   )rW   Úratio_of_suspicious_range_usages   & rK   r~   ÚSuspiciousRange.ratioç  s<   € à× Ñ  BÔ&Ùð ×3Ñ3°aÕ7Ø×!Ñ!õ2"Ð'ð /Ð.rN   )rŠ   rä   rã   râ   Nrá   r›   rI   rN   rK   rÝ   rÝ   º  s,   † ð€Iõ6õ5õ2*ð ô/ó ô/rN   rÝ   c                  óT   € ] tR tRtRtR R ltR R ltR R lt]R R	 l4       t	R
t
R# )ÚSuperWeirdWordPluginió  c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   Ú!SuperWeirdWordPlugin.__annotate__
  s   € ÷ *ñ *˜$ñ *rN   c                	ó  € ^ V n         ^ V n        ^ V n        RV n        RV n        ^ V n        ^ V n        ^ V n        RV n        RV n	        ^ V n
        ^ V n        ^ V n        RV n        RV n        RV n        RV n        RV n        ^ V n        R# r´   ©Ú_word_countÚ_bad_word_countÚ_foreign_long_countÚ_is_current_word_badÚ_foreign_long_watchrŠ   Ú_bad_character_countÚ_buffer_lengthÚ_buffer_last_charÚ_buffer_last_char_accentuatedÚ_buffer_accent_countÚ_buffer_glyph_countÚ_buffer_upper_countÚ_buffer_first_lowerÚ_buffer_has_non_asciiÚ_buffer_last_char_ligatureÚ_buffer_has_internal_ligatureÚ_is_current_word_invalidÚ_invalid_word_countrw   s   &rK   rY   ÚSuperWeirdWordPlugin.__init__
  sš   € Ø !ˆÔØ$%ˆÔØ()ˆÔ à*/ˆÔ!Ø).ˆÔ à%&ˆÔØ)*ˆÔ!à#$ˆÔØ-1ˆÔØ38ˆÔ*Ø)*ˆÔ!Ø()ˆÔ Ø()ˆÔ Ø).ˆÔ Ø+0ˆÔ"Ø05ˆÔ'Ø38ˆÔ*Ø.3ˆÔ%Ø()ˆÖ rN   c               ó$   € V ^8„  d   QhRRRRRR/# rk   rI   )rJ   s   "rK   rL   r÷   "  s&   € ÷ b7ñ b7 3ð b7¨hð b7¸4ñ b7rN   c                óØ	  € VP                   '       EdX   V P                  '       d   RV n        VP                  V n        V P                  ^ 8X  d   VP
                  V n        V ;P                  ^,          un        Wn        VP                  '       d   V ;P                  ^,          un	        VP                  '       g   RV n        VP                  V n        VP                  '       d   V ;P                  ^,          un        VP                  '       d   V ;P                   ^,          un        R# V P"                  '       g,   VP$                  '       d   VP                  '       d   RV n        R# V P                  '       g   R# VP&                  '       g%   VP(                  '       d!   V P                  '       d   RV n        RV n        VP.                  '       g&   VP0                  '       g   VP2                  '       Ed“   V ;P4                  ^,          un        V P                  pV ;P6                  V,          un        V^8¼  Ed   V P                  V,          R8¼  d	   RV n        MòV P                  '       dS   V P                  P9                  4       '       d3   V P                  V8w  d"   V ;P:                  ^,          un        RV n        MŽV P                   ^8X  d"   RV n        V ;P:                  ^,          un        M\V P                  '       dK   V P                  '       d9   V P                  V^,
          8X  d!   V ;P:                  ^,          un        RV n        V^8¼  dh   V P"                  '       dV   V P                  ^ 8„  ;'       d    V P                  V,          R8*  pV'       g!   V ;P:                  ^,          un        RV n        V P*                  '       d:   V ;P<                  ^,          un        V ;P>                  V,          un        RV n        V P,                  '       d!   V ;P@                  ^,          un         RV n        RV n        ^ V n        RV n        RV n        ^ V n        ^ V n        ^ V n	        RV n        RV n        RV n        RV n        R# VR9  dX   VPB                  '       gD   VPD                  '       d0   RV n        V ;P                  ^,          un        Wn        RV n        R# R# R# R# )r�   TNg      à?r˜   F>   Ú-Ú<Ú=Ú>Ú_Ú|Ú~)#r(   r  r	  r6   r   r*   r  r  r)   r  r-   r  r0   r  r  r9   r  rþ   r1   r8   r7   rý   r
  r+   r:   r=   rú   rŠ   rS   rü   rû   rÿ   r  r,   r;   )rW   r&   rl   Úbuffer_lengthÚprobable_camel_caseds   &&&  rK   rr   ÚSuperWeirdWordPlugin.feed_info"  sÇ  € à�:�:‰:Ø×.×.Ð.Ø59�Ô2Ø.2×.>Ñ.>ˆDÔ+Ø×"Ñ" aÔ'Ø+/¯:©:�Ô(Ø×Ò 1Õ$ÕØ%.Ô"à�z�zˆzØ×(Ò(¨AÕ-Õ(Ø—=—=�=Ø-1�Ô*à15×1AÑ1AˆDÔ.à××ÐØ×)Ò)¨QÕ.Õ)Ø�}�}ˆ}Ø×(Ò(¨AÕ-Õ(ñ ð ×-×-Ð-°t·z·z°zÀT×EU×EUÐEUØ+/�Ô(ÙØ×"×"Ð"ÙØ×,×,Ð,Ø××Ð D×$F×$FÐ$Fà(,ˆDÔ%Ø,0ˆDÔ)Ø�:�:ˆ:˜ŸŸ˜ t§x§x¡xØ×Ò Õ!ÕØ!%×!4Ñ!4ˆMà×!Ò! ]Õ2Õ!à Õ!Ø×,Ñ,¨}Õ<ÀÔCØ04�DÕ-à×6×6Ð6Ø×.Ñ.×6Ñ6×8Ò8Ø×0Ñ0°MÔAà×,Ò,°Õ1Õ,Ø04�DÕ-Ø×-Ñ-°Ô2Ø04�DÔ-Ø×,Ò,°Õ1Ö,à×.×.Ð.Ø×0×0Ð0Ø×0Ñ0°MÀAÕ4EÔEð
 ×,Ò,°Õ1Õ,Ø04�DÔ-Ø Ô" t×'?×'?Ð'?à×,Ñ,¨qÑ0÷ Hð HØ×0Ñ0°=Õ@ÀCÑGð %÷
 ,Ø×,Ò,°Õ1Õ,Ø04�DÔ-à×(×(Ð(Ø×$Ò$¨Õ)Õ$Ø×)Ò)¨]Õ:Õ)Ø,1�Ô)Ø×,×,Ð,Ø×(Ò(¨AÕ-Õ(Ø05�Ô-à',ˆDÔ$Ø"#ˆDÔØ%)ˆDÔ"Ø16ˆDÔ.Ø()ˆDÔ%Ø'(ˆDÔ$Ø'(ˆDÔ$Ø',ˆDÔ$Ø).ˆDÔ&Ø.3ˆDÔ+Ø16ˆDÖ.àÐ@Ô@Ø—J—J�JØ——�à(,ˆDÔ%Ø×Ò 1Õ$ÕØ%.Ô"Ø16ˆDÖ.ñ ñ ñ ArN   c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   r÷   †  s   € ÷ %ñ %�tñ %rN   c                	ó  € ^ V n         RV n        RV n        RV n        RV n        ^ V n        ^ V n        ^ V n        ^ V n        ^ V n	        ^ V n
        ^ V n        ^ V n        RV n        RV n        RV n        RV n        RV n        ^ V n        R# rÌ   )r   r  r  rý   rþ   rû   rú   rŠ   rÿ   rü   r  r  r  r  r  r  r	  r
  r  rw   s   &rK   rx   ÚSuperWeirdWordPlugin.reset†  sš   € ØˆÔØ!%ˆÔØ-2ˆÔ*Ø$)ˆÔ!Ø#(ˆÔ Ø ˆÔØˆÔØ !ˆÔØ$%ˆÔ!Ø#$ˆÔ Ø$%ˆÔ!Ø#$ˆÔ Ø#$ˆÔ Ø#(ˆÔ Ø%*ˆÔ"Ø*/ˆÔ'Ø-2ˆÔ*Ø(-ˆÔ%Ø#$ˆÖ rN   c               ó   € V ^8„  d   QhRR/# r{   rI   )rJ   s   "rK   rL   r÷   œ  s   € ÷ Añ A�uñ ArN   c                	ó¬   € V P                   '       d   R # V P                  ^
8:  d   V P                  ^ 8X  d   R# V P                  V P                  ,          # )rÄ   r—   )r  rú   rü   rÿ   rŠ   rw   s   &rK   r~   ÚSuperWeirdWordPlugin.ratio›  sF   € à×#×#Ð#Ùà×Ñ˜rÔ! d×&>Ñ&>À!Ô&CÙà×(Ñ(¨4×+@Ñ+@Õ@Ð@rN   )rÿ   rû   r  r  r  r	  r  r  r  r  r   r  rŠ   rü   rþ   r  rý   r
  rú   Nrù   r›   rI   rN   rK   rõ   rõ   ó  s0   † ð€Iõ,*õ0b7õH%ð* ôAó ôArN   rõ   c                  óX   € ] tR tRtRtRtR R ltR R ltR R lt]	R	 R
 l4       t
RtR# )ÚCjkUncommonPlugini¦  z4
Detect messy CJK text that probably means nothing.
c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   ÚCjkUncommonPlugin.__annotate__­  s   € ÷ &ñ &˜$ñ &rN   c                	ó"   € ^ V n         ^ V n        R# r†   ©rŠ   Ú_uncommon_countrw   s   &rK   rY   ÚCjkUncommonPlugin.__init__­  s   € Ø%&ˆÔØ$%ˆÖrN   c               ó$   € V ^8„  d   QhRRRRRR/# rk   rI   )rJ   s   "rK   rL   r"  ±  s!   € ÷ &ñ & 3ð &¨hð &¸4ñ &rN   c                ó’   € V ;P                   ^,          un         VP                  '       g   V ;P                  ^,          un        R# R# r�   )rŠ   r@   r%  rq   s   &&&rK   rr   ÚCjkUncommonPlugin.feed_info±  s2   € à×Ò Õ"Õà��ˆØ× Ò  AÕ%× ñ rN   c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   r"  ¸  r¿   rN   c                	ó"   € ^ V n         ^ V n        R# r†   r$  rw   s   &rK   rx   ÚCjkUncommonPlugin.reset¸  s   € Ø !ˆÔØ ˆÖrN   c               ó   € V ^8„  d   QhRR/# r{   rI   )rJ   s   "rK   rL   r"  ½  s   € ÷ 
-ñ 
-�uñ 
-rN   c                	óÌ   € V P                   ^8  d   R# ^V P                  ,          V P                   ,
          ^\        V P                   ^4      ,          ,          p\        RV4      # )é   r—   )rŠ   r%  Úmax)rW   Úuncommon_form_usages   & rK   r~   ÚCjkUncommonPlugin.ratio¼  s[   € à× Ñ  1Ô$Ùð �×$Ñ$Õ$ t×'<Ñ'<Õ<Ø”�T×*Ñ*¨BÓ/Õ/õ&1Ðô �3Ð+Ó,Ð,rN   r$  N©r[   r\   r]   r^   r_   r`   rY   rr   rx   r€   r~   rb   rI   rN   rK   r   r   ¦  s1   † ñð 8€Iõ&õ&õ!ð ô
-ó ô
-rN   r   c                  óX   € ] tR tRtRtRtR R ltR R ltR R lt]	R	 R
 l4       t
RtR# )ÚSuspiciousKatakanaPluginiÊ  zDDetect implausible halfwidth Katakana and uncommon CJK combinations.c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   Ú%SuspiciousKatakanaPlugin.__annotate__Ô  s   € ÷ *ñ *˜$ñ *rN   c                	ó>   € ^ V n         ^ V n        ^ V n        ^ V n        R# r†   ©Ú_katakana_countÚ_halfwidth_katakana_countÚ
_cjk_countÚ_uncommon_cjk_countrw   s   &rK   rY   Ú!SuspiciousKatakanaPlugin.__init__Ô  s!   € Ø$%ˆÔØ./ˆÔ&Ø ˆŒØ()ˆÖ rN   c               ó$   € V ^8„  d   QhRRRRRR/# rk   rI   )rJ   s   "rK   rL   r7  Ú  s!   € ÷ 
*ñ 
* 3ð 
*¨hð 
*¸4ñ 
*rN   c                óB  € VP                   '       dG   V ;P                  ^,          un        VP                  '       d   V ;P                  ^,          un        R# V ;P                  ^,          un        VP
                  '       g   V ;P                  ^,          un        R# R# r�   )r3   r:  r4   r;  r<  r@   r=  rq   s   &&&rK   rr   Ú"SuspiciousKatakanaPlugin.feed_infoÚ  sl   € à××ÐØ× Ò  AÕ%Õ Ø×)×)Ð)Ø×.Ò.°!Õ3Õ.Ùà�Š˜1Õ�Ø��ˆØ×$Ò$¨Õ)×$ñ rN   c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   r7  æ  s   € ÷ %ñ %�tñ %rN   c                	ó>   € ^ V n         ^ V n        ^ V n        ^ V n        R# r†   r9  rw   s   &rK   rx   ÚSuspiciousKatakanaPlugin.resetæ  s!   € Ø ˆÔØ)*ˆÔ&ØˆŒØ#$ˆÖ rN   c               ó   € V ^8„  d   QhRR/# r{   rI   )rJ   s   "rK   rL   r7  í  s   € ÷ ñ �uñ rN   c                	ó°   € V P                   ^8¼  dE   V P                   V P                  8X  d*   ^V P                  u;8:  d   V P                  8X  d    R#  R# R# )r/  rÄ   r—   )r;  r:  r<  r=  rw   s   &rK   r~   ÚSuspiciousKatakanaPlugin.ratioì  sK   € ð ×*Ñ*¨aÔ/Ø×.Ñ.°$×2FÑ2FÔFØ�T—_‘_Ö@¨×(@Ñ(@Õ@áð Aó rN   )r<  r;  r:  r=  Nr9  r3  rI   rN   rK   r5  r5  Ê  s/   † ÙNð€Iõ*õ
*õ%ð ôó ôrN   r5  c                  óT   € ] tR tRtRtR R ltR R ltR R lt]R R	 l4       t	R
t
R# )ÚArchaicUpperLowerPluginiø  c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   Ú$ArchaicUpperLowerPlugin.__annotate__  s   € ÷ .ñ .˜$ñ .rN   c                	óv   € R V n         ^ V n        ^ V n        ^ V n        ^ V n        R V n        R V n        RV n        R# )FTN©Ú_bufÚ_character_count_since_last_sepÚ_successive_upper_lower_countÚ#_successive_upper_lower_count_finalrŠ   Ú_last_alpha_seen_upperÚ_last_alpha_seen_lowerÚ_current_ascii_onlyrw   s   &rK   rY   Ú ArchaicUpperLowerPlugin.__init__  sA   € ØˆŒ	à45ˆÔ,à23ˆÔ*Ø89ˆÔ0à%&ˆÔà,1ˆÔ#Ø,1ˆÔ#Ø)-ˆÖ rN   c               ó$   € V ^8„  d   QhRRRRRR/# rk   rI   )rJ   s   "rK   rL   rK    s!   € ÷ )1ñ )1 3ð )1¨hð )1¸4ñ )1rN   c                óØ  € VP                   ;'       d    VP                  pV'       * pV'       d¡   V P                  ^ 8”  d�   V P                  ^@8:  dH   VP                  '       g6   V P                  '       g$   V ;P
                  V P                  ,          un        ^ V n        ^ V n        RV n        V ;P                  ^,          un        RV n        R# V P                  '       d   VP                  '       g   RV n        V P                  ^ 8”  d‹   VP                  '       d   V P                  '       g%   VP                  '       dN   V P                  '       d<   V P                  '       d"   V ;P                  ^,          un        RV n        MRV n        MRV n        V ;P                  ^,          un        V ;P                  ^,          un        VP                  V n        VP                  V n        R# )r�   FTN)r(   r.   rO  r,   rT  rQ  rP  rN  rŠ   r-   r)   rS  r*   rR  )rW   r&   rl   Úis_concernedÚ	chunk_seps   &&&  rK   rr   Ú!ArchaicUpperLowerPlugin.feed_info  s^  € à!ŸZ™Z×>Ð>¨D×,>Ñ,>ˆØ*Ô*ˆ	ç˜×=Ñ=ÀÔAà×4Ñ4¸Ô:ØŸ
Ÿ
˜
Ø×0×0Ð0à×8Ò8Ø×6Ñ6õÕ8ð 23ˆDÔ.Ø34ˆDÔ0ØˆDŒIØ×!Ò! QÕ&Õ!Ø'+ˆDÔ$áà×#×#Ð#¨D¯M¯M¨MØ',ˆDÔ$à×/Ñ/°!Ô3Ø—
—
�
˜t×:×:Ð:Ø—
—
�
˜t×:×:Ð:à—9—9�9Ø×6Ò6¸!Õ;Õ6Ø %�D•Ià $�D•Ià!�”	à×Ò Õ"ÕØ×,Ò,°Õ1Õ,Ø&*§j¡jˆÔ#Ø&*§j¡jˆÖ#rN   c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   rK  =  s   € ÷ (ñ (�tñ (rN   c                	óv   € ^ V n         ^ V n        ^ V n        ^ V n        RV n        RV n        RV n        RV n        R# )r   FTN)rŠ   rO  rP  rQ  rR  rS  rN  rT  rw   s   &rK   rx   ÚArchaicUpperLowerPlugin.reset=  sA   € Ø !ˆÔØ/0ˆÔ,Ø-.ˆÔ*Ø34ˆÔ0Ø&+ˆÔ#Ø&+ˆÔ#ØˆŒ	Ø#'ˆÖ rN   c               ó   € V ^8„  d   QhRR/# r{   rI   )rJ   s   "rK   rL   rK  H  s   € ÷ Pñ P�uñ PrN   c                	ób   € V P                   ^ 8X  d   R# V P                  V P                   ,          # rÚ   )rŠ   rQ  rw   s   &rK   r~   ÚArchaicUpperLowerPlugin.ratioG  s*   € à× Ñ  AÔ%Ùà×7Ñ7¸$×:OÑ:OÕOÐOrN   )rN  rŠ   rO  rT  rS  rR  rP  rQ  NrM  r›   rI   rN   rK   rI  rI  ø  s/   † ð	€Iõ.õ)1õV(ð ôPó ôPrN   rI  c                  óT   € ] tR tRtR
tR R ltR R ltR R lt]R R	 l4       t	R
t
R# )ÚArabicIsolatedFormPluginiO  c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   Ú%ArabicIsolatedFormPlugin.__annotate__R  s   € ÷ +ñ +˜$ñ +rN   c                	ó"   € ^ V n         ^ V n        R# r†   ©rŠ   Ú_isolated_form_countrw   s   &rK   rY   Ú!ArabicIsolatedFormPlugin.__init__R  s   € Ø%&ˆÔØ)*ˆÖ!rN   c               ó   € V ^8„  d   QhRR/# ru   rI   )rJ   s   "rK   rL   rd  V  s   € ÷ &ñ &�tñ &rN   c                	ó"   € ^ V n         ^ V n        R# r†   rf  rw   s   &rK   rx   ÚArabicIsolatedFormPlugin.resetV  s   € Ø !ˆÔØ$%ˆÖ!rN   c               ó$   € V ^8„  d   QhRRRRRR/# rk   rI   )rJ   s   "rK   rL   rd  Z  s!   € ÷ +ñ + 3ð +¨hð +¸4ñ +rN   c                ó¨   € V ;P                   ^,          un         VP                  \        ,          '       d   V ;P                  ^,          un        R# R# r�   )rŠ   r/   r   rg  rq   s   &&&rK   rr   Ú"ArabicIsolatedFormPlugin.feed_infoZ  s9   € à×Ò Õ"Õà�:‰:Ô-×-Ô-Ø×%Ò%¨Õ*×%ñ .rN   c               ó   € V ^8„  d   QhRR/# r{   rI   )rJ   s   "rK   rL   rd  b  s   € ÷ #ñ #�uñ #rN   c                	óf   € V P                   ^8  d   R# V P                  V P                   ,          pV# )r¬   r—   rf  )rW   Úisolated_form_usages   & rK   r~   ÚArabicIsolatedFormPlugin.ratioa  s0   € à× Ñ  1Ô$Ùà%)×%>Ñ%>À×AVÑAVÕ%VÐà"Ð"rN   rf  N)r[   r\   r]   r^   r`   rY   rx   rr   r€   r~   rb   rI   rN   rK   rb  rb  O  s*   † Ø<€Iõ+õ&õ+ð ô#ó ô#rN   rb  c               ó$   € V ^8„  d   QhRRRRRR/# )rF   ré   rD   rê   rG   rC   rI   )rJ   s   "rK   rL   rL   l  s$   € ÷  ñ  Øð Ø2<ð à	ñ rN   c                óú   € V e   Vf   R# \         V ,          p\         V,          pW#8X  d   R# V\        9   g   V\        9   d   R# \        W#4      \        9   d   R# V R8X  d
   V\        9  # VR8X  d
   V\        9  # R# )zW
Determine if two Unicode ranges seen next to each other can be considered suspicious.
TFzBasic Latin)r   r   r	   r   r   )ré   rê   Ú	familly_aÚ	familly_bs   &&  rK   rè   rè   k  s„   € ð Ò /Ò"9Ùä$ _Õ5€IÜ$ _Õ5€IàÔÙð 	Ô8Ô8ØÔ;Ô;áä˜iÓ3Ô7QÔQÙð ˜-Ô'ØÔ FÑFÐFà˜-Ô'ØÔ FÑFÐFárN   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rF   Údecoded_sequencerB   Úmaximum_thresholdr|   ÚdebugrC   rG   rI   )rJ   s   "rK   rL   rL   �  s2   € ÷ Z%ñ Z%ØðZ%Ø.3ðZ%ØBFðZ%à
ñZ%rN   c           
     ó@	  € \        V 4      pVR8  d   ^ pMVR8  d   ^@pM^€pV P                  4       p\        p\        p\	        4       p\        4       p	\        4       p
\        4       p\        4       p\        4       p\        4       p\        4       p\        4       p\        4       pVP                  pV	P                  pV
P                  pVP                  pVP                  pVP                  pVP                  pVP                  pVP                  pVP                  p\        ^ W44       EFå  pV VVV,             EF"  p\!        V4      pV^€8  d   VV,          pMV! V4      pV! VV4       V! VV4       V'       d   VP"                  '       d
   V! VV4       K_  V! VV4       VP"                  '       d   V! VV4       V! VV4       VP$                  '       g   K   V! VV4       VP&                  '       d
   V! VV4       VP(                  '       d   V! VV4       V! VV4       MVP*                  '       d
   V! VV4       VP,                  '       g   EK  V! VV4       EK%  	  VP.                  V	P.                  ,           V
P.                  ,           VP.                  ,           VP.                  ,           VP.                  ,           VP.                  ,           VP.                  ,           VP.                  ,           VP.                  ,           p V V8¼  g   EKæ   MÓ	  V^
,          p!V! RV!4       V'       g
   V! RV!4       V! RV!4       VP.                  V	P.                  ,           V
P.                  ,           VP.                  ,           VP.                  ,           VP.                  ,           VP.                  ,           VP.                  ,           VP.                  ,           VP.                  ,           p V'       d¬   \1        R4      p"V"P3                  \4        RV RV  RV 24       V^8”  d=   V"P3                  \4        RV R	,           24       V"P3                  \4        R
V RR  24       W‰W«WÍWïVV3
 F2  p#V"P3                  \4        V#P6                   RV#P.                   24       K4  	  \9        V ^4      # )zo
Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier.
iÿ  i   Ú
Úcharset_normalizerzIMess-detector extended-analysis start. intermediary_mean_mess_ratio_calc=z mean_mess_ratio=z maximum_threshold=zStarting with: :Né   NzEnding with: Nz: iðÿÿÿ)ÚlenÚisasciirg   rf   r‚   r�   r°   rÈ   rÝ   rõ   r   r5  rI  rb  rr   r<   rP   r'   r(   r1   r2   r3   r5   r~   r   Úlogr   Ú	__class__Úround)$rx  ry  rz  Úseq_lenÚstepÚis_pure_asciiÚ
ascii_infoÚ	char_infoÚd_spÚd_taÚd_upÚd_sdaÚd_srÚd_swÚd_cuÚd_skÚd_auÚd_aiÚ	d_sp_feedÚ	d_ta_feedÚ	d_up_feedÚ
d_sda_feedÚ	d_sr_feedÚ	d_sw_feedÚ	d_cu_feedÚ	d_sk_feedÚ	d_au_feedÚ	d_ai_feedÚblock_startr&   Ú	codepointrl   Úmean_mess_ratioÚnl_infoÚloggerÚdts$   &&&                                 rK   Ú
mess_ratior£  �  s&  € ô Ð'Ó(€Gà�„}Ø‰Ø	�4ŒØ‰àˆð
 +×2Ñ2Ó4€Mô
 "€JÜ€Iô .NÓ-O€DÜ%=Ó%?€DÜ/Ó1€DÜ-LÓ-N€EÜ+Ó-€DÜ!5Ó!7€DÜ/Ó1€DÜ%=Ó%?€DÜ$;Ó$=€DÜ%=Ó%?€Dð —‘€IØ—‘€IØ—‘€IØ—‘€JØ—‘€IØ—‘€IØ—‘€IØ—‘€IØ—‘€IØ—‘€Iä˜Q ×.ˆØ)¨+¸ÀdÕ8JÔKˆIô ! ›^ˆIØ˜3ŒØ! )Õ,‘á  Ó+�ñ �i Ô&Ù�i Ô&çà—>—>�>Ù˜i¨Ô.Ùá�i Ô&ð �~�~ˆ~Ù˜) TÔ*Ù˜) TÔ*ð �z�zŠzÙ˜) TÔ*à—:—:�:Ù˜y¨$Ô/à—;—;�;Ù˜i¨Ô.Ù˜i¨Õ.Ø×%×%Ð%Ù˜i¨Ô.à—>—>“>Ù˜i¨×.ñS LðX �J‰JØ�j‰jõà�j‰jõð �k‰kõð �j‰jõ	ð
 �j‰jõð �j‰jõð �j‰jõð �j‰jõð �j‰jõ	ð 	ð Ð/×/Ùñu /ðz ˜R•.ˆÙ�$˜Ô ßÙ�d˜GÔ$Ù�$˜Ô ð �J‰JØ�j‰jõà�j‰jõð �k‰kõð �j‰jõ	ð
 �j‰jõð �j‰jõð �j‰jõð �j‰jõð �j‰jõ	ð 	÷ ÜÐ/Ó0ˆà�
‰
Üð1Ø15°Ð6GÈÐGXð Y!Ø!2Ð 3ð5ô	
ð �RŒ<Ø�J‰J”u Ð0@ÀÕ0EÐ/FÐGÔHØ�J‰J”u Ð.>¸s¸uÐ.EÐ-FÐGÔHà˜t¨D¸ÀDÈ$ÓOˆBØ�J‰J”u §¡ ¨b°·±°
Ð;Ö<ñ Pô � !Ó$Ð$rN   )gš™™™™™É?F)9Ú__conditional_annotations__Ú
__future__r   Ú	functoolsr   Úloggingr   Úconstantr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úutilsr   r   r   r   r   r    r!   r#   ra   r%   rf   r<   Úchrrg   ri   r‚   r�   r°   rÈ   rÝ   rõ   r   r5  rI  rb  rè   r£  )Ú
_codepointr¤  s   0@rK   Ú<module>r¬     s„  øðß "Ð "å Ý ÷÷ ÷ ÷ ÷ õ ÷.÷ ñ ð ˜'•> IÕ-°	Õ9¸EÕA€ˆSÓ A÷G+ñ G+ñX �4Ôôó ðñ 16°c´
ó$Ù0: *�H‰S�‹_Ö±
ñ$Ð �.ó ÷
"ñ "ô<)LÐ'9ô )LôXOÐ1ô Oô6"EÐ*ô "EôJ)DÐ&8ô )DôX6/Ð(ô 6/ôrpAÐ-ô pAôf!-Ð*ô !-ôH+Ð1ô +ô\TPÐ0ô TPôn#Ð1ô #ñ8 �4Ôô ó ð ÷FZ%ñ Z%ùòa$s   Â E