Ë
    7^(h×�  ã                  ó  — d 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 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 d
dlmZmZ ddlmZmZ  G d„ de«      Z ee«      d„ «       Z  G d„ de«      Z! ee!«      d„ «       Z"y)zI
A Printer for generating readable representation of most SymPy classes.
é    )Úannotations)ÚAny)ÚSÚRationalÚPowÚBasicÚMulÚNumber)Ú_keep_coeff)ÚInteger)Ú
Relational)Údefault_sort_key)Úsifté   )Ú
precedenceÚ
PRECEDENCE)ÚPrinterÚprint_function)Úprec_to_dpsÚto_strc            	      ón  — e Zd ZU dZdddddddddœZded<   i Zd	ed
<   d�d„Zd‘d„Zd„ Z	d’d„Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd „ Zd!„ Zd"„ Zd#„ Zd$„ Z d%„ Z!d&„ Z"d'„ Z#d(„ Z$d)„ Z%d*„ Z&d+„ Z'd,„ Z(d-„ Z)d.„ Z*d/„ Z+d0„ Z,d1„ Z-d2„ Z.d3„ Z/d4„ Z0d5„ Z1d6„ Z2d7„ Z3d8„ Z4d9„ Z5d:„ Z6d;„ Z7d<„ Z8d=„ Z9d>„ Z:d?„ Z;d@„ Z<dA„ Z=dB„ Z>dC„ Z?dD„ Z@dE„ ZAdF„ ZBdG„ ZCdH„ ZDdI„ ZEdJ„ ZFdK„ ZGdL„ ZHdM„ ZIdN„ ZJdO„ ZKdP„ ZLdQ„ ZMd�dR„ZNdS„ ZOdT„ ZPdU„ ZQdV„ ZRdW„ ZSdX„ ZTdY„ ZUdZ„ ZVd[„ ZWd\„ ZXd]„ ZYd^„ ZZd_„ Z[d`„ Z\da„ Z]db„ Z^dc„ Z_dd„ Z`de„ Zadf„ Zbdg„ Zcdh„ Zddi„ Zedj„ Zfdk„ Zgdl„ Zhdm„ Zidn„ ZjejZkejZldo„ Zmdp„ Zndq„ Zodr„ Zpds„ Zqdt„ Zrdu„ Zsdv„ Ztdw„ Zudx„ Zvdy„ Zwdz„ Zxd{„ Zyd|„ Zzd}„ Z{d~„ Z|d„ Z}d€„ Z~d�„ Zd‚„ Z€dƒ„ Z�d„„ Z‚d…„ Zƒd†„ Z„d‡„ Z…dˆ„ Z†d‰„ Z‡dŠ„ Zˆd‹„ Z‰dŒ„ ZŠd�„ Z‹dŽ„ ZŒd�„ Z�y)“Ú
StrPrinterÚ	_sympystrNÚautoFT)ÚorderÚ	full_precÚsympy_integersÚabbrevÚperm_cyclicÚminÚmaxÚdpszdict[str, Any]Ú_default_settingszdict[str, str]Ú_relationalsc                óˆ   — t        |«      |k  s|s"t        |«      |k  rd| j                  |«      z  S | j                  |«      S )Nú(%s))r   Ú_print)ÚselfÚitemÚlevelÚstricts       úP/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/printing/str.pyÚparenthesizezStrPrinter.parenthesize#   s@   € Ü�tÓ˜uÒ$©v¼:ÀdÓ;KÈuÒ;TØ˜DŸK™K¨Ó-Ñ-Ð-à—;‘;˜tÓ$Ð$ó    c           	     ój   — |j                  |D �cg c]  }| j                  ||«      ‘Œ c}«      S c c}w ©N)Újoinr-   )r(   ÚargsÚsepr*   r)   s        r,   Ú	stringifyzStrPrinter.stringify)   s,   € Ø�x‰xÀDÖI¸D˜×*Ñ*¨4°Õ7ÒIÓJÐJùÒIs   �0c                ór   — t        |t        «      r|S t        |t        «      rt        |«      S t        |«      S r0   )Ú
isinstanceÚstrr   Úrepr©r(   Úexprs     r,   ÚemptyPrinterzStrPrinter.emptyPrinter,   s/   € Ü�dœCÔ ØˆKÜ˜œeÔ$Ü˜“:Ðä�t“9Ðr.   c                ó   — | j                  ||¬«      }t        |«      }g }|D ]~  }| j                  |«      }|j                  d«      r|j                  sd}|dd  }nd}t        |«      |k  s|j                  r|j                  |d|z  g«       Œl|j                  ||g«       Œ€ |j                  d«      }|dk(  rd}|dj                  |«      z   S )	N©r   ú-r   ú+r&   r   Ú ú )Ú_as_ordered_termsr   r'   Ú
startswithÚis_AddÚextendÚpopr1   )	r(   r:   r   ÚtermsÚprecÚlÚtermÚtÚsigns	            r,   Ú
_print_AddzStrPrinter._print_Add4   sÐ   € Ø×&Ñ& t°5Ð&Ó9ˆä˜$ÓˆØˆØò 
	$ˆDØ—‘˜DÓ!ˆAØ�|‰|˜CÔ ¨¯ªØ�Ø�a�b�E‘à�Ü˜$Ó $Ò&¨$¯+ª+Ø—‘˜$ ¨¡
Ð+Õ,à—‘˜$ ˜Õ#ð
	$ð �u‰u�Q‹xˆØ�3Š;ØˆDØ�c—h‘h˜q“kÑ!Ð!r.   c                 ó   — y)NÚTrue© r9   s     r,   Ú_print_BooleanTruezStrPrinter._print_BooleanTrueI   s   € Ør.   c                 ó   — y)NÚFalserP   r9   s     r,   Ú_print_BooleanFalsezStrPrinter._print_BooleanFalseL   ó   € Ør.   c                óT   — d| j                  |j                  d   t        d   «      z  S )Nz~%sr   ÚNot)r-   r2   r   r9   s     r,   Ú
_print_NotzStrPrinter._print_NotO   s'   € Ø�t×(Ñ(¨¯©°1©´jÀÑ6GÓHÑIÐIr.   c                ó8  — t        |j                  «      }t        |«      D ]^  \  }}t        |t        «      sŒ|j
                  j                  t        j                  u sŒ>|j                  d|j                  |«      «       Œ` | j                  |dt        d   «      S )Nr   z & Ú
BitwiseAnd)Úlistr2   Ú	enumerater6   r   Ú	canonicalÚrhsr   ÚNegativeInfinityÚinsertrF   r4   r   )r(   r:   r2   ÚjÚis        r,   Ú
_print_AndzStrPrinter._print_AndR   sv   € Ü�D—I‘I‹ˆÜ˜d“Oò 	,‰DˆAˆqÜ˜!œZÕ(Ø—K‘K—O‘O¤q×'9Ñ'9Ò9Ø—‘˜A˜tŸx™x¨›{Õ+ð	,ð �~‰~˜d E¬:°lÑ+CÓDÐDr.   c                óJ   — | j                  |j                  dt        d   «      S )Nz | Ú	BitwiseOr©r4   r2   r   r9   s     r,   Ú	_print_OrzStrPrinter._print_OrZ   s   € Ø�~‰~˜dŸi™i¨´
¸;Ñ0GÓHÐHr.   c                óJ   — | j                  |j                  dt        d   «      S )Nz ^ Ú
BitwiseXorrf   r9   s     r,   Ú
_print_XorzStrPrinter._print_Xor]   s   € Ø�~‰~˜dŸi™i¨´
¸<Ñ0HÓIÐIr.   c                óx   — | j                  |j                  «      ›d| j                  |j                  d«      ›d�S ©Nú(ú, ú))r'   Úfunctionr4   Ú	argumentsr9   s     r,   Ú_print_AppliedPredicatez"StrPrinter._print_AppliedPredicate`   s/   € à�K‰K˜Ÿ™Õ&¨¯©°t·~±~ÀtÕ(LðNð 	Nr.   c                ó²   — |j                   D �cg c]  }| j                  |«      ‘Œ }}|j                  j                  ddj	                  |«      z  z   S c c}w ©Nr&   rn   )r2   r'   Ú	__class__Ú__name__r1   )r(   r:   ÚorI   s       r,   Ú_print_BasiczStrPrinter._print_Basicd   sH   € Ø%)§Y¡YÖ/ ˆT�[‰[˜�^Ð/ˆÐ/Ø�~‰~×&Ñ&¨°$·)±)¸A³,Ñ)>Ñ>Ð>ùò 0s   �Ac                ó¦   — |j                   j                  dk(  r| j                  |j                   d   «       | j                  |j                   «      S )N)r   r   )r   r   )ÚblocksÚshaper'   )r(   ÚBs     r,   Ú_print_BlockMatrixzStrPrinter._print_BlockMatrixh   s9   € Ø�8‰8�>‰>˜VÒ#Ø�K‰K˜Ÿ™ ™Ô'Ø�{‰{˜1Ÿ8™8Ó$Ð$r.   c                 ó   — y)NÚCatalanrP   r9   s     r,   Ú_print_CatalanzStrPrinter._print_Catalanm   s   € Ør.   c                 ó   — y)NÚzoorP   r9   s     r,   Ú_print_ComplexInfinityz!StrPrinter._print_ComplexInfinityp   ó   € Ør.   c                ó  — t        |j                  |j                  fD �cg c]  }| j                  |«      ‘Œ c}«      }|j                  t
        j                  u rd|z  S || j                  |j                  «      fz  }d|z  S c c}w )NzConditionSet(%s, %s)zConditionSet(%s, %s, %s))ÚtupleÚsymÚ	conditionr'   Úbase_setr   ÚUniversalSet)r(   Úsrb   r2   s       r,   Ú_print_ConditionSetzStrPrinter._print_ConditionSets   sr   € Ü¨q¯u©u°a·k±kÐ.BÖC¨�d—k‘k !•nÒCÓDˆØ�:‰:œŸ™Ñ'Ø)¨DÑ0Ð0Ø�—‘˜QŸZ™ZÓ(Ð*Ñ*ˆØ)¨DÑ0Ð0ùò	 Ds    Bc                ó´   ‡ — |j                   }|j                  D �cg c]  }|d   dk(  r|d   n|‘Œ }}ddj                  ˆ fd„|g|z   D «       «      z  S c c}w )Nr   r   zDerivative(%s)rn   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr0   ©r'   ©Ú.0Úargr(   s     €r,   ú	<genexpr>z/StrPrinter._print_Derivative.<locals>.<genexpr>}   s   øè ø€ Ò,YÀ#¨T¯[©[¸×-=Ñ,Yùó   ƒ)r:   Úvariable_countr1   )r(   r:   Údexprrb   Údvarss   `    r,   Ú_print_DerivativezStrPrinter._print_Derivativez   s_   ø€ Ø—	‘	ˆØ37×3FÑ3FÖG¨a˜˜1™ š��1’¨Ñ)ÐGˆÐGØ $§)¡)Ó,YÈ%ÈÐSXÉÔ,YÓ"ZÑZÐZùò Hs   œAc                óì   — t        |j                  «       t        ¬«      }g }|D ];  }| j                  |«      ›d| j                  ||   «      ›�}|j	                  |«       Œ= ddj                  |«      z  S )N©Úkeyz: ú{%s}rn   )ÚsortedÚkeysr   r'   Úappendr1   )r(   Údrž   Úitemsr›   r)   s         r,   Ú_print_dictzStrPrinter._print_dict   sk   € Ü�a—f‘f“hÔ$4Ô5ˆØˆàò 	ˆCØ#Ÿ{™{¨3Õ/°·±¸Q¸s¹VÔ1DÐEˆDØ�L‰L˜Õð	ð ˜Ÿ	™	 %Ó(Ñ(Ð(r.   c                ó$   — | j                  |«      S r0   )r¢   r9   s     r,   Ú_print_DictzStrPrinter._print_Dict‰   ó   € Ø×Ñ Ó%Ð%r.   c                ó,  — t        |d«      r"d| j                  |j                  «       «      z   S t        |d«      r=d| j                  |j                  «      z   dz   | j                  |j                  «      z   S d| j                  |j                  «      z   S )NÚ
as_booleanzDomain: Úsetz in z
Domain on )Úhasattrr'   r§   Úsymbolsr¨   )r(   r    s     r,   Ú_print_RandomDomainzStrPrinter._print_RandomDomainŒ   s~   € Ü�1�lÔ#Ø §¡¨A¯L©L«NÓ ;Ñ;Ð;Ü�Q˜ÔØ §¡¨Q¯Y©YÓ!7Ñ7¸&Ñ@Ø—K‘K §¡Ó&ñ'ð (ð   $§+¡+¨a¯i©iÓ"8Ñ8Ð8r.   c                ó    — d|j                   z   S ©NÚ_©Únamer9   s     r,   Ú_print_DummyzStrPrinter._print_Dummy•   s   € Ø�T—Y‘Y‰Ðr.   c                 ó   — y)NÚ
EulerGammarP   r9   s     r,   Ú_print_EulerGammazStrPrinter._print_EulerGamma˜   s   € Ør.   c                 ó   — y)NÚErP   r9   s     r,   Ú_print_Exp1zStrPrinter._print_Exp1›   ó   € Ør.   c                óx   — d| j                  |j                  «      ›d| j                  |j                  «      ›d�S rl   )r'   r:   Úcondr9   s     r,   Ú_print_ExprCondPairzStrPrinter._print_ExprCondPairž   s'   � Ø!Ÿ[™[¨¯©Õ3°T·[±[ÀÇÁÕ5KÐLÐLr.   c                ón   — |j                   j                  d| j                  |j                  d«      z  z   S rt   )Úfuncrv   r4   r2   r9   s     r,   Ú_print_FunctionzStrPrinter._print_Function¡   s+   € Ø�y‰y×!Ñ! F¨T¯^©^¸D¿I¹IÀtÓ-LÑ$LÑLÐLr.   c                 ó   — y)NÚGoldenRatiorP   r9   s     r,   Ú_print_GoldenRatiozStrPrinter._print_GoldenRatio¤   s   € Ør.   c                ón   — |j                   j                  d| j                  |j                  d«      z  z   S rt   )r½   rv   r4   Úpargsr9   s     r,   Ú_print_HeavisidezStrPrinter._print_Heaviside§   s-   € ð �y‰y×!Ñ! F¨T¯^©^¸D¿J¹JÈÓ-MÑ$MÑMÐMr.   c                 ó   — y)NÚTribonacciConstantrP   r9   s     r,   Ú_print_TribonacciConstantz$StrPrinter._print_TribonacciConstant¬   s   € Ø#r.   c                 ó   — y©NÚIrP   r9   s     r,   Ú_print_ImaginaryUnitzStrPrinter._print_ImaginaryUnit¯   r¸   r.   c                 ó   — y)NÚoorP   r9   s     r,   Ú_print_InfinityzStrPrinter._print_Infinity²   ó   € Ør.   c                óº   ‡ — ˆ fd„}dj                  |j                  D �cg c]
  } ||«      ‘Œ c}«      }d‰ j                  |j                  «      ›d|›d�S c c}w )Nc                ó�   •— t        | «      dk(  r‰j                  | d   «      S ‰j                  | d   ft        | dd  «      z   «      S ©Nr   r   ©Úlenr'   r†   ©Úxabr(   s    €r,   Ú
_xab_tostrz.StrPrinter._print_Integral.<locals>._xab_tostr¶   óE   ø€ Ü�3‹x˜1Š}Ø—{‘{ 3 q¡6Ó*Ð*à—{‘{ C¨¡F 9¬u°S¸¸°W«~Ñ#=Ó>Ð>r.   rn   z	Integral(ro   ©r1   Úlimitsr'   rp   ©r(   r:   r×   rI   ÚLs   `    r,   Ú_print_IntegralzStrPrinter._print_Integralµ   sH   ø€ ô	?ð
 �I‰I¨d¯k©kÖ:¨‘z !•}Ò:Ó;‰Ø%)§[¡[°·±Õ%?ÂÐCÐCùò ;ó    Ac                óø   — d}|j                   \  }}}}|j                  r|j                  rd}n7|j                  r|sd}n&|j                  r|sd}n|s|sd}n|r|rd}n|rd}nd} |j                  di |||dœ¤ŽS )NzInterval{m}({a}, {b})r@   z.openz.Lopenz.Ropen)ÚaÚbÚmrP   )r2   Úis_infiniteÚformat)r(   rb   Úfinrà   rá   rI   Úrrâ   s           r,   Ú_print_IntervalzStrPrinter._print_Interval¾   s‚   € Ø&ˆØ—V‘V‰
ˆˆ1ˆa�Ø�=Š=˜QŸ]š]Ø‰AØ�]Š]¡1Ø‰AØ�]Š]¡1Ø‰AÙ™1Ø‰AÙ‘1Ø‰AÙØ‰AàˆAØˆs�z‰zÑ5 !¨!°!Ñ4Ñ5Ð5r.   c                óx   — d| j                  |j                  «      ›d| j                  |j                  «      ›d�S )NzAccumBounds(rn   ro   )r'   r    r!   )r(   rb   s     r,   Ú_print_AccumulationBoundsz$StrPrinter._print_AccumulationBoundsÑ   s,   � Ø(,¯©°A·E±EÕ(:Ø(,¯©°A·E±EÕ(:ð<ð 	<r.   c                óN   — d| j                  |j                  t        d   «      z  S )Nz%s**(-1)r   ©r-   r’   r   )r(   rÊ   s     r,   Ú_print_InversezStrPrinter._print_InverseÕ   s#   € Ø˜D×-Ñ-¨a¯e©e´ZÀÑ5FÓGÑGÐGr.   c                óÄ   — |j                   }|j                  }t        |«      dk(  r|d   j                  r|d   }d| j	                  |«      ›d| j	                  |«      ›d�S )Nr   r   zLambda(rn   ro   )r:   Ú	signaturerÔ   Ú	is_symbolr'   )r(   Úobjr:   Úsigs       r,   Ú_print_LambdazStrPrinter._print_LambdaØ   sR   € Ø�x‰xˆØ�m‰mˆÜˆs‹8�qŠ=˜S ™V×-Ò-Ø�a‘&ˆCøØ#'§;¡;¨sÕ#3°T·[±[ÀÕ5FÐGÐGr.   c                ó¢   ‡ — t        |j                  t        ¬«      }|j                  j                  ddj                  ˆ fd„|D «       «      z  z   S )Nrš   r&   rn   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr0   r�   r�   s     €r,   r“   z.StrPrinter._print_LatticeOp.<locals>.<genexpr>á   s   øè ø€ Ò6XÈC°t·{±{À3×7GÑ6Xùr”   )r�   r2   r   r½   rv   r1   ©r(   r:   r2   s   `  r,   Ú_print_LatticeOpzStrPrinter._print_LatticeOpß   s>   ø€ Ü�d—i‘iÔ%5Ô6ˆØ�y‰y×!Ñ! F¨T¯Y©YÓ6XÐSWÔ6XÓ-XÑ$XÑXÐXr.   c           
     óp   — |j                   \  }}}}dt        t        | j                  ||||f«      «      z  S )NzLimit(%s, %s, %s, dir='%s'))r2   r†   Úmapr'   )r(   r:   ÚeÚzÚz0Údirs         r,   Ú_print_LimitzStrPrinter._print_Limitã   s7   € ØŸ	™	‰ˆˆ1ˆb�#Ø,¬u´S¸¿¹ÀqÈ!ÈRÐQTÀoÓ5VÓ/WÑWÐWr.   c                ó,   — d| j                  |d«      z  S )Nú[%s]rn   )r4   r9   s     r,   Ú_print_listzStrPrinter._print_listè   s   € Ø˜Ÿ™ t¨TÓ2Ñ2Ð2r.   c                ó$   — | j                  |«      S r0   )r   r9   s     r,   Ú_print_ListzStrPrinter._print_Listë   r¥   r.   c                ó$   — |j                  | «      S r0   )Ú_format_strr9   s     r,   Ú_print_MatrixBasezStrPrinter._print_MatrixBaseî   r¥   r.   c                óÄ   — | j                  |j                  t        d   d¬«      d| j                  |j                  «      ›d| j                  |j
                  «      ›d�z   S )NÚAtomT©r+   ú[rn   ú])r-   Úparentr   r'   rb   ra   r9   s     r,   Ú_print_MatrixElementzStrPrinter._print_MatrixElementñ   sN   € Ø× Ñ  §¡¬j¸Ñ.@ÈÐ ÔNØ ŸK™K¨¯©Õ/°·±¸T¿V¹VÕ1DÐEñFð 	Fr.   c                ó
  ‡ — ˆ fd„}‰ j                  |j                  t        d   d¬«      dz    ||j                  |j                  j                  «      z   dz    ||j
                  |j                  j                  «      z   dz   S )Nc                ó˜   •— t        | «      } | d   dk(  r| d= | d   dk(  rd| d<   | d   |k(  rd| d<   dj                  ˆfd„| D «       «      S )Né   r   r   r@   ú:c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr0   r�   r�   s     €r,   r“   zBStrPrinter._print_MatrixSlice.<locals>.strslice.<locals>.<genexpr>þ   s   øè ø€ Ò;°#˜TŸ[™[¨×-Ñ;ùr”   )r[   r1   )ÚxÚdimr(   s     €r,   Ústrslicez/StrPrinter._print_MatrixSlice.<locals>.strsliceö   s[   ø€ Ü�Q“ˆAØ�‰t�qŠyØ�a�DØ�‰t�qŠyØ��!‘Ø�‰t�sŠ{Ø��!‘Ø—8‘8Ó;¸Ô;Ó<Ð<r.   r  Tr  r	  rn   r
  )r-   r  r   ÚrowsliceÚrowsÚcolsliceÚcols)r(   r:   r  s   `  r,   Ú_print_MatrixSlicezStrPrinter._print_MatrixSliceõ   s€   ø€ ô	=ð ×!Ñ! $§+¡+¬z¸&Ñ/AÈ$Ð!ÓOÐRUÑUÙ˜Ÿ™¨¯©×(8Ñ(8Ó9ñ:Ø<@ñAá˜Ÿ™¨¯©×(8Ñ(8Ó9ñ:à<?ñ@ð 	Ar.   c                ó   — |j                   S r0   r¯   r9   s     r,   Ú_print_DeferredVectorz StrPrinter._print_DeferredVector  ó   € Ø�y‰yÐr.   c           	     ó^
  — t        |«      }|j                  }|d   t        j                  u st	        d„ |dd  D «       «      �rÐt        |d„ d¬«      \  }}t        |«      D ]’  \  }}|j                  j                  r|j                   }n=t        |j                  j                  «      }	|	d    |	d<   t        j                  |	«      }|dz
  rt        |j                  |d¬«      n|j                  ||<   Œ” g }
|rC|d   j                  s4|d   j                  «       r!| j!                  |j#                  d«      «      g}
|
|D �cg c]  }| j%                  ||d¬	«      ‘Œ c}z   }|sd
g}t'        |«      dkD  r5|d   j                  «       r"| j!                  |j#                  d«      «      g}
ng }
|
|D �cg c]  }| j%                  ||d¬	«      ‘Œ c}z   }dj)                  |«      }dj)                  |«      }t'        |«      dkD  r|›d|›d�S |r|›d|›�S |S |j+                  «       \  }}|dk  rt-        | |«      }d}nd}g }g }g }| j.                  dvr|j1                  «       }nt        j2                  |«      }d„ }|D �]‡  }|j4                  rßt7        |t        «      rÏt9        |j                  j+                  «       d   dk  «      r¦|j                  t        j:                  ur|j=                   ||«      «       Œ}t'        |j                  d   j                  «      dk7  r1t7        |j                  t        t        f«      r|j=                  |«       |j=                  |j                  «       Œï|j>                  r||t        j@                  urj|jB                  dk7  r$|j=                  tE        |jB                  «      «       |jF                  dk7  s�ŒQ|j=                  tE        |jF                  «      «       �Œw|j=                  |«       �ŒŠ |xs t        j                  g}|D �cg c]  }| j%                  ||d¬	«      ‘Œ }}|D �cg c]  }| j%                  ||d¬	«      ‘Œ }}|D ]N  }|j                  |v sŒd||jI                  |j                  «         z  ||jI                  |j                  «      <   ŒP |s|dj)                  |«      z   S t'        |«      dk(  r|dj)                  |«      z   dz   |d   z   S |dj)                  |«      z   ddj)                  |«      z  z   S c c}w c c}w c c}w c c}w )Nr   c              3  ó”   K  — | ]@  }t        |t        «      xs* |j                  xr t        d „ |j                  D «       «      –— ŒB y­w)c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr0   )Ú
is_Integer)r‘   Úais     r,   r“   z2StrPrinter._print_Mul.<locals>.<genexpr>.<genexpr>  s   è ø€ Ò @°2 §¥Ñ @ùs   ‚N)r6   r
   Úis_PowÚallr2   )r‘   rà   s     r,   r“   z(StrPrinter._print_Mul.<locals>.<genexpr>  sH   è ø€ ò ##ð ô ˜1œfÓ%ò AØ—‘Ò@œSÑ @¸¿¹Ô @Ó@óAñ##ùs   ‚AAr   c                óx   — t        | t        «      xr) t        | j                  j	                  «       d   dk  «      S ©Nr   )r6   r   ÚboolÚexpÚas_coeff_Mul)r  s    r,   ú<lambda>z'StrPrinter._print_Mul.<locals>.<lambda>  s2   € Ü˜1œcÓ"ÒH¤t¨A¯E©E×,>Ñ,>Ó,@ÀÑ,CÀaÑ,GÓ'Hð r.   T)ÚbinaryF©Úevaluater  Ú1Ú*z/(ro   ú/r>   r@   )ÚoldÚnonec                óD  — | j                  «       \  }}t        t        j                  |«      «      }|d   t        j
                  u r|dd  }n	|d    |d<   t        j                  |«      }t        | t        «      r| j                  ||d¬«      S | j                  |d¬«      S )Nr   r   Fr+  )
Úas_base_expr[   r	   Ú	make_argsr   ÚNegativeOneÚ
_from_argsr6   r   r½   )rb   rá   rù   Úeargss       r,   Úapowz#StrPrinter._print_Mul.<locals>.apowL  sŽ   € Ø—=‘=“?‰DˆAˆqÜœŸ™ qÓ)Ó*ˆEØ�Q‰xœ1Ÿ=™=Ñ(Ø˜a˜b˜	‘à! !™H˜9��a‘Ü—‘˜uÓ%ˆAÜ˜!œSÔ!Ø—v‘v˜a ¨U�vÓ3Ð3Ø—6‘6˜! e�6Ó,Ð,r.   r&   z/(%s))%r   r2   r   ÚOneÚanyr   r\   r'  Ú	is_Numberr[   r	   r6  r   ÚbaserD   Úcould_extract_minus_signr'   rF   r-   rÔ   r1   r(  r   r   Úas_ordered_factorsr4  Úis_commutativer6   r&  r5  rŸ   Úis_RationalÚInfinityÚpr   ÚqÚindex)r(   r:   rH   r2   r    Únrb   Údirù   ÚdargsÚprerà   ÚnfactorsÚdfactorsÚcrL   rá   Ú	pow_parenr8  r)   r  Úa_strÚb_strs                          r,   Ú
_print_MulzStrPrinter._print_Mul  s¯  € ä˜$Óˆð �y‰yˆØ�‰7”a—e‘eÑœsñ ##ð ˜a˜b˜ô##õ  #ô ˜ñ Iàô‰DˆAˆqô # 1›ò M‘��2Ø—6‘6×#Ò#ØŸ™˜‘Aä  §¡§¡Ó-�EØ % a¡˜y�E˜!‘HÜŸ™ uÓ-�AØ:;¸aº%”s˜2Ÿ7™7 A°Õ6ÀRÇWÁW��!’ðMð ˆCá˜˜1™Ÿš¨¨1©×)FÑ)FÔ)HØ—{‘{ 1§5¡5¨£8Ó,Ð-�àØöØð #×/Ñ/°°4ÀÐ/ÕFò ñ ˆHáØ˜5�ô �1‹v˜Šz˜a ™d×;Ñ;Ô=Ø—{‘{ 1§5¡5¨£8Ó,Ð-‘à�ØØöØð #×/Ñ/°°4ÀÐ/ÕFò ñ ˆHð —‘˜Ó"ˆAØ—‘˜Ó"ˆAÜ�8‹}˜qÒ Ú$%¢qÐ)Ð)ÙÚ"#¡QÐ'Ð'ØˆHà× Ñ Ó"‰ˆˆ1ØˆqŠ5Ü ˜r 1Ó%ˆDØ‰DàˆDàˆØˆàˆ	à�:‰:˜_Ñ,Ø×*Ñ*Ó,‰Dô —=‘= Ó&ˆDò
	-ð ó 	ˆDØ×#Ò#Ü˜t¤SÔ)Ü˜Ÿ™×.Ñ.Ó0°Ñ3°aÑ7Ô8Ø—8‘8¤1§=¡=Ñ0Ø—H‘H™T $›ZÕ(ä˜DŸI™I a™L×-Ñ-Ó.°!Ò3Ü& t§y¡y´3¼°*Ô=à!×(Ñ(¨Ô.Ø—H‘H˜TŸY™YÕ'Ø×!Ò! d´!·*±*Ñ&<Ø—6‘6˜Q’;Ø—H‘HœX d§f¡fÓ-Ô.Ø—6‘6˜Q”;Ø—H‘HœX d§f¡fÓ-Ö.à—‘˜–ð%	ð( ŠL”!—%‘%�ˆàCDÖE¸a�×"Ñ" 1 d°5Ð"Õ9ÐEˆÐEØCDÖE¸a�×"Ñ" 1 d°5Ð"Õ9ÐEˆÐEð ò 	OˆDØ�y‰y˜AŠ~Ø,2°U¸1¿7¹7À4Ç9Á9Ó;MÑ5NÑ,N��a—g‘g˜dŸi™iÓ(Ò)ð	Oñ Ø˜#Ÿ(™( 5›/Ñ)Ð)Ü�‹V�qŠ[Ø˜#Ÿ(™( 5›/Ñ)¨CÑ/°%¸±(Ñ:Ð:à˜#Ÿ(™( 5›/Ñ)¨G°c·h±h¸u³oÑ,EÑEÐEùòmùòùò~ FùÚEs   ÅTÆ0T Ð T%ÑT*c                óœ  — |j                  «       \  }}d}|j                  rb|j                  «       \  }}|j                  r|j                  rt        | |«      }d}n'|j                  r|j                  rt        | |«      }d}|dj                  |j                  D �cg c]  }| j                  |t        |«      «      ‘Œ c}«      z   S c c}w )Nr@   r>   r.  )
Úas_coeff_mmulÚ	is_numberÚas_real_imagÚis_zeroÚis_negativer   r1   r2   r-   r   )r(   r:   rK  râ   rL   ÚreÚimr’   s           r,   Ú_print_MatMulzStrPrinter._print_MatMul|  s¯   € Ø×!Ñ!Ó#‰ˆˆ1àˆØ�;Š;Ø—^‘^Ó%‰FˆB�Ø�zŠz˜bŸnšnÜ" A 2 qÓ)�Ø‘Ø—’ §¢Ü" A 2 qÓ)�Ø�à�c—h‘hØAEÇÁÖK¸#ˆT×Ñ˜s¤J¨tÓ$4Õ5ÒKó
ñ 
ð 	
ùÚKs   Â"C	
c                ól   — dj                  |j                  | j                  |j                  «      «      S )Nz{}.({}))rä   rp   r'   r:   r9   s     r,   Ú_print_ElementwiseApplyFunctionz*StrPrinter._print_ElementwiseApplyFunction�  s,   € Ø×ÑØ�M‰MØ�K‰K˜Ÿ	™	Ó"ó
ð 	
r.   c                 ó   — y)NÚnanrP   r9   s     r,   Ú
_print_NaNzStrPrinter._print_NaN“  r„   r.   c                 ó   — y)Nz-oorP   r9   s     r,   Ú_print_NegativeInfinityz"StrPrinter._print_NegativeInfinity–  r„   r.   c                óZ  — |j                   rt        d„ |j                  D «       «      rdt        |j                   «      dk  rd| j	                  |j
                  «      z  S d| j                  |j
                  f|j                   z   dd«      z  S d| j                  |j                  dd«      z  S )Nc              3  ó@   K  — | ]  }|t         j                  u –— Œ y ­wr0   )r   ÚZero)r‘   rB  s     r,   r“   z*StrPrinter._print_Order.<locals>.<genexpr>š  s   è ø€ Ò$E°Q Q¬!¯&©&¤[Ñ$Eùs   ‚r   zO(%s)rn   r   )Ú	variablesr#  ÚpointrÔ   r'   r:   r4   r2   r9   s     r,   Ú_print_OrderzStrPrinter._print_Order™  s‡   € Ø�~Š~¤Ñ$E¸$¿*¹*Ô$EÔ!EÜ�4—>‘>Ó" aÒ'Ø §¡¨T¯Y©YÓ!7Ñ7Ð7à §¡°·±°¸t¿~¹~Ñ0MÈtÐUVÓ!WÑWÐWà˜TŸ^™^¨D¯I©I°t¸QÓ?Ñ?Ð?r.   c                ó"   — |j                  «       S r0   ©Ú__str__r9   s     r,   Ú_print_OrdinalzStrPrinter._print_Ordinal¢  ó   € Ø�|‰|‹~Ðr.   c                ó"   — |j                  «       S r0   rg  r9   s     r,   Ú_print_CyclezStrPrinter._print_Cycle¥  rj  r.   c                óJ  — ddl m}m} ddlm} |j
                  }|� |d|› d�ddd¬	«       n| j                  j                  d
d«      }|r~|j                  sy  ||«      |j                  dz
  «      j                  «       t        d«      d  }|j                  d«      }|dk(  sd||d  vr||d  |d | z   }|j                  dd«      }|S |j                  «       }|sK|j                  dk  rd| j                  |j                  «      z  S d| j                  |j                  «      z  S | j                  |j                  d |d   dz    «      d| j                  |j                  «      z  z   }| j                  |j                  «      x}	}
t        |«      t        |
«      k  r|}	d|	z  S )Nr   )ÚPermutationÚCycle)Úsympy_deprecation_warningzw
                Setting Permutation.print_cyclic is deprecated. Instead use
                init_printing(perm_cyclic=z).
                z1.6z#deprecated-permutation-print_cyclicé   )Údeprecated_since_versionÚactive_deprecations_targetÚ
stacklevelr   Tz()r   ro  rm   ú,r@   é   zPermutation(%s)zPermutation([], size=%s)éÿÿÿÿz	, size=%s)Ú sympy.combinatorics.permutationsrn  ro  Úsympy.utilities.exceptionsrp  Úprint_cyclicÚ	_settingsÚgetÚsizeÚ__repr__rÔ   ÚrfindÚreplaceÚsupportr'   Ú
array_form)r(   r:   rn  ro  rp  r   r‹   ÚlastÚtrimÚuseÚfulls              r,   Ú_print_PermutationzStrPrinter._print_Permutation¨  sš  € ßGÝHà!×.Ñ.ˆØÐ"Ù%ð+à+6¨-ð 8ðð */Ø+PØöð Ÿ.™.×,Ñ,¨]¸DÓAˆKáØ—9’9Øð ‘�d“˜DŸI™I¨™MÓ*×3Ñ3Ó5´c¸'³l°mÐDˆAØ—7‘7˜3“<ˆDØ˜1’9 ¨A¨d¨e¨HÑ!4Ø�d�e�H˜q  $˜xÑ'�Ø—	‘	˜#˜rÓ"ˆAØˆHà—‘“ˆAÙØ—9‘9˜q’=Ø,¨t¯{©{¸4¿?¹?Ó/KÑKÐKØ1°D·K±KÀÇ	Á	Ó4JÑJÐJØ—;‘;˜tŸ™¨z°°"±¸±	Ð:Ó;¸kÈDÏKÉKÐX\×XaÑXaÓLbÑ>bÑbˆDØŸ™ T§_¡_Ó5Ð5ˆC�$Ü�4‹yœ3˜t›9Ò$Ø�Ø$ sÑ*Ð*r.   c                óØ   — |j                   \  }}}t        |j                  «      dk(  r
|d   }|d   }d| j                  |«      ›d| j                  |«      ›d| j                  |«      ›d�S )Nr   r   zSubs(rn   ro   )r2   rÔ   rd  r'   )r(   rð   r:   r0  Únews        r,   Ú_print_SubszStrPrinter._print_SubsÑ  sb   € ØŸ™‰ˆˆc�3Üˆs�y‰y‹>˜QÒØ�a‘&ˆCØ�a‘&ˆCøà�K‰K˜Õ˜tŸ{™{¨3Õ/°·±¸SÕ1AðCð 	Cr.   c                ó"   — |j                  «       S r0   r�   r9   s     r,   Ú_print_TensorIndexzStrPrinter._print_TensorIndexÙ  ó   € Ø�{‰{‹}Ðr.   c                ó"   — |j                  «       S r0   r�   r9   s     r,   Ú_print_TensorHeadzStrPrinter._print_TensorHeadÜ  r�  r.   c                ó"   — |j                  «       S r0   r�   r9   s     r,   Ú_print_TensorzStrPrinter._print_Tensorß  r�  r.   c                ó¨   — |j                  «       \  }}|dj                  |D �cg c]  }| j                  |t        |«      «      ‘Œ c}«      z   S c c}w )Nr.  )Ú!_get_args_for_traditional_printerr1   r-   r   )r(   r:   rL   r2   r’   s        r,   Ú_print_TensMulzStrPrinter._print_TensMulâ  sO   € à×;Ñ;Ó=‰
ˆˆdØ�c—h‘hØAEÖF¸#ˆT×Ñ˜s¤J¨tÓ$4Õ5ÒFó
ñ 
ð 	
ùÚFs   ¤"A
c                ó"   — |j                  «       S r0   r�   r9   s     r,   Ú_print_TensAddzStrPrinter._print_TensAddé  r�  r.   c                ó8   — | j                  |j                  «      S r0   ©r'   r°   r9   s     r,   Ú_print_ArraySymbolzStrPrinter._print_ArraySymbolì  s   € Ø�{‰{˜4Ÿ9™9Ó%Ð%r.   c           
     óÌ   — | j                  |j                  t        d   d«      ›ddj                  |j                  D �cg c]  }| j                  |«      ‘Œ c}«      ›d�S c c}w )NÚFuncTr	  rn   r
  )r-   r°   r   r1   Úindicesr'   )r(   r:   rb   s      r,   Ú_print_ArrayElementzStrPrinter._print_ArrayElementï  sS   € à×Ñ˜dŸi™i¬°FÑ);¸TÕBÀDÇIÁIÐgk×gsÑgsÖNtÐbcÈtÏ{É{Ð[\Í~ÒNtÕDuðwð 	wùÚNts   ¿A!c                óŠ   — |j                   D �cg c]  }d| j                  |«      z  ‘Œ }}ddj                  |«      z  S c c}w )Nz    %szPermutationGroup([
%s])z,
)r2   r'   r1   )r(   r:   rà   rB  s       r,   Ú_print_PermutationGroupz"StrPrinter._print_PermutationGroupó  s>   € Ø04·	±	Ö:¨1ˆX˜Ÿ™ A›Ó&Ð:ˆÐ:Ø)¨E¯J©J°q«MÑ9Ð9ùò ;s   �A c                 ó   — y)NÚpirP   r9   s     r,   Ú	_print_PizStrPrinter._print_Pi÷  rÏ   r.   c                óÄ   ‡ — ddj                  ˆ fd„|j                  D «       «      ›d‰ j                  |j                  «      ›d‰ j                  |j                  «      ›d�S )NzPolynomial ring in rn   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr0   r�   )r‘   Úrsr(   s     €r,   r“   z-StrPrinter._print_PolyRing.<locals>.<genexpr>ü  s   øè ø€ Ò?¨B˜Ÿ™ BŸÑ?ùr”   ú over ú with ú order©r1   rª   r'   Údomainr   )r(   Úrings   ` r,   Ú_print_PolyRingzStrPrinter._print_PolyRingú  sB   ø� à�Y‰YÓ?°$·,±,Ô?Õ@Ø�K‰K˜Ÿ™Õ$ d§k¡k°$·*±*Õ&=ð?ð 	?r.   c                óÄ   ‡ — ddj                  ˆ fd„|j                  D «       «      ›d‰ j                  |j                  «      ›d‰ j                  |j                  «      ›d�S )NzRational function field in rn   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr0   r�   )r‘   Úfsr(   s     €r,   r“   z.StrPrinter._print_FracField.<locals>.<genexpr>  s   øè ø€ Ò@¨B˜Ÿ™ BŸÑ@ùr”   r¦  r§  r¨  r©  ©r(   Úfields   ` r,   Ú_print_FracFieldzStrPrinter._print_FracFieldÿ  sD   ø� à�Y‰YÓ@°%·-±-Ô@ÕAØ�K‰K˜Ÿ™Õ% t§{¡{°5·;±;Õ'?ðAð 	Ar.   c                ó"   — |j                  «       S r0   rg  )r(   Úelms     r,   Ú_print_FreeGroupElementz"StrPrinter._print_FreeGroupElement  s   € Ø�{‰{‹}Ðr.   c                ó<   — d|j                   ›d|j                  ›d�S )Nrm   ú + z*I))r  Úy©r(   Úpolys     r,   Ú_print_GaussianElementz!StrPrinter._print_GaussianElement  s   � Ø $§£¨¯«Ð/Ð/r.   c                ó2   — |j                  | t        dd«      S )Nz%s**%sr.  )r7   r   r¹  s     r,   Ú_print_PolyElementzStrPrinter._print_PolyElement
  s   € Ø�x‰x˜œj¨(°CÓ8Ð8r.   c                óú   — |j                   dk(  r| j                  |j                  «      S | j                  |j                  t        d   d¬«      }| j                  |j                   t        d   d¬«      }|dz   |z   S )Nr   r	   Tr  r  r/  )Údenomr'   Únumerr-   r   )r(   ÚfracrÀ  r¿  s       r,   Ú_print_FracElementzStrPrinter._print_FracElement  so   € Ø�:‰:˜Š?Ø—;‘;˜tŸz™zÓ*Ð*à×%Ñ% d§j¡j´*¸UÑ2CÈDÐ%ÓQˆEØ×%Ñ% d§j¡j´*¸VÑ2DÈTÐ%ÓRˆEØ˜3‘; Ñ&Ð&r.   c                ó(  — t         d   dz
  }g |j                  D �cg c]  }| j                  ||«      ‘Œ }}}|j                  «       D �]F  \  }}g }t	        |«      D ]?  \  }	}
|
dkD  sŒ|
dk(  r|j                  ||	   «       Œ&|j                  ||	   d|
z  z   «       ŒA dj                  |«      }|j                  r,|rd| j                  |«      z   dz   }nq| j                  |«      }n_|rL|t        j                  u r|j                  d|g«       ŒÇ|t        j                  u r|j                  d	|g«       Œí| j                  |«      }|s|}n|dz   |z   }|j                  d	«      r|j                  d	|dd  g«       �Œ4|j                  d|g«       �ŒI |d   d
v r!|j                  d«      }|d	k(  rd	|d   z   |d<   |j                  j                   dz   }ddlm} 	 |d|j'                  «       z  z  }|dz  }t	        |«      D ]F  \  }}t+        |«      dkD  sŒ|d d dk(  sŒ|t+        |«      dz
  d  dk(  sŒ3|dt+        |«      dz
   ||<   ŒH |dj                  |«      dj                  |«      fz  S c c}w # |$ r |d|j)                  «       z  z  }Y Œ w xY w)Nr  r   r   z**%dr.  rm   ro   r?   r>   )r>   r?   z(%s, %s)ÚPolynomialErrorz, modulus=%sz, domain='%s'r  rA   rn   )r   Úgensr-   rG   r\   rŸ   r1   rD   r'   r   r9  rE   r5  rC   rF   ru   rv   Úsympy.polys.polyerrorsrÄ  Úget_modulusÚ
get_domainrÔ   )r(   r:   Ú	ATOM_PRECr‹   rG   rÅ  ÚmonomÚcoeffÚs_monomrb   rù   Ús_coeffÚs_termÚmodifierrä   rÄ  rD  r)   s                     r,   Ú_print_PolyzStrPrinter._print_Poly  s   € Ü˜vÑ&¨Ñ*ˆ	ØÀTÇYÁYÖPÀ˜D×-Ñ-¨a°Õ;ÐPˆtÐPˆà ŸJ™J›Ló %	,‰LˆE�5ØˆGä! %Ó(ò =‘��1Ø�q“5Ø˜A’vØŸ™ t¨A¡wÕ/àŸ™ t¨A¡w°¸!±Ñ';Õ<ð=ð —h‘h˜wÓ'ˆGà�|Š|ÙØ! D§K¡K°Ó$6Ñ6¸Ñ<‘Gà"Ÿk™k¨%Ó0‘GáØ¤§¡‘~ØŸ™ c¨7 ^Ô4Ø à¤§¡Ñ-ØŸ™ c¨7 ^Ô4Ø àŸ+™+ eÓ,�áØ ‘à  3™¨Ñ0�à× Ñ  Ô%Ø—‘˜c 6¨!¨" :Ð.Ö/à—‘˜c 6˜]Ö+ðK%	,ðN �‰8�zÑ!Ø—y‘y “|ˆHà˜3ŠØ  q¡™>��a‘à—‘×(Ñ(¨9Ñ4ˆå:ð	:Ø�n t×'7Ñ'7Ó'9Ñ9Ñ9ˆFð 	�#‰ˆä$ T›?ò 	4‰KˆE�4Ü�4‹y˜1‹} $ r¨ (¨c£/°d¼3¸t»9Àq¹=¸>Ð6JÈcÓ6QØ" 1¤S¨£Y°¡]Ð3��U’ð	4ð ˜Ÿ™ %›¨$¯)©)°D«/Ð:Ñ:Ð:ùò} Qøðj ò 	:Ø�o¨¯©Ó(9Ñ9Ñ9ŠFð	:ús   œI.ÇI3 É3JÊJc                 ó   — y)NrŠ   rP   )r(   rB  s     r,   Ú_print_UniversalSetzStrPrinter._print_UniversalSetW  s   € Ør.   c                ó²   — |j                   r-| j                  |j                  «       j                  «       «      S | j                  |j                  «       «      S r0   )Ú
is_aliasedr'   Úas_polyÚas_exprr9   s     r,   Ú_print_AlgebraicNumberz!StrPrinter._print_AlgebraicNumberZ  s<   € Ø�?Š?Ø—;‘;˜tŸ|™|›~×5Ñ5Ó7Ó8Ð8à—;‘;˜tŸ|™|›~Ó.Ð.r.   c                óp  ‡ — t        |«      }|j                  t        j                  u r |sd‰ j	                  |j
                  «      z  S |j                  r­|j                   t        j                  u r3|s1dt        ˆ fd„t        j                  |j
                  fD «       «      z  S |j                  t        j                   u r@‰ j	                  t        j                  «      ›d‰ j                  |j
                  |d¬«      ›�S ‰ j                  |j                  |d¬«      }‰ j                  dk(  rf|j                  j                  rP|j                  j                  dk7  r7|j                  d	«      r&‰ j                  |j
                  |d¬«      ›d
|dd ›�S ‰ j                  |j
                  |d¬«      ›d
|›�S )a$  Printing helper function for ``Pow``

        Parameters
        ==========

        rational : bool, optional
            If ``True``, it will not attempt printing ``sqrt(x)`` or
            ``x**S.Half`` as ``sqrt``, and will use ``x**(1/2)``
            instead.

            See examples for additional details

        Examples
        ========

        >>> from sympy import sqrt, StrPrinter
        >>> from sympy.abc import x

        How ``rational`` keyword works with ``sqrt``:

        >>> printer = StrPrinter()
        >>> printer._print_Pow(sqrt(x), rational=True)
        'x**(1/2)'
        >>> printer._print_Pow(sqrt(x), rational=False)
        'sqrt(x)'
        >>> printer._print_Pow(1/sqrt(x), rational=True)
        'x**(-1/2)'
        >>> printer._print_Pow(1/sqrt(x), rational=False)
        '1/sqrt(x)'

        Notes
        =====

        ``sqrt(x)`` is canonicalized as ``Pow(x, S.Half)`` in SymPy,
        so there is no need of defining a separate printer for ``sqrt``.
        Instead, it should be handled here as well.
        zsqrt(%s)z%s/sqrt(%s)c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr0   r�   r�   s     €r,   r“   z(StrPrinter._print_Pow.<locals>.<genexpr>�  s   øè ø€ Ò-]À3¨d¯k©k¸#×.>Ñ-]ùr”   r/  Fr  Ú
_sympyreprr   z	(Rationalú**rw  )r   r'  r   ÚHalfr'   r<  r?  r†   r9  r-   Úprintmethodr@  rC  rC   )r(   r:   ÚrationalÚPRECrù   s   `    r,   Ú
_print_PowzStrPrinter._print_Pow`  sf  ø€ ôL ˜$Óˆà�8‰8”q—v‘vÑ¡hØ §¡¨D¯I©IÓ 6Ñ6Ð6à×ÒØ—‘ˆyœAŸF™FÑ"©8ð %¤uÓ-]Ì1Ï5É5ÐRV×R[ÑR[ÐJ\Ô-]Ó'^Ñ^Ð^Ø�x‰xœAŸE™E˜6Ñ!à"&§+¡+¬a¯e©eÕ"4Ø"&×"3Ñ"3°D·I±I¸tÈEÐ"3Ô"RðTð Tð ×Ñ˜dŸh™h¨°UÐÓ;ˆØ×Ñ˜|Ò+°·±×0DÒ0DÈÏÉÏÉÐWXÊð �|‰|˜KÔ(Ø#'×#4Ñ#4°T·Y±YÀÈUÐ#4Õ#SÐUVÐWXÐY[ÑU\Ð]Ð]Ø×,Ñ,¨T¯Y©Y¸ÀUÐ,ÕKÉQÐOÐOr.   c                ó>   — | j                  |j                  d   «      S r%  ©r'   r2   r9   s     r,   Ú_print_UnevaluatedExprz!StrPrinter._print_UnevaluatedExpr�  s   € Ø�{‰{˜4Ÿ9™9 Q™<Ó(Ð(r.   c                ó–   — t        |«      }| j                  |j                  |d¬«      ›d| j                  |j                  |d¬«      ›�S )NFr  rÛ  )r   r-   r<  r'  )r(   r:   rß  s      r,   Ú_print_MatPowzStrPrinter._print_MatPow   sJ   € Ü˜$ÓˆØ×,Ñ,¨T¯Y©Y¸ÀUÐ,ÕKØ×*Ñ*¨4¯8©8°TÀ%Ð*ÔHðJð 	Jr.   c                ón   — | j                   j                  dd«      rd|z  S t        |j                  «      S )Nr   FzS(%s))r{  r|  r7   rB  r9   s     r,   Ú_print_IntegerzStrPrinter._print_Integer¥  s0   € Ø�>‰>×ÑÐ.°Ô6Ø˜dÑ#Ð#Ü�4—6‘6‹{Ðr.   c                 ó   — y)NÚIntegersrP   r9   s     r,   Ú_print_IntegerszStrPrinter._print_Integersª  ó   € Ør.   c                 ó   — y)NÚNaturalsrP   r9   s     r,   Ú_print_NaturalszStrPrinter._print_Naturals­  rë  r.   c                 ó   — y)NÚ	Naturals0rP   r9   s     r,   Ú_print_Naturals0zStrPrinter._print_Naturals0°  ó   € Ør.   c                 ó   — y)NÚ	RationalsrP   r9   s     r,   Ú_print_RationalszStrPrinter._print_Rationals³  rò  r.   c                 ó   — y)NÚRealsrP   r9   s     r,   Ú_print_RealszStrPrinter._print_Reals¶  rU   r.   c                 ó   — y)NÚ	ComplexesrP   r9   s     r,   Ú_print_ComplexeszStrPrinter._print_Complexes¹  rò  r.   c                 ó   — y)NÚEmptySetrP   r9   s     r,   Ú_print_EmptySetzStrPrinter._print_EmptySet¼  rë  r.   c                 ó   — y)NÚEmptySequencerP   r9   s     r,   Ú_print_EmptySequencezStrPrinter._print_EmptySequence¿  s   € Ør.   c                ó   — t        |«      S r0   ©r7   r9   s     r,   Ú
_print_intzStrPrinter._print_intÂ  ó   € Ü�4‹yÐr.   c                ó   — t        |«      S r0   r  r9   s     r,   Ú
_print_mpzzStrPrinter._print_mpzÅ  r  r.   c                óð   — |j                   dk(  rt        |j                  «      S | j                  j	                  dd«      rd|j                  ›d|j                   ›�S |j                  ›d|j                   ›�S )Nr   r   FzS(z)/r/  )rC  r7   rB  r{  r|  r9   s     r,   Ú_print_RationalzStrPrinter._print_RationalÈ  sV   € Ø�6‰6�QŠ;Ü�t—v‘v“;Ðà�~‰~×!Ñ!Ð"2°EÕ:Ø%)§V£V¨T¯VªVÐ4Ð4Ø"Ÿf›f d§f¢fÐ-Ð-r.   c                ó€   — |j                   dk(  rt        |j                  «      S d|j                  |j                   fz  S )Nr   z%d/%d)rC  r7   rB  r9   s     r,   Ú_print_PythonRationalz StrPrinter._print_PythonRationalÐ  s3   € Ø�6‰6�QŠ;Ü�t—v‘v“;Ðà˜dŸf™f d§f¡fÐ-Ñ-Ð-r.   c                ó€   — |j                   dk(  rt        |j                  «      S |j                  ›d|j                   ›�S ©Nr   r/  ©Údenominatorr7   Ú	numeratorr9   s     r,   Ú_print_FractionzStrPrinter._print_FractionÖ  ó4   € Ø×Ñ˜qÒ Ü�t—~‘~Ó&Ð&à"Ÿn›n¨d×.>Ò.>Ð?Ð?r.   c                ó€   — |j                   dk(  rt        |j                  «      S |j                  ›d|j                   ›�S r  r  r9   s     r,   Ú
_print_mpqzStrPrinter._print_mpqÜ  r  r.   c                ó\  — |j                   }| j                  j                  dd «      }|€|dk  rdnt        |j                   «      }| j                  d   du rd}n5| j                  d   du rd}n!| j                  d   dk(  r| j                  dkD  }d	| j                  v r| j                  d	   nd }d
| j                  v r| j                  d
   nd }t        |j                  |||¬«      }|j                  d«      r	d|dd  z   }n|j                  d«      rd|dd  z   }|j                  d«      }|S )Nr"   rv  r   r   TFr   r   r    r!   )Ústrip_zerosÚ	min_fixedÚ	max_fixedz-.0z-0.é   z.0z0.r  r?   )	Ú_precr{  r|  r   Ú_print_levelÚmlib_to_strÚ_mpf_rC   Úremoveprefix)r(   r:   rH   r"   ÚstripÚlowÚhighÚrvs           r,   Ú_print_FloatzStrPrinter._print_Floatâ  s  € Ø�z‰zˆØ�n‰n× Ñ  ¨Ó-ˆØˆ;Ø˜a’x‘!¤[°·±Ó%<ˆCØ�>‰>˜+Ñ&¨$Ñ.Ø‰EØ�^‰^˜KÑ(¨EÑ1Ø‰EØ�^‰^˜KÑ(¨FÒ2Ø×%Ñ%¨Ñ)ˆEØ',°·±Ñ'>ˆd�n‰n˜UÒ#ÀDˆØ(-°·±Ñ(?ˆt�~‰~˜eÒ$ÀTˆÜ˜Ÿ™ S°eÀsÐVZÔ[ˆØ�=‰=˜ÔØ˜˜A˜B˜‘‰BØ�]‰]˜4Ô Ø˜˜1˜2˜‘ˆBØ�_‰_˜SÓ!ˆØˆ	r.   c           
     óÊ  — ddddddddd	œ}|j                   |v rJ||j                      ›d
| j                  |j                  «      ›d| j                  |j                  «      ›d�S | j	                  |j                  t        |«      «      ›d| j                  j                  |j                   «      xs |j                   ›d| j	                  |j                  t        |«      «      ›�S )NÚEqÚNeÚ
AssignmentÚAddAugmentedAssignmentÚSubAugmentedAssignmentÚMulAugmentedAssignmentÚDivAugmentedAssignmentÚModAugmentedAssignment)z==z!=z:=z+=z-=z*=z/=z%=rm   rn   ro   rA   )Úrel_opr'   Úlhsr^   r-   r   r$   r|  )r(   r:   Úcharmaps      r,   Ú_print_RelationalzStrPrinter._print_Relational÷  sÊ   € ð ØØØ*Ø*Ø*Ø*Ø*ñ	
ˆð �;‰;˜'Ñ!Ø#*¨4¯;©;Ó#7¸¿¹ÀTÇXÁXÕ9NØ#'§;¡;¨t¯x©xÕ#8ð:ð :ð "×.Ñ.¨t¯x©x¼ÀDÓ9IÕJØ×,Ñ,×0Ñ0°·±Ó=ÒLÀÇÁÑLØ×,Ñ,¨T¯X©X´zÀ$Ó7GÔHðJð 	Jr.   c                óZ   — d| j                  |j                  d¬«      |j                  fz  S )NzCRootOf(%s, %d)Úlexr=   )rM   r:   rD  r9   s     r,   Ú_print_ComplexRootOfzStrPrinter._print_ComplexRootOf  s.   € Ø  D§O¡O°D·I±IÀe OÓ$LØ$(§J¡Jð$0ñ 0ð 	0r.   c                óò   — | j                  |j                  d¬«      g}|j                  t        j                  ur*|j                  | j                  |j                  «      «       ddj                  |«      z  S )Nr2  r=   zRootSum(%s)rn   )rM   r:   Úfunr   ÚIdentityFunctionrŸ   r'   r1   rõ   s      r,   Ú_print_RootSumzStrPrinter._print_RootSum  sY   € Ø—‘ §	¡	°�Ó7Ð8ˆà�8‰8œ1×-Ñ-Ñ-Ø�K‰K˜Ÿ™ D§H¡HÓ-Ô.à˜tŸy™y¨›Ñ.Ð.r.   c                óÞ  — |j                   j                  }|j                  D �cg c]  }| j                  ||j                  ¬«      ‘Œ! }}ddj                  |«      z  }|j                  D �cg c]  }| j                  |«      ‘Œ }}d| j                  |j                  «      z  }d| j                  |j                  «      z  }|g|z   ||gz   }	|›ddj                  |	«      ›d�S c c}w c c}w )Nr=   rÿ   rn   zdomain='%s'z
order='%s'rm   ro   )	ru   rv   ÚexprsrM   r   r1   rÅ  r'   rª  )
r(   ÚbasisÚclsr’   r9  ÚgenrÅ  rª  r   r2   s
             r,   Ú_print_GroebnerBasiszStrPrinter._print_GroebnerBasis  sÌ   € Ø�o‰o×&Ñ&ˆàDIÇKÁKÖP¸S�—‘ ¨E¯K©K�Õ8ÐPˆÐPØ˜Ÿ™ 5Ó)Ñ)ˆà-2¯Z©ZÖ9 c�—‘˜SÕ!Ð9ˆÐ9Ø §¡¨U¯\©\Ó!:Ñ:ˆØ˜tŸ{™{¨5¯;©;Ó7Ñ7ˆàˆw˜‰~ ¨ Ñ/ˆâ §	¡	¨$¥Ð0Ð0ùò Qùò :s   ¥$C%Á-C*c                ój   ‡ — t        |t        ¬«      }dj                  ˆ fd„|D «       «      }|syd|z  S )Nrš   rn   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr0   r�   ©r‘   r)   r(   s     €r,   r“   z(StrPrinter._print_set.<locals>.<genexpr>)  ó   øè ø€ Ò=¨t˜Ÿ™ T×*Ñ=ùr”   zset()rœ   )r�   r   r1   ©r(   r‹   r¡   r2   s   `   r,   Ú
_print_setzStrPrinter._print_set&  s4   ø€ Ü�qÔ.Ô/ˆà�y‰yÓ=°uÔ=Ó=ˆÙØØ˜‰}Ðr.   c                óÔ   ‡ ‡— ddl mŠ t        |t        ¬«      }dj	                  ˆ fd„|D «       «      }t        ˆfd„|D «       «      rdj                  |«      S dj                  |«      S )	Nr   )Ú	FiniteSetrš   rn   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr0   r�   r@  s     €r,   r“   z.StrPrinter._print_FiniteSet.<locals>.<genexpr>2  rA  r”   c              3  ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr0   )Úhas)r‘   r)   rE  s     €r,   r“   z.StrPrinter._print_FiniteSet.<locals>.<genexpr>3  s   øè ø€ Ò5 tˆt�x‰x˜	×"Ñ5ùr”   zFiniteSet({})z{{{}}})Úsympy.sets.setsrE  r�   r   r1   r:  rä   )r(   r‹   r¡   r2   rE  s   `   @r,   Ú_print_FiniteSetzStrPrinter._print_FiniteSet.  sU   ù€ Ý-Ü�qÔ.Ô/ˆà�y‰yÓ=°uÔ=Ó=ˆÜÓ5¨uÔ5Ô5Ø"×)Ñ)¨$Ó/Ð/Ø�‰˜tÓ$Ð$r.   c                ó|   ‡ — t        |t        ¬«      }dj                  ˆ fd„|D «       «      }dj                  |«      S )Nrš   rn   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr0   r�   r�   s     €r,   r“   z.StrPrinter._print_Partition.<locals>.<genexpr>:  s   øè ø€ Ò;¨c˜Ÿ™ S×)Ñ;ùr”   zPartition({}))r�   r   r1   rä   rB  s   `   r,   Ú_print_PartitionzStrPrinter._print_Partition7  s5   ø€ Ü�qÔ.Ô/ˆà�y‰yÓ;°UÔ;Ó;ˆØ×%Ñ% dÓ+Ð+r.   c                ó0   — |syd| j                  |«      z  S )Nzfrozenset()zfrozenset(%s))rC  ©r(   r‹   s     r,   Ú_print_frozensetzStrPrinter._print_frozenset=  s   € ÙØ Ø §¡°Ó!3Ñ3Ð3r.   c                óº   ‡ — ˆ fd„}dj                  |j                  D �cg c]
  } ||«      ‘Œ c}«      }d‰ j                  |j                  «      ›d|›d�S c c}w )Nc                ó�   •— t        | «      dk(  r‰j                  | d   «      S ‰j                  | d   ft        | dd  «      z   «      S rÒ   rÓ   rÕ   s    €r,   r×   z)StrPrinter._print_Sum.<locals>._xab_tostrC  rØ   r.   rn   zSum(ro   rÙ   rÛ   s   `    r,   Ú
_print_SumzStrPrinter._print_SumB  sH   ø€ ô	?ð
 �I‰I¨d¯k©kÖ:¨‘z !•}Ò:Ó;‰Ø $§¡¨D¯M©MÕ :ºAÐ>Ð>ùò ;rÞ   c                ó   — |j                   S r0   r¯   r9   s     r,   Ú_print_SymbolzStrPrinter._print_SymbolK  r  r.   c                 ó   — yrÉ   rP   r9   s     r,   Ú_print_IdentityzStrPrinter._print_IdentityP  r¸   r.   c                 ó   — y)NÚ0rP   r9   s     r,   Ú_print_ZeroMatrixzStrPrinter._print_ZeroMatrixS  r¸   r.   c                 ó   — y)Nr-  rP   r9   s     r,   Ú_print_OneMatrixzStrPrinter._print_OneMatrixV  r¸   r.   c                ó    — d|j                   z  S )NzQ.%sr¯   r9   s     r,   Ú_print_PredicatezStrPrinter._print_PredicateY  s   € Ø˜Ÿ	™	Ñ!Ð!r.   c                ó   — t        |«      S r0   r  r9   s     r,   Ú
_print_strzStrPrinter._print_str\  r  r.   c                óv   — t        |«      dk(  rd| j                  |d   «      z  S d| j                  |d«      z  S )Nr   z(%s,)r   r&   rn   )rÔ   r'   r4   r9   s     r,   Ú_print_tuplezStrPrinter._print_tuple_  s;   € Üˆt‹9˜Š>Ø˜TŸ[™[¨¨a©Ó1Ñ1Ð1à˜DŸN™N¨4°Ó6Ñ6Ð6r.   c                ó$   — | j                  |«      S r0   )rb  r9   s     r,   Ú_print_TuplezStrPrinter._print_Tuplee  s   € Ø× Ñ  Ó&Ð&r.   c                óN   — d| j                  |j                  t        d   «      z  S )Nz%s.Tr   rë   )r(   ÚTs     r,   Ú_print_TransposezStrPrinter._print_Transposeh  s#   € Ø˜×)Ñ)¨!¯%©%´¸EÑ1BÓCÑCÐCr.   c                óx   — d| j                  |j                  «      ›d| j                  |j                  «      ›d�S )NzUniform(rn   ro   )r'   rà   rá   r9   s     r,   Ú_print_UniformzStrPrinter._print_Uniformk  s'   � Ø$(§K¡K°·±Õ$7¸¿¹ÀTÇVÁVÕ9LÐMÐMr.   c                óv   — | j                   j                  dd«      rd|j                  z  S d|j                  z  S )Nr   Fz%s)r{  r|  r   r°   r9   s     r,   Ú_print_QuantityzStrPrinter._print_Quantityn  s4   € Ø�>‰>×Ñ˜h¨Ô.Ø˜$Ÿ+™+Ñ%Ð%Ø�d—i‘iÑÐr.   c                óü   — |j                   D �cg c]  }| j                  |t        d   d¬«      ‘Œ }}|d   gt        |dd  d«      D ��cg c]  \  }}|dz   |z   ‘Œ c}}z   }dj	                  |«      S c c}w c c}}w )	Nr	   Tr  r   r   Úijkr.  r·  )r2   r-   r   Úzipr1   )r(   r:   rb   r‹   ra   rà   s         r,   Ú_print_QuaternionzStrPrinter._print_Quaternions  s{   € ØKOÏ9É9ÖUÀaˆT×Ñ˜q¤*¨UÑ"3¸DÐÕAÐUˆÐUØˆq‰TˆF¬#¨a°°¨e°UÓ*;×<¡$ ! Q�a˜‘e˜A“gÓ<Ñ<ˆØ�z‰z˜!‹}Ðùò VùÛ<s   �"A3Á
A8c                ó   — t        |«      S r0   r  r9   s     r,   Ú_print_DimensionzStrPrinter._print_Dimensionx  r  r.   c                ó    — |j                   dz   S r­   r¯   r9   s     r,   Ú_print_WildzStrPrinter._print_Wild{  ó   € Ø�y‰y˜3‰Ðr.   c                ó    — |j                   dz   S r­   r¯   r9   s     r,   Ú_print_WildFunctionzStrPrinter._print_WildFunction~  rt  r.   c                ó   — |j                   S r0   r¯   r9   s     r,   Ú_print_WildDotzStrPrinter._print_WildDot�  r  r.   c                ó   — |j                   S r0   r¯   r9   s     r,   Ú_print_WildPluszStrPrinter._print_WildPlus„  r  r.   c                ó   — |j                   S r0   r¯   r9   s     r,   Ú_print_WildStarzStrPrinter._print_WildStar‡  r  r.   c                óp   — | j                   j                  dd«      ry| j                  t        d«      «      S )Nr   FzS(0)r   )r{  r|  rç  r   r9   s     r,   Ú_print_ZerozStrPrinter._print_ZeroŠ  s/   € Ø�>‰>×ÑÐ.°Ô6ØØ×"Ñ"¤7¨1£:Ó.Ð.r.   c                ó¸   — |j                   j                  }| j                  |j                  «       «      }| j                  |j                  «      }|›d|›d|›d�S rl   )ru   rv   r'   Úto_listÚdom)r(   rB  r;  Úrepr�  s        r,   Ú
_print_DMPzStrPrinter._print_DMP�  sD   € Ø�k‰k×"Ñ"ˆØ�k‰k˜!Ÿ)™)›+Ó&ˆØ�k‰k˜!Ÿ%™%Ó ˆâ"¢CªÐ-Ð-r.   c                óì   — |j                   j                  }| j                  |j                  «      }| j                  |j                  «      }| j                  |j
                  «      }|›d|›d|›d|›d�S rl   )ru   rv   r'   ÚnumÚdenr�  )r(   r:   r;  r…  r†  r�  s         r,   Ú
_print_DMFzStrPrinter._print_DMF–  sV   € Ø�n‰n×%Ñ%ˆØ�k‰k˜$Ÿ(™(Ó#ˆØ�k‰k˜$Ÿ(™(Ó#ˆØ�k‰k˜$Ÿ(™(Ó#ˆâ#&ªªS²#Ð6Ð6r.   c                ó    — d|j                   z  S )NzObject("%s")r¯   )r(   rð   s     r,   Ú_print_ObjectzStrPrinter._print_Objectž  s   € Ø §¡Ñ(Ð(r.   c                ó    — d|j                   z  S )NzIdentityMorphism(%s))rª  ©r(   Úmorphisms     r,   Ú_print_IdentityMorphismz"StrPrinter._print_IdentityMorphism¡  s   € Ø%¨¯©Ñ7Ð7r.   c                óV   — d|j                   ›d|j                  ›d|j                  ›d�S )NzNamedMorphism(rn   z, "z"))rª  Úcodomainr°   r‹  s     r,   Ú_print_NamedMorphismzStrPrinter._print_NamedMorphism¤  s#   � à—“ ×!2Ó!2°H·M³MðCð 	Cr.   c                ó    — d|j                   z  S )NzCategory("%s")r¯   )r(   Úcategorys     r,   Ú_print_CategoryzStrPrinter._print_Category¨  s   € Ø (§-¡-Ñ/Ð/r.   c                ó.   — |j                   j                   S r0   r¯   )r(   Úmanifolds     r,   Ú_print_ManifoldzStrPrinter._print_Manifold«  s   € Ø�}‰}×!Ñ!Ð!r.   c                ó.   — |j                   j                   S r0   r¯   )r(   Úpatchs     r,   Ú_print_PatchzStrPrinter._print_Patch®  s   € Ø�z‰z�‰Ðr.   c                ó.   — |j                   j                   S r0   r¯   )r(   Úcoordss     r,   Ú_print_CoordSystemzStrPrinter._print_CoordSystem±  s   € Ø�{‰{×ÑÐr.   c                ó\   — |j                   j                  |j                     j                  S r0   ©Ú
_coord_sysrª   Ú_indexr°   r°  s     r,   Ú_print_BaseScalarFieldz!StrPrinter._print_BaseScalarField´  s#   € Ø×Ñ×'Ñ'¨¯©Ñ5×:Ñ:Ð:r.   c                ób   — d|j                   j                  |j                     j                  z  S )Nze_%srž  r°  s     r,   Ú_print_BaseVectorFieldz!StrPrinter._print_BaseVectorField·  s(   € Ø˜×(Ñ(×0Ñ0°·±Ñ>×CÑCÑCÐCr.   c                óº   — |j                   }t        |d«      r0d|j                  j                  |j                     j
                  z  S d| j                  |«      z  S )NrŸ  zd%szd(%s))Ú_form_fieldr©   rŸ  rª   r   r°   r'   )r(   Údiffr±  s      r,   Ú_print_DifferentialzStrPrinter._print_Differentialº  sQ   € Ø× Ñ ˆÜ�5˜,Ô'Ø˜5×+Ñ+×3Ñ3°E·L±LÑA×FÑFÑFÐFà˜TŸ[™[¨Ó/Ñ/Ð/r.   c                óJ   — d›d| j                  |j                  d   «      ›d�S )NÚTrrm   r   ro   râ  r9   s     r,   Ú	_print_TrzStrPrinter._print_TrÁ  s   € â §¡¨T¯Y©Y°q©\Õ!:Ð;Ð;r.   c                ó8   — | j                  |j                  «      S r0   r˜  rO  s     r,   Ú
_print_StrzStrPrinter._print_StrÅ  s   € Ø�{‰{˜1Ÿ6™6Ó"Ð"r.   c                ó²   — |j                   }| j                  |«      ›d| j                  |j                  «      ›d| j                  |j                  «      ›d�S rl   )rp   r'   r.  r^   )r(   r:   Úrels      r,   Ú_print_AppliedBinaryRelationz'StrPrinter._print_AppliedBinaryRelationÈ  sA   € Ø�m‰mˆØ#Ÿ{™{¨3Õ/Ø#Ÿ{™{¨4¯8©8Õ4Ø#Ÿ{™{¨4¯8©8Õ4ð6ð 	6r.   )F)r   r0   )Žrv   Ú
__module__Ú__qualname__rÝ  r#   Ú__annotations__r$   r-   r4   r;   rM   rQ   rT   rX   rc   rg   rj   rr   rx   r}   r€   rƒ   rŒ   r˜   r¢   r¤   r«   r±   r´   r·   r»   r¾   rÁ   rÄ   rÇ   rË   rÎ   rÝ   rç   ré   rì   rò   rö   rý   r   r  r  r  r  r  rO  rX  rZ  r]  r_  re  ri  rl  r‡  rŠ  rŒ  r�  r‘  r”  r–  r™  r�  rŸ  r¢  r¬  r²  rµ  r»  r½  rÂ  rÐ  rÒ  r×  rà  rã  rå  rç  rê  rî  rñ  rõ  rø  rû  rþ  r  r  r  r	  r  r  r  r#  r0  r3  r7  r=  rC  rJ  rM  rP  rS  rU  Ú_print_MatrixSymbolÚ_print_RandomSymbolrW  rZ  r\  r^  r`  rb  rd  rg  ri  rk  ro  rq  rs  rv  rx  rz  r|  r~  rƒ  r‡  r‰  r�  r�  r“  r–  r™  rœ  r¡  r£  r§  rª  r¬  r¯  rP   r.   r,   r   r      s  … Ø€KàØØØØØØØñ	)Ð�~ó 	ð $&€L�.Ó%ó%óKòó"ò*òòJòEòIòJòNò?ò%ò
òò1ò[ò
)ò&ò9òòòòMòMòòNò
$òòòDò6ò&<òHòHòYòXò
3ò&ò&òFòAòòtFòl
ò"
òòò@òòò'+òRCòòòò
òò&òwò:òò?ò
Aò
ò0ò9ò'ò@;òDò/ó;Pòz)òJò
ò
òòòòòòòòòò.ò.ò@ò@òò*Jò*0ò/ò1òò%ò,ò4ò
?òà'ÐØ'Ðòòòò"òò7ò'òDòNò ò
ò
òòòòòò/ò
.ò7ò)ò8òCò0ò"òò ò;òDò0ò<ò#ó6r.   r   c                ó>   — t        |«      }|j                  | «      }|S )ab  Returns the expression as a string.

    For large expressions where speed is a concern, use the setting
    order='none'. If abbrev=True setting is used then units are printed in
    abbreviated form.

    Examples
    ========

    >>> from sympy import symbols, Eq, sstr
    >>> a, b = symbols('a b')
    >>> sstr(Eq(a + b, 0))
    'Eq(a + b, 0)'
    )r   Údoprint©r:   ÚsettingsrB  r‹   s       r,   Ússtrr¹  Ï  s    € ô" 	�8Ó€AØ	�	‰	�$‹€Aà€Hr.   c                  ó   — e Zd ZdZd„ Zd„ Zy)ÚStrReprPrinterz(internal) -- see sstrreprc                ó   — t        |«      S r0   )r8   rO  s     r,   r`  zStrReprPrinter._print_stré  s   € Ü�A‹wˆr.   c                ól   — |j                   j                  ›d| j                  |j                  «      ›d�S )Nrm   ro   )ru   rv   r'   r°   rO  s     r,   r¬  zStrReprPrinter._print_Strì  s$   € àŸ;™;×/Ó/°·±¸Q¿V¹VÕ1DÐEÐEr.   N)rv   r°  r±  Ú__doc__r`  r¬  rP   r.   r,   r»  r»  æ  s   „ Ù$òóFr.   r»  c                ó>   — t        |«      }|j                  | «      }|S )zÞreturn expr in mixed str/repr form

       i.e. strings are returned in repr form with quotes, and everything else
       is returned in str form.

       This function could be useful for hooking into sys.displayhook
    )r»  r¶  r·  s       r,   ÚsstrreprrÀ  ð  s    € ô 	�xÓ €AØ	�	‰	�$‹€Aà€Hr.   N)#r¾  Ú
__future__r   Útypingr   Ú
sympy.corer   r   r   r   r	   r
   Úsympy.core.mulr   Úsympy.core.numbersr   Úsympy.core.relationalr   Úsympy.core.sortingr   Úsympy.utilities.iterablesr   r   r   Úprinterr   r   Úmpmath.libmpr   r   r  r   r¹  r»  rÀ  rP   r.   r,   ú<module>rË     s   ðñõ #Ý ç ;× ;Ý &Ý &Ý ,Ý /Ý *ß .ß ,ç ;ôx6�ô x6ñv �
Óñó ðô,F�Zô Fñ �Óñó  ñr.   