Ë
    ^ãj&   ã                   ó0  — d dl mZ d dl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„ Z
 G d„ d«      Zd„ Zdd	„Z G d
„ d«      Z G d„ d«      Z G d„ de«      Z G d„ d«      Z G d„ de«      Z ej(                  dej*                  «      Zd„ Zd„ Zdd„Zd„ Zy)é    )ÚparseNé   )Úimportlib_metadata_getc                 ó6   — || _         |j                  | _        | S ©N)Ú__wrapped__Ú__name__)Ú	decoratedÚfns     úK/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/mako/util.pyÚupdate_wrapperr      s   € Ø€IÔØŸ™€IÔØÐó    c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚPluginLoaderc                 ó    — || _         i | _        y r   )ÚgroupÚimpls)Úselfr   s     r   Ú__init__zPluginLoader.__init__   s   € ØˆŒ
Øˆ�
r   c                 ó<  — || j                   v r | j                   |   «       S t        | j                  «      D ]<  }|j                  |k(  sŒ|j                  | j                   |<   |j	                  «       c S  ddlm} |j                  d| j                  ›d|›�«      ‚)Nr   )Ú
exceptionszCan't load plugin ú )r   r   r   ÚnameÚloadÚmakor   ÚRuntimeException)r   r   Úimplr   s       r   r   zPluginLoader.load   sˆ   € Ø�4—:‘:ÑØ#�4—:‘:˜dÑ#Ó%Ð%ä*¨4¯:©:Ó6ò 	#ˆDØ�y‰y˜DÓ Ø#'§9¡9�—
‘
˜4Ñ Ø—y‘y“{Ò"ð	#õ
 	$à×)Ò)Ø)-¯«±TÐ:ó
ð 	
r   c                 ó2   ‡‡— ˆˆfd„}|| j                   |<   y )Nc                  ó|   •— t        ‰«      } ‰j                  d«      dd  D ]  }t        | |«      } Œ t        | ‰«      S )Nú.r   )Ú
__import__ÚsplitÚgetattr)ÚmodÚtokenÚ
modulepathÚobjnames     €€r   r   z#PluginLoader.register.<locals>.load,   sG   ø€ Ü˜ZÓ(ˆCØ#×)Ñ)¨#Ó.¨q¨rÐ2ò *�Ü˜c 5Ó)‘ð*ä˜3 Ó(Ð(r   )r   )r   r   r&   r'   r   s     `` r   ÚregisterzPluginLoader.register+   s   ù€ õ	)ð  ˆ�
‰
�4Òr   N)r	   Ú
__module__Ú__qualname__r   r   r(   © r   r   r   r      s   „ òò
ó r   r   c                 óÚ   — d}t         j                  j                  | «      s=	 |dz  }t        j                  | d«       t         j                  j                  | «      sŒ<yy#  |dkD  r‚ Y Œ,xY w)z,create and/or verify a filesystem directory.r   r   ií  é   N)ÚosÚpathÚexistsÚmakedirs)Údir_Útriess     r   Úverify_directoryr4   5   s]   € ð €Eä�g‰g�n‰n˜TÔ"ð	Ø�Q‰JˆEÜ�K‰K˜˜eÔ$ô �g‰g�n‰n˜T×"øð	Ø�qŠyØñ ús   £A  Á A*c                 ó@   — | €|S t        | t        t        f«      s| gS | S r   )Ú
isinstanceÚlistÚtuple)ÚxÚdefaults     r   Úto_listr;   C   s&   € Ø€yØˆÜ�aœ$¤˜Ô'Øˆsˆ
àˆr   c                   ó   — e Zd ZdZdd„Zd„ Zy)Úmemoized_propertyz2A read-only @property that is only evaluated once.Nc                 ó^   — || _         |xs |j                  | _        |j                  | _        y r   ©ÚfgetÚ__doc__r	   ©r   r@   Údocs      r   r   zmemoized_property.__init__O   ó$   € ØˆŒ	ØÒ*˜dŸl™lˆŒØŸ™ˆ�r   c                 ób   — |€| S | j                  |«      x|j                  | j                  <   }|S r   )r@   Ú__dict__r	   )r   ÚobjÚclsÚresults       r   Ú__get__zmemoized_property.__get__T   s0   € Øˆ;ØˆKØ/3¯y©y¸«~Ð=ˆ�‰�T—]‘]Ñ# fØˆr   r   ©r	   r)   r*   rA   r   rJ   r+   r   r   r=   r=   L   s   „ Ù<ó&ó
r   r=   c                   ó   — e Zd ZdZdd„Zd„ Zy)Úmemoized_instancemethodzàDecorate a method memoize its return value.

    Best applied to no-arg methods: memoization is not sensitive to
    argument values, and will always return the same value even when
    called with different arguments.

    Nc                 ó^   — || _         |xs |j                  | _        |j                  | _        y r   r?   rB   s      r   r   z memoized_instancemethod.__init__d   rD   r   c                 ób   ‡ ‡— ‰€‰ S ˆˆ fd„}‰ j                   |_         ‰ j                  |_        |S )Nc                  ó¶   •‡—  ‰j                   ‰g| ¢­i |¤ŽŠˆfd„}‰j                  |_        ‰j                  |_        |‰j                  ‰j                  <   ‰S )Nc                  ó   •— ‰S r   r+   )ÚaÚkwrI   s     €r   Úmemoz>memoized_instancemethod.__get__.<locals>.oneshot.<locals>.memop   s   ø€ Ø�r   )r@   r	   rA   rF   )ÚargsrS   rT   rI   rG   r   s      @€€r   Úoneshotz0memoized_instancemethod.__get__.<locals>.oneshotm   sQ   ù€ Ø�T—Y‘Y˜sÐ0 TÒ0¨RÑ0ˆFôð !ŸM™MˆDŒMØŸ<™<ˆDŒLØ*.ˆC�L‰L˜Ÿ™Ñ'ØˆMr   )r	   rA   )r   rG   rH   rV   s   ``  r   rJ   zmemoized_instancemethod.__get__i   s0   ù€ Øˆ;ØˆKõ		ð  Ÿ=™=ˆÔØŸ,™,ˆŒØˆr   r   rK   r+   r   r   rM   rM   [   s   „ ñó&ó
r   rM   c                   ó   — e Zd ZdZd„ Zy)ÚSetLikeDictz0a dictionary that has some setlike methods on itc                 ó>   — t        di | ¤Ž}|j                  |«       |S )zˆproduce a 'union' of this dict and another (at the key level).

        values in the second dict take precedence over that of the firstr+   )rX   Úupdate)r   Úotherr9   s      r   ÚunionzSetLikeDict.union€   s!   € ô Ñ˜$ÑˆØ	�‰�ŒØˆr   N)r	   r)   r*   rA   r\   r+   r   r   rX   rX   }   s
   „ Ù:ór   rX   c                   ó$   — e Zd ZdZdd„Zd„ Zd„ Zy)ÚFastEncodingBufferzVa very rudimentary buffer that is faster than StringIO,
    and supports unicode data.Nc                 ó–   — t        j                  «       | _        || _        d| _        || _        | j                  j                  | _        y )NÚ )ÚcollectionsÚdequeÚdataÚencodingÚdelimÚerrorsÚappendÚwrite)r   rd   rf   s      r   r   zFastEncodingBuffer.__init__�   s8   € Ü×%Ñ%Ó'ˆŒ	Ø ˆŒØˆŒ
ØˆŒØ—Y‘Y×%Ñ%ˆ�
r   c                 ól   — t        j                  «       | _        | j                  j                  | _        y r   )ra   rb   rc   rg   rh   ©r   s    r   ÚtruncatezFastEncodingBuffer.truncate”   s#   € Ü×%Ñ%Ó'ˆŒ	Ø—Y‘Y×%Ñ%ˆ�
r   c                 óö   — | j                   rI| j                  j                  | j                  «      j	                  | j                   | j
                  «      S | j                  j                  | j                  «      S r   )rd   re   Újoinrc   Úencoderf   rj   s    r   ÚgetvaluezFastEncodingBuffer.getvalue˜   sS   € Ø�=Š=Ø—:‘:—?‘? 4§9¡9Ó-×4Ñ4Ø—‘˜tŸ{™{óð ð —:‘:—?‘? 4§9¡9Ó-Ð-r   )NÚstrict)r	   r)   r*   rA   r   rk   ro   r+   r   r   r^   r^   ‰   s   „ ñ"ó&ò&ó.r   r^   c                   óJ   — e Zd ZdZ G d„ d«      Zdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
y
)ÚLRUCachea$  A dictionary-like object that stores a limited number of items,
    discarding lesser used items periodically.

    this is a rewrite of LRUCache from Myghty to use a periodic timestamp-based
    paradigm so that synchronization is not really needed.  the size management
    is inexact.
    c                   ó   — e Zd Zd„ Zd„ Zy)úLRUCache._Itemc                 óR   — || _         || _        t        j                  «       | _        y r   )ÚkeyÚvalueÚtimeitÚdefault_timerÚ	timestamp©r   rv   rw   s      r   r   zLRUCache._Item.__init__«   s    € ØˆDŒHØˆDŒJÜ#×1Ñ1Ó3ˆD�Nr   c                 ó,   — t        | j                  «      S r   )Úreprrw   rj   s    r   Ú__repr__zLRUCache._Item.__repr__°   s   € Ü˜Ÿ
™
Ó#Ð#r   N)r	   r)   r*   r   r~   r+   r   r   Ú_Itemrt   ª   s   „ ò	4ó
	$r   r   c                 ó    — || _         || _        y r   )ÚcapacityÚ	threshold)r   r�   r‚   s      r   r   zLRUCache.__init__³   s   € Ø ˆŒØ"ˆ�r   c                 óx   — t         j                  | |«      }t        j                  «       |_        |j
                  S r   )ÚdictÚ__getitem__rx   ry   rz   rw   )r   rv   Úitems      r   r…   zLRUCache.__getitem__·   s.   € Ü×Ñ  cÓ*ˆÜ×-Ñ-Ó/ˆŒØ�z‰zÐr   c                 óf   — t         j                  | «      D �cg c]  }|j                  ‘Œ c}S c c}w r   )r„   Úvaluesrw   )r   Úis     r   rˆ   zLRUCache.values¼   s#   € Ü!%§¡¨TÓ!2Ö3˜A�—“Ò3Ð3ùÒ3s   ˜.c                 ó"   — || v r| |   S || |<   |S r   r+   r{   s      r   Ú
setdefaultzLRUCache.setdefault¿   s!   € Ø�$‰;Ø˜‘9ÐØˆˆS‰	Øˆr   c                 ó¶   — t         j                  | |«      }|€*| j                  ||«      }t         j                  | ||«       n||_        | j                  «        y r   )r„   Úgetr   Ú__setitem__rw   Ú_manage_size)r   rv   rw   r†   s       r   rŽ   zLRUCache.__setitem__Å   sL   € Ü�x‰x˜˜cÓ"ˆØˆ<Ø—:‘:˜c 5Ó)ˆDÜ×Ñ˜T 3¨Õ-àˆDŒJØ×ÑÕr   c                 óœ  — t        | «      | j                  | j                  | j                  z  z   kD  rŠt        t        j                  | «      t        j                  d«      d¬«      }|| j                  d  D ]  }	 | |j                  = Œ t        | «      | j                  | j                  | j                  z  z   kD  rŒ‰y y # t        $ r Y  ŒAw xY w)Nrz   T)rv   Úreverse)
Úlenr�   r‚   Úsortedr„   rˆ   ÚoperatorÚ
attrgetterrv   ÚKeyError)r   Úbytimer†   s      r   r�   zLRUCache._manage_sizeÎ   s±   € Ü�$‹i˜$Ÿ-™-¨$¯-©-¸$¿.¹.Ñ*HÑHÒHÜÜ—‘˜DÓ!Ü×'Ñ'¨Ó4ØôˆFð
 ˜tŸ}™}˜Ð/ò �ðØ˜TŸX™X™ðô �$‹i˜$Ÿ-™-¨$¯-©-¸$¿.¹.Ñ*HÑHÕHøô  ò ò ðús   Á:B>Â>	CÃ
CN)g      à?)r	   r)   r*   rA   r   r   r…   rˆ   r‹   rŽ   r�   r+   r   r   rr   rr   ¡   s/   „ ñ÷$ñ $ó#òò
4òòór   rr   z([ \t\f]* \# .* coding[=:][ \t]*([-\w.]+)c                 óØ  — | j                  «       }| j                  d«       	 | j                  «       }|j                  t        j
                  «      }|r|t        t        j
                  «      d }t        j                  |j                  dd«      «      }|sQ	 t        |j                  dd«      «       | j                  «       }t        j                  |j                  dd«      «      }|r |rt        d«      ‚	 | j                  |«       y|r"|j                  d«      | j                  |«       S 	 | j                  |«       y# t        t        f$ r Y Œjw xY w# | j                  |«       w xY w)a  Deduce the encoding of a Python source file (binary mode) from magic
    comment.

    It does this in the same way as the `Python interpreter`__

    .. __: http://docs.python.org/ref/encodings.html

    The ``fp`` argument should be a seekable file object in binary mode.
    r   NÚasciiÚignorez\python refuses to compile code with both a UTF8 byte-order-mark and a magic encoding commentÚutf_8r   )ÚtellÚseekÚreadlineÚ
startswithÚcodecsÚBOM_UTF8r’   Ú_PYTHON_MAGIC_COMMENT_reÚmatchÚdecoder   ÚImportErrorÚSyntaxErrorr   )ÚfpÚposÚline1Úhas_bomÚmÚline2s         r   Úparse_encodingr­   ä   s;  € ð �'‰'‹)€CØ‡G�GˆA„Jð"Ø—‘“ˆØ×"Ñ"¤6§?¡?Ó3ˆÙØœ#œfŸo™oÓ.Ð0Ð1ˆEä$×*Ñ*¨5¯<©<¸ÀÓ+JÓKˆÙðÜ�e—l‘l 7¨HÓ5Ô6ð Ÿ™›�Ü,×2Ñ2Ø—L‘L ¨(Ó3ó�ñ ÙÜ!ðDóð ð ð 	�‰��ñ Ø—7‘7˜1“:ð 	�‰��ð à
�‰��øô1  ¤Ð-ò ñ
 ðûð0 	�‰��ús7   £A4E ÂE Â3AE Ä
E ÅEÅE ÅEÅE ÅE)c                 ó–   ‡ — t        ‰ j                  «       «      }|j                  «        ddj                  ˆ fd„|D «       «      z   dz   S )z{repr() a dictionary with the keys in order.

    Used by the lexer unit test to compare parse trees based on strings.

    ú{z, c              3   ó2   •K  — | ]  }|›d ‰|   ›�–— Œ y­w)z: Nr+   )Ú.0ÚkÚds     €r   ú	<genexpr>z#sorted_dict_repr.<locals>.<genexpr>  s   øè ø€ Ò>°A¢q¨!¨Aª$Ô/Ñ>ùs   ƒú})r7   ÚkeysÚsortrm   )r³   r¶   s   ` r   Úsorted_dict_reprr¸     s<   ø€ ô �—‘“‹>€DØ‡I�I„KØ�—‘Ó>¸Ô>Ó>Ñ>ÀÑDÐDr   c                 óf   — t        | |«      5 }|j                  «       cd d d «       S # 1 sw Y   y xY wr   )ÚopenÚread)r/   Úmoder§   s      r   Ú	read_filer½      s,   € Ü	ˆd�DÓ	ð ˜RØ�w‰w‹y÷÷ ò ús   �'§0c                 óÆ   — t        | d«      }	 t        |«      }|j                  «       }|r|j                  |«      }||j	                  «        S # |j	                  «        w xY w)NÚrb)rº   r­   r»   r¤   Úclose)r/   r§   rd   rc   s       r   Úread_python_filerÁ   %  sO   € Ü	ˆd�DÓ	€BðÜ! "Ó%ˆØ�w‰w‹yˆÙØ—;‘;˜xÓ(ˆDØà
�‰�
øˆ�‰�
ús   Ž/A ÁA r   )r¿   )Úastr   r    ra   r”   r.   Úrerx   Úcompatr   r   r   r4   r;   r=   rM   r„   rX   r^   rr   ÚcompileÚVERBOSEr¢   r­   r¸   r½   rÁ   r+   r   r   ú<module>rÇ      s¢   ðõ Û Û Û Û 	Û 	Û å *ò÷ ñ  ò<ó÷ñ ÷ñ ôD	�$ô 	÷.ñ .ô0:ˆtô :ð| &˜2Ÿ:™:Ø/°·±óÐ ò
.òbEóó
	r   