Ë
    ðmxiŠ/  ã                  ó¸  — d dl mZ d dlZd dl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 d dlmZ d dlmZ d	d
lmZmZmZmZmZmZmZ  e
e¬«      d+d„«       Z e
e¬«      d,d„«       Z e
e¬«      d-d„«       Z e
e¬«      d+d„«       Z e
e¬«      d+d„«       Z e
e¬«      d+d„«       Z e
e¬«      d+d„«       Z e
e¬«      d+d„«       Z  e
e¬«      d+d„«       Z! e
e¬«      d+d„«       Z" e
e¬«      d+d„«       Z# e
e¬«      d+d„«       Z$ e
e¬«      d+d„«       Z% e
e¬«      d+d„«       Z& e
e¬«      d+d„«       Z' e
e¬«      d+d„«       Z( e
e¬«      d+d„«       Z) e
 e*e«      ¬«      d.d„«       Z+ e
e¬«      d+d„«       Z,d/d0d„Z- e
d ¬«      d1d!„«       Z.d2d"„Z/d3d#„Z0d4d5d$„Z1d6d%„Z2d7d&„Z3d'ejh                  d(f	 	 	 	 	 	 	 d8d)„Z5	 d9	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d:d*„Z6y);é    )ÚannotationsN)ÚIncrementalDecoder)Úaliases)Ú	lru_cache)Úfindall)Ú	Generator)ÚMultibyteIncrementalDecoderé   )ÚENCODING_MARKSÚIANA_SUPPORTED_SIMILARÚRE_POSSIBLE_ENCODING_INDICATIONÚUNICODE_RANGES_COMBINEDÚUNICODE_SECONDARY_RANGE_KEYWORDÚUTF8_MAXIMAL_ALLOCATIONÚCOMMON_CJK_CHARACTERS)Úmaxsizec                ó¨   — 	 t        j                  | «      }d|v xs( d|v xs" d|v xs d|v xs d|v xs d|v xs
 d|v xs d	|v S # t        $ r Y yw xY w)
NFz
WITH GRAVEz
WITH ACUTEzWITH CEDILLAzWITH DIAERESISzWITH CIRCUMFLEXz
WITH TILDEzWITH MACRONzWITH RING ABOVE©ÚunicodedataÚnameÚ
ValueError©Ú	characterÚdescriptions     úO/home/htdocs/ttos/venv/lib/python3.12/site-packages/charset_normalizer/utils.pyÚis_accentuatedr      sŸ   € ðÜ&×+Ñ+¨IÓ6ˆð 	˜Ð#ò 	,Ø˜;Ð&ò	,à˜[Ð(ò	,ð ˜{Ð*ò	,ð  Ð+ò		,ð
 ˜;Ð&ò	,ð ˜KÐ'ò	,ð  Ð+ð	øô ò Ùðús   ‚A Á	AÁAc                ó†   — t        j                  | «      }|s| S |j                  d«      }t        t	        |d   d«      «      S )Nú r   é   )r   ÚdecompositionÚsplitÚchrÚint)r   Ú
decomposedÚcodess      r   Úremove_accentr&   -   sA   € ä!×/Ñ/°	Ó:€JÙØÐà!×'Ñ'¨Ó,€EäŒs�5˜‘8˜RÓ Ó!Ð!ó    c                ób   — t        | «      }t        j                  «       D ]  \  }}||v sŒ|c S  y)zK
    Retrieve the Unicode range official name from a single character.
    N)Úordr   Úitems)r   Úcharacter_ordÚ
range_nameÚ	ord_ranges       r   Úunicode_ranger.   8   s=   € ô
 ˜Y›€Mä!8×!>Ñ!>Ó!@ò Ñˆ
�IØ˜IÒ%ØÒðð r'   c                óT   — 	 t        j                  | «      }d|v S # t        $ r Y yw xY w)NFÚLATINr   r   s     r   Úis_latinr1   F   s8   € ðÜ&×+Ñ+¨IÓ6ˆð �kÐ!Ð!øô ò Ùðúó   ‚ ›	'¦'c                óZ   — t        j                  | «      }d|v ryt        | «      }|€yd|v S )NÚPTFÚPunctuation©r   Úcategoryr.   ©r   Úcharacter_categoryÚcharacter_ranges      r   Úis_punctuationr;   O   s=   € ä)×2Ñ2°9Ó=Ðà
Ð Ñ Øä"/°	Ó":€OàÐØà˜OÐ+Ð+r'   c                óp   — t        j                  | «      }d|v sd|v ryt        | «      }|€yd|v xr |dk7  S )NÚSÚNTFÚFormsÚLor6   r8   s      r   Ú	is_symbolrA   ^   sP   € ä)×2Ñ2°9Ó=Ðà
Ð Ñ  CÐ+=Ñ$=Øä"/°	Ó":€OàÐØà�oÐ%ÒDÐ*<ÀÑ*DÐDr'   c                ó2   — t        | «      }|€yd|v xs d|v S )NFÚ	EmoticonsÚPictographs)r.   )r   r:   s     r   Úis_emoticonrE   m   s*   € ä"/°	Ó":€OàÐØà˜/Ð)ÒM¨]¸oÐ-MÐMr'   c                ój   — | j                  «       s| dv ryt        j                  | «      }d|v xs |dv S )N>   õ   ï½œú+ú<ú>TÚZ>   ÚPcÚPdÚPo)Úisspacer   r7   )r   r9   s     r   Úis_separatorrP   w   sB   € à×ÑÔ˜iÐ+AÑAØä)×2Ñ2°9Ó=ÐàÐ$Ð$ÒPÐ(:Ð>PÐ(PÐPr'   c                óD   — | j                  «       | j                  «       k7  S ©N)ÚislowerÚisupper©r   s    r   Úis_case_variablerV   �   s   € à×ÑÓ )×"3Ñ"3Ó"5Ñ5Ð5r'   c                óT   — 	 t        j                  | «      }d|v S # t        $ r Y yw xY w)NFÚCJKr   ©r   Úcharacter_names     r   Úis_cjkr[   †   s8   € ðÜ$×)Ñ)¨)Ó4ˆð �NÐ"Ð"øô ò Ùðúr2   c                óT   — 	 t        j                  | «      }d|v S # t        $ r Y yw xY w)NFÚHIRAGANAr   rY   s     r   Úis_hiraganar^   �   ó8   € ðÜ$×)Ñ)¨)Ó4ˆð ˜Ð'Ð'øô ò Ùðúr2   c                óT   — 	 t        j                  | «      }d|v S # t        $ r Y yw xY w)NFÚKATAKANAr   rY   s     r   Úis_katakanarb   š   r_   r2   c                óT   — 	 t        j                  | «      }d|v S # t        $ r Y yw xY w)NFÚHANGULr   rY   s     r   Ú	is_hangulre   ¤   ó8   € ðÜ$×)Ñ)¨)Ó4ˆð �~Ð%Ð%øô ò Ùðúr2   c                óT   — 	 t        j                  | «      }d|v S # t        $ r Y yw xY w)NFÚTHAIr   rY   s     r   Úis_thairi   ®   s8   € ðÜ$×)Ñ)¨)Ó4ˆð �^Ð#Ð#øô ò Ùðúr2   c                óT   — 	 t        j                  | «      }d|v S # t        $ r Y yw xY w)NFÚARABICr   rY   s     r   Ú	is_arabicrl   ¸   rf   r2   c                ó`   — 	 t        j                  | «      }d|v xr d|v S # t        $ r Y yw xY w)NFrk   zISOLATED FORMr   rY   s     r   Úis_arabic_isolated_formrn   Â   sB   € ðÜ$×)Ñ)¨)Ó4ˆð �~Ð%ÒK¨/¸^Ð*KÐKøô ò Ùðús   ‚! ¡	-¬-c                ó   — | t         vS rR   )r   rU   s    r   Úis_cjk_uncommonrp   Ì   s   € àÔ1Ð1Ð1r'   c                ó4   ‡ — t        ˆ fd„t        D «       «      S )Nc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wrR   © )Ú.0Úkeywordr,   s     €r   ú	<genexpr>z-is_unicode_range_secondary.<locals>.<genexpr>Ó   s   øè ø€ ÒT¨ˆw˜*Ô$ÑTùs   ƒ)Úanyr   )r,   s   `r   Úis_unicode_range_secondaryrx   Ñ   s   ø€ äÓTÔ4SÔTÓTÐTr'   c                ój   — | j                  «       du xr  | j                  «       du xr | dk7  xr | dk7  S )NFúu   ï»¿)rO   ÚisprintablerU   s    r   Úis_unprintabler|   Ö   sL   € ð 	×ÑÓ˜uÐ$ò 	"Ø×!Ñ!Ó# uÐ,ò	"à˜Ñò	"ð ˜Ñ!ð	r'   c           	     ór  — t        | t        «      st        ‚t        | «      }t	        t
        | dt        ||«       j                  dd¬«      «      }t        |«      dk(  ry|D ]T  }|j                  «       j                  dd«      }t        j                  «       D ]  \  }}||k(  r|c c S ||k(  sŒ|c c S  ŒV y)zW
    Extract using ASCII-only decoder any specified encoding in the first n-bytes.
    NÚasciiÚignore©Úerrorsr   ú-Ú_)Ú
isinstanceÚbytesÚ	TypeErrorÚlenr   r   ÚminÚdecodeÚlowerÚreplacer   r*   )ÚsequenceÚsearch_zoneÚseq_lenÚresultsÚspecified_encodingÚencoding_aliasÚencoding_ianas          r   Úany_specified_encodingr“   á   sÇ   € ô �h¤Ô&Üˆä�x“=€Gä Ü'ØÐ,”3�w Ó,Ð-×4Ñ4°WÀXÐ4ÓNó€Gô
 ˆ7ƒ|�qÒØà%ò 
%ÐØ/×5Ñ5Ó7×?Ñ?ÀÀSÓIÐô
 .5¯]©]«_ò 	%Ñ)ˆN˜MØÐ!3Ò3Ø$Ô$ØÐ 2Ó2Ø$Ô$ñ		%ð
%ð r'   é€   c                ón   — | dv xs0 t        t        j                  d| › �«      j                  t        «      S )zQ
    Verify is a specific encoding is a multi byte one based on it IANA name
    >	   Úutf_7Úutf_8Úutf_16Úutf_32Ú	utf_16_beÚ	utf_16_leÚ	utf_32_beÚ	utf_32_leÚ	utf_8_sigú
encodings.)Ú
issubclassÚ	importlibÚimport_moduler   r	   )r   s    r   Úis_multi_byte_encodingr£     sC   € ð
 ð 
ð 
ò ô 
Ü×Ñ *¨T¨FÐ 3Ó4×GÑGÜ#ó
ðr'   c                ó’   — t         D ]>  }t         |   }t        |t        «      r|g}|D ]  }| j                  |«      sŒ||fc c S  Œ@ y)z9
    Identify and extract SIG/BOM in given sequence.
    )Nr'   )r   r„   r…   Ú
startswith)rŒ   Úiana_encodingÚmarksÚmarks       r   Úidentify_sig_or_bomr©     s[   € ô
 (ò +ˆÜ%3°MÑ%Bˆä�eœUÔ#Ø�GˆEàò 	+ˆDØ×"Ñ" 4Õ(Ø$ dÐ*Ô*ñ	+ð+ð r'   c                ó
   — | dvS )N>   r˜   r™   rs   )r¦   s    r   Úshould_strip_sig_or_bomr«   (  s   € ØÐ 4Ð4Ð4r'   c                ó´   — | j                  «       j                  dd«      } t        j                  «       D ]  \  }}| ||fv sŒ|c S  |rt	        d| › d�«      ‚| S )zIReturns the Python normalized encoding name (Not the IANA official name).r‚   rƒ   zUnable to retrieve IANA for 'ú')rŠ   r‹   r   r*   r   )Úcp_nameÚstrictr‘   r’   s       r   Ú	iana_namer°   ,  sh   € à�m‰m‹o×%Ñ% c¨3Ó/€Gô
 *1¯©«ò !Ñ%ˆ˜Ø�~ }Ð5Ò5Ø Ò ð!ñ ÜÐ8¸¸	ÀÐCÓDÐDà€Nr'   c                ót  — t        | «      st        |«      ryt        j                  d| › �«      j                  }t        j                  d|› �«      j                  } |d¬«      } |d¬«      }d}t	        d«      D ]7  }t        |g«      }|j                  |«      |j                  |«      k(  sŒ3|dz  }Œ9 |dz  S )	Ng        rŸ   r   r€   r   éÿ   r
   éþ   )r£   r¡   r¢   r   Úranger…   r‰   )	Úiana_name_aÚiana_name_bÚ	decoder_aÚ	decoder_bÚid_aÚid_bÚcharacter_match_countÚiÚto_be_decodeds	            r   Úcp_similarityr¾   =  s¹   € Ü˜kÔ*Ô.DÀ[Ô.QØä×'Ñ'¨*°[°MÐ(BÓC×VÑV€IÜ×'Ñ'¨*°[°MÐ(BÓC×VÑV€Iá(°Ô9€DÙ(°Ô9€Dà!"Ðä�3‹Zò 'ˆÜ$ a S›zˆØ�;‰;�}Ó%¨¯©°]Ó)CÓCØ! QÑ&Ñ!ð'ð
 ! 3Ñ&Ð&r'   c                ó,   — | t         v xr |t         |    v S )zŽ
    Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using
    the function cp_similarity.
    )r   )rµ   r¶   s     r   Úis_cp_similarrÀ   Q  s%   € ð 	Ô-Ð-ò 	?ØÔ1°+Ñ>Ð>ðr'   Úcharset_normalizerz)%(asctime)s | %(levelname)s | %(message)sc                óâ   — t        j                  | «      }|j                  |«       t        j                  «       }|j	                  t        j
                  |«      «       |j                  |«       y rR   )ÚloggingÚ	getLoggerÚsetLevelÚStreamHandlerÚsetFormatterÚ	FormatterÚ
addHandler)r   ÚlevelÚformat_stringÚloggerÚhandlers        r   Úset_logging_handlerrÎ   \  sU   € ô
 ×Ñ˜tÓ$€FØ
‡O�O�EÔä×#Ñ#Ó%€GØ×Ñœ×*Ñ*¨=Ó9Ô:Ø
×Ñ�gÕr'   c	              #  óš  K  — |r|du r|D ]  }	||	|	|z    }
|
s y |
–— Œ y |D ]¤  }	|	|z   }|t        | «      dz   kD  rŒ| |	|	|z    }|r	|du r||z   }|j                  ||rdnd¬«      }
|r[|	dkD  rVt        |d«      }|rH|
d | |vrAt        |	|	dz
  d	«      D ].  }| || }|r	|du r||z   }|j                  |d¬«      }
|
d | |v sŒ. n |
–— Œ¦ y ­w)
NFé   r   r¯   r€   r   r   é   éÿÿÿÿ)r‡   r‰   rˆ   r´   )Ú	sequencesr’   ÚoffsetsÚ
chunk_sizeÚbom_or_sig_availableÚstrip_sig_or_bomÚsig_payloadÚis_multi_byte_decoderÚdecoded_payloadr¼   ÚchunkÚ	chunk_endÚcut_sequenceÚchunk_partial_size_chkÚjs                  r   Úcut_sequence_chunksrà   i  sK  è ø€ ñ Ð0°EÑ9Øò 	ˆAØ# A¨¨J©Ð7ˆEÙÙØ‹Kñ		ð ò #	ˆAØ˜J™ˆIØœ3˜y›>¨AÑ-Ò-Øà$ Q¨¨Z©Ð8ˆLá#Ð(8¸EÑ(AØ*¨\Ñ9�à ×'Ñ'ØÙ#8‘x¸hð (ó ˆEñ %¨¨QªÜ.1°*¸bÓ.AÐ&ñ $ØÐ5Ð5Ð6¸oÑMä" 1 a¨!¡e¨RÓ0ò 	"˜Ø'0°°9Ð'=˜á/Ð4DÈÑ4MØ+6¸Ñ+E˜Là ,× 3Ñ 3°MÈ(Ð 3Ó S˜à Ð!8Ð"8Ð9¸_ÒLÙ!ð	"ð ‹KñG#	ùs   ‚B>CÃ
C)r   ÚstrÚreturnÚbool)r   rá   râ   rá   )r   rá   râ   ú
str | None)r,   rá   râ   rã   )i    )rŒ   r…   r�   r#   râ   rä   )r   rá   râ   rã   )rŒ   r…   râ   ztuple[str | None, bytes])r¦   rá   râ   rã   )T)r®   rá   r¯   rã   râ   rá   )rµ   rá   r¶   rá   râ   Úfloat)rµ   rá   r¶   rá   râ   rã   )r   rá   rÊ   r#   rË   rá   râ   ÚNonerR   )rÓ   r…   r’   rá   rÔ   r´   rÕ   r#   rÖ   rã   r×   rã   rØ   r…   rÙ   rã   rÚ   rä   râ   zGenerator[str, None, None])7Ú
__future__r   r¡   rÃ   r   Úcodecsr   Úencodings.aliasesr   Ú	functoolsr   Úrer   Útypingr   Ú_multibytecodecr	   Úconstantr   r   r   r   r   r   r   r   r&   r.   r1   r;   rA   rE   rP   rV   r[   r^   rb   re   ri   rl   rn   rp   r‡   rx   r|   r“   r£   r©   r«   r°   r¾   rÀ   ÚINFOrÎ   rà   rs   r'   r   ú<module>rð      s  ðÝ "ã Û Û Ý %Ý %Ý Ý Ý õ÷÷ ñ ñ Ð*Ô+òó ,ðñ" Ð*Ô+ò"ó ,ð"ñ Ð*Ô+ò
ó ,ð
ñ Ð*Ô+ò"ó ,ð"ñ Ð*Ô+ò,ó ,ð,ñ Ð*Ô+òEó ,ðEñ Ð*Ô+òNó ,ðNñ Ð*Ô+òQó ,ðQñ Ð*Ô+ò6ó ,ð6ñ Ð*Ô+ò#ó ,ð#ñ Ð*Ô+ò(ó ,ð(ñ Ð*Ô+ò(ó ,ð(ñ Ð*Ô+ò&ó ,ð&ñ Ð*Ô+ò$ó ,ð$ñ Ð*Ô+ò&ó ,ð&ñ Ð*Ô+òLó ,ðLñ Ð*Ô+ò2ó ,ð2ñ ‘3Ð.Ó/Ô0òUó 1ðUñ Ð*Ô+òó ,ðôñ@ �3Ôòó ðó(ó$5ôó"'ó(ð %Ø—‘ØDð
Ø
ð
àð
ð ð
ð 
ó	
ð, #'ð5Øð5àð5ð ð5ð ð	5ð
 ð5ð ð5ð ð5ð  ð5ð  ð5ð  ô5r'   