§
    ‡Ûgq+  ã                   ód  — d dl mZmZ d dlZd dlZd dlmZ 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mZmZmZmZmZmZmZmZmZmZmZmZmZ d dlm Z!m"Z"  e	j#        d¦  «        duZ$d„ Z%d	„ Z&d
„ Z'd„ Z(ej)         *                    ej+        dk    pe$ d¬¦  «        d„ ¦   «         Z,ej)         -                    dg d¢¦  «        d„ ¦   «         Z.d„ Z/d„ Z0d„ Z1d„ Z2ej)         *                    ej+        dk    pe$ d¬¦  «        d„ ¦   «         Z3d„ Z4ej)         *                    ej+        dk    d¬¦  «        d„ ¦   «         Z5d„ Z6ej)         *                     e7ed¦  «         d¬¦  «        d „ ¦   «         Z8d!„ Z9d"„ Z:d#„ Z;d$„ Z<d%„ Z=ej)         *                    ej+        dk    d&¬¦  «        d'„ ¦   «         Z>dS )(é    )ÚBytesIOÚStringION)ÚPath)ÚImage)ÚfindfontÚfindSystemFontsÚ	FontEntryÚFontPropertiesÚfontManagerÚ	json_dumpÚ	json_loadÚget_fontÚis_opentype_cff_fontÚMSUserFontDirectoriesÚ_get_fontconfig_fontsÚft2fontÚttfFontPropertyÚcbook)ÚpyplotÚ
rc_contextzfc-listc                  óZ  — t          dddgi¬¦  «        5  t          t          dg¬¦  «        ¦  «        } d d d ¦  «         n# 1 swxY w Y   t          | ¦  «        j        dk    sJ ‚t          | ¦  «        } |                      ¦   «         }t          |¦  «        dk    sJ ‚|d	         d
k    sJ ‚d S )Núfont.sans-serifÚcmmi10úBitstream Vera Sans)Úrcú
sans-serif©Úfamilyz
cmmi10.ttféƒ   i"  é   )r   r   r
   r   Únamer   Úget_charmapÚlen)ÚfontÚcmaps     úX/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/tests/test_font_manager.pyÚtest_font_priorityr'      s  € Ý	ØØÐ,Ð-ð/ð 
0ñ 
0ô 
0ð ?ð ?õ �¨|¨nÐ=Ñ=Ô=Ñ>Ô>ˆð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?õ �‰:Œ:Œ?˜lÒ*Ð*Ð*Ð*õ �D‰>Œ>€DØ×ÒÑÔ€DÝˆt‰9Œ9˜ÒÐÐÐØ�Œ:˜ÒÐÐÐÐÐs   •A Á AÁAc                  óª  — dt          j        dd¦  «        k    sJ ‚dt          j        dd¦  «        k    sJ ‚dt          j        dd¦  «        cxk     rt          j        dd¦  «        k     sn J ‚dt          j        dd¦  «        cxk     rt          j        dd¦  «        k     sn J ‚t          j        dd¦  «        t          j        dd¦  «        k    sJ ‚d S )Nr   ÚregularÚboldi�  Únormal)r   Úscore_weight© ó    r&   Útest_score_weightr/   &   s$  € Ø•Ô(¨°IÑ>Ô>Ò>Ð>Ð>Ð>Ø•Ô(¨°Ñ8Ô8Ò8Ð8Ð8Ð8Ø•Ô(¨¨cÑ2Ô2ð 7ð 7ò 7ð 7ÝÔ$ X¨vÑ6Ô6ò7ð 7ð 7ð 7ð 7ð 7à•Ô(¨°9Ñ=Ô=ð 7ð 7ò 7ð 7ÝÔ$ X¨vÑ6Ô6ò7ð 7ð 7ð 7ð 7ð 7åÔ$ X¨yÑ9Ô9ÝÔ$ S¨#Ñ.Ô.ò/ð /ð /ð /ð /ð /r.   c                 óŠ  — t          | d¦  «        }t          t          |¦  «         t          |¦  «        }t	          j        ¦   «         5  t	          j        dd¦  «         ddidddœdd	ifD ]?}t          di |¤Ž}t          j        |d
¬¦  «        |                     |d
¬¦  «        k    sJ ‚Œ@	 d d d ¦  «         d S # 1 swxY w Y   d S )Nzfontlist.jsonÚignorez findfont: Font family.*not foundr   ÚSTIXGeneralr   i¼  )r   Úweightzno such font familyF)Úrebuild_if_missingr-   )	r   r   r   r   ÚwarningsÚcatch_warningsÚfilterwarningsr
   r   )ÚtmpdirÚpathÚcopyÚpropÚfps        r&   Útest_json_serializationr=   1   sW  € õ �˜Ñ(Ô(€DÝ�k˜4Ñ Ô Ð Ý�T‰?Œ?€DÝ	Ô	 Ñ	"Ô	"ð Að AÝÔ Ð*LÑMÔMÐMØ Ð.Ø 5ÀÐEÐEØÐ 5Ð6ð8ð 	Að 	AˆDõ  Ð'Ð' $Ð'Ð'ˆBÝÔ(¨ÀÐFÑFÔFØ—M’M "¸�MÑ?Ô?ò@ð @ð @ð @ð @ð		AðAð Að Añ Aô Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að As   ÁA"B8Â8B<Â?B<c                  ó^  — d} t          | ¦  «                             ¦   «         rt          | ¦  «        sJ ‚t          j        D ]k}d|j        v r`t          |j        d¦  «        5 }|                     d¦  «        dk    }d d d ¦  «         n# 1 swxY w Y   |t          |j        ¦  «        k    sJ ‚Œld S )Nz//usr/share/fonts/opentype/freefont/FreeMono.otfÚotfÚrbé   s   OTTO)r   Úexistsr   r   ÚttflistÚfnameÚopenÚread)rD   ÚfÚfdÚress       r&   Útest_otfrJ   A   só   € Ø=€EÝˆE�{„{×ÒÑÔð +Ý# EÑ*Ô*Ð*Ð*Ð*ÝÔ ð 8ð 8ˆØ�A”GÐÐÝ�a”g˜tÑ$Ô$ð ,¨Ø—g’g˜a‘j”j GÒ+�ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,àÕ.¨q¬wÑ7Ô7Ò7Ð7Ð7Ð7øð	8ð 8s   Á!BÂB	ÂB	Úwin32zno fontconfig installed)Úreasonc                  óH   — t          t          ¦   «         ¦  «        dk    sJ ‚d S )Né   )r#   r   r-   r.   r&   Útest_get_fontconfig_fontsrO   L   s*   € õ Õ$Ñ&Ô&Ñ'Ô'¨!Ò+Ð+Ð+Ð+Ð+Ð+r.   Úfactor)é   rA   é   é   c                 ó  — t          t          dg¬¦  «        ¦  «        }t          |d¬¦  «        }|                     ¦   «          |                     dd¦  «         |                     d¦  «         |                     ¦   «         }t          || ¬¦  «        }|                     ¦   «          |                     dd¦  «         |                     d¦  «         t          j         	                    |                     ¦   «         |d¬	¦  «         d S )
Nr   r   rN   )Úhinting_factoré   éd   Úabcgš™™™™™¹?)Úrtol)
r   r
   r   ÚclearÚset_sizeÚset_textÚget_width_heightÚnpÚtestingÚassert_allclose)rP   r$   Úfont1ÚexpectedÚhinted_fonts        r&   Útest_hinting_factorrd   R   sü   € å•N¨<¨.Ð9Ñ9Ô9Ñ:Ô:€Då�T¨!Ð,Ñ,Ô,€EØ	‡K‚K�M„M€MØ	‡N‚N�2�sÑÔÐØ	‡N‚N�5ÑÔÐØ×%Ò%Ñ'Ô'€Hå˜4°Ð7Ñ7Ô7€KØ×ÒÑÔÐØ×Ò˜˜SÑ!Ô!Ð!Ø×Ò˜ÑÔÐå„J×Ò˜{×;Ò;Ñ=Ô=¸xØ$'ð ñ )ô )ð )ð )ð )r.   c                  ó²   — 	 t          d„ t          j        D ¦   «         ¦  «        } | j        dk    sJ ‚d S # t          $ r t          j        d¦  «         Y d S w xY w)Nc              3   óT   K  — | ]#}t          |j        ¦  «        j        d k    ¯|V — Œ$dS )zseguisbi.ttfN)r   rD   r!   )Ú.0Úentrys     r&   ú	<genexpr>z#test_utf16m_sfnt.<locals>.<genexpr>h   sI   è è € ð Bð B˜uÝ˜Uœ[Ñ)Ô)Ô.°.Ò@Ð@ð Ø@Ð@Ð@Ð@ðBð Br.   iX  z0Couldn't find seguisbi.ttf font to test against.)Únextr   rC   r3   ÚStopIterationÚpytestÚskip)rh   s    r&   Útest_utf16m_sfntrn   e   s‘   € ð	#åð Bð B­Ô(;ð Bñ Bô Bñ Bô Bˆð Œ|˜sÒ"Ð"Ð"Ð"Ð"Ð"øõ ð Hð Hð HÝŒÐFÑGÔGÐGÐGÐGÐGðHøøøs   ‚#4 ´AÁAc                  óH  — t          dg¬¦  «        } t          t          | ¦  «        ¦  «        j        dk    rt	          j        d¦  «         t          j        ¦   «         \  }}|                     ddd| ¬¦  «         dD ]%}| 	                    t          ¦   «         |¬	¦  «         Œ&d S )
NzWenQuanYi Zen Heir   zwqy-zenhei.ttcz"Font wqy-zenhei.ttc may be missingç      à?u   â¿“©Úfontproperties©ÚrawÚsvgÚpdfÚps©Úformat©r
   r   r   r!   rl   rm   ÚpltÚsubplotsÚtextÚsavefigr   )r<   ÚfigÚaxÚfmts       r&   Útest_find_ttcr‚   r   s¤   € Ý	Ð 3Ð4Ð	5Ñ	5Ô	5€BÝ�H�R‰LŒLÑÔÔÐ"2Ò2Ð2ÝŒÐ8Ñ9Ô9Ð9ÝŒl‰nŒn�G€CˆØ‡G‚GˆB�Ð/À€GÑCÔCÐCØ*ð +ð +ˆØ�Š•G‘I”I cˆÑ*Ô*Ð*Ð*ð+ð +r.   c                  óR  — t          ddg¬¦  «        } t          t          | ¦  «        ¦  «        j        }|dvrt	          j        d|› d�¦  «         t          j        ¦   «         \  }}|                     ddd| ¬	¦  «         d
D ]%}| 	                    t          ¦   «         |¬¦  «         Œ&d S )NzNoto Sans CJK SCzNoto Sans CJK JPr   )zNotoSansCJKsc-Regular.otfzNotoSansCJK-Regular.ttcz,Noto Sans CJK SC font may be missing (found ú)rp   u   Hello, ä½ å¥½rq   rs   rx   rz   )r<   r!   r   r€   r�   s        r&   Útest_find_notor…   |   s¶   € Ý	Ð 2Ð4FÐGÐ	HÑ	HÔ	H€BÝ•˜‘”ÑÔÔ"€DØÐKÐKÐKÝŒÐJÀ4ÐJÐJÐJÑKÔKÐKåŒl‰nŒn�G€CˆØ‡G‚GˆC��o°b€GÑ9Ô9Ð9Ø*ð +ð +ˆØ�Š•G‘I”I cˆÑ*Ô*Ð*Ð*ð+ð +r.   c                 óŒ  — t          | ¦  «        }t          j        t          ¦  «        5  t	          |dz  ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t	          t          |dz  ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t	          t          |dz  ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   ddlm} t          j        t          d¬¦  «        5   |t          ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nznon-existent-font-name.ttfr   )ÚFT2Fontzfont file or a binary-mode file)Úmatch)r   rl   ÚraisesÚFileNotFoundErrorr   ÚstrÚbytesÚmatplotlib.ft2fontr‡   Ú	TypeErrorr   )r8   Útmp_pathr‡   s      r&   Útest_find_invalidr�   ˆ   sB  € Ý�F‰|Œ|€Hå	ŒÕ(Ñ	)Ô	)ð :ð :Ý�Ð8Ñ8Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :õ 
ŒÕ(Ñ	)Ô	)ð ?ð ?Ý•�XÐ <Ñ<Ñ=Ô=Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?õ 
ŒÕ(Ñ	)Ô	)ð Að AÝ•�xÐ">Ñ>Ñ?Ô?Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Að +Ð*Ð*Ð*Ð*Ð*Ý	Œ•yÐ(IÐ	JÑ	JÔ	Jð ð Øˆ•‘
”
ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sG   ©AÁAÁAÁ, BÂBÂBÂ< C(Ã(C,Ã/C,ÄD9Ä9D=Å D=Úlinuxz$only Linux with fontconfig installedc                 ó¨  ‡— dŠt          ¦   «         }t          ˆfd„|D ¦   «         ¦  «        rt          j        ‰› d�¦  «         |                      d¦  «        }|                     d¬¦  «         t          j        t          t          ¦  «        j
        ‰z  |                     ‰¦  «        ¦  «         |                     ¦   «         5 }|                     dt          | ¦  «        ¦  «         t          j        ¦   «          t          ¦   «         }t          ˆfd„|D ¦   «         ¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «          d S )	Númpltest.ttfc              3   ó    •K  — | ]}‰|v V — Œ	d S ©Nr-   ©rg   r$   Úfont_test_files     €r&   ri   z(test_user_fonts_linux.<locals>.<genexpr>¡   ó(   øè è € Ð
4Ð
4 dˆ>˜TÐ!Ð
4Ð
4Ð
4Ð
4Ð
4Ð
4r.   ú already exists in system fontsÚfontsT)ÚdirÚXDG_DATA_HOMEc              3   ó    •K  — | ]}‰|v V — Œ	d S r•   r-   r–   s     €r&   ri   z(test_user_fonts_linux.<locals>.<genexpr>¯   s(   øè è € Ð<Ð<¨d�> TÐ)Ð<Ð<Ð<Ð<Ð<Ð<r.   )r   Úanyrl   rm   ÚjoinÚensureÚshutilÚcopyfiler   Ú__file__ÚparentÚcontextÚsetenvr‹   r   Úcache_clear)r8   Úmonkeypatchrš   Úuser_fonts_dirÚmr—   s        @r&   Útest_user_fonts_linuxr«   š   s’  ø€ ð #€Nõ ÑÔ€EÝ
Ð
4Ð
4Ð
4Ð
4¨eÐ
4Ñ
4Ô
4Ñ4Ô4ð HÝŒ�~ÐFÐFÐFÑGÔGÐGð —[’[ Ñ)Ô)€NØ×Ò˜dÐÑ#Ô#Ð#Ý
„O•D�‘N”NÔ)¨NÑ:Ø"×'Ò'¨Ñ7Ô7ñ9ô 9ð 9ð 
×	Ò	Ñ	Ô	ð = !Ø	�Š�¥# f¡+¤+Ñ.Ô.Ð.ÝÔ)Ñ+Ô+Ð+åÑ!Ô!ˆÝÐ<Ð<Ð<Ð<°eÐ<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =õ Ô%Ñ'Ô'Ð'Ð'Ð's   ÃA"D4Ä4D8Ä;D8c                  óÚ  ‡— dŠt          t          ¦  «        j        ‰z  } 	 t          j        | ¦  «         ˆfd„t          j        D ¦   «         \  }t          j                             |¦  «         ˆfd„t          j        D ¦   «         }|D ]!}t          j                             |¦  «         Œ"dS # ˆfd„t          j        D ¦   «         }|D ]!}t          j                             |¦  «         Œ"w xY w)z/Smoke test that addfont() accepts pathlib.Path.r“   c                 óH   •— g | ]}|j                              ‰¦  «        ¯|‘ŒS r-   ©rD   Úendswithr–   s     €r&   ú
<listcomp>z(test_addfont_as_path.<locals>.<listcomp>»   s=   ø€ ð :ð :ð :˜4Ø”Z×(Ò(¨Ñ8Ô8ð:�$ð :ð :ð :r.   c                 óH   •— g | ]}|j                              ‰¦  «        ¯|‘ŒS r-   r®   r–   s     €r&   r°   z(test_addfont_as_path.<locals>.<listcomp>¿   s=   ø€ ð =ð =ð =˜dØœ
×+Ò+¨NÑ;Ô;ð=�Tð =ð =ð =r.   N)r   r£   r¤   r   ÚaddfontrC   Úremove)r9   ÚaddedÚ	to_remover$   r—   s       @r&   Útest_addfont_as_pathr¶   µ   s-  ø€ à"€NÝ•‰>Œ>Ô  >Ñ1€Dð	-ÝÔ˜DÑ!Ô!Ð!ð:ð :ð :ð :¥;Ô#6ð :ñ :ô :‰ˆåÔ×"Ò" 5Ñ)Ô)Ð)ð=ð =ð =ð =¥kÔ&9ð =ñ =ô =ˆ	àð 	-ð 	-ˆDÝÔ×&Ò& tÑ,Ô,Ð,Ð,ð	-ð 	-øð=ð =ð =ð =¥kÔ&9ð =ñ =ô =ˆ	àð 	-ð 	-ˆDÝÔ×&Ò& tÑ,Ô,Ð,Ð,ð	-øøøs   ¡AB, Â,>C*zWindows onlyc                  óN  ‡— t           j                             d¦  «        s3t           j                             d¦  «        st          j        d¦  «         t          j        d¦  «         dŠt          ¦   «         } t          ˆfd„| D ¦   «         ¦  «        rt          j        ‰› d�¦  «         t          d         }t          j	        |¦  «         t          j        t          t          ¦  «        j        ‰z  |¦  «         t          ¦   «         } t          ˆfd	„| D ¦   «         ¦  «        sJ ‚d S )
NÚAPPVEYORÚTF_BUILDznThis test should only run on CI (appveyor or azure) as the developer's font directory should remain unchanged.z4We need to update the registry for this test to workr“   c              3   ó    •K  — | ]}‰|v V — Œ	d S r•   r-   r–   s     €r&   ri   z(test_user_fonts_win32.<locals>.<genexpr>Ð   r˜   r.   r™   r   c              3   ó    •K  — | ]}‰|v V — Œ	d S r•   r-   r–   s     €r&   ri   z(test_user_fonts_win32.<locals>.<genexpr>Þ   s(   øè è € Ð8Ð8¨$ˆ~ Ð%Ð8Ð8Ð8Ð8Ð8Ð8r.   )ÚosÚenvironÚgetrl   Úxfailr   rž   rm   r   Úmakedirsr¡   r:   r   r£   r¤   )rš   r©   r—   s     @r&   Útest_user_fonts_win32rÁ   Å   s%  ø€ åŒJ�NŠN˜:Ñ&Ô&ð #­"¬*¯.ª.¸Ñ*DÔ*Dð #ÝŒð "ñ 	#ô 	#ð 	#õ „LÐGÑHÔHÐHØ"€Nõ ÑÔ€EÝ
Ð
4Ð
4Ð
4Ð
4¨eÐ
4Ñ
4Ô
4Ñ4Ô4ð HÝŒ�~ÐFÐFÐFÑGÔGÐGå*¨1Ô-€Nõ „K�ÑÔÐõ „K••X‘”Ô%¨Ñ6¸ÑGÔGÐGõ ÑÔ€EÝÐ8Ð8Ð8Ð8°%Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8r.   c                 óž   — t          j        ¦   «         \  }}|                     t          ¦   «         d¬¦  «         t          j        ¦   «          d S )Nrv   rx   )r{   r|   r~   r   Úclose)Ú_r   r€   s      r&   Ú_model_handlerrÅ   á   s:   € ÝŒl‰nŒn�G€CˆØ‡K‚K•‘	”	 %€KÑ(Ô(Ð(Ý„I�K„K€K€K€Kr.   Úregister_at_forkz Cannot register at_fork handlersc                  óú   — t          d¦  «         t          j        d¦  «        } |                      d¬¦  «        5 }|                     t           t          d¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ÚforkrQ   )Ú	processes)rÅ   ÚmultiprocessingÚget_contextÚPoolÚmapÚrange)ÚctxÚpools     r&   Ú	test_forkrÑ   ç   s±   € õ �1ÑÔÐÝ
Ô
% fÑ
-Ô
-€CØ	�Š˜AˆÑ	Ô	ð + $Ø�Š•¥ q¡¤Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s   º)A0Á0A4Á7A4c                 óÐ   — dgt           j        d<   |                      d¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   d„ | j        D ¦   «         ddgk    sJ ‚d S )Nzthis-font-does-not-existr   ÚWARNINGÚsansc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r-   )Ú
getMessage)rg   Úrecs     r&   r°   z'test_missing_family.<locals>.<listcomp>ô   s"   € Ð7Ð7Ð7 ˆC�NŠNÑÔÐ7Ð7Ð7r.   zFfindfont: Font family ['sans'] not found. Falling back to DejaVu Sans.zufindfont: Generic family 'sans' not found because none of the following families were found: this-font-does-not-exist)r{   ÚrcParamsÚat_levelr   Úrecords)Úcaplogs    r&   Útest_missing_familyrÜ   ð   sÈ   € Ø'AÐ&B…C„LÐ"Ñ#Ø	�Š˜Ñ	#Ô	#ð ð Ý�ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à7Ð7¨¬Ð7Ñ7Ô7ð	'ð	Bð<ò ð ð ð ð ð s   ¦AÁAÁ	Ac                  ó  ‡‡‡‡‡— dd l ŠddlmŠ dd lmŠ d} ‰                     | ¦  «        Šˆˆˆfd„Šˆˆfd„t          | ¦  «        D ¦   «         }|D ]}|                     ¦   «          Œ|D ]}|                     ¦   «          Œd S )Nr   )ÚLOAD_NO_HINTINGé
   c                 óî   •— ‰                      ¦   «          t          d¦  «        D ]O}‰                     ‰                     d¦  «        ¦  «        }|                     t          | ¦  «        d‰¬¦  «         ŒPd S )NrW   zDejaVu Sansg        )Úflags)ÚwaitrÎ   r   r   r\   r‹   )ÚnÚjr$   rÞ   ÚbÚfms      €€€r&   Úbad_ideaz!_test_threading.<locals>.bad_idea  sm   ø€ Ø	�Š‰ŒˆÝ�s‘”ð 	>ð 	>ˆAØ—;’;˜rŸ{š{¨=Ñ9Ô9Ñ:Ô:ˆDØ�MŠM�#˜a™&œ& #¨_ˆMÑ=Ô=Ð=Ð=ð	>ð 	>r.   c                 óH   •— g | ]}‰                      ‰d |› �|f¬¦  «        ‘ŒS )Úbad_thread_)Útargetr!   Úargs)ÚThread)rg   rä   rç   Ú	threadings     €€r&   r°   z#_test_threading.<locals>.<listcomp>
  sI   ø€ ð ð ð àð 	×Ò Ð/@¸QÐ/@Ð/@ÈÀtÐÑLÔLðð ð r.   )	rí   r�   rÞ   Úmatplotlib.font_managerÚfont_managerÚBarrierrÎ   ÚstartrŸ   )ÚNÚthreadsÚtrÞ   rå   rç   ræ   rí   s      @@@@@r&   Ú_test_threadingrõ   ü   sí   øøøøø€ ØÐÐÐØ2Ð2Ð2Ð2Ð2Ð2Ø(Ð(Ð(Ð(Ð(Ð(à
€AØ×Ò˜!ÑÔ€Að>ð >ð >ð >ð >ð >ð >ðð ð ð ð å�q‘”ðñ ô €Gð
 ð ð ˆØ	�Š‰	Œ	ˆ	ˆ	àð ð ˆØ	�Š‰Œˆˆðð r.   c                  óú   — t          j        d¦  «         dd l} t          j        t
          j        d|                      t          ¦  «        dz   g¦  «        }|j	        rt          j
        d|j	        › d�¦  «         d S d S )Nrí   r   z-cz
_test_threading()z2The subprocess returned with non-zero exit status ú.)rl   ÚimportorskipÚinspectÚ
subprocessÚrunÚsysÚ
executableÚ	getsourcerõ   Ú
returncodeÚfail)rù   Úprocs     r&   Útest_fontcache_thread_safer    sž   € Ý
Ô˜Ñ$Ô$Ð$Ø€N€N€NåŒ>Ý	Œ˜Ø	×	Ò	�?Ñ	+Ô	+Ð.CÑ	Cð	Eñô €Dð „ð +ÝŒð *Ø”ð*ð *ð *ñ 	+ô 	+ð 	+ð 	+ð 	+ð+ð +r.   c                  ó  — t          d¬¦  «        } |                      ¦   «         }t          j        t	          |¦  «        ¦  «        }|j        dk    sJ ‚|j        dk    sJ ‚|                      ¦   «         }|                     d¦  «        sJ ‚d S )Nú	font-name)r!   r   z<img src="data:image/png;base64)	r	   Ú
_repr_png_r   rE   r   ÚwidthÚheightÚ_repr_html_Ú
startswith)ÚfontentÚpngÚimgÚhtmls       r&   Útest_fontentry_dataclassr  #  s†   € Ý˜[Ð)Ñ)Ô)€Gà
×
Ò
Ñ
Ô
€CÝ
Œ*•W˜S‘\”\Ñ
"Ô
"€CØŒ9�qŠ=ˆ=ˆ=ˆ=ØŒ:˜Š>ˆ>ˆ>ˆ>à×ÒÑ Ô €DØ�?Š?Ð=Ñ>Ô>Ð>Ð>Ð>Ð>Ð>r.   c                  ó´   — t          j        t          ¦  «        5  t          dd¬¦  «        } |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nz/randomr  )rD   r!   )rl   r‰   rŠ   r	   r  )r
  s    r&   Ú%test_fontentry_dataclass_invalid_pathr  /  s›   € Ý	ŒÕ(Ñ	)Ô	)ð ð Ý )°+Ð>Ñ>Ô>ˆØ×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   š&AÁAÁAzLinux or OS onlyc                  ó(  — d„ dD ¦   «         } t          | d¬¦  «        }t          d¬¦  «        }g }||z   D ]G}	 t          j        |¦  «        }t          |¦  «        }|                     |j        ¦  «         ŒA#  Y ŒExY wt          t          t          |¦  «        ¦  «        ¦  «        }t          t          j
        ¦   «         ¦  «        }t          |¦  «        t          |¦  «        k    sJ ‚t          |¦  «        t          |¦  «        k    sJ ‚||k    sJ ‚d S )Nc                 ó8   — g | ]}t          j        d |¦  «        ‘ŒS )rš   )r   Ú_get_data_path)rg   Úsubdirs     r&   r°   z'test_get_font_names.<locals>.<listcomp>7  s%   € ÐMÐMÐM¸6•Ô% g¨vÑ6Ô6ÐMÐMÐMr.   )Úttfr  )Úfontext)r   r   r‡   r   Úappendr!   ÚsortedÚlistÚsetr   Úget_font_namesr#   )	Ú	paths_mplÚ	fonts_mplÚfonts_systemÚ	ttf_fontsr9   r$   r;   Úavailable_fontsÚmpl_font_namess	            r&   Útest_get_font_namesr"  5  s"  € àMÐMÀWÐMÑMÔM€IÝ 	°5Ð9Ñ9Ô9€IÝ"¨5Ð1Ñ1Ô1€LØ€IØ˜LÑ(ð ð ˆð	Ý”? 4Ñ(Ô(ˆDÝ" 4Ñ(Ô(ˆDØ×Ò˜TœYÑ'Ô'Ð'Ð'øð	ØˆDøøøÝ�T¥# i¡.¤.Ñ1Ô1Ñ2Ô2€OÝ�KÔ6Ñ8Ô8Ñ9Ô9€NÝˆÑÔ¥3 ~Ñ#6Ô#6Ò6Ð6Ð6Ð6ÝˆÑÔ¥3 ~Ñ#6Ô#6Ò6Ð6Ð6Ð6Ø˜nÒ,Ð,Ð,Ð,Ð,Ð,s   ¸=A6Á6A:)?Úior   r   rÊ   r¼   Úpathlibr   ÚPILr   r¡   rú   rü   r5   Únumpyr^   rl   rî   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Ú
matplotlibr   r{   r   ÚwhichÚ
has_fclistr'   r/   r=   rJ   ÚmarkÚskipifÚplatformrO   Úparametrizerd   rn   r‚   r…   r�   r«   r¶   rÁ   rÅ   ÚhasattrrÑ   rÜ   rõ   r  r  r  r"  r-   r.   r&   ú<module>r/     sÓ  ðØ  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€à Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
 1Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0àˆVŒ\˜)Ñ$Ô$¨DÐ0€
ðð ð ð0ð 0ð 0ðAð Að Að 8ð 8ð 8ð „×Ò�C”L GÒ+Ð=°:¨~Ø4ð ñ 6ô 6ð,ð ,ñ6ô 6ð,ð „×Ò˜ < < <Ñ0Ô0ð)ð )ñ 1Ô0ð)ð$
#ð 
#ð 
#ð+ð +ð +ð	+ð 	+ð 	+ðð ð ð$ „×Ò�C”L GÒ+Ð=°:¨~ØAð ñ Cô Cð(ð (ñCô Cð(ð2-ð -ð -ð  „×Ò�C”L GÒ+°NÐÑCÔCð9ð 9ñ DÔCð9ð6ð ð ð „×Ò˜˜ Ð$6Ñ7Ô7Ð7Ø=ð ñ ?ô ?ð+ð +ñ?ô ?ð+ð	ð 	ð 	ðð ð ð4
+ð 
+ð 
+ð	?ð 	?ð 	?ðð ð ð „×Ò�C”L GÒ+Ð4FÐÑGÔGð-ð -ñ HÔGð-ð -ð -r.   