+
    Z‹i¡  ã                  ó
  € R t ^ RIHt ^ RIHt ^RIHt ^RIHt ^ RI	t	]'       d   ^ RI
Ht R tR tR	 tR
 t]	P                   ! R]3R]3R]3R]3R.4      tR R ltR R ltR R lt ! R R]4      t ! R R]4      tR tR# )zú
Adds attribute list syntax to Python-Markdown.
Inspired by
[Maruku](http://maruku.rubyforge.org/proposal.html#attribute_lists)'s
feature of the same name.

See the [documentation](https://Python-Markdown.github.io/extensions/attr_list)
for details.
)Úannotations)ÚTYPE_CHECKING)Ú	Extension)ÚTreeprocessorN)ÚElementc                óN   € VP                  R ^4      w  r#W#P                  R4      3# )Ú=Ú"©ÚsplitÚstrip©ÚsÚtÚkÚvs   &&  Ú?/usr/lib/python3/dist-packages/markdown/extensions/attr_list.pyÚ_handle_double_quoter   &   ó#   € Ø�7‰7�3˜‹?�D€AØ�g‰g�c‹lˆ?Ðó    c                óN   € VP                  R ^4      w  r#W#P                  R4      3# )r   Ú'r
   r   s   &&  r   Ú_handle_single_quoter   +   r   r   c                ó&   € VP                  R ^4      # )r   )r   ©r   r   s   &&r   Ú_handle_key_valuer   0   s   € Ø�7‰7�3˜‹?Ðr   c                ó�   € VP                  R 4      '       d   R VR,          3# VP                  R4      '       d   RVR,          3# W3# )Ú.:é   NNÚ#Úid)Ú
startswithr   s   &&r   Ú_handle_wordr"   4   sC   € Ø‡|�|�C×ÒØ�A�b•EˆzÐØ‡|�|�C×ÒØ�Q�r•Uˆ{ÐØˆ4€Kr   z[^ =}]+=".*?"z[^ =}]+='.*?'z[^ =}]+=[^ =}]+z[^ =}]+c               ó    € V ^8„  d   QhRRRR/# )é   Úattrs_stringÚstrÚreturnz!tuple[list[tuple[str, str]], str]© )Úformats   "r   Ú__annotate__r*   E   s   € ÷ 
ñ 
¨#ð 
Ð2Sñ 
r   c                ór   € \         P                  V 4      w  rVP                  R4      pVR8w  d   W#R MRpW3# )zëParse attribute list and return a list of attribute tuples.

Additionally, return any text that remained after a curly brace. In typical cases, its presence
should mean that the input does not match the intended attribute list syntax.
Ú}NÚ éÿÿÿÿ)Ú_scannerÚscanÚfind)r%   ÚattrsÚ	remainderÚindexs   &   r   Úget_attrs_and_remainderr5   E   s>   € ô  —}‘} \Ó2Ñ€Eà�N‰N˜3Ó€EØ%*¨b¤[�	˜&Ñ!°b€IØÐÐr   c               ó    € V ^8„  d   QhRRRR/# )r$   r&   r'   zlist[tuple[str, str]]r(   )r)   s   "r   r*   r*   R   s   € ÷ +ñ +�3ð +Ð0ñ +r   c                ó&   € \        V 4      ^ ,          # )z3Soft-deprecated. Prefer `get_attrs_and_remainder`. )r5   )r&   s   &r   Ú	get_attrsr8   R   s   € ä" 3Ó'¨Õ*Ð*r   c               ó    € V ^8„  d   QhRRRR/# )r$   Úelemr   r'   Úboolr(   )r)   s   "r   r*   r*   W   s   € ÷ <ñ <�7ð <˜tñ <r   c                ó    € V P                   R9   # )Úh1)r=   Úh2Úh3Úh4Úh5Úh6)Útag)r:   s   &r   ÚisheaderrD   W   s   € Ø�8‰8Ð;Ñ;Ð;r   c                  ó0  € ] tR t^[tRt]P                  ! RP                  ]4      4      t]P                  ! RP                  ]4      4      t	]P                  ! RP                  ]4      4      t
]P                  ! R4      tR R ltRR	/R
 R lltR R ltRtR# )ÚAttrListTreeprocessorz\{\:?[ ]*([^\}\n ][^\n]*)[ ]*\}z[ ]+{}[ ]*$z\n[ ]*{}[ ]*$z^{}zÃ[^A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\:\-\.0-9\u00b7\u0300-\u036f\u203f-\u2040]+c               ó    € V ^8„  d   QhRRRR/# )r$   Údocr   r'   ÚNoner(   )r)   s   "r   r*   Ú"AttrListTreeprocessor.__annotate__g   s   € ÷ :Dñ :D�wð :D 4ñ :Dr   c                	óV
  € VP                  4        EF  pV P                  P                  VP                  4      '       EdV   V P                  p\        V4      '       g   VP                  R9   d   V P                  p\        V4      '       Ed8   VP                  R8X  Ed&   Rp\        V4       F  w  rVVP                  R9   g   K  Tp M	  Vf¥   VR,          P                  '       dŒ   VP                  VR,          P                  4      pV'       d_   V P                  W'P                  ^4      RR7      '       g4   VR,          P                  RVP                  4        VR,          n	        EK[  EK^  EKa  VeÄ   V^ 8”  d½   W$^,
          ,          P                  '       dž   VP                  W$^,
          ,          P                  4      pV'       dk   V P                  W'P                  ^4      RR7      '       g@   W$^,
          ,          P                  RVP                  4        W$^,
          ,          n	        EK"  EK%  EK(  VP                  '       dw   VP                  VP                  4      pV'       dQ   V P                  W'P                  ^4      RR7      '       g&   VP                  RVP                  4        Vn        EKª  EK­  EK°  EK³  \        V4      '       dõ   VR,          P                  '       dÜ   VP                  VR,          P                  4      pV'       d¯   V P                  W'P                  ^4      RR7      '       g„   VR,          P                  RVP                  4        VR,          n	        \        V4      '       d@   VR,          P                  P                  R4      P                  4       VR,          n	        EK¯  EK²  EKµ  EK¸  VP                  '       d¹   VP                  VP                  4      pV'       d“   V P                  W'P                  ^4      RR7      '       gh   VP                  RVP                  4        Vn        \        V4      '       d2   VP                  P                  R4      P                  4       Vn        EKy  EK|  EK  EK‚  EK…  VP                  '       g   EKš  V P                   P#                  VP                  4      pV'       g   EKÊ  V P                  W'P                  ^4      4      pVP                  VP%                  4       R V,           Vn	        EK  	  R# )	ÚdtÚliNT)Ústrictr   )rL   ÚtdÚth)ÚulÚolr.   )ÚiterÚmdÚis_block_levelrC   ÚBLOCK_RErD   Ú	HEADER_REÚlenÚ	enumerateÚtailÚsearchÚassign_attrsÚgroupÚstartÚtextÚrstripÚ	INLINE_REÚmatchÚend)	ÚselfrH   r:   ÚREÚposÚiÚchildÚmr3   s	   &&       r   ÚrunÚAttrListTreeprocessor.rung   s”  € Ø—H‘H—JˆDØ�w‰w×%Ñ% d§h¡h×/Ó/à—]‘]�Ü˜D—>’> T§X¡XÐ1CÔ%CàŸ™�BÜ�t—9“9 §¡¨TÕ!1à�Cä$-¨d¦O™˜Ø Ÿ9™9¨Ö4Ø"#˜CÙ!ñ %4ð ’{ t¨B¥x§}§} }àŸI™I d¨2¥h§m¡mÓ4˜ßØ#'×#4Ñ#4°T¿7¹7À1»:ÈdÐ#4×#SÒ#SØ04°Rµ·±¸j¸q¿w¹w»yÐ0I  R¥§ò $Tò ð š¨S°1¬W¸À!½e½×9I×9IÐ9IàŸI™I d¨q­5¥k×&6Ñ&6Ó7˜ßØ#'×#4Ñ#4°T¿7¹7À1»:ÈdÐ#4×#SÒ#SØ37¸A½µ;×3CÑ3CÀJÀQÇWÁWÃYÐ3O ¨¥U¥× 0ò $Tò ð ŸŸ˜àŸI™I d§i¡iÓ0˜ßØ#'×#4Ñ#4°T¿7¹7À1»:ÈdÐ#4×#SÒ#SØ,0¯I©I°j°q·w±w³yÐ,A §	ò $Tò ò #ô ˜—Y’Y 4¨¥8§=§= =àŸ	™	 $ r¥(§-¡-Ó0�AßØ#×0Ñ0°·w±w¸q³zÈ$Ð0×OÒOØ,0°­H¯M©M¸*¸1¿7¹7»9Ð,E˜D �HœMÜ'¨Ÿ~š~à04°Rµ·±×0DÑ0DÀSÓ0I×0PÑ0PÓ0R  R¥§ò  .ò  Pò ð —Y—Y�YàŸ	™	 $§)¡)Ó,�AßØ#×0Ñ0°·w±w¸q³zÈ$Ð0×OÒOØ(,¯	©	°*°1·7±7³9Ð(=˜DœIÜ'¨Ÿ~š~à,0¯I©I×,<Ñ,<¸SÓ,A×,HÑ,HÓ,J §	ò  .ò  Pò ò ð —9—9“9ØŸ™×,Ñ,¨T¯Y©YÓ7�Aß’qØ$(×$5Ñ$5°d¿G¹GÀA»JÓ$G˜	Ø$(§I¡I¨a¯e©e«g¨hÐ$7¸)Õ$C˜Ÿ	ós r   rN   Fc               ó(   € V ^8„  d   QhRRRRRRRR/# )r$   r:   r   r%   r&   rN   r;   r'   r(   )r)   s   "r   r*   rJ   £   s)   € ÷ ñ  ð ¸ð Èð ÐY\ñ r   c               óJ  € \        V4      w  rEV'       d   V'       d   V# V F}  w  rgVR8X  dQ   VP                  R4      pV'       d$   VP                  RRP                  W‡4      4       KH  VP                  RV4       K\  VP                  V P	                  V4      V4       K  	  V# )zÑAssign `attrs` to element.

If the `attrs_string` has an extra closing curly brace, the remaining text is returned.

The `strict` argument controls whether to still assign `attrs` if there is a remaining `}`.
r   Úclassz{} {})r5   ÚgetÚsetr)   Úsanitize_name)	rd   r:   r%   rN   r2   r3   r   r   Úclss	   &&&$     r   r\   Ú"AttrListTreeprocessor.assign_attrs£   sˆ   € ô 3°<Ó@Ñˆß—iØÐã‰DˆAØ�CŒxà—h‘h˜wÓ'�ßØ—H‘H˜W g§n¡n°SÓ&<Ö=à—H‘H˜W aÖ(ð —‘˜×+Ñ+¨AÓ.°Ö2ñ ð Ðr   c               ó    € V ^8„  d   QhRRRR/# )r$   Únamer&   r'   r(   )r)   s   "r   r*   rJ   ¼   s   € ÷ +ñ + #ð +¨#ñ +r   c                ó:   € V P                   P                  RV4      # )zf
Sanitize name as 'an XML Name, minus the `:`.'
See <https://www.w3.org/TR/REC-xml-names/#NT-NCName>.
Ú_)ÚNAME_REÚsub)rd   ru   s   &&r   rq   Ú#AttrListTreeprocessor.sanitize_name¼   s   € ð
 �|‰|×Ñ  TÓ*Ð*r   r(   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚBASE_REÚreÚcompiler)   rW   rV   ra   rx   rj   r\   rq   Ú__static_attributes__r(   r   r   rF   rF   [   sƒ   † à0€GØ—
’
˜>×0Ñ0°Ó9Ó:€IØ�zŠzÐ*×1Ñ1°'Ó:Ó;€HØ—
’
˜6Ÿ=™=¨Ó1Ó2€IØ�jŠjð Hó I€Gõ:DðxÈu÷ ÷2+ñ +r   rF   c                  ó    € ] tR t^ÄtRtR tRtR# )ÚAttrListExtensionz-Attribute List extension for Python-Markdown c                	ót   € VP                   P                  \        V4      R ^4       VP                  V 4       R# )Ú	attr_listN)ÚtreeprocessorsÚregisterrF   ÚregisterExtension)rd   rT   s   &&r   ÚextendMarkdownÚ AttrListExtension.extendMarkdownÆ   s.   € Ø
×Ñ×"Ñ"Ô#8¸Ó#<¸kÈ1ÔMØ
×Ñ˜TÖ"r   r(   N)r{   r|   r}   r~   Ú__doc__rŠ   r‚   r(   r   r   r„   r„   Ä   s
   † Ù8ö#r   r„   c                 ó   € \        R/ V B # )Nr(   )r„   )Úkwargss   ,r   ÚmakeExtensionr�   Ë   s   € ÜÑ&˜vÑ&Ð&r   )Ú N)rŒ   Ú
__future__r   Útypingr   r-   r   r‡   r   r€   Úxml.etree.ElementTreer   r   r   r   r"   ÚScannerr/   r5   r8   rD   rF   r„   r�   r(   r   r   Ú<module>r•      sŸ   ðñ"õ #Ý  å Ý *Û 	çÝ-òò
ò
òð �:Š:ØÐ+Ð,ØÐ+Ð,ØÐ*Ð+Ø�ÐØðó €õ
õ+õ
<ôf+˜Mô f+ôR#˜	ô #ô'r   