Ë
    ^ãj¦(  ã            	      ó8  — U d dl mZ ddhZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 ddl
mZ dZerd d	lmZ g Zd
ed<   d.d/d„Zd0d1d„Z G d„ d«      Z G d„ de«      Zej*                  dk(  r ee«        G d„ de«      Zej*                  dk(  r ee«        G d„ dej.                  e«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d „ d!e«      Zej*                  d"vr‚ ej<                  d#«      r ee«        ej<                  d$«      r ee«        ej<                  d%«      r ee«        ej<                  d&«      r ee«        ej<                  d'«      r ee«        G d(„ d)e«      Z	 d d*l m!Z"  ee«       e$d+k(  rs e%ejL                  «      d,k  r e'd-«        ejP                  «         ejR                  ejL                  d   «      5 Z* e' ee*gejL                  d,d ¢­Ž «       ddd«       yy# e#$ r Y Œ€w xY w# 1 sw Y   yxY w)2é    )ÚannotationsÚshlexÚ
subprocessN©Úquoteé   )ÚImageF)ÚAnyzlist[Viewer]Ú_viewersc                ó´   — t        | t        «      rt        | t        «      r | «       } |dkD  rt        j                  | «       yt        j                  d| «       y)a$  
    The :py:func:`register` function is used to register additional viewers::

        from PIL import ImageShow
        ImageShow.register(MyViewer())  # MyViewer will be used as a last resort
        ImageShow.register(MySecondViewer(), 0)  # MySecondViewer will be prioritised
        ImageShow.register(ImageShow.XVViewer(), 0)  # XVViewer will be prioritised

    :param viewer: The viewer to be registered.
    :param order:
        Zero or a negative integer to prepend this viewer to the list,
        a positive integer to append it.
    r   N)Ú
isinstanceÚtypeÚ
issubclassÚViewerr   ÚappendÚinsert)ÚviewerÚorders     úO/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/PIL/ImageShow.pyÚregisterr   "   s?   € ô �&œ$Ô¤J¨v´vÔ$>Ù“ˆØˆq‚yÜ�‰˜Õä�‰˜˜6Õ"ó    c                óH   — t         D ]  } |j                  | fd|i|¤ŽsŒ y y)a  
    Display a given image.

    :param image: An image object.
    :param title: Optional title. Not all viewers can display the title.
    :param \**options: Additional viewer options.
    :returns: ``True`` if a suitable viewer was found, ``False`` otherwise.
    ÚtitleTF)r   Úshow)Úimager   Úoptionsr   s       r   r   r   8   s3   € ô ò ˆØˆ6�;‰;�uÑ5 EÐ5¨WÓ5Ùðð r   c                  ój   — e Zd ZU dZdd„ZdZded<   	 i Zded<   	 dd„Zdd	„Z	dd
„Z
dd„Zdd„Zdd„Zy)r   zBase class for viewers.r   c                óü   — |j                   dv s\| j                  dk(  r|j                   dv s?t        j                  |j                   «      }|j                   |k7  r|j	                  |«      } | j
                  |fi |¤ŽS )zƒ
        The main function for displaying an image.
        Converts the given image to the target format and displays it.
        )Ú1ÚRGBAÚPNG)zI;16ÚLA)ÚmodeÚformatr	   ÚgetmodebaseÚconvertÚ
show_image)Úselfr   r   Úbases       r   r   zViewer.showL   sk   € ð �J‰J˜-Ñ'Ø—‘˜uÒ$¨¯©°~Ñ)Eä×$Ñ$ U§Z¡ZÓ0ˆDØ�z‰z˜TÒ!ØŸ™ dÓ+�àˆt�‰˜uÑ0¨Ñ0Ð0r   Nú
str | Noner$   zdict[str, Any]c                ó   — | j                   S )z3Return format name, or ``None`` to save as PGM/PPM.)r$   ©r(   r   s     r   Ú
get_formatzViewer.get_formatc   s   € à�{‰{Ðr   c                ó   — d}t        |«      ‚)zj
        Returns the command used to display the file.
        Not implemented in the base class.
        zunavailable in base viewer)ÚNotImplementedError©r(   Úfiler   Úmsgs       r   Úget_commandzViewer.get_commandg   s   € ð
 +ˆÜ! #Ó&Ð&r   c                ó\   —  |j                   dd| j                  |«      i| j                  ¤ŽS )z+Save to temporary file and return filename.r$   © )Ú_dumpr-   r   r,   s     r   Ú
save_imagezViewer.save_imageo   s(   € àˆu�{‰{ÑI $§/¡/°%Ó"8ÐI¸D¿L¹LÑIÐIr   c                óF   —  | j                   | j                  |«      fi |¤ŽS )zDisplay the given image.)Ú	show_filer7   ©r(   r   r   s      r   r'   zViewer.show_images   s!   € àˆt�~‰~˜dŸo™o¨eÓ4Ñ@¸Ñ@Ð@r   c                óš   — t         j                  j                  |«      st        ‚t        j                   | j
                  |fi |¤Ž«       y)ú%
        Display given file.
        r   )ÚosÚpathÚexistsÚFileNotFoundErrorÚsystemr3   ©r(   r>   r   s      r   r9   zViewer.show_filew   s<   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü
�	‰	Ð"�$×"Ñ" 4Ñ3¨7Ñ3Ô4Ør   c                óÚ   — t        t        dd«      xr t        t        d«      }| xr t        j                  xs t	        j
                  d«      }|rt        j                  |dd|g«       y y )NÚfrozenFÚ_MEIPASSÚpython3z-cz<import os, sys, time; time.sleep(20); os.remove(sys.argv[1]))ÚgetattrÚsysÚhasattrÚ
executableÚshutilÚwhichr   ÚPopen)r(   r>   ÚpyinstallerrJ   s       r   Ú_remove_path_after_delayzViewer._remove_path_after_delay€   sa   € Üœc 8¨UÓ3ÒP¼ÄÀZÓ8PˆØ%�oÒ8¬#¯.©.ÒT¼V¿\¹\È)Ó=Tˆ
áÜ×ÑàØØRØð	õð r   ©r   úImage.Imager   r
   ÚreturnÚint)r   rQ   rR   r*   ©r1   Ústrr   r
   rR   rU   )r   rQ   rR   rU   ©r>   rU   r   r
   rR   rS   )r>   rU   rR   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r$   Ú__annotations__r   r-   r3   r7   r'   r9   rO   r5   r   r   r   r   G   sF   … Ù!ó1ð$ €FˆJÓØ/Ø €Gˆ^Ó Ø7óó'óJóAóôr   r   c                  ó.   — e Zd ZdZdZdddœZd	d„Zd
d„Zy)ÚWindowsViewerzNThe default viewer on Windows is the default system application for PNG files.r!   r   T©Úcompress_levelÚsave_allc                óZ   — d|v rd}t        |«      ‚|j                  dd«      }d|› d|› d�S )Nú"z.Windows filenames cannot contain double quotesú%z"%"zstart "Pillow" /WAIT "z)" && ping -n 4 127.0.0.1 >NUL && del /f ")Ú
ValueErrorÚreplacer0   s       r   r3   zWindowsViewer.get_command˜   sE   € Ø�$‰;ØBˆCÜ˜S“/Ð!Ø�|‰|˜C Ó'ˆà$ T Fð +à˜˜qð"ð	
r   c                óÀ   — t         j                  j                  |«      st        ‚t        j
                  dk(  rt        j                  |«       | j                  |«       y)r<   Úwin32r   )r=   r>   r?   r@   rH   ÚplatformÚ	startfilerO   rB   s      r   r9   zWindowsViewer.show_file£   sC   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü�<‰<˜7Ò"Ü�L‰L˜ÔØ×%Ñ% dÔ+Ør   NrT   rV   ©rX   rY   rZ   r[   r$   r   r3   r9   r5   r   r   r^   r^   ’   s   „ ÙXà€FØ!"°Ñ5€Gó	
ô	r   r^   rh   c                  ó.   — e Zd ZdZdZdddœZd	d„Zd
d„Zy)Ú	MacViewerz2The default viewer on macOS using ``Preview.app``.r!   r   Tr_   c                óF   — d}d|› dt        |«      › dt        |«      › d�}|S )Nzopen -a Preview.appú(ú z; sleep 20; rm -f z)&r   ©r(   r1   r   Úcommands       r   r3   zMacViewer.get_command¹   s1   € ð (ˆØ�g�Y˜a¤ d£˜}Ð,>¼uÀT»{¸mÈ2ÐNˆØˆr   c                ó¢   — t         j                  j                  |«      st        ‚t	        j
                  ddd|g«       | j                  |«       y)r<   Úopenz-azPreview.appr   )r=   r>   r?   r@   r   ÚcallrO   rB   s      r   r9   zMacViewer.show_fileÀ   s@   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü�‰˜  }°dÐ;Ô<Ø×%Ñ% dÔ+Ør   NrT   rV   rk   r5   r   r   rm   rm   ³   s   „ Ù<à€FØ!"°Ñ5€Góôr   rm   Údarwinc                  óH   — e Zd ZdZdddœZej                  dd„«       Zd	d„Zy)
Ú
UnixViewerr!   r   Tr_   c                 ó   — y ©Nr5   )r(   r1   r   s      r   Úget_command_exzUnixViewer.get_command_exÓ   s   € àr   c                óN   —  | j                   |fi |¤Žd   }|› dt        |«      › �S )Nr   rp   )r{   r   rq   s       r   r3   zUnixViewer.get_command×   s3   € Ø%�$×%Ñ% dÑ6¨gÑ6°qÑ9ˆØ�˜!œE $›K˜=Ð)Ð)r   N©r1   rU   r   r
   rR   útuple[str, str]rT   )	rX   rY   rZ   r$   r   ÚabcÚabstractmethodr{   r3   r5   r   r   rx   rx   Ï   s.   „ Ø€FØ!"°Ñ5€Gà×Ñòó ðô*r   rx   c                  ó    — e Zd ZdZdd„Zdd„Zy)Ú	XDGViewerz3
    The freedesktop.org ``xdg-open`` command.
    c                ó   — dx}}||fS )Núxdg-openr5   )r(   r1   r   rr   rJ   s        r   r{   zXDGViewer.get_command_exá   s   € Ø)Ð)ˆ�*Ø˜
Ð"Ð"r   c                ó|   — t         j                  j                  |«      st        ‚t	        j
                  d|g«       y)r<   r„   r   ©r=   r>   r?   r@   r   rM   rB   s      r   r9   zXDGViewer.show_fileå   s0   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü×Ñ˜* dÐ+Ô,Ør   Nr}   rV   ©rX   rY   rZ   r[   r{   r9   r5   r   r   r‚   r‚   Ü   s   „ ñó#ôr   r‚   c                  ó2   — e Zd ZdZ	 d	 	 	 	 	 	 	 dd„Zdd„Zy)ÚDisplayViewerz`
    The ImageMagick ``display`` command.
    This viewer supports the ``title`` parameter.
    Nc                ó8   — dx}}|r|dt        |«      › �z  }||fS )NÚdisplayz -title r   ©r(   r1   r   r   rr   rJ   s         r   r{   zDisplayViewer.get_command_exõ   s1   € ð  )Ð(ˆ�*ÙØ˜¤%¨£, Ð0Ñ0ˆGØ˜
Ð"Ð"r   c                óÔ   — t         j                  j                  |«      st        ‚dg}|j	                  d«      }|r|d|gz  }|j                  |«       t        j                  |«       y)r<   r‹   r   z-titler   ©r=   r>   r?   r@   Úgetr   r   rM   ©r(   r>   r   Úargsr   s        r   r9   zDisplayViewer.show_fileý   s^   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Øˆ{ˆØ—‘˜GÓ$ˆÙØ�X˜uÐ%Ñ%ˆDØ�‰�DÔä×Ñ˜ÔØr   rz   ©r1   rU   r   r*   r   r
   rR   r~   rV   r‡   r5   r   r   r‰   r‰   ï   s6   „ ñð .2ð#Øð#Ø *ð#Ø>Að#à	ó#ôr   r‰   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚGmDisplayViewerz*The GraphicsMagick ``gm display`` command.c                ó   — d}d}||fS )NÚgmz
gm displayr5   ©r(   r1   r   rJ   rr   s        r   r{   zGmDisplayViewer.get_command_ex  s   € Øˆ
ØˆØ˜
Ð"Ð"r   c                ó~   — t         j                  j                  |«      st        ‚t	        j
                  dd|g«       y)r<   r–   r‹   r   r†   rB   s      r   r9   zGmDisplayViewer.show_file  s2   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü×Ñ˜$ 	¨4Ð0Ô1Ør   Nr}   rV   r‡   r5   r   r   r”   r”     s   „ Ù4ó#ô
r   r”   c                  ó    — e Zd ZdZdd„Zdd„Zy)Ú	EogViewerz'The GNOME Image Viewer ``eog`` command.c                ó   — d}d}||fS )NÚeogzeog -nr5   r—   s        r   r{   zEogViewer.get_command_ex"  s   € Øˆ
ØˆØ˜
Ð"Ð"r   c                ó~   — t         j                  j                  |«      st        ‚t	        j
                  dd|g«       y)r<   rœ   z-nr   r†   rB   s      r   r9   zEogViewer.show_file'  s2   € ô �w‰w�~‰~˜dÔ#Ü#Ð#Ü×Ñ˜%  tÐ,Ô-Ør   Nr}   rV   r‡   r5   r   r   rš   rš     s   „ Ù1ó#ô
r   rš   c                  ó2   — e Zd ZdZ	 d	 	 	 	 	 	 	 dd„Zdd„Zy)ÚXVViewerzX
    The X Viewer ``xv`` command.
    This viewer supports the ``title`` parameter.
    Nc                ó8   — dx}}|r|dt        |«      › �z  }||fS )NÚxvz -name r   rŒ   s         r   r{   zXVViewer.get_command_ex7  s1   € ð
  $Ð#ˆ�*ÙØ˜¤ u£ Ð/Ñ/ˆGØ˜
Ð"Ð"r   c                óÔ   — t         j                  j                  |«      st        ‚dg}|j	                  d«      }|r|d|gz  }|j                  |«       t        j                  |«       y)r<   r¡   r   z-namer   rŽ   r�   s        r   r9   zXVViewer.show_fileA  s^   € ô �w‰w�~‰~˜dÔ#Ü#Ð#ØˆvˆØ—‘˜GÓ$ˆÙØ�W˜eÐ$Ñ$ˆDØ�‰�DÔä×Ñ˜ÔØr   rz   r’   rV   r‡   r5   r   r   rŸ   rŸ   1  s6   „ ñð .2ð#Øð#Ø *ð#Ø>Að#à	ó#ôr   rŸ   )rh   rv   r„   r‹   r–   rœ   r¡   c                  ó   — e Zd ZdZdd„Zy)ÚIPythonViewerz!The viewer for IPython frontends.c                ó   — t        |«       y)Nr   )Úipython_displayr:   s      r   r'   zIPythonViewer.show_imagea  s   € Ü˜ÔØr   NrP   )rX   rY   rZ   r[   r'   r5   r   r   r¤   r¤   ^  s
   „ Ù+ôr   r¤   )r‹   Ú__main__é   z.Syntax: python3 ImageShow.py imagefile [title])r   )r   ztype[Viewer] | Viewerr   rS   rR   rW   rz   )r   rQ   r   r*   r   r
   rR   Úbool)+Ú
__future__r   Ú__lazy_modules__r   r=   rK   r   rH   r   r   Ú r	   ÚTYPE_CHECKINGÚtypingr
   r   r\   r   r   r   r^   ri   rm   ÚABCrx   r‚   r‰   r”   rš   rŸ   rL   r¤   ÚIPython.displayr‹   r¦   ÚImportErrorrX   ÚlenÚargvÚprintÚexitrt   Úimr5   r   r   ú<module>r·      s  ðö #à˜\Ð*Ð ã 
Û 	Û Û Û 
Ý å à€ÙÝà€ˆ,Ó ô#ô,÷Eñ EôV�Fô ð: ‡<�<�7ÒÙˆ]Ôô�ô ð0 ‡<�<�8ÒÙˆYÔô
*�—‘˜&ô 
*ô�
ô ô&�Jô ô<�jô ô$�
ô ô$ˆzô ð@ ‡<�<Ð*Ñ*Ø€v‡|�|�JÔÙ�ÔØ€v‡|�|�IÔÙ�ÔØ€v‡|�|�DÔÙ�Ô!Ø€v‡|�|�EÔÙ�ÔØ€v‡|�|�DÔÙ�Ôô�Fô ðÝ:ñ ˆ]Ôð ˆzÒÙ
ˆ3�8‰8ƒ}�qÒÙÐ>Ô?Øˆ�‰Œ
à	ˆ�‰�C—H‘H˜Q‘KÓ	 ð ' BÙ‰d�2Ð%˜Ÿ™  ˜Ò%Ô&÷'ð 'ð øð ò 	Ùð	ú÷'ð 'ús   Å>H ÇHÈHÈHÈH