ó
    F\h=9  ã                   ó  • S r SSKr\R                  " S5      R                  r\R                  " S5      R                  r\R                  " S5      r\R                  " S5      r\R                  " S5      rC " S S	5      r	g)
zÎShared support for scanning document type declarations in HTML and XHTML.

This module is used as a foundation for the html.parser module.  It has no
documented public API and should not be used directly.

é    Nz[a-zA-Z][-_.a-zA-Z0-9]*\s*z(\'[^\']*\'|"[^"]*")\s*z--\s*>z	]\s*]\s*>z]\s*>c                   óx   • \ rS rSrSrS rS rS rS rSr	S r
SS	 jrSS
 jrS rS rS rS rS rS rS rSrg)Ú
ParserBaseé   zeParser base class which provides some common support methods used
by the SGML/HTML and XHTML parsers.c                 ó@   • U R                   [        L a  [        S5      eg )Nz)_markupbase.ParserBase must be subclassed)Ú	__class__r   ÚRuntimeError©Úselfs    Ú"/usr/lib/python3.13/_markupbase.pyÚ__init__ÚParserBase.__init__   s#   € Ø�>‰>œZÒ'ÜØ;ó=ð =ð (ó    c                 ó    • SU l         SU l        g )Né   r   ©ÚlinenoÚoffsetr	   s    r   ÚresetÚParserBase.reset    s   € ØˆŒØˆ�r   c                 ó2   • U R                   U R                  4$ )z&Return current line number and offset.r   r	   s    r   ÚgetposÚParserBase.getpos$   s   € à�{‰{˜DŸK™KÐ'Ð'r   c                 óô   • X:¼  a  U$ U R                   nUR                  SX5      nU(       a4  U R                  U-   U l        UR                  SX5      nX%S-   -
  U l        U$ U R                  U-   U-
  U l        U$ )NÚ
r   )ÚrawdataÚcountr   Úrindexr   )r
   ÚiÚjr   ÚnlinesÚposs         r   Ú	updateposÚParserBase.updatepos,   sw   € Ø‹6ØˆHØ—,‘,ˆØ—‘˜t QÓ*ˆÞØŸ+™+¨Ñ.ˆDŒKØ—.‘.  qÓ,ˆCØ ™U™)ˆDŒKð ˆð Ÿ+™+¨™/¨!Ñ+ˆDŒKØˆr   Ú c                 óN  • U R                   nUS-   nX!U S:X  d   S5       eX#US-    S:X  a  US-   $ X#US-    S;   a  g[        U5      nX#US-    S:X  a  U R                  U5      $ X#   S	:X  a  U R                  U5      $ U R	                  X15      u  pSUS
:  a  U$ US:X  a  SU l        X4:  aü  X#   nUS:X  a9  X!S-   U nUS:X  a  U R                  U5        US-   $ U R                  U5        US-   $ US;   a$  [        X#5      nU(       d  gUR                  5       nO€US;   a  U R	                  X15      u  p“OfX`R
                  ;   a  US-   nOQUS	:X  a;  US:X  a  U R                  US-   U5      nO/US;   a  [        SU-  5      e[        S5      e[        SX#   -  5      eUS
:  a  U$ X4:  a  Mü  g)Né   ú<!z$unexpected call to parse_declarationr   Ú>)Ú-r$   éÿÿÿÿz--Ú[r   Údoctyper$   z"'Ú4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>   ÚlinkÚattlistÚelementÚlinktypez&unsupported '[' char in %s declarationz"unexpected '[' char in declarationz!unexpected %r char in declaration)r   ÚlenÚparse_commentÚparse_marked_sectionÚ
_scan_nameÚ_decl_othercharsÚhandle_declÚunknown_declÚ_declstringlit_matchÚendÚ_parse_doctype_subsetÚAssertionError)
r
   r   r   r   ÚnÚdecltypeÚcÚdataÚmÚnames
             r   Úparse_declarationÚParserBase.parse_declaration<   sö  € ð —,‘,ˆØ�‰EˆØ˜ˆ|˜tÓ#ÐKÐ%KÓKÐ#Ø�Q�q‘Sˆ>˜SÓ à�q‘5ˆLØ�Q�q‘Sˆ>˜YÓ&ð ä�‹LˆØ�Q�q‘Sˆ>˜TÓ!à×%Ñ% aÓ(Ð(Ø‰Z˜3Óð
 ×,Ñ,¨QÓ/Ð/àŸ/™/¨!Ó/‰KˆHØˆq‹5ØˆHØ�yÓ Ø$&ˆDÔ!Ø‹eØ‘
ˆAØ�C‹xà ™s 1�~�Ø˜yÓ(Ø×$Ñ$ TÔ*ð ˜1‘u�ð ×%Ñ% dÔ+Ø˜1‘u�Ø�E‹zÜ(¨Ó4�ÞØØ—E‘E“G‘ØÐLÓLØŸ/™/¨!Ó/‘��aØ×+Ñ+Ó+Ø˜‘E‘Ø�c“à˜yÓ(Ø×2Ñ2°1°q±5¸!Ó<‘AØÐ!KÓKô
 )Ð)QÐT\Ñ)\Ó]Ð]ä(Ð)MÓNÐNä$Ð%HÈ7É:Ñ%UÓVÐVØ�1‹uØ�ðM �eðN r   c                 ó¬  • U R                   nX1US-    S:X  d   S5       eU R                  US-   U5      u  pEUS:  a  U$ US;   a  [        R                  X1S-   5      nO2US;   a  [        R                  X1S-   5      nO[        SX1S-   U -  5      eU(       d  gU(       a'  UR                  S5      nU R                  X1S-   U 5        UR                  S5      $ )	Né   z<![z)unexpected call to parse_marked_section()r   >   ÚtempÚcdataÚignoreÚrcdataÚinclude>   ÚifÚelseÚendifz+unknown status keyword %r in marked sectionr*   )	r   r5   Ú_markedsectioncloseÚsearchÚ_msmarkedsectioncloser<   Ústartr8   r:   )r
   r   Úreportr   ÚsectNamer   Úmatchs          r   r4   ÚParserBase.parse_marked_section�   sÜ   € Ø—‘ˆØ˜˜1™ˆ~ Ó&ÐSÐ(SÓSÐ&Ø—o‘o q¨¡s¨AÓ/‰ˆØˆq‹5ØˆHØÐGÓGä&×-Ñ-¨g¸±sÓ;‰EØÐ0Ó0ä(×/Ñ/°¸1¹Ó=‰Eä Ø=ÀÈ!ÉÈAÀÑNóð ö ØÞØ—‘˜A“ˆAØ×Ñ˜g¨¡c¨1˜oÔ.Ø�y‰y˜‹|Ðr   c                 ó  • U R                   nX1US-    S:w  a  [        S5      e[        R                  X1S-   5      nU(       d  gU(       a'  UR	                  S5      nU R                  X1S-   U 5        UR                  S5      $ )Né   ú<!--z"unexpected call to parse_comment()r*   r   )r   r<   Ú_commentcloserP   rR   Úhandle_commentr:   )r
   r   rS   r   rU   r   s         r   r3   ÚParserBase.parse_comment¥   su   € Ø—,‘,ˆØ�Q�q‘Sˆ>˜VÓ#Ü Ð!EÓFÐFÜ×$Ñ$ W°©cÓ2ˆÞØÞØ—‘˜A“ˆAØ×Ñ ¨!©¨Q Ô0Ø�y‰y˜‹|Ðr   c                 óê  • U R                   n[        U5      nUnXT:  GaÔ  X5   nUS:X  aÕ  X5US-    nUS:X  a  gUS:w  a"  U R                  X%S-   5        [        SU-  5      eUS-   U:X  a  gUS-   U:”  a  gX5US-    S:X  a  U R	                  US	S
9nUS	:  a  U$ M  U R                  US-   U5      u  p…US:X  a  gUS;  a"  U R                  X%S-   5        [        SU-  5      e[        U SU-   5      n	U	" XR5      nUS	:  a  U$ OíUS:X  a7  US-   U:X  a  gU R                  US-   U5      u  puUS	:  a  U$ X5   S:X  a  US-   nO°US:X  ap  US-   nXT:  a:  X5   R                  5       (       a#  US-   nXT:  a  X5   R                  5       (       a  M#  XT:  a&  X5   S:X  a  U$ U R                  X%5        [        S5      egUR                  5       (       a  US-   nOU R                  X%5        [        SU-  5      eXT:  a  GMÔ  g)NÚ<r&   r*   r'   r   z*unexpected char in internal subset (in %r)rX   rY   r   )rS   >   Úentityr/   r0   Únotationz)unknown declaration %r in internal subsetÚ_parse_doctype_Ú%Ú;Ú]r(   z%unexpected char after internal subsetz%unexpected char %r in internal subset)r   r2   r"   r<   r3   r5   ÚgetattrÚisspace)
r
   r   Údeclstartposr   r=   r   r?   ÚsrB   Úmeths
             r   r;   Ú ParserBase._parse_doctype_subset³   s<  € Ø—,‘,ˆÜ�‹LˆØˆØŒeØ‘
ˆAØ�C‹xØ˜a ™c�N�Ø˜“8àØ˜“9Ø—N‘N <°Q±Ô7Ü(ØDÀqÑHóð ð ˜‘E˜a“<àØ˜‘E˜Q“;àØ˜Q˜q™S�> VÓ+Ø×*Ñ*¨1°QÐ*Ð7�AØ˜1“uØ ˜ÙØŸ/™/¨!¨a©%°Ó>‘�Ø˜“7ØØÐKÓKØ—N‘N <°Q±Ô7Ü(ØCÀdÑJóð ô ˜tÐ%6¸Ñ%=Ó>�Ù˜Ó)�Ø�q“5Ø�Hð à�c“à˜‘E˜a“<àØ—‘ q¨1¡u¨lÓ;‘�Ø�q“5Ø�HØ‘: Ó$Ø˜A™�AøØ�c“Ø˜‘E�Ø“e ¡
× 2Ñ 2× 4Ñ 4Ø˜A™�Að “e ¡
× 2Ñ 2× 4Ó 4à“5Ø‘z SÓ(Ø ˜Ø—N‘N <Ô3Ü(Ð)PÓQÐQàØ—‘—‘Ø˜‘E‘à—‘˜|Ô/Ü$Ð%LÈqÑ%PÓQÐQð{ Žeð~ r   c                 óŠ   • U R                  X5      u  p4US:X  a  gU R                  nSXTS  ;   a  UR                  SU5      S-   $ g)Nr*   r(   r   )r5   r   Úfind)r
   r   rg   rB   r   r   s         r   Ú_parse_doctype_elementÚ!ParserBase._parse_doctype_elementù   sJ   € Ø—/‘/ !Ó2‰ˆØ�‹7Øà—,‘,ˆØ�'˜"�+ÓØ—<‘<  QÓ'¨!Ñ+Ð+Ør   c                 óè  • U R                   nU R                  X5      u  pEX5US-    nUS:X  a  gUS:X  a  US-   $  U R                  XR5      u  pEUS:  a  U$ X5US-    nUS:X  a  gUS:X  ae  SX5S  ;   a  UR                  SU5      S-   nOgX5US-    R                  5       (       a!  US-   nX5US-    R                  5       (       a  M!  X5S  (       d  gOU R                  XR5      u  pEX5US-    nU(       d  gUS;   a3  [	        X55      nU(       a  UR                  5       nOgX5US-    nU(       d  gUS	:X  a7  X5S  S	:X  a  gU R                  US-   U5      u  pEUS:  a  U$ X5US-    nU(       d  gUS:X  a  US-   $ GM:  )
Nr   r$   r*   r(   r   Ú(Ú)ú'"Ú#)r   r5   rl   rf   r9   r:   )r
   r   rg   r   rB   r   r?   rA   s           r   Ú_parse_doctype_attlistÚ!ParserBase._parse_doctype_attlist  s¨  € Ø—,‘,ˆØ—/‘/ !Ó2‰ˆØ�a˜‘cˆNˆØ�‹7ØØ�‹8Ø�q‘5ˆLØð —o‘o aÓ6‰GˆDØ�1‹uØ�Ø˜!˜A™#�ˆAØ�B‹wØØ�C‹xà˜' "˜+Ó%ØŸ™ S¨!Ó,¨qÑ0‘AàØ  !¡�n×,Ñ,×.Ñ.Ø˜A™�Að   !¡�n×,Ñ,×.Ó.à˜r–{àð #ð Ÿ/™/¨!Ó:‘�Ø˜!˜A™#�ˆAÞØØ�E‹zÜ(¨Ó4�ÞØŸ™›‘AàØ˜a ™c�N�ÞØØ�C‹xØ˜2�; #Ó%àØŸ/™/¨!¨a©%°Ó>‘�Ø�q“5Ø�HØ˜a ™c�N�ÞØØ�C‹xà˜1‘u�ò] r   c                 ó  • U R                  X5      u  p4US:  a  U$ U R                  n XTUS-    nU(       d  gUS:X  a  US-   $ US;   a$  [        XT5      nU(       d  gUR                  5       nOU R                  XB5      u  p4US:  a  U$ Ma  )Nr   r   r*   r(   rr   )r5   r   r9   r:   )r
   r   rg   rB   r   r   r?   rA   s           r   Ú_parse_doctype_notationÚ"ParserBase._parse_doctype_notation=  s�   € Ø—/‘/ !Ó2‰ˆØˆq‹5ØˆHØ—,‘,ˆØØ˜!˜A™#�ˆAÞàØ�C‹xØ˜1‘u�Ø�E‹zÜ(¨Ó4�ÞØØ—E‘E“G‘àŸ/™/¨!Ó:‘�Ø�q“5Ø�Hñ r   c                 ó¨  • U R                   nX1US-    S:X  a3  US-   n X4US-    nU(       d  gUR                  5       (       a  US-   nOOM-  UnU R                  XB5      u  pdUS:  a  U$  U R                   XDS-    nU(       d  gUS;   a$  [        X45      nU(       a  UR	                  5       nO'gUS:X  a  US-   $ U R                  XB5      u  pdUS:  a  U$ Mk  )Nr   rb   r*   r   rr   r(   )r   rf   r5   r9   r:   )r
   r   rg   r   r   r?   rB   rA   s           r   Ú_parse_doctype_entityÚ ParserBase._parse_doctype_entityT  sç   € Ø—,‘,ˆØ�Q�q‘Sˆ>˜SÓ Ø�A‘ˆAØØ˜a ™c�N�ÞØØ—9‘9—;‘;Ø˜A™‘Aàñ ð ˆAØ—/‘/ !Ó2‰ˆØˆq‹5ØˆHØØ—‘˜Q ™sÐ#ˆAÞØØ�E‹zÜ(¨Ó4�ÞØŸ™›‘AàØ�c“Ø˜1‘u�àŸ/™/¨!Ó:‘�Ø�q“5Ø�Hñ r   c                 óN  • U R                   n[        U5      nX:X  a  g[        X15      nU(       aS  UR                  5       nUR	                  5       nU[        U5      -   U:X  a  gUR                  5       UR                  5       4$ U R                  X!5        [        SX2US-    -  5      e)N)Nr*   zexpected name token at %ré   )	r   r2   Ú_declname_matchÚgroupÚstripÚlowerr:   r"   r<   )r
   r   rg   r   r=   rA   rh   rB   s           r   r5   ÚParserBase._scan_namex  s”   € Ø—,‘,ˆÜ�‹LˆØ‹6ØÜ˜GÓ'ˆÞØ—‘“	ˆAØ—7‘7“9ˆDØ”C˜“F‘
˜qÓ ØØ—:‘:“< §¡£Ð(Ð(à�N‰N˜<Ô+Ü Ø+¨gÀ<ÐPRÁ?Ð.SÑSóð r   c                 ó   • g )N© )r
   r@   s     r   r8   ÚParserBase.unknown_decl‹  s   € Ør   )r6   r   r   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r"   r6   rC   r4   r3   r;   rm   rt   rw   rz   r5   r8   Ú__static_attributes__r„   r   r   r   r      s[   † ñ+ò=ò
ò(òð ÐòMôbô0
òCòLò6òrò. òHõ&r   r   )
rŠ   ÚreÚcompilerU   r~   r9   rZ   rO   rQ   r   r„   r   r   Ú<module>rŽ      sw   ðñó 
à—*’*Ð:Ó;×AÑA€Ø—z’zÐ"<Ó=×CÑCÐ Ø—
’
˜9Ó%€Ø—j’j Ó.Ð ð
 Ÿ
š
 8Ó,Ð à÷uò ur   