ó
    F\h^^  ã                   óô   • S r 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QrSSSSS.S jjrSSSSS.S	 jjrSS
.S jrS rS rS r " S S5      rS r " S S5      r\" \\\\\\\" S5      15      rS r S r!g)a/  Support to pretty-print lists, tuples, & dictionaries recursively.

Very simple, but useful, especially in debugging data structures.

Classes
-------

PrettyPrinter()
    Handle pretty-printing operations onto a stream using a configured
    set of formatting parameters.

Functions
---------

pformat()
    Format a Python object into a pretty-printed representation.

pprint()
    Pretty-print a Python object to a stream [default is sys.stdout].

saferepr()
    Generate a 'standard' repr()-like value, but protect against recursive
    data structures.

é    N)ÚStringIO)ÚpprintÚpformatÚ
isreadableÚisrecursiveÚsafereprÚPrettyPrinterÚppFT©ÚcompactÚ
sort_dictsÚunderscore_numbersc          
      ó>   • [        XX4XVUS9nUR                  U 5        g)zAPretty-print a Python object to a stream [default is sys.stdout].)ÚstreamÚindentÚwidthÚdepthr   r   r   N)r	   r   )	Úobjectr   r   r   r   r   r   r   Úprinters	            Ú/usr/lib/python3.13/pprint.pyr   r   0   s'   € ô Ø¨EØØ-ñ/€Gð ‡N�N�6Õó    c          	      ó8   • [        XUXEUS9R                  U 5      $ )z<Format a Python object into a pretty-printed representation.)r   r   r   r   r   r   )r	   r   )r   r   r   r   r   r   r   s          r   r   r   9   s&   € ô  ¸5Ø!(Ø,>ñ@ç@GÁÈÃðPr   )r   c                ó&   • [        U /UQ7SU0UD6  g)zPretty-print a Python objectr   N)r   )r   r   ÚargsÚkwargss       r   r
   r
   @   s   € ä
ˆ6Ð:�DÒ: ZÐ:°6Ó:r   c                 ó@   • [        5       R                  U 0 SS5      S   $ )z=Version of repr() which can handle recursive data structures.Nr   ©r	   Ú
_safe_repr©r   s    r   r   r   D   ó    € ä‹?×%Ñ% f¨b°$¸Ó:¸1Ñ=Ð=r   c                 ó@   • [        5       R                  U 0 SS5      S   $ )z4Determine if saferepr(object) is readable by eval().Nr   é   r   r   s    r   r   r   H   r    r   c                 ó@   • [        5       R                  U 0 SS5      S   $ )z8Determine if object requires a recursive representation.Nr   é   r   r   s    r   r   r   L   r    r   c                   ó*   • \ rS rSrSrS/rS rS rSrg)Ú	_safe_keyéP   aA  Helper function for key functions when sorting unorderable objects.

The wrapped-object will fallback to a Py2.x style comparison for
unorderable types (sorting first comparing the type name and then by
the obj ids).  Does not work recursively, so dict.items() must have
_safe_key applied to both the key and the value.

Úobjc                 ó   • Xl         g ©N©r(   )Úselfr(   s     r   Ú__init__Ú_safe_key.__init__\   s   € Ø�r   c                 ó$  •  U R                   UR                   :  $ ! [         aj    [        [        U R                   5      5      [	        U R                   5      4[        [        UR                   5      5      [	        UR                   5      4:  s $ f = fr*   )r(   Ú	TypeErrorÚstrÚtypeÚid)r,   Úothers     r   Ú__lt__Ú_safe_key.__lt___   sm   € ð	;Ø—8‘8˜eŸi™iÑ'Ð'øÜó 	;Üœ˜dŸh™h›Ó(¬"¨T¯X©X«,Ð7Üœ˜eŸi™i›Ó)¬2¨e¯i©i«=Ð9ñ:ò ;ð	;ús   ‚ ›A1BÂBr+   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r-   r5   Ú__static_attributes__© r   r   r&   r&   P   s   † ñð �€Iòõ;r   r&   c                 ó:   • [        U S   5      [        U S   5      4$ )z&Helper function for comparing 2-tuplesr   r"   )r&   )Úts    r   Ú_safe_tuplerA   f   s   € ä�Q�q‘T‹?œI a¨¡d›OÐ+Ð+r   c                   óÀ  • \ rS rSrS%SSSS.S jjrS rS rS	 rS
 rS r	S r
0 rS r\\\R                  '   S r\\\R"                  R                  '   S r\\\R                  '   S r\\\R                  '   S r\\\R                  '   \\\R                  '   S r\\\R                  '   S r\\\R                  '   S r\\\R                  '   S r\\\ RB                  R                  '   S r"\"\\ RF                  R                  '   S r$S r%S r&S r'S r(S r)\)\\RT                  R                  '   S r+\+\\RX                  R                  '   S r-\-\\R\                  R                  '   S r/\/\\R`                  R                  '   S  r1\1\\Rd                  R                  '   S! r3\3\\Rh                  R                  '   S" r5\5\\Rl                  R                  '   S# r7S$r8g)&r	   éj   NFTr   c                ó8  • [        U5      n[        U5      nUS:  a  [        S5      eUb  US::  a  [        S5      eU(       d  [        S5      eX0l        Xl        X l        Ub  X@l        O[        R                  U l        [        U5      U l	        X`l
        Xpl        g)aY  Handle pretty printing operations onto a stream using a set of
configured parameters.

indent
    Number of spaces to indent for each level of nesting.

width
    Attempted maximum number of columns in the output.

depth
    The maximum depth to print out nested structures.

stream
    The desired output stream.  If omitted (or false), the standard
    output stream available at construction will be used.

compact
    If true, several items will be combined in one line.

sort_dicts
    If true, dict keys are sorted.

underscore_numbers
    If true, digit groups are separated with underscores.

r   zindent must be >= 0Nzdepth must be > 0zwidth must be != 0)ÚintÚ
ValueErrorÚ_depthÚ_indent_per_levelÚ_widthÚ_streamÚ_sysÚstdoutÚboolÚ_compactÚ_sort_dictsÚ_underscore_numbers)r,   r   r   r   r   r   r   r   s           r   r-   ÚPrettyPrinter.__init__k   s�   € ô8 �V“ˆÜ�E“
ˆØ�A‹:ÜÐ2Ó3Ð3ØÑ ¨!£ÜÐ0Ó1Ð1ÞÜÐ1Ó2Ð2ØŒØ!'ÔØŒØÑØ!�LäŸ;™;ˆDŒLÜ˜W›ˆŒØ%ÔØ#5Õ r   c                 ó”   • U R                   b;  U R                  XR                   SS0 S5        U R                   R                  S5        g g )Nr   Ú
)rJ   Ú_formatÚwrite©r,   r   s     r   r   ÚPrettyPrinter.pprintš   s;   € Ø�<‰<Ñ#Ø�L‰L˜§¡¨q°!°R¸Ô;Ø�L‰L×Ñ˜tÕ$ð $r   c                 ó`   • [        5       nU R                  XSS0 S5        UR                  5       $ ©Nr   )Ú	_StringIOrT   Úgetvalue)r,   r   Úsios      r   r   ÚPrettyPrinter.pformatŸ   s)   € Ü‹kˆØ�‰�V ! Q¨¨AÔ.Ø�|‰|‹~Ðr   c                 ó0   • U R                  U0 SS5      S   $ )Nr   r$   ©ÚformatrV   s     r   r   ÚPrettyPrinter.isrecursive¤   s   € Ø�{‰{˜6 2 q¨!Ó,¨QÑ/Ð/r   c                 óP   • U R                  U0 SS5      u  p#nU=(       a    U(       + $ rY   r_   )r,   r   ÚsÚreadableÚ	recursives        r   r   ÚPrettyPrinter.isreadable§   s(   € Ø!%§¡¨V°R¸¸AÓ!>Ñˆ�YØ×) 	œMÐ)r   c           
      óÚ  • [        U5      nXu;   a)  UR                  [        U5      5        SU l        SU l        g U R                  XU5      nU R                  U-
  U-
  n	[        U5      U	:”  aî  U R                  R                  [        U5      R                  S 5      n
U
b  SXW'   U
" XX#XEUS-   5        XW	 g [        R                  " U5      (       aŒ  [        U[        5      (       dw  UR                  R                   (       a\  [#        UR                  S5      (       aA  SUR                  R$                  R&                  ;   a  SXW'   U R)                  XX4XVS-   5        XW	 g UR                  U5        g )NTFr"   Ú__wrapped__Ú__create_fn__)r3   rU   Ú
_recursionÚ
_recursiveÚ	_readableÚ_reprrI   ÚlenÚ	_dispatchÚgetr2   Ú__repr__Ú_dataclassesÚis_dataclassÚ
isinstanceÚ__dataclass_params__ÚreprÚhasattrrh   r9   Ú_pprint_dataclass)r,   r   r   r   Ú	allowanceÚcontextÚlevelÚobjidÚrepÚ	max_widthÚps              r   rT   ÚPrettyPrinter._format«   s1  € Ü�6“
ˆØÓØ�L‰Lœ FÓ+Ô,Ø"ˆDŒOØ"ˆDŒNØØ�j‰j˜¨%Ó0ˆØ—K‘K &Ñ(¨9Ñ4ˆ	Üˆs‹8�iÓØ—‘×"Ñ"¤4¨£<×#8Ñ#8¸$Ó?ˆAØ‰}Ø!"�‘Ù�$ °	ÀEÈAÁIÔNØ�NØÜ×+Ò+¨F×3Ñ3Ü  ¬×.Ñ.Ø×-Ñ-×2×2ä˜&Ÿ/™/¨=×9Ñ9Ø! V§_¡_×%@Ñ%@×%MÑ%MÓMØ!"�‘Ø×&Ñ& v°vÈ'Ð[\ÑS\Ô]Ø�NØØ�‰�SÕr   c                 óz  • UR                   R                  nU[        U5      S-   -  n[        R                  " U5       Vs/ s H6  oˆR
                  (       d  M  UR                  [        XR                  5      4PM8     n	nUR                  US-   5        U R                  X’X4XV5        UR                  S5        g s  snf )Nr"   Ú(Ú))
Ú	__class__r7   rn   rr   Úfieldsrv   ÚnameÚgetattrrU   Ú_format_namespace_items)
r,   r   r   r   ry   rz   r{   Úcls_nameÚfÚitemss
             r   rx   ÚPrettyPrinter._pprint_dataclassÇ   s—   € Ø×#Ñ#×,Ñ,ˆØ”#�h“- !Ñ#Ñ#ˆÜ<H×<OÒ<OÐPVÔ<WÓbÒ<W°q×[aÕ[aÓ2�!—&‘&œ' &¯&©&Ó1Ó2Ñ<WˆÐbØ�‰�X ‘^Ô$Ø×$Ñ$ U°FÀwÔVØ�‰�SÕùò cs   Á B8Á%B8c                 óX  • UR                   nU" S5        U R                  S:”  a  U" U R                  S-
  S-  5        [        U5      nU(       aT  U R                  (       a  [	        UR                  5       [        S9n	OUR                  5       n	U R                  X’X4S-   XV5        U" S5        g )NÚ{r"   Ú ©ÚkeyÚ})rU   rH   rn   rO   Úsortedr‹   rA   Ú_format_dict_items)
r,   r   r   r   ry   rz   r{   rU   Úlengthr‹   s
             r   Ú_pprint_dictÚPrettyPrinter._pprint_dictÑ   sŠ   € Ø—‘ˆÙˆcŒ
Ø×!Ñ! AÓ%Ù�4×)Ñ)¨AÑ-°Ñ4Ô5Ü�V“ˆÞØ××Ü˜vŸ|™|›~´;Ñ?‘àŸ™›�Ø×#Ñ# E°6Àq¹=Ø$+ô4áˆc�
r   c                 ó`  • [        U5      (       d  UR                  [        U5      5        g UR                  nUR                  UR                  S-   5        U R                  [        UR                  5       5      UU[        UR                  5      -   S-   US-   XV5        UR                  S5        g )Nr‚   r"   rƒ   )rn   rU   rv   r„   r7   rT   Úlistr‹   )r,   r   r   r   ry   rz   r{   Úclss           r   Ú_pprint_ordered_dictÚ"PrettyPrinter._pprint_ordered_dictâ   s†   € Ü�6�{‰{Ø�L‰Lœ˜f›Ô&ØØ×ÑˆØ�‰�S—\‘\ CÑ'Ô(Ø�‰”T˜&Ÿ,™,›.Ó)¨6Øœc #§,¡,Ó/Ñ/°!Ñ3°YÀ±]Øô	%ð 	�‰�SÕr   c                 ót   • UR                  S5        U R                  XX4S-   XV5        UR                  S5        g )NÚ[r"   Ú])rU   Ú_format_items©r,   r   r   r   ry   rz   r{   s          r   Ú_pprint_listÚPrettyPrinter._pprint_listï   s3   € Ø�‰�SÔØ×Ñ˜6¨6¸q±=Ø"ô	+à�‰�SÕr   c           	      ó¬   • UR                  S5        [        U5      S:X  a  SOSnU R                  XX4[        U5      -   XV5        UR                  U5        g )Nr‚   r"   z,)rƒ   )rU   rn   r    )r,   r   r   r   ry   rz   r{   Úendchars           r   Ú_pprint_tupleÚPrettyPrinter._pprint_tuple÷   sJ   € Ø�‰�SÔÜ˜f›+¨Ó*‘$°ˆØ×Ñ˜6¨6¼sÀ7»|Ñ3KØ"ô	+à�‰�WÕr   c           	      óž  • [        U5      (       d  UR                  [        U5      5        g UR                  nU[        L a  UR                  S5        SnO;UR                  UR
                  S-   5        SnU[        UR
                  5      S-   -  n[        U[        S9nU R                  XX4[        U5      -   XV5        UR                  U5        g )NrŽ   r’   ú({ú})r"   r�   )	rn   rU   rv   r„   Úsetr7   r“   r&   r    )	r,   r   r   r   ry   rz   r{   Útypr¥   s	            r   Ú_pprint_setÚPrettyPrinter._pprint_set   s©   € Ü�6�{‰{Ø�L‰Lœ˜f›Ô&ØØ×ÑˆØ”#Š:Ø�L‰L˜ÔØ‰Gà�L‰L˜Ÿ™¨Ñ,Ô-ØˆGØ”c˜#Ÿ,™,Ó'¨!Ñ+Ñ+ˆFÜ˜¤IÑ.ˆØ×Ñ˜6¨6¼sÀ7»|Ñ3KØ"ô	+à�‰�WÕr   c                 ó  • UR                   n[        U5      (       d  U" [        U5      5        g / nUR                  S5      n	US:X  a
  US-  nUS-  nU R                  U-
  =p«[        U	5       GH/  u  pÍ[        U5      nU[        U	5      S-
  :X  a  X¤-  n
[        U5      U
::  a  UR                  U5        MI  [        R                  " SU5      nU(       d   eUS   (       a   eUR                  5         UnSn[        U5       Hs  u  nnUU-   nU[        U5      S-
  :X  a  U[        U	5      S-
  :X  a  UU-  n[        [        U5      5      U:”  a%  U(       a  UR                  [        U5      5        UnMq  UnMu     U(       d  GM  UR                  [        U5      5        GM2     [        U5      S:X  a	  U" W5        g US:X  a  U" S5        [        U5       H!  u  pÎUS:”  a  U" SS	U-  -   5        U" U5        M#     US:X  a	  U" S
5        g g )NTr"   z\S*\s*éÿÿÿÿÚ r‚   r   rS   r�   rƒ   )
rU   rn   rv   Ú
splitlinesrI   Ú	enumerateÚappendÚreÚfindallÚpop)r,   r   r   r   ry   rz   r{   rU   ÚchunksÚlinesÚ
max_width1r~   ÚiÚliner}   ÚpartsÚ
max_width2ÚcurrentÚjÚpartÚ	candidates                        r   Ú_pprint_strÚPrettyPrinter._pprint_str  sÙ  € Ø—‘ˆÜ�6�{‰{Ù”$�v“,ÔØØˆØ×!Ñ! $Ó'ˆØ�A‹:Ø�a‰KˆFØ˜‰NˆIØ!%§¡¨vÑ!5Ð5ˆ
Ü  ×'‰GˆAÜ�t“*ˆCØ”C˜“J ‘NÓ"ØÑ'�
Ü�3‹x˜:Ó%Ø—‘˜cÖ"ô Ÿ
š
 9¨dÓ3�Þ��uØ  Ÿ9Ð$�}Ø—	‘	”Ø&�
Ø�Ü(¨Ö/‘G�A�tØ '¨$¡�IØœC ›J¨™NÓ*¨q´C¸³JÀ±NÓ/BØ" iÑ/˜
Üœ4 	›?Ó+¨jÓ8Þ"Ø"ŸM™M¬$¨w«-Ô8Ø"&šà"+šñ  0÷ ‘7Ø—M‘M¤$ w£-×0ñ3 (ô4 ˆv‹;˜!ÓÙ�#ŒJØØ�A‹:Ù�#ŒJÜ Ö'‰FˆAØ�1‹uÙ�d˜S ™ZÑ'Ô(Ù�#ŽJñ (ð �A‹:Ù�#�Jð r   c                 ó@  • UR                   n[        U5      S::  a  U" [        U5      5        g US:H  nU(       a  US-  nUS-  nU" S5        Sn	[        XR                  U-
  U5       H$  n
U" U	5        U" U
5        U	(       a  M  SSU-  -   n	M&     U(       a	  U" S5        g g )Né   r"   r‚   r±   rS   r�   rƒ   )rU   rn   rv   Ú_wrap_bytes_reprrI   )r,   r   r   r   ry   rz   r{   rU   ÚparensÚdelimr}   s              r   Ú_pprint_bytesÚPrettyPrinter._pprint_bytesG  s�   € Ø—‘ˆÜˆv‹;˜!ÓÙ”$�v“,ÔØØ˜!‘ˆÞØ�a‰KˆFØ˜‰NˆIÙ�#ŒJØˆÜ# F¯K©K¸&Ñ,@À)ÖLˆCÙ�%ŒLÙ�#ŒJß�5Ø˜s 6™zÑ)’ñ	 Mö
 Ù�#�Jð r   c           	      óˆ   • UR                   nU" S5        U R                  [        U5      X#S-   US-   XVS-   5        U" S5        g )Nz
bytearray(é
   r"   rƒ   )rU   rÊ   Úbytes)r,   r   r   r   ry   rz   r{   rU   s           r   Ú_pprint_bytearrayÚPrettyPrinter._pprint_bytearray\  sA   € Ø—‘ˆÙˆlÔØ×Ñœ5 ›=¨&¸2±+Ø$ q™=¨'¸1±9ô	>áˆc�
r   c                 ó˜   • UR                  S5        U R                  UR                  5       X#S-   US-   XV5        UR                  S5        g )Nzmappingproxy(é   r"   rƒ   )rU   rT   Úcopyr¡   s          r   Ú_pprint_mappingproxyÚ"PrettyPrinter._pprint_mappingproxye  s=   € Ø�‰�_Ô%Ø�‰�V—[‘[“] F°R©K¸ÀQ¹Øô	%à�‰�SÕr   c                 ó4  • [        U5      [        R                  L a  SnOUR                  R                  nU[        U5      S-   -  nUR                  R                  5       nUR                  US-   5        U R                  X‚X4XV5        UR                  S5        g )NÚ	namespacer"   r‚   rƒ   )
r2   Ú_typesÚSimpleNamespacer„   r7   rn   Ú__dict__r‹   rU   rˆ   )	r,   r   r   r   ry   rz   r{   r‰   r‹   s	            r   Ú_pprint_simplenamespaceÚ%PrettyPrinter._pprint_simplenamespacem  s   € Ü�‹<œ6×1Ñ1Ò1ð #‰Hà×'Ñ'×0Ñ0ˆHØ”#�h“- !Ñ#Ñ#ˆØ—‘×%Ñ%Ó'ˆØ�‰�X ‘^Ô$Ø×$Ñ$ U°FÀwÔVØ�‰�SÕr   c           	      óX  • UR                   nX0R                  -  nSSU-  -   n[        U5      S-
  n	[        U5       Hk  u  n
u  p¼X©:H  nU R	                  XµU5      nU" U5        U" S5        U R                  XÂU[        U5      -   S-   U(       a  UOSXV5        U(       a  Mc  U" U5        Mm     g )Nú,
r�   r"   ú: r$   )rU   rH   rn   r³   rm   rT   )r,   r‹   r   r   ry   rz   r{   rU   ÚdelimnlÚ
last_indexr»   r‘   ÚentÚlastr}   s                  r   r”   Ú PrettyPrinter._format_dict_items|  s¤   € à—‘ˆØ×(Ñ(Ñ(ˆØ˜# ™,Ñ&ˆÜ˜“Z !‘^ˆ
Ü& uÖ-‰MˆA‰z�Ø‘?ˆDØ—*‘*˜S¨5Ó1ˆCÙ�#ŒJÙ�$ŒKØ�L‰L˜ f¬s°3«xÑ&7¸!Ñ&;Þ&*™°Ø ô)÷ �4Ù�g–ò .r   c           	      óH  • UR                   nSSU-  -   n[        U5      S-
  n	[        U5       Hq  u  n
u  p¼X©:H  nU" U5        U" S5        [        U5      U;   a	  U" S5        O,U R	                  XÂU[        U5      -   S-   U(       a  UOSXV5        U(       a  Mi  U" U5        Ms     g )NrÞ   r�   r"   Ú=ú...)rU   rn   r³   r3   rT   )r,   r‹   r   r   ry   rz   r{   rU   rà   rá   r»   r‘   râ   rã   s                 r   rˆ   Ú%PrettyPrinter._format_namespace_items�  s›   € Ø—‘ˆØ˜# ™,Ñ&ˆÜ˜“Z !‘^ˆ
Ü& uÖ-‰MˆA‰z�Ø‘?ˆDÙ�#ŒJÙ�#ŒJÜ�#‹w˜'Ó!ñ �e•à—‘˜S¨&´3°s³8Ñ*;¸aÑ*?Þ*.™Y°AØ$ô-÷ �4Ù�g–ò .r   c                 ó–  • UR                   nX0R                  -  nU R                  S:”  a  U" U R                  S-
  S-  5        SSU-  -   nSn	U R                  U-
  S-   =p«[        U5      n [	        U5      nSnU(       d   Un [	        U5      nU R                  (       aP  U R                  XõU5      n[        U5      S-   nU
U:  a  Un
U	(       a  Un	U
U:¼  a  U
U-  n
U" U	5        Sn	U" U5        Mv  U" U	5        Un	U R                  XòUU(       a  UOSXV5        U(       d  MŸ  g g ! [
         a     g f = f! [
         a    SnX´-  nX¤-  n
 N¹f = f)	Nr"   r�   rÞ   r±   FTr$   ú, )
rU   rH   rI   ÚiterÚnextÚStopIterationrN   rm   rn   rT   )r,   r‹   r   r   ry   rz   r{   rU   rà   rÉ   r   r~   ÚitÚnext_entrã   râ   r}   Úws                     r   r    ÚPrettyPrinter._format_items   sb  € Ø—‘ˆØ×(Ñ(Ñ(ˆØ×!Ñ! AÓ%Ù�4×)Ñ)¨AÑ-°Ñ4Ô5Ø˜# ™,Ñ&ˆØˆØ ŸK™K¨&Ñ0°1Ñ4Ð4ˆÜ�%‹[ˆð	Ü˜B“xˆHð ˆÞØˆCð#Ü ›8�ð
 �}�}Ø—j‘j ¨uÓ5�Ü˜“H˜q‘L�Ø˜1“9Ø%�EÞØ '˜Ø˜A“:Ø˜Q‘J�EÙ˜%”LØ �EÙ˜#”JÙÙ�%ŒLØˆEØ�L‰L˜ fÞ&*™°Ø ô)÷/ ’$øô ó 	Ùð	ûô !ó #Ø�ØÑ&�	ØÑ"’ð#ús$   Á,D! ÂD1 Ä!
D.Ä-D.Ä1EÅEc                 óš   • U R                  XR                  5       U R                  U5      u  pEnU(       d  SU l        U(       a  SU l        U$ )NFT)r`   rÓ   rG   rl   rk   )r,   r   rz   r{   rv   rd   re   s          r   rm   ÚPrettyPrinter._reprÉ  s@   € Ø$(§K¡K°¿¹»Ø04·±¸Uó%DÑ!ˆ˜	æØ"ˆDŒNÞØ"ˆDŒOØˆr   c                 ó&   • U R                  XX45      $ )z°Format object for a specific context, returning a string
and flags indicating whether the representation is 'readable'
and whether the object represents a recursive construct.
)r   )r,   r   rz   Ú	maxlevelsr{   s        r   r`   ÚPrettyPrinter.formatÒ  s   € ð
 �‰˜v°	ÓAÐAr   c                 ó€  • [        U5      (       d  UR                  [        U5      5        g U R                  UR                  XV5      nUR
                  nU[        UR                  5      S-   -  nUR                  UR                  < SU< SSU-  < 35        U R                  XX4S-   XV5        UR                  S5        g )Nr"   r‚   rÞ   r�   rƒ   )rn   rU   rv   rm   Údefault_factoryr„   r7   r–   )	r,   r   r   r   ry   rz   r{   Úrdfrš   s	            r   Ú_pprint_default_dictÚ"PrettyPrinter._pprint_default_dictÙ  s”   € Ü�6�{‰{Ø�L‰Lœ˜f›Ô&ØØ�j‰j˜×/Ñ/°Ó@ˆØ×ÑˆØ”#�c—l‘lÓ# aÑ'Ñ'ˆØ�‰ S§\¤\³3¸¸f»ÐEÔFØ×Ñ˜&¨&¸a±-ÀÔPØ�‰�SÕr   c                 ó²  • [        U5      (       d  UR                  [        U5      5        g UR                  nUR                  UR                  S-   5        U R
                  S:”  a!  UR                  U R
                  S-
  S-  5        UR                  5       nU R                  X‚U[        UR                  5      -   S-   US-   XV5        UR                  S5        g )Nr©   r"   r�   r$   rª   )rn   rU   rv   r„   r7   rH   Úmost_commonr”   )	r,   r   r   r   ry   rz   r{   rš   r‹   s	            r   Ú_pprint_counterÚPrettyPrinter._pprint_counteræ  s³   € Ü�6�{‰{Ø�L‰Lœ˜f›Ô&ØØ×ÑˆØ�‰�S—\‘\ DÑ(Ô)Ø×!Ñ! AÓ%Ø�L‰L˜$×0Ñ0°1Ñ4¸Ñ;Ô<Ø×"Ñ"Ó$ˆØ×Ñ Ø &¬¨S¯\©\Ó):Ñ :¸QÑ >À	ÈAÁØ 'ô	0ð 	�‰�TÕr   c           	      ó  • [        UR                  5      (       d  UR                  [        U5      5        g UR                  nUR                  UR
                  S-   5        U[        UR
                  5      S-   -  n[        UR                  5       Hu  u  p‰U[        UR                  5      S-
  :X  a)  U R                  X’X4S-   XV5        UR                  S5        MJ  U R                  X’USXV5        UR                  SSU-  -   5        Mw     g )Nr‚   r"   rƒ   rÞ   r�   )rn   ÚmapsrU   rv   r„   r7   r³   rT   )
r,   r   r   r   ry   rz   r{   rš   r»   Úms
             r   Ú_pprint_chain_mapÚPrettyPrinter._pprint_chain_mapö  sÎ   € Ü�6—;‘;×ÑØ�L‰Lœ˜f›Ô&ØØ×ÑˆØ�‰�S—\‘\ CÑ'Ô(Ø”#�c—l‘lÓ# aÑ'Ñ'ˆÜ˜fŸk™kÖ*‰DˆAØ”C˜Ÿ™Ó$ qÑ(Ó(Ø—‘˜Q¨¸A±¸wÔNØ—‘˜SÖ!à—‘˜Q¨°°7ÔBØ—‘˜U S¨6¡\Ñ1Ö2ò +r   c                 ó
  • [        U5      (       d  UR                  [        U5      5        g UR                  nUR                  UR                  S-   5        U[        UR                  5      S-   -  nUR                  S5        UR
                  c(  U R                  XX4S-   XV5        UR                  S5        g U R                  XUSXV5        U R                  UR
                  XV5      nUR                  SSU-  < SU< S	35        g )
Nr‚   r"   rž   r$   z])z],
r�   zmaxlen=rƒ   )rn   rU   rv   r„   r7   Úmaxlenr    rm   )	r,   r   r   r   ry   rz   r{   rš   Úrmls	            r   Ú_pprint_dequeÚPrettyPrinter._pprint_deque  sÑ   € Ü�6�{‰{Ø�L‰Lœ˜f›Ô&ØØ×ÑˆØ�‰�S—\‘\ CÑ'Ô(Ø”#�c—l‘lÓ# aÑ'Ñ'ˆØ�‰�SÔØ�=‰=Ñ Ø×Ñ˜v¨vÀ1±}Ø&ô/à�L‰L˜Õà×Ñ˜v¨v°qØ&ô/à—*‘*˜VŸ]™]¨GÓ;ˆCØ�LŠL¨s°V¬|»SÐAÕBr   c           	      óF   • U R                  UR                  X#XEUS-
  5        g ©Nr"   ©rT   Údatar¡   s          r   Ú_pprint_user_dictÚPrettyPrinter._pprint_user_dict  ó   € Ø�‰�V—[‘[ &°)ÀeÈaÁiÕPr   c           	      óF   • U R                  UR                  X#XEUS-
  5        g r  r  r¡   s          r   Ú_pprint_user_listÚPrettyPrinter._pprint_user_list   r  r   c           	      óF   • U R                  UR                  X#XEUS-
  5        g r  r  r¡   s          r   Ú_pprint_user_stringÚ!PrettyPrinter._pprint_user_string%  r  r   c                 ó6  • [        U5      nU[        ;   a  [        U5      SS4$ [        USS 5      n[	        U[
        5      (       a9  U[
        R                  L a&  U R                  (       a  US SS4$ [        U5      SS4$ [	        U[        5      (       Ga*  U[        R                  L Ga  U(       d  g[        U5      nU(       a  XC:¼  a  SSXr;   4$ Xr;   a  [        U5      SS4$ SX''   SnSn	/ n
U
R                  nUS-  nU R                  (       a  [        UR                  5       [        S9nOUR                  5       nU Hf  u  pÞU R!                  XÒX45      u  nnnU R!                  XâX45      u  nnnU" U< S	U< 35        U=(       a    U=(       a    UnU(       d	  U(       d  Md  Sn	Mh     X'	 S
SR#                  U
5      -  X‰4$ [	        U[$        5      (       a  U[$        R                  L d(  [	        U[&        5      (       aò  U[&        R                  L aß  [	        U[$        5      (       a  U(       d  gSnO[)        U5      S:X  a  SnO
U(       d  gSn[        U5      nU(       a  XC:¼  a
  US-  SXr;   4$ Xr;   a  [        U5      SS4$ SX''   SnSn	/ n
U
R                  nUS-  nU H6  nU R!                  UX#U5      u  nnnU" U5        U(       d  SnU(       d  M4  Sn	M8     X'	 USR#                  U
5      -  X‰4$ [        U5      nUU=(       a    UR+                  S5      (       + S4$ )NTFrq   Ú_d)z{}TFz{...}r"   r�   rß   z{%s}rê   )z[]TFz[%s]z(%s,))z()TFz(%s)rç   Ú<)r2   Ú_builtin_scalarsrv   r‡   Ú
issubclassrE   rq   rP   Údictr3   rj   r´   rO   r“   r‹   rA   r`   Újoinr™   Útuplern   Ú
startswith)r,   r   rz   rõ   r{   r¬   Úrr|   rd   re   Ú
componentsr´   r‹   ÚkÚvÚkreprÚ	kreadableÚkrecurÚvreprÚ	vreadableÚvrecurr`   ÚoÚoreprÚ	oreadableÚorecurr}   s                              r   r   ÚPrettyPrinter._safe_repr*  sö  € ä�6‹lˆØÔ"Ó"Ü˜“<  uÐ,Ð,ä�C˜ TÓ*ˆä�cœ3×Ñ A¬¯©Ò$5Ø×'×'Ø  ˜ t¨UÐ2Ð2ä˜F“| T¨5Ð0Ð0ä�cœ4× Ò  Q¬$¯-©-Ó%7ÞØ(Ü�v“JˆEÞ˜UÓ/Ø  uÑ'7Ð7Ð7ØÓÜ! &Ó)¨5°$Ð6Ð6ØˆG‰NØˆHØˆIØˆJØ×&Ñ&ˆFØ�Q‰JˆEØ××Ü˜vŸ|™|›~´;Ñ?‘àŸ™›�Û‘�Ø+/¯;©;Ø 	ó,2Ñ(��y &à+/¯;©;Ø 	ó,2Ñ(��y &á£5ª%Ð0Ô1Ø#×?¨	×?°i�ÞŸV˜VØ $’Iñ ð �Ø˜DŸI™I jÓ1Ñ1°8ÐFÐFä�sœD×!Ñ! a¬4¯=©=Ò&8Ü�sœE×"Ñ" q¬E¯N©NÒ':Ü˜#œt×$Ñ$ÞØ,Ø‘Ü�V“ Ó!Ø ‘æØ,Ø�Ü�v“JˆEÞ˜UÓ/Ø ‘~ u¨eÑ.>Ð>Ð>ØÓÜ! &Ó)¨5°$Ð6Ð6ØˆG‰NØˆHØˆIØˆJØ×&Ñ&ˆFØ�Q‰JˆEÛ�Ø+/¯;©;Ø�w¨5ó,2Ñ(��y &á�u”Þ Ø$�Hß�6Ø $’Iñ ð �Ø˜DŸI™I jÓ1Ñ1°8ÐFÐFä�6‹lˆØ�S×4 §¡°Ó!4Ô4°uÐ<Ð<r   )	rN   rG   rH   rl   rk   rO   rJ   rP   rI   )r"   r'   NN)9r7   r8   r9   r:   r-   r   r   r   r   rT   rx   ro   r–   r  rq   r›   Ú_collectionsÚOrderedDictr¢   r™   r¦   r  r­   r«   Ú	frozensetrÃ   r1   rÊ   rÎ   rÏ   Ú	bytearrayrÔ   rØ   ÚMappingProxyTyperÛ   rÙ   r”   rˆ   r    rm   r`   rú   Údefaultdictrþ   ÚCounterr  ÚChainMapr  Údequer  ÚUserDictr  ÚUserListr  Ú
UserStringr   r=   r>   r   r   r	   r	   j   s.  † ð-6Ø¨4ÀEö-6ò^%ò
ò
0ò*òò8ð €Iòð  ,€Iˆd�m‰mÑò	ð 4H€Iˆl×&Ñ&×/Ñ/Ñ0òð  ,€Iˆd�m‰mÑòð !.€Iˆe�n‰nÑòð" *€Iˆc�l‰lÑØ$/€Iˆi× Ñ Ñ!ò/ðb *€Iˆc�l‰lÑòð& !.€Iˆe�n‰nÑòð %6€Iˆi× Ñ Ñ!òð 3G€Iˆf×%Ñ%×.Ñ.Ñ/òð 2I€Iˆf×$Ñ$×-Ñ-Ñ.òò"ò&')òRòBò	ð 4H€Iˆl×&Ñ&×/Ñ/Ñ0òð 0?€Iˆl×"Ñ"×+Ñ+Ñ,ò3ð 1B€Iˆl×#Ñ#×,Ñ,Ñ-òCð$ .;€Iˆl× Ñ ×)Ñ)Ñ*òQð 1B€Iˆl×#Ñ#×,Ñ,Ñ-òQð 1B€Iˆl×#Ñ#×,Ñ,Ñ-òQð 3F€Iˆl×%Ñ%×.Ñ.Ñ/õO=r   r	   c                 óP   • S[        U 5      R                  < S[        U 5      < S3$ )Nz<Recursion on z	 with id=Ú>)r2   r7   r3   r   s    r   rj   rj   ~  s   � ä�F‹|×$Ô$¤b¨¦jð2ð 3r   c              #   ó"  #   • Sn[        U 5      S-  S-  n[        S[        U 5      S5       HI  nXUS-    nX6-   nXT:X  a  X-  n[        [        U5      5      U:”  a  U(       a  [        U5      v •  UnMG  UnMK     U(       a  [        U5      v •  g g 7f)Nr   rÆ   r   )rn   Úrangerv   )r   r   ry   r¿   rã   r»   rÁ   rÂ   s           r   rÇ   rÇ   ƒ  s‘   é € Ø€GÜˆv‹;˜!Ñ˜aÑ€DÜ�1”c˜&“k 1Ö%ˆØ˜˜1™ˆ~ˆØ‘Nˆ	Ø‹9ØÑˆEÜŒt�I‹Ó %Ó'ÞÜ˜7“mÒ#ØŠGàŠGñ &ö Ü�7‹mÓð ùs   ‚BB)Nr"   r'   N)r"   r'   N)"r;   Úcollectionsr/  Údataclassesrr   rµ   ÚsysrK   ÚtypesrØ   Úior   rZ   Ú__all__r   r   r
   r   r   r   r&   rA   r	   r1  r1   rÎ   r2  ÚfloatÚcomplexrM   r2   r  rj   rÇ   r>   r   r   Ú<module>rG     s­   ðñó4 #Û "Û 	Û Û Ý $ò"€ðØ T¸eöðPØ d¸uöPð "'õ ;ò>ò>ò>÷;ñ ;ò,,÷O=ñ O=ñb ˜c 5¨)°U¸GØ"¡D¨£Jð0ó 1Ð ò3ó
r   