ó
    Ú°›jC²  ã                  ó°  • S SK Jr  S SKrS SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SK
Jr  S SK
Jr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJ r   S SKJ!r!  S SKJ"r"  S SKJ#r#  S SKJ$r$  S SKJ%r%  S SKJ&r&  S SKJ'r'  S S KJ(r(  S S!KJ)r)  S S"KJ*r*  S S#KJ+r+  S S$KJ,r,  S S%KJ-r-  S S&KJ.r.  S S'KJ/r/  S S(KJ0r0  S S)KJ1r1  S S*KJ2r2  S S+KJ3r3  S S,K4J5r5  S S-K4J6r6  S S.K7J8r8  S/r9S0r:S1r;S2r<S3r=\>" S45      r?\>" S55      r@\?\@-  rA\>" S65      rB\>" \R†                  \Rˆ                  -   S7-   5      rE\>" S85      rF\>" S95      rG\>" S: \H" S;5       5       5      \I" \=5      1-  rJ\JS<1-  rK\JS=S>1-  rL\>" S? \H" S;5       5       5      \I" \=5      1-  rM\MS<S@1-  rN\M1 SAk-  rO " SB SC5      rPg)Dé    )ÚannotationsN)ÚAny)ÚCallable)Údecode)ÚRFC_3339_LOOSE)Ú_escaped)Úparse_rfc3339)Ú	Container)ÚEmptyKeyError)ÚEmptyTableNameError)ÚInternalParserError)ÚInvalidCharInStringError)ÚInvalidControlChar)ÚInvalidDateError)ÚInvalidDateTimeError)ÚInvalidNumberError)ÚInvalidTimeError)ÚInvalidUnicodeValueError)Ú
ParseError)ÚUnexpectedCharError)ÚUnexpectedEofError)ÚAoT)ÚArray)ÚBool)ÚBoolType)ÚComment)ÚDate)ÚDateTime)ÚFloat)ÚInlineTable)ÚInteger)ÚItem)ÚKey)ÚKeyType)ÚNull)Ú	SingleKey)ÚString)Ú
StringType)ÚTable)ÚTime)ÚTrivia)Ú
Whitespace)ÚSource)Ú_StateHandler)ÚTOMLDocumenté	   é
   é   é   é   z 	z
z= 	z-_ 	ú 	
#,]}z	
#,]}c              #  óN   #   • U  H  o[         :w  d  M  [        U5      v •  M     g 7f©N)ÚCTRL_IÚchr©Ú.0Úcs     ÚK/home/mande/repo/quber/.venv/lib/python3.13/site-packages/tomlkit/parser.pyÚ	<genexpr>r>   L   s   é € ÐDª A¼V¹›œ˜QŸ˜ªùs   ‚%“%é    Ú'Ú"Ú\c              #  ód   #   • U  H&  o[         [        [        4;  d  M  [        U5      v •  M(     g 7fr7   )r8   ÚCTRL_JÚCTRL_Mr9   r:   s     r=   r>   r>   V   s'   é € ð Úˆq¬V´V¼VÐ,DÑ#DƒF„Cˆ‡F€F’Kùs   ‚0ž0Ú>   rF   rA   rB   c                  ó  • \ rS rSrSrSrS.S jr\S/S j5       r\S0S j5       r	\S1S j5       r
\S0S j5       rS1S	 jrS2S3S jjrS2S4S jjrS5S6S jjrS7S jrS8S jr\4       S9S jjrS:S jrS;S jrS<S jrS=S jrS>S?S jjrS@SAS jjrSBS jrSBS jrSBS jrSBS jrSCS jrSDS jrSDS jr SES jr!SFS jr"SGS  jr#SHS! jr$SIS" jr%SJS# jr&SJS$ jr'SKS% jr(SLS& jr) SM     SNS' jjr*SOS( jr+SPS) jr,SQS* jr-SRS+ jr.SSS, jr/S-r0g
)TÚParseré]   z
Parser for TOML documents.
éd   c                óR   • [        [        U5      5      U l        / U l        SU l        g )Nr   )r-   r   Ú_srcÚ
_aot_stackÚ_nesting_depth)ÚselfÚstrings     r=   Ú__init__ÚParser.__init__g   s!   € äœ6 &›>Ó*ˆŒ	à%'ˆŒØˆÕó    c                ó.   • U R                   R                  $ r7   )rL   Ústate©rO   s    r=   Ú_stateÚParser._staten   s   € à�y‰y�‰ÐrS   c                ó.   • U R                   R                  $ r7   )rL   ÚidxrV   s    r=   Ú_idxÚParser._idxr   s   € à�y‰y�}‰}ÐrS   c                ó.   • U R                   R                  $ r7   )rL   ÚcurrentrV   s    r=   Ú_currentÚParser._currentv   s   € à�y‰y× Ñ Ð rS   c                ó.   • U R                   R                  $ r7   )rL   ÚmarkerrV   s    r=   Ú_markerÚParser._markerz   s   € à�y‰y×ÑÐrS   c                ó6   • U R                   R                  5       $ )z-
Extracts the value between marker and index
)rL   ÚextractrV   s    r=   rf   ÚParser.extract~   s   € ð �y‰y× Ñ Ó"Ð"rS   Nc                ó4   • U R                   R                  US9$ )zt
Increments the parser if the end of the input has not been reached.
Returns whether or not it was able to advance.
©Ú	exception)rL   Úinc)rO   rj   s     r=   rk   Ú
Parser.inc„   s   € ð
 �y‰y�}‰} yˆ}Ð1Ð1rS   c                ó4   • U R                   R                  XS9$ )zU
Increments the parser by n characters
if the end of the input has not been reached.
)Únrj   )rL   Úinc_n)rO   rn   rj   s      r=   ro   ÚParser.inc_n‹   s   € ð
 �y‰y�‰ ˆÐ8Ð8rS   c                ó6   • U R                   R                  XUS9$ )z4
Consume chars until min/max is satisfied is valid.
)ÚcharsÚminÚmax)rL   Úconsume)rO   rr   rs   rt   s       r=   ru   ÚParser.consume’   s   € ð �y‰y× Ñ  u¸3Ð Ð?Ð?rS   c                ó6   • U R                   R                  5       $ )z>
Returns True if the parser has reached the end of the input.
)rL   ÚendrV   s    r=   rx   Ú
Parser.end˜   s   € ð �y‰y�}‰}‹ÐrS   c                ó8   • U R                   R                  5         g)z1
Sets the marker to the index's current position
N)rL   ÚmarkrV   s    r=   r{   ÚParser.markž   s   € ð 	�	‰	�‰ÕrS   c                óB   • U R                   R                  " U/UQ70 UD6$ )z:
Creates a generic "parse error" at the current position.
)rL   Úparse_error)rO   rj   ÚargsÚkwargss       r=   r~   ÚParser.parse_error¤   s#   € ð �y‰y×$Ò$ YÐ@°Ò@¸Ñ@Ð@rS   c                ón  • [        S5      nU R                  5       (       d”  U R                  S:X  a  OƒU R                  5       nU(       d  OkUu  p4Ub  UR	                  5       (       d  U R                  XA5      (       d   UR                  X45        U R                  5         U R                  5       (       d  M”  U R                  5       (       dv  U R                  5       u  p4[        U[        5      (       a&  UR                  5       (       a  U R!                  XC5      n UR                  X45        U R                  5       (       d  Mv  UR#                  S5        U$ ! [         a%  nU R                  [        [        U5      5      UeS nAff = f! [         a%  nU R                  [        [        U5      5      UeS nAff = f)NTÚ[F)r/   rx   r_   Ú_parse_itemÚis_multiÚ	_merge_wsÚappendÚ	Exceptionr~   r   Ústrr{   Ú_parse_tableÚ
isinstancer)   Úis_aot_elementÚ
_parse_aotÚparsing)rO   ÚbodyÚitemÚkeyÚvalueÚes         r=   ÚparseÚParser.parse¯   s_  € Ü˜DÓ!ˆð —(‘(—*‘*à�}‰} Ó#Øð ×#Ñ#Ó%ˆDÞØà‰JˆCØ‘ C§L¡L§N¡N¸4¿>¹>È%×;VÑ;VðFØ—K‘K Ô+ð �I‰IŒKð% —(‘(—*“*ð( —(‘(—*‘*Ø×*Ñ*Ó,‰JˆCÜ˜%¤×'Ñ'¨E×,@Ñ,@×,BÑ,Bð Ÿ™¨Ó3�ðBØ—‘˜CÔ'ð —(‘(—*“*ð 	�‰�UÔàˆøô' !ó FØ×*Ñ*¬:´s¸1³vÓ>ÀAÐEûðFûô ó BØ×&Ñ&¤z´3°q³6Ó:ÀÐAûðBús0   Á=E ÄF Å
FÅ E=Å=FÆ
F4Æ F/Æ/F4c                óz  • UR                  5       nU(       d  g[        U[        5      (       a  [        U[        5      (       d  gU R                  [	        UR
                  5      [	        UR
                  5      -   -
  nUR                  S   S   [        U R                  X@R                   5      4UR                  S'   g)z�
Merges the given Item with the last one currently in the given Container if
both are whitespace items.

Returns True if the items were merged.
Féÿÿÿÿr   T)Ú	last_itemr‹   r,   r[   ÚlenÚsr�   rL   )rO   r�   Ú	containerÚlastÚstarts        r=   r†   ÚParser._merge_ws×   s’   € ð ×"Ñ"Ó$ˆÞØä˜$¤
×+Ñ+´:¸dÄJ×3OÑ3OØà—	‘	œS §¡›[¬3¨t¯v©v«;Ñ6Ñ7ˆà�N‰N˜2Ñ˜qÑ!Ü�t—y‘y ¯©Ð3Ó4ð
ˆ	�‰�rÑð
 rS   c                óZ   • [        U5      n[        U5      nX4:X  a  gX4S[        U5       :H  $ )zt
Returns whether a key is strictly a child of another key.
AoT siblings are not considered children of one another.
FN)Útupler™   )rO   ÚparentÚchildÚparent_partsÚchild_partss        r=   Ú	_is_childÚParser._is_childí   s5   € ô
 ˜V“}ˆÜ˜E“lˆàÓ&ØàÐ+>¬S°Ó->Ð?Ñ?Ð?rS   c           
     óF  • U R                  5         U R                   n U R                  nUS:X  a4  U R                  5         S[	        U R                  5       5      4sSSS5        $ US;   a™  US:X  aY  U R                  SS9   U R                  5       (       a  U R                  S:w  a  U R                  [        [        S5      e SSS5        U R                  5       (       d$  S[	        U R                  5       5      4sSSS5        $ OaUS:X  aC  U R                  5       nU R                  5       u  pEnS[        [        X4XV5      5      4sSSS5        $ US	:X  a
   SSS5        gSUl        OGMI  SSS5        U R                  S5      $ ! , (       d  f       NÅ= f! , (       d  f       N0= f)
z_
Attempts to parse the next item and returns it, along with its key
if the item is value-like.
TÚ
Nú 	rF   ©ÚrestoreÚ	documentsÚ#rƒ   )r{   rW   r_   rk   r,   rf   r~   r   rE   Ú_parse_comment_trailr   r+   r«   Ú_parse_key_value)rO   rU   r<   ÚindentÚcwsÚcommentÚtrails          r=   r„   ÚParser._parse_itemú   s_  € ð
 	�	‰	ŒØ�[Š[˜EØØ—M‘M�Ø˜“9à—H‘H”Jà¤¨D¯L©L«NÓ!;Ð;÷ ‰[ð ˜'“\Ø˜D“yØ!Ÿ[™[°˜[Ò6Ø#'§8¡8§:¡:°·±À$Ó1FØ&*×&6Ñ&6Ü$6¼Àó'"ð !"ð 2G÷ 7ð  Ÿ8™8Ÿ:™:Ø#¤Z°·±³Ó%?Ð?÷# ‰[ð  &à˜#“Xà!Ÿ\™\›^�FØ*.×*CÑ*CÓ*EÑ'�C %à¤¬°¸WÓ)LÓ!MÐM÷/ ‰[ð0 ˜#“Xà÷5 ˆ[ð> %)�E”MØò? ÷ ðD ×$Ñ$ TÓ*Ð*÷1 7Õ6ú÷ �[ús=   �>FÁ%FÂ AFÃ7FÄA FÅFÅFÆ
F	ÆFÆ
F c                ó.  • U R                  5       (       a  gSnSnU R                  5          U R                  nUS:X  a  GO±US:X  Ga  U R                  5       nU R                  5         U R	                  5         U R                  5       (       dŸ  U R                  [
        ;  a‹  [        U R                  5      nU[        :X  d  U[        ::  a!  U[        :w  a  U R                  [        US5      eU R	                  5       (       d  O+U R                  5       (       d  U R                  [
        ;  a  M‹  U R                  5       nU R                  5         O¥US;   ap  US:X  aY  U R                  SS	9   U R	                  5       (       a  U R                  S:w  a  U R                  [        [        S5      e S
S
S
5        U R	                  5         OU R                  [        U5      eU R                  5       (       a  OGMÅ  SnU(       aö  U R                  R!                  ["        5        U R                  S:X  ai  U R                  SS	9   U R	                  5       (       a  U R                  S:w  a  U R                  [        [        S5      e S
S
S
5        U R	                  5         U R                  S:X  a  U R	                  5         U R$                  U R&                  :w  d  U R                  [(        ;   a  U R                  5       nX2U4$ ! , (       d  f       GNR= f! , (       d  f       N’= f)zk
Returns (comment_ws, comment, trail)
If there is no comment, comment_ws and comment will
simply be empty.
)Ú r¶   r¶   r¶   Tr¨   r­   Úcommentsr©   rF   rª   Nr¬   )rx   r{   r_   rf   rk   Ú_NLÚordÚCHR_DELÚCTRL_CHAR_LIMITr8   r~   r   rW   rE   r   rL   Úadvance_whileÚ_SPACESr[   rc   Ú_WS)rO   Úparse_trailr²   Ú
comment_wsr<   Úcoder³   s          r=   r®   ÚParser._parse_comment_trail$  sH  € ð �8‰8�:‰:ØàˆØˆ
Ø�	‰	ŒàØ—‘ˆAà�D‹yÙØ�c”Ø!Ÿ\™\›^�
à—	‘	”Ø—‘”
ð Ÿ(™(Ÿ*™*¨¯©¼cÓ)AÜ˜tŸ}™}Ó-�DØœw“¨4´?Ó+BÀtÌvÃ~Ø"×.Ñ.Ô/AÀ4ÈÓTÐTàŸ8™8Ÿ:™:Øð Ÿ(™(Ÿ*™*¨¯©¼cÕ)Að Ÿ,™,›.�Ø—	‘	”àØ�g“Ø˜“9ØŸ™¨T˜Ò2Ø#Ÿx™xŸz™z¨T¯]©]¸dÓ-BØ"&×"2Ñ"2Ü 2´F¸Jó#ð ð .C÷ 3ð
 —‘•
à×&Ñ&Ô':¸AÓ>Ð>à�x‰x�z‰zØòI ðL ˆÞØ�I‰I×#Ñ#¤GÔ,à�}‰} Ó$Ø—[‘[¨�[Ò.ØŸ8™8Ÿ:™:¨¯©¸$Ó)>Ø"×.Ñ.Ô/AÄ6È;ÓWÐWð *?÷ /ð —‘”
à�}‰} Ó$Ø—‘”
à�y‰y˜DŸL™LÓ(¨D¯M©M¼SÓ,@ØŸ™›�à EÐ)Ð)÷9 3Ö2ú÷" /Õ.ús   Å'AK4È8ALË4
LÌ
Lc                óÂ  • U R                  5         U R                  R                  [        5        U R	                  5       nU R                  5       nU R                  5         U R                  S:H  nU R                  [        ;   ao  U R                  5       (       aZ  U R                  S:X  a  U(       a  U R                  [        S5      eSnU R                  [        ;   a  U R                  5       (       a  MZ  U(       d   U R                  [        U R                  5      eUR                  (       d  U R	                  5       Ul        O#U=R                  U R	                  5       -  sl        U R                  5       nU(       aC  U R                  5       u  pgnUR                  n	U	R                  (       d  Xil        Xyl        X‰l        OSUR                  l        X%R                  l        X54$ )NÚ=Tr¶   )r{   rL   r¼   r½   rf   Ú
_parse_keyr_   Ú_KVrk   r~   r   ÚsepÚ_parse_valuer®   ÚtriviarÀ   r²   r³   r°   )
rO   Úparse_commentr°   r‘   Úfound_equalsÚvalr±   r²   r³   Úmetas
             r=   r¯   ÚParser._parse_key_valuei  sJ  € à�	‰	Œà�	‰	×Ñ¤Ô(à—‘“ˆð �o‰oÓˆà�	‰	Œà—}‘}¨Ñ+ˆØ�m‰mœsÓ" t§x¡x§z¡zØ�}‰} Ó#ÞØ×*Ñ*Ô+>ÀÓDÐDà#'�Lð �m‰mœsÓ" t§x¡x§z£zö Ø×"Ñ"Ô#6¸¿¹ÓFÐFà�w�wØ—l‘l“nˆC�Gà�GŠG�t—|‘|“~Ñ%�Gð ×ÑÓ!ˆæØ"&×";Ñ";Ó"=ÑˆC˜%Ø—:‘:ˆDØ—?—?Ø"%”à"ŒLØ�Jà!ˆC�J‰JÔà"�
‰
ÔàˆxˆrS   c                ó<  • U R                  5       nSnU R                  S:X  ay  US-  nX R                  :”  a$  U R                  [        SU R                   S35      eU R                  5         UR                  U R                  5       5      nU R                  S:X  a  My  U$ )zb
Parses a Key at the current position;
WS before the key must be exhausted first at the callsite.
é   Ú.zTOML key nested more than ú levels deep)Ú_parse_simple_keyr_   ÚMAX_NESTING_DEPTHr~   r   rk   Úconcat)rO   r‘   Ú	fragmentss      r=   rÅ   ÚParser._parse_key—  s˜   € ð
 ×$Ñ$Ó&ˆØˆ	Ø�m‰m˜sÓ"Ø˜‰NˆIØ×1Ñ1Ó1Ø×&Ñ&ÜØ0°×1GÑ1GÐ0HÈÐUóð ð �H‰HŒJØ—*‘*˜T×3Ñ3Ó5Ó6ˆCð �m‰m˜sÕ"ð ˆ
rS   c                óÀ   • U R                  5         U R                  R                  [        5        U R                  S;   a  U R                  5       $ U R                  5       $ )z,
Parses a single (non-dotted) key fragment.
z"')r{   rL   r¼   r½   r_   Ú_parse_quoted_keyÚ_parse_bare_keyrV   s    r=   rÓ   ÚParser._parse_simple_keyª  sI   € ð 	�	‰	Œà�	‰	×Ñ¤Ô(Ø�=‰=˜EÓ!Ø×)Ñ)Ó+Ð+à×'Ñ'Ó)Ð)rS   c                ót  ^• U R                  5       nU R                  m[        U4S j[         5       S5      nUc  [	        S5      eU R                  U[        R                  :X  a  [        R                  O[        R                  5      nUR                  R                  5       (       a*  U R                  [        UR                  R                  5      eXR                  5       -  nU R!                  5         U R"                  R%                  [&        5        XR                  5       -  n[)        [+        U5      USUS9$ )z:
Parses a key enclosed in either single or double quotes.
c              3  óJ   >#   • U  H  oR                   T:X  d  M  Uv •  M     g 7fr7   )r’   )r;   ÚtÚquote_styles     €r=   r>   Ú+Parser._parse_quoted_key.<locals>.<genexpr>½  s   øé € ÐF¢G˜q¯w©w¸+Ñ/EŸ™¢Gùs   ƒ#š	#Nz+Should not have entered _parse_quoted_key()r¶   )rÞ   rÇ   Úoriginal)rf   r_   Únextr$   ÚRuntimeErrorÚ_parse_stringÚBasicr(   ÚSLBÚSLLÚ_tÚis_multiliner~   r   r’   Ú	as_stringr{   rL   r¼   r½   r&   r‰   )rO   rá   Úkey_typeÚkey_strrß   s       @r=   rÙ   ÚParser._parse_quoted_key¶  sç   ø€ ð
 —<‘<“>ˆØ—m‘mˆÜÔF¥GÓFÈÓMˆàÑÜÐLÓMÐMà×$Ñ$Ø&¬'¯-©-Ó7ŒJ�NŠN¼Z¿^¹^ó
ˆð �:‰:×"Ñ"×$Ñ$Ø×"Ñ"Ô#6¸¿
¹
×8HÑ8HÓIÐIØ×%Ñ%Ó'Ñ'ˆØ�	‰	ŒØ�	‰	×Ñ¤Ô(Ø—L‘L“NÑ"ˆäœ˜W›¨°rÀHÑMÐMrS   c                ó<  • U R                   R                  [        5        U R                  5       nUR	                  5       nU(       d  U R                  [        5      eSU;   d  SU;   a  U R                  [        SU S35      e[        U[        R                  SU5      $ )z
Parses a bare key.
Ú Ú	zInvalid key "rA   r¶   )rL   r¼   Ú_BARE_KEY_OR_SPACErf   Ústripr~   r   r   r&   r$   ÚBare)rO   rá   Úkey_ss      r=   rÚ   ÚParser._parse_bare_keyÎ  s€   € ð 	�	‰	×ÑÔ 2Ô3à—<‘<“>ˆØ—‘Ó ˆÞà×"Ñ"¤=Ó1Ð1à�%‹<˜4 5›=à×"Ñ"¤:°¸u¸gÀQÐ/GÓHÐHä˜¤§¡¨b°(Ó;Ð;rS   c                óº
  • U R                  5         U R                  n[        5       nU[        R                  R
                  :X  a  U R                  5       $ U[        R                  R
                  :X  a  U R                  5       $ U[        R                  R
                  S   :X  a  U R                  5       $ U[        R                  R
                  S   :X  a  U R                  5       $ US:X  a  U R                  U R                  5      $ US:X  a  U R                  U R                   5      $ US;   d  U R#                  S5      S;   aZ  U R$                  R'                  [(        5        U R+                  5       nU R-                  X25      nUb  U$ U R/                  [0        5      eU[2        R4                  ;   Ga*  U R$                  R'                  [(        5        U R+                  5       n[6        R8                  " U5      nU(       Ga²  UR;                  S5      (       a§  UR;                  S	5      (       a‘   [=        U5      n[?        U[@        R@                  5      (       d   e[C        URD                  URF                  URH                  URJ                  URL                  URN                  URP                  URR                  UU5
      $ UR;                  S5      (       GaX   [=        U5      n[?        U[@        RX                  5      (       d   e[[        URD                  URF                  URH                  X#5      nU R                  5         U R$                  R'                  [\        5        U R+                  5       nUR_                  5       n	U[a        U	5      S Ul1        U	(       d  U$ [=        X9-   5      n[?        U[@        R@                  5      (       d   e[C        URD                  URF                  URH                  URJ                  URL                  URN                  URP                  URR                  UX9-   5
      $ UR;                  S	5      (       ap   [=        U5      n
[?        U
[@        Rf                  5      (       d   e[i        U
RJ                  U
RL                  U
RN                  U
RP                  U
RR                  UU5      $ U R-                  X25      nUb  U$ U R/                  [0        5      eU R/                  [l        U5      e! [T         a    U R/                  [V        5      Sef = f! [T         a    U R/                  [d        5      Sef = f! [T         a    U R/                  [j        5      Sef = f)
z4
Attempts to parse a value at the current position.
r   rƒ   Ú{z+-é   >   ÚinfÚnanú+infú+nanú-infú-nanNÚdateÚtime)7r{   r_   r+   r(   ræ   r’   Ú_parse_basic_stringrç   Ú_parse_literal_stringr   ÚTRUEÚ_parse_trueÚFALSEÚ_parse_falseÚ_parse_nestedÚ_parse_arrayÚ_parse_inline_tableÚ_peekrL   Úadvance_untilÚ	_NUM_STOPrf   Ú_parse_numberr~   r   rP   Údigitsr   ÚmatchÚgroupr	   r‹   Údatetimer   ÚyearÚmonthÚdayÚhourÚminuteÚsecondÚmicrosecondÚtzinfoÚ
ValueErrorr   rÿ   r   Ú_DATE_TAIL_STOPÚrstripr™   rÀ   r   r   r*   r   r   )rO   r<   rÉ   Úrawr�   ÚmÚdtrÿ   Útime_rawÚ	time_partrÞ   s              r=   rÈ   ÚParser._parse_valueà  sL  € ð 	�	‰	ŒØ�M‰MˆÜ“ˆà”
—‘×$Ñ$Ó$Ø×+Ñ+Ó-Ð-Ø”*—.‘.×&Ñ&Ó&Ø×-Ñ-Ó/Ð/Ø”(—-‘-×%Ñ% aÑ(Ó(Ø×#Ñ#Ó%Ð%Ø”(—.‘.×&Ñ& qÑ)Ó)Ø×$Ñ$Ó&Ð&Ø�#‹XØ×%Ñ% d×&7Ñ&7Ó8Ð8Ø�#‹XØ×%Ñ% d×&>Ñ&>Ó?Ð?Ø�$‹Y˜$Ÿ*™* Q›-ð ,
ó 
ð �I‰I×#Ñ#¤IÔ.à—,‘,“.ˆCà×%Ñ% cÓ2ˆDØÑØ�à×"Ñ"Ô#5Ó6Ð6Ø”&—-‘-Ôà�I‰I×#Ñ#¤IÔ.à—,‘,“.ˆCä×$Ò$ SÓ)ˆAßØ—7‘7˜6—?‘? q§w¡w¨v§¡ðOÜ*¨3Ó/˜Ü)¨"¬h×.?Ñ.?×@Ñ@Ð@Ð@Ü'ØŸG™GØŸH™HØŸF™FØŸG™GØŸI™IØŸI™IØŸN™NØŸI™IØ"Øó ð ð —7‘7˜6—?’?ðKÜ*¨3Ó/˜Ü)¨"¬h¯m©m×<Ñ<Ð<Ð<Ü# B§G¡G¨R¯X©X°r·v±v¸vÓK˜ØŸ	™	œØŸ	™	×/Ñ/´Ô@à#'§<¡<£>˜Ø$,§O¡OÓ$5˜	Ø,4´S¸³^Ð5EÐ,F˜Ô)Þ(Ø#'˜Kä*¨3©?Ó;˜Ü)¨"¬h×.?Ñ.?×@Ñ@Ð@Ð@Ü'ØŸG™GØŸH™HØŸF™FØŸG™GØŸI™IØŸI™IØŸN™NØŸI™IØ"Ø™Oó ð ð —7‘7˜6—?‘?ðKÜ)¨#Ó.˜Ü)¨!¬X¯]©]×;Ñ;Ð;Ð;Ü#ØŸF™FØŸH™HØŸH™HØŸM™MØŸH™HØ"Øó ð ð ×%Ñ% cÓ2ˆDØÑØ�à×"Ñ"Ô#5Ó6Ð6à×"Ñ"Ô#6¸Ó:Ð:øôq &ó OØ"×.Ñ.Ô/CÓDÈ$ÐNðOûô> &ó KØ"×.Ñ.Ô/?Ó@ÀdÐJðKûô  &ó KØ"×.Ñ.Ô/?Ó@ÀdÐJðKús.   È+BS1 ËCT ÎBT ÑA.T9 Ó1!TÔ!T6Ô9!Uc                ó@   • U R                  [        R                  5      $ r7   )Ú_parse_boolr   r  rV   s    r=   r  ÚParser._parse_trueY  s   € Ø×Ñ¤§¡Ó.Ð.rS   c                ó@   • U R                  [        R                  5      $ r7   )r$  r   r  rV   s    r=   r  ÚParser._parse_false\  s   € Ø×Ñ¤§¡Ó/Ð/rS   c                óÂ   • U R                      [        U5      nU H  nU R                  USSS9  M     [        U[	        5       5      sS S S 5        $ ! , (       d  f       g = f)NrÐ   )rs   rt   )rW   r   ru   r   r+   )rO   Ústyler<   s      r=   r$  ÚParser._parse_bool_  sH   € Ø�[‹[Ü˜U“OˆEó �Ø—‘˜Q A¨1�Ó-ñ ô ˜œv›xÓ(÷ �[�[ús   �9AÁ
Ac                ó  • U =R                   S-  sl         U R                   U R                  :”  a$  U R                  [        SU R                   S35      e U" 5       U =R                   S-  sl         $ ! U =R                   S-  sl         f = f)zE
Parses an array or inline table, enforcing the nesting depth limit.
rÐ   zTOML value nested more than rÒ   )rN   rÔ   r~   r   )rO   r”   s     r=   r  ÚParser._parse_nestedj  s   € ð 	×Ò˜qÑ ÕØ×Ñ ×!7Ñ!7Ó7Ø×"Ñ"ÜØ.¨t×/EÑ/EÐ.FÀlÐSóð ð	%Ù“7à×Ò 1Ñ$ÖøˆD×Ò 1Ñ$Öús   ÁA1 Á1Bc           
     óF  • U R                  [        S9  / nS n U R                  nU R                  S5        U R                  X0R                   n[
        [        U5      -  nU(       a  UR                  [        U5      5        Mk  U R                  S:X  a8  U R                  SS9u  pgnUR                  [        [        XFXx5      5      5        M³  U(       a  UR                  [        U5      5        MÖ  U(       d4  U R                  S:w  a$  UR                  U R                  5       5        SnGM  U(       au  U R                  S:X  ae  U R                  [        S9  [        US	   [        5      (       a  US	   R                  S-   US	   l        OUR                  [        S5      5        SnGM�  U R                  S:X  a  U R                  5         O U R#                  [$        U R                  5      e ['        U[        5       5      n	U	$ ! [(         a     Of = fU R#                  [*        S
5      e)Nri   Tú 	
r­   F©r¿   Ú]Ú,r—   zFailed to parse array)rk   r   r[   ru   rL   r¸   Úsetr‡   r,   r_   r®   r   r+   rÈ   r‹   rš   Ú_sr~   r   r   r  r   )
rO   ÚelemsÚ
prev_valuer{   r°   Únewliner±   r²   r³   Úress
             r=   r  ÚParser._parse_arrayy  sÇ  € à�‰Ô-ˆÑ.àˆØˆ
Øà—9‘9ˆDØ�L‰L˜Ô#Ø—Y‘Y˜t§i¡iÐ0ˆFÜœC ›KÑ'ˆGÞØ—‘œZ¨Ó/Ô0Ùð �}‰} Ó#Ø&*×&?Ñ&?ÈEÐ&?Ð&RÑ#�˜eØ—‘œW¤V¨F¸Ó%HÓIÔJÙö Ø—‘œZ¨Ó/Ô0Ùö  $§-¡-°3Ó"6Ø—‘˜T×.Ñ.Ó0Ô1Ø!�
Úö ˜dŸm™m¨sÓ2Ø—‘Ô#5�Ñ6ä˜e B™i¬×4Ñ4Ø#(¨¡9§;¡;°Ñ#4�E˜"‘I•Là—L‘L¤¨C£Ô1Ø"�
Úð �}‰} Ó#à—‘”
Øà×"Ñ"Ô#6¸¿¹ÓFÐFð	Ü˜œv›xÓ(ˆCð ˆJøô ó 	Ùð	úð
 ×ÑœzÐ+BÓCÐCs   Ç'G= Ç=
H
È	H
c           
     ót  • U R                  [        S9  [        S5      nSn  U R                  nU R	                  S5        U R
                  X0R                   nU(       a  UR                  [        U5      5        U R                  S:w  a  O9U R                  SS9u  pVnUR                  [        [        SXVU5      5      5        M   U R                  S:X  a  U R                  5         OÂU(       aY  U R                  S	:X  a   U R                  [        U R                  5      eU R                  S5      u  p‰UR                  X‰5        SnGM#  U R                  S	:w  a   U R                  [        U R                  5      eUR                  [        S	5      5        U R                  [        S9  SnGM„  [        U[        5       5      $ )
Nri   Tr.  r­   Fr/  r¶   Ú}r1  )rk   r   r
   r[   ru   rL   Úaddr,   r_   r®   r   r+   r~   r   r¯   r    )
rO   r4  Ú
expect_keyr{   r  r±   r²   r³   r‘   rÌ   s
             r=   r	  ÚParser._parse_inline_table¼  sl  € à�‰Ô-ˆÑ.ä˜$“ˆØˆ
ØØà—y‘y�Ø—‘˜YÔ'Ø—i‘i §y¡yÐ1�ÞØ—I‘Iœj¨›oÔ.à—=‘= CÓ'Øà&*×&?Ñ&?ÈEÐ&?Ð&RÑ#�˜eØ—	‘	œ'¤&¨¨S¸5Ó"AÓBÔCñ ð �}‰} Ó#à—‘”
ØæØ—=‘= CÓ'Ø×*Ñ*Ô+>ÀÇÁÓNÐNØ×0Ñ0°Ó7‘�Ø—	‘	˜#Ô#Ø"�
Úà�}‰} Ó#Ø×&Ñ&Ô':¸D¿M¹MÓJÐJà�I‰I”j “oÔ&à�H‰HÔ1ˆHÑ2ØˆJòE ôH ˜5¤&£(Ó+Ð+rS   c                óÐ  • SnUR                  S5      (       a
  US   nUSS  n[        U5      S:”  aJ  UR                  S5      (       a  UR                  S5      (       a  U(       a  UR                  S5      (       a  g UR                  S5      (       a  U(       a  g S	nS
nUR                  S5      (       a  SnSnO5UR                  S5      (       a  SnSnOUR                  S5      (       a  SnSn[        R                  " SU SU S3SU5      R	                  5       nSU;   a  g UR                  S5      (       d?  UR                  S5      (       d*  UR                  SS5      S   R                  S5      (       a  g  [        [        X6-   U5      X#U-   5      $ ! [         a     Of = fUS
:X  a=  SU;   d  SU;   d  US;   a+   [        [        X6-   5      X#U-   5      $ ! [         a     g f = fg )Nr¶   )Ú+Ú-r   rÐ   Ú0)z0.Ú0oÚ0xÚ0bÚ0erÑ   )rB  rC  rD  z[0-9]r1   rD  z[01]é   rB  z[0-7]é   rC  z[0-9a-f]é   z(?i)(?<=z)_(?=Ú)Ú_r“   )rù   rú   )Ú
startswithr™   ÚreÚsubÚlowerÚendswithÚsplitr!   Úintr  r   Úfloat)rO   r  rÉ   Úsignr  ÚbaseÚcleans          r=   r  ÚParser._parse_numberè  sË  € àˆØ�>‰>˜*×%Ñ%Ø�q‘6ˆDØ�a�b�'ˆCäˆs‹8�a‹<Ø�^‰^˜C× Ñ ¨¯©Ð8V×)WÑ)WÞ˜Ÿ™¨×,Ñ,àà�>‰>Ð,×-Ñ-¶$ØàˆØˆØ�>‰>˜$×ÑØˆFØ‰DØ�^‰^˜D×!Ñ!ØˆFØ‰DØ�^‰^˜D×!Ñ!ØˆFØˆDô —’˜ & ¨¨v¨h°aÐ8¸"¸cÓB×HÑHÓJˆà�%‹<Øà�>‰>˜#×ÑØ× Ñ  ×&Ñ&¨5¯;©;°s¸AÓ+>¸qÑ+A×+JÑ+JÈ3×+OÑ+Oàð	Üœ3˜t™|¨TÓ2°FÀ3¹JÓGÐGøÜó 	Ùð	úð �2‹:˜3 %›<¨3°%«<¸5ÀNÓ;RðÜœU 4¡<Ó0°&À¹*ÓEÐEøÜó Ùðúð s$   Å9F Æ
F!Æ F!Æ=G Ç
G$Ç#G$c                óŽ   • U R                      U R                  [        R                  5      sS S S 5        $ ! , (       d  f       g = fr7   )rW   rä   r(   rç   rV   s    r=   r  ÚParser._parse_literal_string   ó%   € Ø�[‹[Ø×%Ñ%¤j§n¡nÓ5÷ �[�[úó	   �6¶
Ac                óŽ   • U R                      U R                  [        R                  5      sS S S 5        $ ! , (       d  f       g = fr7   )rW   rä   r(   ræ   rV   s    r=   r  ÚParser._parse_basic_string$  rY  rZ  c                óD  • U(       at  U R                   [        ;   a`  SnU R                   [        ;   a#  X R                   -  nU R                  [        S9  M7  SU;  a   U R	                  [
        U R                   5      egU R                   [        ;   a(  [        U R                      nU R                  [        S9  U$ U R                   S;   a\  U R                  U R                   S:H  5      u  pEUb$  Uc   eU R                  [        U5      S-   5        U$ U R	                  [        5      eU R                   S:X  aN  U R                  5       u  pgUb$  Uc   eU R                  [        U5      S-   5        U$ U R	                  [        5      eU R	                  [
        U R                   5      e)Nr¶   ri   r¨   ¾   ÚUÚur_  rÐ   Úx)r_   r¾   rk   r   r~   r   r   Ú_peek_unicodero   r™   r   Ú	_peek_hex)rO   Ú	multilineÚtmpr<   r`  ÚueÚhÚhes           r=   Ú_parse_escaped_charÚParser._parse_escaped_char(  sd  € Þ˜Ÿ™¬#Ó-ð ˆCØ—-‘-¤3Ó&Ø—}‘}Ñ$�ð —‘Ô#5�Ñ6Ùð ˜3‹Ø×&Ñ&Ô'?ÀÇÁÓOÐOàà�=‰=œHÓ$Ü˜Ÿ™Ñ'ˆAð �H‰HÔ1ˆHÑ2àˆHà�=‰=˜JÓ&à×&Ñ& t§}¡}¸Ñ';Ó<‰EˆAØ‰}Ø‘~Ð%�~à—
‘
œ3˜r›7 Q™;Ô'à�à×"Ñ"Ô#;Ó<Ð<à�=‰=˜CÓØ—N‘NÓ$‰EˆAØ‰}Ø‘~Ð%�~à—
‘
œ3˜r›7 Q™;Ô'Ø�à×"Ñ"Ô#;Ó<Ð<à×ÑÔ7¸¿¹ÓGÐGrS   c                óò
  • U R                   UR                  :w  a  U R                  [        SU 35      eU R	                  [
        S9  U R                   UR                  :X  ah  U R	                  5       (       a  U R                   UR                  :w  a  [        USS[        5       5      $ U R	                  [
        S9  UR                  5       nU R                  5         SnUR                  5       (       a…  U R                   S:X  a  U R	                  [
        S9  OaU R                   nU R                  SS9   U R	                  5       (       a  X0R                   -  nS S S 5        US:X  a  U R                  S[
        S9  U R                  nUR                  5       (       a"  UR                  5       (       a  [         O["        nO!UR                  5       (       a  [$        O[&        nS	n [)        U R                   5      nUR                  5       (       a%  U(       d  U[*        :X  dY  U[,        ::  a
  U[.        :w  dE  UR                  5       (       aG  U(       d@  U[*        :X  d  U[,        ::  a,  U[.        [0        [2        4;  a  U R                  [4        US
5      eUR                  5       (       a“  U(       dŒ  U R                   S:X  a|  U R                  SS9   U R	                  5       (       a  U R                   S:w  a  U R                  [4        [2        S
5      e S S S 5        X R                   -  nU R	                  [
        S9  GO#U(       GdI  U R                   UR                  :X  Ga.  U R7                  5       nSn	UR                  5       (       aâ  Sn	U R                   UR                  :X  a:  X�R                   -  n	U R	                  5         U R                   UR                  :X  a  M:  [9        U	5      S:  a  X)-  nGM
  [9        U	5      S:X  a  [        XU[        5       5      $ [9        U	5      S:¼  a   U R                  [:        U R                   5      eX)S S -  nX‰S S -  n[        XU[        5       5      $ U R	                  5         [        XU[        5       5      $ UR                  5       (       a+  U(       a$  X R=                  UR                  5       5      -  nS	nO’UR                  5       (       a&  U R                   S:X  a  SnU R	                  [
        S9  OWUR>                  n
URA                  U5        URC                  5       (       a  U R                  [
        5      eX$X¤R>                   -  nGMy  ! , (       d  f       GN	= f! , (       d  f       GNj= f)Nz"Invalid character for string type ri   r¶   r¨   Trª   z
rF  FÚstringsrF   é   é   éýÿÿÿrB   )"r_   Úunitr~   r   rk   r   r'   r+   Útoggler{   ré   rW   ro   rL   Úis_singlelineÚis_basicÚ_SINGLE_BASIC_STOPÚ_SINGLE_LITERAL_STOPÚ_MULTI_BASIC_STOPÚ_MULTI_LITERAL_STOPr¹   rº   r»   r8   rD   rE   r   rf   r™   r   ri  r[   r  rx   )rO   Údelimr’   ÚcurÚsrcÚ	body_stopÚescapedrÁ   rá   ÚcloseÚ	run_starts              r=   rä   ÚParser._parse_string`  s:  € à�=‰=˜EŸJ™JÓ&Ø×"Ñ"Ü#Ø4°U°GÐ<óð ð 	�‰Ô-ˆÑ.à�=‰=˜EŸJ™JÓ&ð —8‘8—:‘: §¡°%·*±*Ó!<ä˜e R¨¬V«XÓ6Ð6ð �H‰HÔ1ˆHÑ2à—L‘L“NˆEà�	‰	ŒØˆð ×Ñ×ÑØ�}‰} Ó$à—‘Ô#5�Ò6àŸ=™=�Ø—[‘[¨�[Ò.Ø—x‘x—z‘zØŸ}™}Ñ,˜÷ /ð ˜&“=Ø—J‘J˜qÔ,>�JÑ?ð �i‰iˆØ×Ñ× Ñ Ø.3¯n©n×.>Ñ.>Õ*ÔDX‰Ià-2¯^©^×-=Ñ-=Õ)ÔCVˆIàˆØÜ�t—}‘}Ó%ˆDà×#Ñ#×%Ñ%ÞØœW“_¨´Ó)@ÀTÌVÃ^à×"Ñ"×$Ñ$ÞàœG“Oà¤Ó/°DÄÌÔQWÐ@XÓ4Xð ×&Ñ&Ô'9¸4ÀÓKÐKØ×#Ñ#×%Ñ%®g¸$¿-¹-È4Ó:OØ—[‘[¨�[Ò.ØŸ8™8Ÿ:™:¨¯©¸$Ó)>Ø"×.Ñ.Ô/AÄ6È9ÓUÐUð *?÷ /ð Ÿ™Ñ&�Ø—‘Ô#5�Ó6ß §¡°%·*±*Ô!<àŸ<™<›>�à�Ø×%Ñ%×'Ñ'à�EØŸ-™-¨5¯:©:Ó5Ø§¡Ñ.˜ØŸ™œ
ð Ÿ-™-¨5¯:©:Õ5ô ˜5“z A“~ð ™˜Ú ä˜5“z Q“ä% e°H¼f»hÓGÐGä˜5“z Q“Ø"×.Ñ.Ô/GÈÏÉÓWÐWà 3 B˜ZÑ'�EØ c r 
Ñ*�Hä! %°¼&»(ÓCÐCð —H‘H”Jä˜e¨H´f³hÓ?Ð?Ø—‘×!Ñ!¦gð ×1Ñ1°%×2DÑ2DÓ2FÓGÑG�ð  ‘Ø—‘×!Ñ! d§m¡m°tÓ&;à�ð —‘Ô#5�Ò6ð  ŸH™H�	Ø×!Ñ! )Ô,Ø—7‘7—9‘9à×*Ñ*Ô+=Ó>Ð>Ø˜Y¯©Ð2Ñ2�òm ÷# /Ö.ú÷F /Ö.ús   Ä/$UËAU'Õ
U$Õ'
U6c                ó  • U R                   S:w  a  U R                  [        S5      eU R                  5       nU R	                  5         U R                  5       (       a  U R                  [        5      eSnU R                   S:X  a,  U R	                  5       (       d  U R                  [        5      eSn U R                  5       nU R                  5       (       a  U R                  [        5      eU R                   S:w  a   U R                  [        U R                   5      eSUl        Un[        U5      n[        S U 5       5      (       a(  U R                  [        S	UR                  5        S
35      eSnU(       a  [        U5      n	OSn	[!        U5      [!        U	5      S-   :”  a  SnU[!        U	5      S n[#        S5      n
U R	                  5         U(       aj  U R                  5       (       a  U R                  [        5      eU R                   S:w  a   U R                  [        U R                   5      eU R	                  5         U R%                  5       u  p¼n['        5       n[)        U
[+        X;XÍ5      UU(       a  US   R,                  OUR,                  UR                  5       SS9n[!        U5      S:”  GaR  U(       aG  [)        [#        S5      [+        SX¼U5      U=(       a    US   U R.                  ;   SUS   R,                  S9nUnUS   n[1        USS 5       Hê  u  nnUR3                  U[)        [#        S5      [+        X;XÍ5      U=(       a    U[!        U5      S-
  :H  U[!        U5      S-
  :  UR,                  U[!        U5      S-
  :X  a  UR                  5       OSS95      nU(       a9  U[!        U5      S-
  :X  a'  UR5                  U[7        U/UR8                  SS95        OUR5                  UU5        UnUR:                  n
Mì     OU(       a  US   nU R                  5       (       GdR  U R=                  5       nU(       a/  Uu  nnU R?                  UU
5      (       d  UR5                  UU5        OôU R                   S:X  aÎ  U RA                  5       u  nnU RC                  UU5      (       a£  U RE                  Xo5      u  nnUR5                  UU5        U R                  5       (       dh  U RA                  5       u  nnU RC                  UU5      (       d  O=U RE                  Xo5      u  nnUR5                  UU5        U R                  5       (       d  Mh  O.U R                  [        S5      eU R                  5       (       d  GMR  UR:                  RG                  5         [I        U[&        5      (       a=  UnU(       a4  U R.                  (       a  X`R.                  S   :w  a  U RK                  Xæ5      nX^4$ ! [         a    U R                  [        5      Sef = f)z
Parses a table element.
rƒ   z/_parse_table() called on non-bracket character.FTNr0  r¶   c              3  óŠ   #   • U  H9  nS UR                   R                  5       ;   =(       a    UR                  5       v •  M;     g7f)rï   N)r‘   rò   Úis_bare)r;   Úparts     r=   r>   Ú&Parser._parse_table.<locals>.<genexpr>  s.   é € ÐQÂj¸dˆs�d—h‘h—n‘nÓ&Ñ&×9¨4¯<©<«>Ô9Âjùs   ‚AAzInvalid table name "rA   © rÐ   r   )ÚnameÚdisplay_nameÚis_super_table)rˆ  r†  rF  )rˆ  r†  r‡  )r†  Úparsedz7_parse_item() returned None on a non-bracket character.r—   )&r_   r~   r   rf   rk   rx   r   rÅ   r   r   r   rÇ   r    Úanyr   rê   r™   r
   r®   r%   r)   r+   r‘   rM   Ú	enumerateÚgetÚ
raw_appendr   r†  r’   r„   r†   Ú_peek_tabler¥   rŠ   Ú_validate_out_of_order_tabler‹   r�   )rO   Úparent_namer¡   r°   Úis_aotr‘   Úfull_keyÚ
name_partsÚmissing_tableÚparent_name_partsÚvaluesr±   r²   r³   ÚresultÚtableÚiÚ_namer¢   r‰  Ú_keyÚ_valrJ  Úkey_nextÚ
table_nexts                            r=   rŠ   ÚParser._parse_tableë  s2  € ð �=‰=˜CÓØ×"Ñ"Ü#Ð%Vóð ð —‘“ˆØ�‰Œ
à�8‰8�:‰:Ø×"Ñ"Ô#5Ó6Ð6àˆØ�=‰=˜CÓØ—8‘8—:‘:Ø×&Ñ&Ô'9Ó:Ð:àˆFð	BØ—/‘/Ó#ˆCð �8‰8�:‰:Ø×"Ñ"Ô#5Ó6Ð6Ø�]‰]˜cÓ!Ø×"Ñ"Ô#6¸¿¹ÓFÐFàˆŒØˆÜ˜3“Zˆ
ÜÑQÁjÓQ×QÑQØ×"Ñ"ÜÐ2°8×3EÑ3EÓ3GÐ2HÈÐJóð ð ˆÞÜ % kÓ 2Ñà "Ðäˆz‹?œSÐ!2Ó3°aÑ7Ó7Ø ˆMà¤Ð$5Ó 6Ð 8Ð9ˆ
ä˜4“ˆà�‰Œ
ÞØ�x‰x�z‰zØ×&Ñ&Ô'9Ó:Ð:Ø—‘ #Ó%Ø×&Ñ&Ô':¸D¿M¹MÓJÐJà�H‰HŒJà"×7Ñ7Ó9Ñˆ�eä"›fˆÜØÜ�6 Ó/ØÞ&0�˜A‘×"Ò"°c·g±gØ!×+Ñ+Ó-Ø ñ
ˆô ˆz‹?˜QÔÞô Ü˜d“OÜ˜2˜s¨UÓ3Ø×?˜z¨!™}°·±Ñ?Ø#'Ø# A™×*Ñ*ñ�ð ˆFØ˜Q‘-ˆCä% j°° nÖ5‘��5ØŸ	™	ØÜÜ! $›Ü˜v¨GÓ;Ø×; 1¬¨J«¸!Ñ(;Ñ#;Ø'(¬3¨z«?¸QÑ+>Ñ'>Ø"ŸY™Yà45¼¸Z»È1Ñ9LÓ4L˜H×.Ñ.Ô0ÐRVñ	ó�ö ˜a¤3 z£?°QÑ#6Ó6Ø×$Ñ$ U¬C°°¸e¿j¹jÐQUÑ,VÕWà×$Ñ$ U¨EÔ2à�ØŸ™’ò+ 6ö. Ø  ‘m�à—(‘(—*’*Ø×%Ñ%Ó'ˆFÞØ#‘
��dØ—~‘~ d¨F×3Ñ3Ø×$Ñ$ T¨4Ô0øà—=‘= CÓ'Ø"&×"2Ñ"2Ó"4‘K�A�xà—~‘~ h°×9Ñ9Ø/3×/@Ñ/@ÀÓ/QÑ,˜ *à×(Ñ(¨°:Ô>ð #'§(¡(§*¡*Ø*.×*:Ñ*:Ó*<™K˜A˜xà#'§>¡>°(¸H×#EÑ#EØ %à37×3DÑ3DÀXÓ3UÑ0˜H jà!×,Ñ,¨X°zÔBð #'§(¡(§*£*ð à×*Ñ*Ü+ØQóð ð9 —(‘(—*”*ð@ 	�‰×0Ñ0Ô2Ü�fœd×#Ñ#ØˆFæ˜tŸŸ°(¿o¹oÈbÑ>QÓ2QØŸ™¨Ó:�àˆ{ÐøôI ó 	BØ×"Ñ"Ô#6Ó7¸TÐAð	Bús   Â0W# ×#!Xc                óx  • U R                  SSS9   U R                  S:w  a  U R                  [        S5      eU R	                  5         SnU R                  S:X  a  U R	                  5         Sn XR                  5       4sSSS5        $ ! [         a    U R                  [        5      Sef = f! , (       d  f       g= f)z´
Peeks ahead non-intrusively by cloning then restoring the
initial state of the parser.

Returns the name of the table about to be parsed,
as well as whether it is part of an AoT.
T©Úsave_markerr«   rƒ   z._peek_table() entered on non-bracket characterFN)rW   r_   r~   r   rk   rÅ   r   r   )rO   r‘  s     r=   rŽ  ÚParser._peek_tableŠ  s®   € ð �[‰[ T°4ˆ[Ò8Ø�}‰} Ó#Ø×&Ñ&Ü'ØDóð ð �H‰HŒJØˆFØ�}‰} Ó#Ø—‘”
Ø�ðFØŸ™Ó0Ð0÷ 9Ñ8øô !ó FØ×&Ñ&Ô':Ó;ÀÐEðFú÷ 9Õ8ús   ‘AB+Á-BÂ!B(Â(B+Â+
B9c                ó”  • U/nU R                   R                  U5        U R                  5       (       dr  U R                  5       u  pEU(       aA  XR:X  a<  U R	                  U5      u  pg[        U[        5      (       d   eUR                  U5        OOU R                  5       (       d  Mr  U R                   R                  5         [        USS9$ )zO
Parses all siblings of the provided table first and bundles them into
an AoT.
T)r‰  )	rM   r‡   rx   rŽ  rŠ   r‹   r)   Úpopr   )rO   ÚfirstÚ
name_firstÚpayloadÚis_aot_nextÚ	name_nextrJ  r˜  s           r=   r�   ÚParser._parse_aot¥  s¡   € ð
 !&˜wˆØ�‰×Ñ˜zÔ*Ø—(‘(—*‘*Ø%)×%5Ñ%5Ó%7Ñ"ˆKÞ˜yÓ6Ø×,Ñ,¨ZÓ8‘�Ü! %¬×/Ñ/Ð/Ð/Ø—‘˜uÕ%àð —(‘(—*“*ð 	�‰×ÑÔä�7 4Ñ(Ð(rS   c                ó  • U R                  SS9   Sn[        U5       HJ  nU R                  SU R                  R                  -   ;  a   X R                  -  nU R                  5         MJ    O   UsSSS5        $ ! , (       d  f       g= f)zS
Peeks ahead n characters.

n is the max number of characters that will be peeked.
Trª   r¶   r5   N)rW   Úranger_   rL   ÚEOFrk   )rO   rn   ÚbufrJ  s       r=   r
  ÚParser._peek¹  sj   € ð �[‰[ ˆ[Ò&ØˆCÜ˜1–X�Ø—=‘=¨¸¿	¹	¿¹Ñ(EÓEØŸ=™=Ñ(�CØ—H‘H”JÙáñ ð ÷ '×&×&ús   �AA7Á7
Bc                ó8  • U R                  SSS9   U R                  S;  a  U R                  [        S5      eU R	                  5         U R                  5         U(       a  SnOSnU R                  U5      (       d  Su  p4OhU R                  5       nUR                  S5      (       a  S	U4sS	S	S	5        $ [        US
5      nSUs=::  a  S::  a  O  OS	U4sS	S	S	5        $  [        U5      nX44sS	S	S	5        $ ! [        [        4 a    S	n N f = f! , (       d  f       g	= f)z’
Peeks ahead non-intrusively by cloning then restoring the
initial state of the parser.

Returns the unicode value is it's a valid one else None.
Tr¡  r^  z,_peek_unicode() entered on non-unicode valuerG  rø   ©NNÚ0123456789abcdefABCDEFNrH  i Ø  iÿß  )rW   r_   r~   r   rk   r{   ro   rf   rò   rQ  r9   r  ÚOverflowError)rO   Úis_longrr   r’   Ú	extractedÚ	codepoints         r=   rb  ÚParser._peek_unicodeË  s  € ð �[‰[ T°4ˆ[Ò8Ø�}‰} JÓ.Ø×&Ñ&Ü'Ð)Wóð ð �H‰HŒJØ�I‰IŒKæØ‘à�à—:‘:˜e×$Ñ$Ø#-Ñ ��yà ŸL™L›N�	à—?‘?Ð#;×<Ñ<Ø ˜?÷) 9Ñ8ô,   	¨2Ó.�	ð
 ˜YÕ0¨&Ö0Ø ˜?÷9 9Ñ8ð<!Ü 	›N�Eð Ð#÷G 9Ñ8øô@ #¤MÐ2ó !Ø ’Eð!ú÷A 9Õ8ús6   ‘BDÂ2DÃC3Ã'DÃ3DÄDÄDÄDÄ
Dc                óæ  • U R                  SSS9   U R                  S:w  a  U R                  [        S5      eU R	                  5         U R                  5         U R                  S5      (       d
   S S S 5        gU R                  5       nUR                  S5      (       a
   S S S 5        g [        [        US5      5      nX!4sS S S 5        $ ! [        [        4 a    S n N f = f! , (       d  f       g = f)	NTr¡  ra  z$_peek_hex() entered on non-hex valuerF  r²  r³  rH  )rW   r_   r~   r   rk   r{   ro   rf   rò   r9   rQ  r  r´  )rO   r¶  r’   s      r=   rc  ÚParser._peek_hexø  sÕ   € Ø�[‰[ T°4ˆ[Ò8Ø�}‰} Ó#Ø×&Ñ&Ü'Ð)Oóð ð �H‰HŒJØ�I‰IŒKà—:‘:˜a—=‘=Ø!÷ 9Ð8ð Ÿ™›ˆIØ�‰Ð7×8Ñ8Ø!÷ 9Ð8ð ÜœC 	¨2Ó.Ó/�ð Ð#÷+ 9Ñ8øô$ ¤Ð.ó Ø’ðú÷% 9Õ8ús6   ‘AC"Á8'C"Â)C
Â>C"Ã
CÃC"ÃCÃC"Ã"
C0)rM   rN   rL   )rP   zstr | bytesÚreturnÚNone)r»  r.   )r»  rQ  )r»  r‰   r7   )rj   útype[ParseError] | Noner»  Úbool)rn   rQ  rj   r½  r»  r¾  )r   r—   )rr   r‰   rs   rQ  rt   rQ  r»  r¼  )r»  r¾  )r»  r¼  )rj   ztype[ParseError]r   r   r€   r   r»  r   )r»  r/   )r�   r"   r›   r
   r»  r¾  )r¡   r#   r¢   r#   r»  r¾  )r»  ztuple[Key | None, Item] | None)T)r¿   r¾  r»  ztuple[str, str, str])F)rÊ   r¾  r»  ztuple[Key, Item])r»  r#   )r»  r"   )r»  r   )r)  r   r»  r   )r”   zCallable[[], Item]r»  r"   )r»  r   )r»  r    )r  r‰   rÉ   r+   r»  zItem | None)r»  r'   )rd  r¾  r»  r‰   )rx  r(   r»  r'   r²  )r�  z
Key | Noner¡   zTable | Noner»  ztuple[Key, Table | AoT])r»  ztuple[bool, Key])r¦  r)   r§  r#   r»  r   )rn   rQ  r»  r‰   )rµ  r¾  r»  útuple[str | None, str | None])r»  r¿  )1Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rÔ   rQ   ÚpropertyrW   r[   r_   rc   rf   rk   ro   ru   rx   r{   r   r~   r”   r†   r¥   r„   r®   r¯   rÅ   rÓ   rÙ   rÚ   rÈ   r  r  r$  r  r  r	  r  r  r  ri  rä   rŠ   rŽ  r�   r
  rb  rc  Ú__static_attributes__r…  rS   r=   rH   rH   ]   s|  † ñð Ðô ð óó ðð óó ðð ó!ó ð!ð ó ó ð ô#ö2ö9ö@ôôð '1ð	Aà#ð	Að ð	Að ð		Að
 
õ	Aô&ôPô,@ô(+öTC*öJ,ô\ô&
*ôNô0<ô$w;ôr/ô0ô	)ô%ôADôF*,ôX6ôp6ô6ô6HôpI3ðX FJð]Ø%ð]Ø6Bð]à	 õ]ô~Fô6)ô(ô$+$÷Z$rS   rH   )QÚ
__future__r   r  rL  rP   Útypingr   r   Útomlkit._compatr   Útomlkit._utilsr   r   r	   Útomlkit.containerr
   Útomlkit.exceptionsr   r   r   r   r   r   r   r   r   r   r   r   r   Útomlkit.itemsr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   Útomlkit.sourcer-   r.   Útomlkit.toml_documentr/   r8   rD   rE   r»   rº   Ú	frozensetr½   r¸   r¾   rÆ   Úascii_lettersr  rñ   r  r  r­  r9   Ú_CTRL_SINGLEru  rt  Ú_CTRL_MULTIrw  rv  rH   r…  rS   r=   Ú<module>rÔ     s�  ðÝ "ã Û 	Û å Ý å "Ý )Ý #Ý (Ý 'Ý ,Ý 2Ý 2Ý 7Ý 1Ý /Ý 3Ý 1Ý /Ý 7Ý )Ý 2Ý 1Ý Ý Ý Ý "Ý !Ý Ý "Ý Ý %Ý !Ý Ý Ý !Ý Ý #Ý  Ý $Ý Ý Ý  Ý $Ý !Ý (Ý .ð 
€Ø	€Ø	€Ø€Ø
€ñ �EÓ
€Ù�Ó€Ø��m€Ù�Ó€Ù˜v×3Ñ3°f·m±mÑCÀgÑMÓNÐ Ù�mÓ$€	Ù˜LÓ)€ñ ÑD©¨t¬ÓDÓDÉÈGËÀ~ÑU€Ø# s eÑ+Ð Ø! S¨$ KÑ/Ð ñ ñ Ù˜$”Kóó áˆƒ\€Nñ€ð " S¨$ KÑ/Ð ØÒ"3Ñ3Ð ÷q$ò q$rS   