§
    Æ‡tjá4  ã                  óæ  — U 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mZmZmZmZmZmZmZm Z m!Z!m"Z" dWd„Z#dXd„Z$ ee¬¦  «        dYd„¦   «         Z% e&d„  ej'        ¦   «         D ¦   «         ¦  «        Z(de)d<   d„ e(D ¦   «         Z*de)d<   dZd„Z+dXd„Z,dXd„Z-dXd„Z.dXd„Z/dXd „Z0 ee¬¦  «        dXd!„¦   «         Z1 ee¬¦  «        dXd"„¦   «         Z2 ee¬¦  «        dXd#„¦   «         Z3 ee¬¦  «        dXd$„¦   «         Z4 ee¬¦  «        dXd%„¦   «         Z5 ee¬¦  «        dXd&„¦   «         Z6 ee¬¦  «        dXd'„¦   «         Z7 ee¬¦  «        dXd(„¦   «         Z8 ee¬¦  «        dXd)„¦   «         Z9d[d+„Z: ee¬¦  «        dXd,„¦   «         Z;	 d\d]d1„Z< ed2¬¦  «        d^d4„¦   «         Z=d_d6„Z>d`d8„Z?dadbd<„Z@dcd@„ZAdddA„ZBdBejC        dCfdedG„ZD	 	 dfdgdV„ZEdS )hé    )ÚannotationsN)Úbisect_right)ÚIncrementalDecoder)Úaliases)Ú	lru_cache)Úfindall)Ú	Generatoré   )ÚENCODING_MARKSÚIANA_SUPPORTED_SIMILARÚRE_POSSIBLE_ENCODING_INDICATIONÚUNICODE_RANGES_COMBINEDÚ_SECONDARY_RANGE_NAMESÚUTF8_MAXIMAL_ALLOCATIONÚCOMMON_CJK_CHARACTERSÚ_LATINÚ_CJKÚ_HANGULÚ	_KATAKANAÚ	_HIRAGANAÚ_THAIÚ_ARABICÚ_ARABIC_ISOLATED_FORMÚ_ACCENT_KEYWORDSÚ_ACCENTUATEDÚ	characterÚstrÚreturnÚintc                ól  — 	 t          j        | ¦  «        }n# t          $ r Y dS w xY wd}d|v r
|t          z  }d|v r
|t          z  }d|v r
|t
          z  }d|v r
|t          z  }d|v r
|t          z  }d|v r
|t          z  }d|v r|t          z  }d	|v r
|t          z  }t          D ]}||v r|t          z  } nŒ|S )
zRCompute all name-based classification flags with a single unicodedata.name() call.r   ÚLATINÚCJKÚHANGULÚKATAKANAÚHIRAGANAÚTHAIÚARABICzISOLATED FORM)ÚunicodedataÚnameÚ
ValueErrorr   r   r   r   r   r   r   r   r   r   )r   ÚdescÚflagsÚkws       úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/charset_normalizer/utils.pyÚ_character_flagsr/   "   s  € ðÝÔ$ YÑ/Ô/ˆˆøÝð ð ð Øˆqˆqðøøøð €Eà�$€€Ø•‰ˆØ�€}€}Ø•‰ˆØ�4ÐÐØ•ÑˆØ�TÐÐØ•ÑˆØ�TÐÐØ•ÑˆØ�€~€~Ø•‰ˆØ�4ÐÐØ•ÑˆØ˜dÐ"Ð"ØÕ*Ñ*ˆEåð ð ˆØ�ˆ:ˆ:Ø•\Ñ!ˆEØˆEð ð €Ls   ‚ —
%¤%Úboolc                óJ   — t          t          | ¦  «        t          z  ¦  «        S ©N)r0   r/   r   ©r   s    r.   Úis_accentuatedr4   D   s   € ÝÕ  Ñ+Ô+­lÑ:Ñ;Ô;Ð;ó    )Úmaxsizec                ó¢   — t          j        | ¦  «        }|s| S |                     d¦  «        }t          t	          |d         d¦  «        ¦  «        S )Nú r   é   )r(   ÚdecompositionÚsplitÚchrr   )r   Ú
decomposedÚcodess      r.   Úremove_accentr?   H   sO   € å!Ô/°	Ñ:Ô:€JØð ØÐà!×'Ò'¨Ñ,Ô,€Eå�s�5˜”8˜RÑ Ô Ñ!Ô!Ð!r5   c              #  ó:   K  — | ]\  }}|j         |j        |fV — Œd S r2   )ÚstartÚstop)Ú.0r)   Ú	ord_ranges      r.   ú	<genexpr>rE   U   sE   è è € ð <ð <áˆˆið „_�i”n dÐ+ð<ð <ð <ð <ð <ð <r5   zlist[tuple[int, int, str]]Ú_UNICODE_RANGES_SORTEDc                ó   — g | ]
}|d          ‘ŒS )r   © )rC   Úes     r.   ú
<listcomp>rJ   Y   s   € Ð#IÐ#IÐ#I¨Q A a¤DÐ#IÐ#IÐ#Ir5   z	list[int]Ú_UNICODE_RANGE_STARTSú
str | Nonec                ó’   — t          | ¦  «        }t          t          |¦  «        dz
  }|dk    rt          |         \  }}}||k     r|S dS )zK
    Retrieve the Unicode range official name from a single character.
    r
   r   N)Úordr   rK   rF   )r   Úcharacter_ordÚidxrA   rB   r)   s         r.   Úunicode_rangerQ   \   sU   € õ ˜Y™œ€Mõ Õ,¨mÑ
<Ô
<¸qÑ
@€CØ
ˆa‚x€xÝ2°3Ô7Ñˆˆt�TØ˜4ÒÐØˆKàˆ4r5   c                óJ   — t          t          | ¦  «        t          z  ¦  «        S r2   )r0   r/   r   r3   s    r.   Úis_latinrS   l   s   € ÝÕ  Ñ+Ô+­fÑ4Ñ5Ô5Ð5r5   c                ód   — t          j        | ¦  «        }d|v rdS t          | ¦  «        }|€dS d|v S )NÚPTFÚPunctuation©r(   ÚcategoryrQ   ©r   Úcharacter_categoryÚcharacter_ranges      r.   Úis_punctuationr\   p   sG   € Ý)Ô2°9Ñ=Ô=Ðà
Ð Ð Ð Øˆtå"/°	Ñ":Ô":€OàÐØˆuà˜OÐ+Ð+r5   c                óx   — t          j        | ¦  «        }d|v sd|v rdS t          | ¦  «        }|€dS d|v o|dk    S )NÚSÚNTFÚFormsÚLorW   rY   s      r.   Ú	is_symbolrb   ~   s]   € Ý)Ô2°9Ñ=Ô=Ðà
Ð Ð Ð  CÐ+=Ð$=Ð$=Øˆtå"/°	Ñ":Ô":€OàÐØˆuà�oÐ%ÐDÐ*<ÀÒ*DÐDr5   c                ó8   — t          | ¦  «        }|€dS d|v pd|v S )NFÚ	EmoticonsÚPictographs)rQ   )r   r[   s     r.   Úis_emoticonrf   Œ   s/   € Ý"/°	Ñ":Ô":€OàÐØˆuà˜/Ð)ÐM¨]¸oÐ-MÐMr5   c                ón   — |                       ¦   «         s| dv rdS t          j        | ¦  «        }d|v p|dv S )N>   õ   ï½œú+ú<ú>TÚZ>   ÚPcÚPdÚPo)Úisspacer(   rX   )r   rZ   s     r.   Úis_separatorrq   •   sO   € Ø×ÒÑÔð ˜iÐ+AÐAÐAØˆtå)Ô2°9Ñ=Ô=ÐàÐ$Ð$ÐPÐ(:Ð>PÐ(PÐPr5   c                óV   — |                       ¦   «         |                      ¦   «         k    S r2   )ÚislowerÚisupperr3   s    r.   Úis_case_variableru   ž   s%   € à×ÒÑÔ )×"3Ò"3Ñ"5Ô"5Ò5Ð5r5   c                óJ   — t          t          | ¦  «        t          z  ¦  «        S r2   )r0   r/   r   r3   s    r.   Úis_cjkrw   £   s   € åÕ  Ñ+Ô+­dÑ2Ñ3Ô3Ð3r5   c                óJ   — t          t          | ¦  «        t          z  ¦  «        S r2   )r0   r/   r   r3   s    r.   Úis_hiraganary   ¨   ó   € åÕ  Ñ+Ô+­iÑ7Ñ8Ô8Ð8r5   c                óJ   — t          t          | ¦  «        t          z  ¦  «        S r2   )r0   r/   r   r3   s    r.   Úis_katakanar|   ­   rz   r5   c                óJ   — t          t          | ¦  «        t          z  ¦  «        S r2   )r0   r/   r   r3   s    r.   Ú	is_hangulr~   ²   ó   € åÕ  Ñ+Ô+­gÑ5Ñ6Ô6Ð6r5   c                óJ   — t          t          | ¦  «        t          z  ¦  «        S r2   )r0   r/   r   r3   s    r.   Úis_thair�   ·   s   € åÕ  Ñ+Ô+­eÑ3Ñ4Ô4Ð4r5   c                óJ   — t          t          | ¦  «        t          z  ¦  «        S r2   )r0   r/   r   r3   s    r.   Ú	is_arabicrƒ   ¼   r   r5   c                óJ   — t          t          | ¦  «        t          z  ¦  «        S r2   )r0   r/   r   r3   s    r.   Úis_arabic_isolated_formr…   Á   s   € åÕ  Ñ+Ô+Õ.CÑCÑDÔDÐDr5   c                ó   — | t           vS r2   )r   r3   s    r.   Úis_cjk_uncommonr‡   Æ   s   € àÕ1Ð1Ð1r5   Ú
range_namec                ó   — | t           v S r2   )r   )rˆ   s    r.   Úis_unicode_range_secondaryrŠ   Ë   s   € ØÕ/Ð/Ð/r5   c                ón   — |                       ¦   «          o |                      ¦   «          o| dk    o| dk    S )Núu   ï»¿)rp   Úisprintabler3   s    r.   Úis_unprintablerŽ   Ï   sN   € ð ×ÒÑÔÐð 	"Ø×%Ò%Ñ'Ô'Ð'ð	"à˜Òð	"ð ˜Ò!ð	r5   é    Úsequenceúbytes | bytearrayÚsearch_zonec                ó  — t          | t          t          f¦  «        st          ‚t	          | ¦  «        }| dt          ||¦  «        …                              dd¬¦  «        }|                     ¦   «         }d|vrd|vrdS t          t          |¦  «        }t	          |¦  «        dk    rdS |D ][}|                     ¦   «          
                    dd	¦  «        }t          j        ¦   «         D ]\  }}||k    r|c c S ||k    r|c c S ŒŒ\dS )
zW
    Extract using ASCII-only decoder any specified encoding in the first n-bytes.
    NÚasciiÚignore©ÚerrorsÚcodingÚcharsetr   ú-Ú_)Ú
isinstanceÚbytesÚ	bytearrayÚ	TypeErrorÚlenÚminÚdecodeÚlowerr   r   Úreplacer   Úitems)	r�   r’   Úseq_lenÚdecoded_zoneÚlowered_zoneÚresultsÚspecified_encodingÚencoding_aliasÚencoding_ianas	            r.   Úany_specified_encodingr­   Ú   sU  € õ �h¥­	Ð 2Ñ3Ô3ð Ýˆå�x‘=”=€Gà Ð!<¥3 w°Ñ#<Ô#<Ð!<Ô=×DÒDØ˜ð Eñ ô €Lð
 %×*Ò*Ñ,Ô,€LØ�|Ð#Ð#¨	¸Ð(EÐ(EØˆtå Ý'Øñô €Gõ
 ˆ7�|„|�qÒÐØˆtà%ð 
%ð 
%ÐØ/×5Ò5Ñ7Ô7×?Ò?ÀÀSÑIÔIÐõ
 .5¬]©_¬_ð 	%ð 	%Ñ)ˆN˜MØÐ!3Ò3Ð3Ø$Ð$Ð$Ð$Ð$Ð$ØÐ 2Ò2Ð2Ø$Ð$Ð$Ð$Ð$Ð$ð 3ð	%ð ˆ4r5   é€   r)   c                ó¬   — | dv rdS dD ]J}	 t          j        |¦  «                             | ¦  «         n# t          t          t
          f$ r Y ŒDw xY w dS d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_sigT)Ú
_codecs_cnÚ
_codecs_hkÚ_codecs_iso2022Ú
_codecs_jpÚ
_codecs_krÚ
_codecs_twF)Ú	importlibÚimport_moduleÚgetcodecÚImportErrorÚAttributeErrorÚLookupError)r)   Úproviders     r.   Úis_multi_byte_encodingrÆ     sˆ   € ð
 ð 
ð 
ð 
ð ˆtðð ð ˆð	ÝÔ# HÑ-Ô-×6Ò6°tÑ<Ô<Ð<Ð<øÝ�^­[Ð9ð 	ð 	ð 	ØˆHð	øøøàˆtˆtàˆ5s   Œ'4´AÁAútuple[str | None, bytes]c                ó¨   — t           D ]I}t           |         }t          |t          ¦  «        r|g}|D ]}|                      |¦  «        r||fc c S Œ ŒJdS )z9
    Identify and extract SIG/BOM in given sequence.
    )Nr5   )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Ð*Ð*Ð*Ð*Ð*Ð*ð+ð	+ð ˆ9r5   rÊ   c                ó
   — | dvS )N>   r²   r³   rH   )rÊ   s    r.   Úshould_strip_sig_or_bomrÏ   A  s   € ØÐ 4Ð4Ð4r5   TÚcp_nameÚstrictc                óÆ   — |                       ¦   «                              dd¦  «        } t          j        ¦   «         D ]\  }}| ||fv r|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*   )rÐ   rÑ   r«   r¬   s       r.   Ú	iana_namerÔ   E  s†   € à�mŠm‰oŒo×%Ò% c¨3Ñ/Ô/€Gõ
 *1¬©¬ð !ð !Ñ%ˆ˜Ø�~ }Ð5Ð5Ð5Ø Ð Ð Ð ð 6ð ð EÝÐC¸ÐCÐCÐCÑDÔDÐDà€Nr5   Úiana_name_aÚiana_name_bÚfloatc                ó–  — t          | ¦  «        st          |¦  «        rdS t          j        d| › �¦  «        j        }t          j        d|› �¦  «        j        } |d¬¦  «        } |d¬¦  «        }d}t	          d¦  «        D ]C}t          |g¦  «        }|                     |¦  «        |                     |¦  «        k    r|dz  }ŒD|dz  S )Ng        z
encodings.r•   r–   r   é   r
   )rÆ   r¿   rÀ   r   Úranger�   r¢   )	rÕ   rÖ   Ú	decoder_aÚ	decoder_bÚid_aÚid_bÚcharacter_match_countÚiÚto_be_decodeds	            r.   Úcp_similarityrâ   V  så   € Ý˜kÑ*Ô*ð Õ.DÀ[Ñ.QÔ.Qð ØˆsåÔ'Ð(B°[Ð(BÐ(BÑCÔCÔV€IÝÔ'Ð(B°[Ð(BÐ(BÑCÔCÔV€Ià(˜y°Ð9Ñ9Ô9€DØ(˜y°Ð9Ñ9Ô9€Dà!"Ðå�3‰ZŒZð 'ð 'ˆÝ$ a S™zœzˆØ�;Š;�}Ñ%Ô%¨¯ª°]Ñ)CÔ)CÒCÐCØ! QÑ&Ð!øà  3Ñ&Ð&r5   c                ó2   — | t           v o|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ä   j  s%   € ð 	Õ-Ð-ð 	?ØÕ1°+Ô>Ð>ðr5   Úcharset_normalizerz)%(asctime)s | %(levelname)s | %(message)sÚlevelÚformat_stringÚNonec                óö   — t          j        | ¦  «        }|                     |¦  «         t          j        ¦   «         }|                     t          j        |¦  «        ¦  «         |                     |¦  «         d S r2   )ÚloggingÚ	getLoggerÚsetLevelÚStreamHandlerÚsetFormatterÚ	FormatterÚ
addHandler)r)   ræ   rç   ÚloggerÚhandlers        r.   Úset_logging_handlerró   u  sm   € õ
 Ô˜tÑ$Ô$€FØ
‡O‚O�EÑÔÐåÔ#Ñ%Ô%€GØ×Ò�Ô*¨=Ñ9Ô9Ñ:Ô:Ð:Ø
×Ò�gÑÔÐÐÐr5   FÚ	sequencesr¬   ÚoffsetsrÚ   Ú
chunk_sizeÚbom_or_sig_availableÚstrip_sig_or_bomÚsig_payloadr�   Úis_multi_byte_decoderÚdecoded_payloadÚdeferred_decodingúGenerator[str, None, None]c
              #  ór  K  — |r|s|D ]}
||
|
|z   …         }|s d S |V — Œd S |	rF|s| n| t          |¦  «        d …         }|D ]&}
||
|
|z   …         }|s d S t          ||¦  «        V — Œ'd S |D ]È}
|
|z   }|t          | ¦  «        dz   k    rŒ| |
|
|z   …         }|r|s||z   }|                     ||rdnd¬¦  «        }|rs|
dk    rmt          |d¦  «        }|r[|d |…         |vrOt	          |
|
dz
  d¦  «        D ]:}| ||…         }|r|s||z   }|                     |d¬¦  «        }|d |…         |v r nŒ;|V — ŒÉd S )	Né   r•   rÑ   r–   r   r9   é   éÿÿÿÿ)r    r   r¢   r¡   rÚ   )rô   r¬   rõ   rö   r÷   rø   rù   rú   rû   rü   rà   ÚchunkÚ
base_bytesÚcut_sequenceÚ	chunk_endÚchunk_partial_size_chkÚjs                    r.   Úcut_sequence_chunksr  ‚  sK  è è € ð ð 9Ð4ð 9Øð 	ð 	ˆAØ# A¨¨J©Ð$6Ô7ˆEØð Ø��ØˆKˆKˆKˆKð		ð 	ð
 
ð 3ð .ÐPˆIˆI°9½SÀÑ=MÔ=MÐ=OÐ=OÔ3Pð 	ð ð 	3ð 	3ˆAØ% a¨!¨j©.Ð&8Ô9ˆLØð Ø��Ý�l MÑ2Ô2Ð2Ð2Ð2Ð2ð		3ð 	3ð ð #	ð #	ˆAØ˜J™ˆIØ�3˜y™>œ>¨AÑ-Ò-Ð-Øà$ Q¨¨Z©Ð%7Ô8ˆLà#ð :Ð,<ð :Ø*¨\Ñ9�à ×'Ò'ØØ#8ÐF�x�x¸hð (ñ ô ˆEð %ð "¨¨Qª¨Ý.1°*¸bÑ.AÔ.AÐ&ð $ð"àÐ5Ð5Ð5Ô6¸oÐMÐMå" 1 a¨!¡e¨RÑ0Ô0ð 	"ð 	"˜Ø'0°°9°Ô'=˜à/ð FÐ8Hð FØ+6¸Ñ+E˜Là ,× 3Ò 3°MÈ(Ð 3Ñ SÔ S˜à Ð!8Ð"8Ð!8Ô9¸_ÐLÐLØ!˜Eð Mð ˆKˆKˆKˆKðG#	ð #	r5   )r   r   r   r   )r   r   r   r0   )r   r   r   r   )r   r   r   rL   )rˆ   r   r   r0   )r�   )r�   r‘   r’   r   r   rL   )r)   r   r   r0   )r�   r‘   r   rÇ   )rÊ   r   r   r0   )T)rÐ   r   rÑ   r0   r   r   )rÕ   r   rÖ   r   r   r×   )rÕ   r   rÖ   r   r   r0   )r)   r   ræ   r   rç   r   r   rè   )NF)rô   r‘   r¬   r   rõ   rÚ   rö   r   r÷   r0   rø   r0   rù   r�   rú   r0   rû   rL   rü   r0   r   rý   )FÚ
__future__r   r¿   rê   r(   Úbisectr   Úcodecsr   Úencodings.aliasesr   Ú	functoolsr   Úrer   Útypingr	   Úconstantr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r/   r4   r?   Úsortedr¥   rF   Ú__annotations__rK   rQ   rS   r\   rb   rf   rq   ru   rw   ry   r|   r~   r�   rƒ   r…   r‡   rŠ   rŽ   r­   rÆ   rÍ   rÏ   rÔ   râ   rä   ÚINFOró   r  rH   r5   r.   ú<module>r     s²  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð*ð ð ð ðD<ð <ð <ð <ð €Ð*Ð+Ñ+Ô+ð"ð "ð "ñ ,Ô+ð"ð 6<°Vð <ð <à8Ð2Ô8Ñ:Ô:ð<ñ <ô <ñ 6ô 6Ð ð ð ð ñ ð $JÐ#IÐ2HÐ#IÑ#IÔ#IÐ Ð IÐ IÐ IÑ Iðð ð ð ð 6ð 6ð 6ð 6ð,ð ,ð ,ð ,ðEð Eð Eð EðNð Nð Nð NðQð Qð Qð Qð €Ð*Ð+Ñ+Ô+ð6ð 6ð 6ñ ,Ô+ð6ð €Ð*Ð+Ñ+Ô+ð4ð 4ð 4ñ ,Ô+ð4ð €Ð*Ð+Ñ+Ô+ð9ð 9ð 9ñ ,Ô+ð9ð €Ð*Ð+Ñ+Ô+ð9ð 9ð 9ñ ,Ô+ð9ð €Ð*Ð+Ñ+Ô+ð7ð 7ð 7ñ ,Ô+ð7ð €Ð*Ð+Ñ+Ô+ð5ð 5ð 5ñ ,Ô+ð5ð €Ð*Ð+Ñ+Ô+ð7ð 7ð 7ñ ,Ô+ð7ð €Ð*Ð+Ñ+Ô+ðEð Eð Eñ ,Ô+ðEð €Ð*Ð+Ñ+Ô+ð2ð 2ð 2ñ ,Ô+ð2ð0ð 0ð 0ð 0ð €Ð*Ð+Ñ+Ô+ðð ð ñ ,Ô+ðð 59ð(ð (ð (ð (ð (ðV €�3ÐÑÔð&ð &ð &ñ Ôð&ðRð ð ð ð$5ð 5ð 5ð 5ðð ð ð ð ð"'ð 'ð 'ð 'ð(ð ð ð ð %Ø”ØDð
ð 
ð 
ð 
ð 
ð, #'Ø#ðEð Eð Eð Eð Eð Eð Er5   