ó
    sñ:i®+  ã                   ó8  • S SK r S SKrS SKrS SKrS SKrSSKJr  SSKJr  SSKJ	r	  \ R                  S:¼  a  S SKrS rOS SKrS r\ R                  S	:¼  a  \R                  rO " S
 S\R"                  5      r " S S\5      rSrS rSqS rS rSS jrS rS rg)é    Né   )Ú__version_verifier_modules__)Úffiplatform)ÚVerificationError)é   r   c                  ó<   • [         R                  R                  S S  $ ©N)Ú	importlibÚ	machineryÚEXTENSION_SUFFIXES© ó    ÚP/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/cffi/verifier.pyÚ_extension_suffixesr      s   € Ü×"Ñ"×5Ñ5±aÐ8Ð8r   c                  ó–   • [         R                  " 5        V VVs/ s H  u  pnU[         R                  :X  d  M  U PM      snnn $ s  snnn f r	   )ÚimpÚget_suffixesÚC_EXTENSION)ÚsuffixÚ_Útypes      r   r   r      s@   € Ü.1×.>Ò.>Ô.@õ ,Ò.@™?˜6 dØœ3Ÿ?™?Ñ*÷ Ñ.@ó ,ð 	,ùô ,s
   šA¹A©r   c                   ó(   ^ • \ rS rSrU 4S jrSrU =r$ )ÚNativeIOé   c                 óx   >• [        U[        5      (       a  UR                  S5      n[        [        U ]  U5        g )NÚascii)Ú
isinstanceÚunicodeÚencodeÚsuperr   Úwrite)ÚselfÚsÚ	__class__s     €r   r"   ÚNativeIO.write   s-   ø€ Ü˜!œW×%Ñ%Ø—H‘H˜WÓ%�Ü”(˜DÑ'¨Õ*r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r"   Ú__static_attributes__Ú__classcell__)r%   s   @r   r   r      s   ø† ÷	+ó 	+r   r   c                   ót   • \ rS rSr   SS jrSS jrS rS rS rS r	S	 r
S
 rS rS rSS jrS rS rSrg)ÚVerifieré   Nc                 ó  • UR                   R                  (       a#  [        SUR                   R                  < 35      eXl        X l        U(       d  [
        R                  " U5      n[        X5      nU" U 5      U l        U R                  R                  U5        X�l
        U R                  Xº5      U l        U(       a  U(       a  [        S5      eGOSR                  S[        R                   S S -  ["        UW/UR$                  -   5      n[        R                   S:¼  a  UR'                  S5      n[)        [*        R,                  " USS S2   5      S	-  5      nUR/                  S
5      R1                  S5      n[)        [*        R,                  " USS S2   5      S	-  5      nUR/                  S5      R1                  S5      nSU< SU R                  R2                  < U< U< 3n[5        5       S   nU=(       d
    [7        5       U l        [:        R<                  R                  U R8                  XH-   5      U l        [:        R<                  R                  U R8                  UU-   5      U l         XPl!        SU l"        SU l#        g )NzIfeature not supported with ffi.verify(), but only with ffi.set_source(): z)can't specify both 'modulename' and 'tag'Ú z%d.%dé   r   zutf-8r   l   ÿÿ Ú0xÚLr   Ú0Ú_cffi_r   F)$Ú_parserÚ_uses_new_featurer   ÚffiÚpreambler   ÚflattenÚ_locate_engine_classÚ_vengineÚpatch_extension_kwdsÚflagsÚmake_relative_toÚkwdsÚ	TypeErrorÚjoinÚsysÚversion_infor   Ú_cdefsourcesr    ÚhexÚbinasciiÚcrc32ÚlstripÚrstripÚ
_class_keyÚ_get_so_suffixesÚ_caller_dir_pycacheÚtmpdirÚosÚpathÚsourcefilenameÚmodulefilenameÚext_packageÚ_has_sourceÚ_has_module)r#   r9   r:   rO   Ú
modulenamerT   ÚtagÚforce_generic_engineÚsource_extensionr?   Úrelative_torA   Úflattened_kwdsÚvengine_classÚkeyÚk1Úk2r   s                     r   Ú__init__ÚVerifier.__init__    s  € ð �;‰;×(×(Ý#à/2¯{©{×/LÓ/LðOóPð Pð ŒØ ŒÞÜ(×0Ò0°Ó6ˆNÜ,¨SÓGˆÙ% dÓ+ˆŒØ�‰×*Ñ*¨4Ô0ØŒ
Ø×)Ñ)¨$Ó<ˆŒ	æÞÜÐ KÓLÐLñ ð —+‘+˜w¬×)9Ñ)9¸"¸1Ð)=Ñ=Ü;Ø'¨ð9ð "×.Ñ.ñ/ó 0ˆCô ×Ñ 4Ó'Ø—j‘j Ó)�Ü”X—^’^ C¨¨¨1¨¡IÓ.°Ñ;Ó<ˆBØ—‘˜4“×'Ñ'¨Ó,ˆBÜ”X—^’^ C¨¨¨1¨¡IÓ.°Ñ;Ó<ˆBØ—‘˜3“×&Ñ& sÓ+‰BÛ.1°4·=±=×3KÓ3KÚ.0²"ð6ˆJä!Ó# AÑ&ˆØ×5Ô 3Ó 5ˆŒÜ Ÿg™gŸl™l¨4¯;©;¸
Ñ8UÓVˆÔÜ Ÿg™gŸl™l¨4¯;©;¸
ÀVÑ8KÓLˆÔØ&ÔØ ˆÔØ ˆÕr   c                 óÄ   • U R                   R                     U R                  (       a  Uc  [        S5      eU R	                  U5        SSS5        g! , (       d  f       g= f)zcWrite the C source code.  It is produced in 'self.sourcefilename',
which can be tweaked beforehand.Nzsource code already written)r9   Ú_lockrU   r   Ú_write_source©r#   Úfiles     r   Úwrite_sourceÚVerifier.write_sourceI   sD   € ð �X‰X�^‹^Ø×× D¡LÜ'Ø1ó3ð 3à×Ñ˜tÔ$÷	 �^Ž^ús   —1AÁ
Ac                 óþ   • U R                   R                     U R                  (       a  [        S5      eU R                  (       d  U R                  5         U R                  5         SSS5        g! , (       d  f       g= f)z|Write the C source code (if not done already) and compile it.
This produces a dynamic link library in 'self.modulefilename'.zmodule already compiledN)r9   rd   rV   r   rU   re   Ú_compile_module©r#   s    r   Úcompile_moduleÚVerifier.compile_moduleR   sO   € ð �X‰X�^‹^Ø××Ü'Ð(AÓBÐBØ×#×#Ø×"Ñ"Ô$Ø× Ñ Ô"÷ �^Ž^ús   —AA.Á.
A<c                 óJ  • U R                   R                     U R                  (       dR  U R                  5         U R                  (       d1  U R                  (       d  U R                  5         U R                  5         U R                  5       sSSS5        $ ! , (       d  f       g= f)zúGet a C module from this Verifier instance.
Returns an instance of a FFILibrary class that behaves like the
objects returned by ffi.dlopen(), but that delegates all
operations to the C module.  If necessary, the C code is written
and compiled first.
N)r9   rd   rV   Ú_locate_modulerU   re   rk   Ú_load_libraryrl   s    r   Úload_libraryÚVerifier.load_library\   sd   € ð �X‰X�^‹^Ø×#×#Ø×#Ñ#Ô%Ø×'×'Ø×+×+Ø×*Ñ*Ô,Ø×(Ñ(Ô*Ø×%Ñ%Ó'÷ �^�^ús   —A3BÂ
B"c                 óâ   • [         R                  R                  U R                  5      nUR	                  SS5      S   nUR                  S5      (       a  [        [        S5      (       a  US S nU$ )NÚ.r   r   Ú_dÚgettotalrefcountéþÿÿÿ)rP   rQ   ÚbasenamerS   ÚsplitÚendswithÚhasattrrD   )r#   ry   s     r   Úget_module_nameÚVerifier.get_module_namel   sc   € Ü—7‘7×#Ñ# D×$7Ñ$7Ó8ˆð —>‘> # qÓ)¨!Ñ,ˆð ×Ñ˜T×"Ñ"¤w¬sÐ4F×'GÑ'GØ  �}ˆHØˆr   c                 óh  • U R                   (       d@  U R                  R                     U R                   (       d  U R                  5         S S S 5        [        R
                  " U R                  5      nU R                  5       n[        R                  " X40 U R                  D6$ ! , (       d  f       N_= fr	   )
rU   r9   rd   re   r   Úmaybe_relative_pathrR   r}   Úget_extensionrA   )r#   Ú
sourcenameÚmodnames      r   r�   ÚVerifier.get_extensionw   sx   € Ø××Ø—‘—“Ø×'×'Ø×&Ñ&Ô(÷  ô !×4Ò4°T×5HÑ5HÓIˆ
Ø×&Ñ&Ó(ˆÜ×(Ò(¨ÑJÀÇ	Á	ÑJÐJ÷  •ús   ¨"B#Â#
B1c                 ó.   • U R                   R                  $ r	   )r=   Ú_gen_python_modulerl   s    r   Úgenerates_python_moduleÚ Verifier.generates_python_module€   s   € Ø�}‰}×/Ñ/Ð/r   c                 óÄ  • U(       aÓ  [         R                  R                  U5      (       a¯  [         R                  R                  U5      nUR                  5       n[        R
                   Hl  nXA;   d  M
  X   n[        U[        [        45      (       d  [        SU< S35      eU Vs/ s H"  n[         R                  R                  X65      PM$     nnXQU'   Mn     U$ s  snf )Nz	keyword 'z' should be a list or tuple)rP   rQ   ÚdirnameÚcopyr   ÚLIST_OF_FILE_NAMESr   ÚlistÚtuplerB   rC   )r#   rA   r[   rŠ   r^   ÚlstÚfns          r   r@   ÚVerifier.make_relative_toƒ   s«   € Þœ2Ÿ7™7Ÿ?™?¨;×7Ñ7Ü—g‘g—o‘o kÓ2ˆGØ—9‘9“;ˆDÜ"×5Ô5�Ø•;Ø™)�CÜ% c¬D´%¨=×9Ñ9Ý'Û+.ð)1ó 2ð 2á?BÓCºs¸œ2Ÿ7™7Ÿ<™<¨Ö4¹s�CÐCØ #˜“Iñ 6ð ˆùò Ds   Â()Cc                 ó°  • [         R                  R                  U R                  5      (       dw  U R                  (       a'   [        U R                  S S S/5      nUR                  nOS nU R                  R                  U R                  5       U[        5       5      nUc  g X0l        U R                  R                  5         SU l        g ! [         a     g f = f)NÚ__doc__T)rP   rQ   ÚisfilerS   rT   Ú
__import__ÚImportErrorÚ__path__r=   Úfind_moduler}   rM   Úcollect_typesrV   )r#   ÚpkgrQ   Úfilenames       r   rp   ÚVerifier._locate_module“   s´   € Ü�w‰w�~‰~˜d×1Ñ1×2Ñ2Ø××ðÜ$ T×%5Ñ%5°t¸TÀIÀ;ÓO�Cð —|‘|‘à�Ø—}‘}×0Ñ0°×1EÑ1EÓ1GÈÜ1AÓ1CóEˆHàÑØØ"*ÔØ�‰×#Ñ#Ô%ØˆÕøô #ó Ùðús   ÁC Ã
CÃCc                 ó”   • XR                   l         U R                   R                  5         U R                   ?g ! U R                   ?f = fr	   )r=   Ú_fÚwrite_source_to_frf   s     r   Ú_write_source_toÚVerifier._write_source_to¦   s6   € Ø�‰Ôð	!Ø�M‰M×+Ñ+Ô-à—‘Ñ ø�—‘Ñ ús	   ’9 ¹Ac                 ó6  • Ub  U R                  U5        g [        5       nU R                  U5        UR                  5       n[        R                  R                  U R                  5      (       a4  [        U R                  S5       nUR                  5       U:X  + nS S S 5        OSnW(       aE  [        U R                  5        [        U R                  S5       nUR                  U5        S S S 5        SU l        g ! , (       d  f       Nb= f! , (       d  f       N'= f)NÚrTÚw)r    r   ÚgetvaluerP   rQ   ÚexistsrR   ÚopenÚreadÚ_ensure_dirr"   rU   )r#   rg   ÚfÚsource_dataÚfpÚneeds_writtens         r   re   ÚVerifier._write_source­   sÖ   € ØÑØ×!Ñ! $Õ'ô “
ˆAØ×!Ñ! !Ô$ØŸ*™*›,ˆKô �w‰w�~‰~˜d×1Ñ1×2Ñ2Ü˜$×-Ñ-¨sÔ3°rØ)+¯©«°kÒ$B�M÷ 4Ð3ð !%�ö Ü˜D×/Ñ/Ô0Ü˜$×-Ñ-¨sÔ3°rØ—H‘H˜[Ô)÷ 4ð  $ˆDÕ÷ 4Õ3ú÷ 4Õ3ús   ÂC9ÃD
Ã9
DÄ

Dc                 óŠ  • [         R                  R                  U R                  5      n[        R
                  " XR                  5       5      n [        R                  " X R                  5      nU(       d5  [        U R                  5        [        R                  " X R                  5        SU l        g ! [         a    Sn NRf = f)NFT)rP   rQ   rŠ   rR   r   Úcompiler�   ÚsamefilerS   ÚOSErrorr©   ÚshutilÚmoverV   )r#   rO   ÚoutputfilenameÚsames       r   rk   ÚVerifier._compile_moduleÆ   s‘   € ä—‘—‘ ×!4Ñ!4Ó5ˆÜ$×,Ò,¨V×5GÑ5GÓ5IÓJˆð	Ü×'Ò'¨×8KÑ8KÓLˆDö Ü˜×+Ñ+Ô,Ü�KŠK˜×(;Ñ(;Ô<ØˆÕøô ó 	ØŠDð	ús   Á B3 Â3CÃCc                 óÀ   • U R                   (       d   eU R                  b%  U R                  R                  U R                  5      $ U R                  R                  5       $ r	   )rV   r?   r=   rr   rl   s    r   rq   ÚVerifier._load_libraryÓ   sG   € Ø××ÐÐØ�:‰:Ñ!Ø—=‘=×-Ñ-¨d¯j©jÓ9Ð9à—=‘=×-Ñ-Ó/Ð/r   )rV   rU   r=   rT   r9   r?   rA   rS   r:   rR   rO   )NNNÚ Fú.cNNr	   )r'   r(   r)   r*   ra   rh   rm   rr   r}   r�   r‡   r@   rp   r    re   rk   rq   r+   r   r   r   r.   r.      sN   † à>BØ@EØ@Dô'!ôR%ò#ò(ò 	òKò0òò  ò&!ô$ò2 õ0r   r.   Fc                 óþ   • [         (       a  SnU(       d-  S[        R                  ;   a  SnO SS KnU R
                  ULa  SnU(       a  SSKJn  UR                  $ SSKJ	n  UR                  $ ! [         a    Sn NJf = f)NTÚ__pypy__r   Ú?r   )Úvengine_gen)Úvengine_cpy)Ú_FORCE_GENERIC_ENGINErD   Úbuiltin_module_namesÚ_cffi_backendr–   Ú_backendrº   r¿   ÚVGenericEnginerÀ   ÚVCPythonEngine)r9   rY   rÃ   r¿   rÀ   s        r   r<   r<   Þ   sx   € ßÒØ#ÐÞØœ×1Ñ1Ó1Ø#'Ñ ð$Û$ð �|‰| =Ò0Ø'+Ð$ÞÝ!Ø×)Ñ)Ð)å!Ø×)Ñ)Ð)øô ó $Ø #’ð$ús   ­A- Á-A<Á;A<c                  ó|  • [         (       a  [         $ [        R                  R                  S5      n U (       a  U $ [        R
                  " S5      R                  R                  n[        R                  R                  [        R                  R                  [        R                  R                  U5      S5      5      $ )NÚCFFI_TMPDIRr2   Ú__pycache__)Ú_TMPDIRrP   ÚenvironÚgetrD   Ú	_getframeÚf_codeÚco_filenamerQ   ÚabspathrC   rŠ   )Úresultr›   s     r   rN   rN   ö   sv   € ß‚wÜˆÜ�Z‰Z�^‰^˜MÓ*€FÞØˆÜ�}Š}˜QÓ×&Ñ&×2Ñ2€HÜ�7‰7�?‰?œ2Ÿ7™7Ÿ<™<¬¯©¯©¸Ó(AØ(ó*ó +ð +r   c                 ó   • U q g)z:Set the temporary directory to use instead of __pycache__.N)rÊ   )rŠ   s    r   Ú
set_tmpdirrÓ      s	   € ð �Gr   c                 óÊ  • U =(       d
    [        5       n  [        R                  " U 5      nU(       a  SnO[	        5       S   R                  5       nU H§  nUR                  5       R                  S5      (       d  M)  UR                  5       R                  U5      (       d&  UR                  5       R                  S5      (       d  Ms   [        R                  " [        R                  R                  X5      5        M©     [        R                  R                  U S5      /nU H�  n [        R                  " U5       Ho  n[        R                  R                  Xd5      n[        R                  R                  U5      (       a  UR                  U5        MY  [        R                  " U5        Mq     M�     g! [         a     gf = f! [         a     GM~  f = f! [         a     MÁ  f = f)zyClean up the temporary directory by removing all files in it
called `_cffi_*.{c,so}` as well as the `build` subdirectory.Nr»   r   r6   Úbuild)rN   rP   Úlistdirr²   rM   ÚlowerÚ
startswithr{   ÚunlinkrQ   rC   ÚisdirÚappend)rO   Úkeep_soÚfilelistr   r�   Ú	clean_dirÚdirs          r   Úcleanup_tmpdirrà     sc  € ð ×,Ô*Ó,€FðÜ—:’:˜fÓ%ˆö Ø‰ä!Ó# AÑ&×,Ñ,Ó.ˆÛˆØ�8‰8‹:× Ñ  ×*Ó*Ø—‘“
×#Ñ# F×+Ñ+¨r¯x©x«z×/BÑ/BÀ4×/HÓ/HðÜ—	’	œ"Ÿ'™'Ÿ,™, vÓ2Ö3ñ	 ô —‘—‘˜f gÓ.Ð/€IÛˆð	Ü—j’j –o�Ü—W‘W—\‘\ #Ó*�Ü—7‘7—=‘= ×$Ñ$Ø×$Ñ$ RÖ(ä—I’I˜b–Mó &ò øô ó Ùðûô ó Ûðûô ó 	Úð	ús6   •F2 Ã3GÄ$B	GÆ2
F?Æ>F?Ç
GÇGÇ
G"Ç!G"c                  ó`   • [        5       n U (       d  [        R                  S:X  a  S/n U $ S/n U $ )NÚwin32z.pydz.so)r   rD   Úplatform)Úsuffixess    r   rM   rM   $  s5   € Ü"Ó$€HÞä�<‰<˜7Ó"Ø�xˆHð €Oð �wˆHà€Or   c                 óÈ   • [         R                  R                  U 5      nU(       a<  [         R                  R                  U5      (       d  [         R                  " U5        g g g r	   )rP   rQ   rŠ   rÚ   Úmakedirs)r›   rŠ   s     r   r©   r©   /  s<   € Ü�g‰g�o‰o˜hÓ'€GÞ”r—w‘w—}‘} W×-Ñ-Ü
�Š�GÕð .€wr   )NF)rD   rP   rH   r³   Úiorº   r   r   Úerrorr   rE   Úimportlib.machineryr
   r   r   ÚStringIOr   ÚBytesIOÚobjectr.   rÁ   r<   rÊ   rN   rÓ   rà   rM   r©   r   r   r   Ú<module>rí      sž   ð÷ %× $Ó $Ý *Ý Ý $à×Ñ�vÓÛó9ó ò,ð
 ×Ñ�tÓØ�{‰{�Hô+�2—:‘:ô +ôz0ˆvô z0ð| Ð ò*ð, €ò+òô
ò>	ór   