§
    òŽ’jâK  ã                   ó2  — d dl mZmZmZ ddlmZmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZ erddlmZ ddlmZ d	eee
f         d
ddedz  dedeee
f         f
d„Zdedefd„Zdddedeeef         ez  dz  d
ddeeedz  f         f
d„Zddd	eee
f         defd„Zddd	eee
f         deeef         fd„Zdddedefd„Zdddeddfd„Zddd
ddedz  dedeeeef         ez  dz  eeeef         ez  dz           ef         f
d„Z ddd
ddeeef         ez  dz  d ede
f
d!„Z!ddd	eee
f         dedeeef         ez  dz  ded
ddeee
f         fd"„Z"ddd	eee
f         deeef         ez  dz  ded
ddedz  de
fd#„Z#	 	 d&dddeeef         ez  dz  dede
fd%„Z$dS )'é    )ÚTYPE_CHECKINGÚAnyÚcasté   )ÚObjectSchemaConfigÚresolve_parser_object_schema)ÚMISSING_VALUEÚSTRING_DELIMITERSÚJSONReturnType)ÚContextValues)Úmatch_pattern_properties)Ú
JSONParser)ÚSchemaRepairerÚobjÚschema_repairerzSchemaRepairer | NoneÚschema_configNÚpathÚreturnc                 ó°  ‡ — |�|€‰ S ˆ fd„|j         D ¦   «         }|r3|j        dk    r(t          d|› dd                     |¦  «        › �¦  «        ‚|j                             ¦   «         D ]l\  }}|‰ v s	||j         v rŒt          |t          ¦  «        rDd|v r@|                     |d         |› d|› �d¦  «        ‰ |<   | 	                    d|› d|› �¦  «         Œm‰ S )	Nc                 ó   •— g | ]}|‰v¯|‘Œ	S © r   )Ú.0Úkeyr   s     €úFC:\Projects\DSCons\.venv\Lib\site-packages\json_repair\parse_object.pyú
<listcomp>z$_finalize_object.<locals>.<listcomp>   s   ø€ ÐPÐPÐP ÀÈCÀÀ˜ÀÀÀó    ÚsalvagezMissing required properties at z: z, Údefaultú.z+Inserted default value for missing property)
ÚrequiredÚschema_repair_modeÚ
ValueErrorÚjoinÚ
propertiesÚitemsÚ
isinstanceÚdictÚ_copy_json_valueÚ_log)r   r   r   r   Úmissing_requiredr   Úprop_schemas   `      r   Ú_finalize_objectr,      s-  ø€ ð Ð -Ð"7Øˆ
àPÐPÐPÐP }Ô'=ÐPÑPÔPÐØð b˜OÔ>À)ÒKÐKÝÐ`¸4Ð`Ð`À4Ç9Â9ÐM]ÑC^ÔC^Ð`Ð`ÑaÔaÐaà)Ô4×:Ò:Ñ<Ô<ð að aÑˆˆ[Ø�#ˆ:ˆ:˜ Ô 6Ð6Ð6ØÝ�k¥4Ñ(Ô(ð 	a¨Y¸+Ð-EÐ-EØ&×7Ò7¸ÀIÔ8NÐSWÐP_ÐP_ÐZ]ÐP_ÐP_ÐajÑkÔkˆC�‰HØ× Ò Ð!NÐSWÐP_ÐP_ÐZ]ÐP_ÐP_Ñ`Ô`Ð`øØ€Jr   Úbodyc                 óô  — g }d }d}d}|t          | ¦  «        k     �rÈ| |         }|dz   t          | ¦  «        k     r| |dz            nd}|dk    r |dz  }|                     |¦  «         |dz  }Œe|�.|                     |¦  «         ||k    r|dz  dk    rd }d}|dz  }Œ•|t          v r(|dz  dk    r|}|                     |¦  «         d}|dz  }ŒÆd}|dk    s|dk    rT|dk    rN||dk    rdndz  }|t          | ¦  «        k     r,| |         dvr"|dz  }|t          | ¦  «        k     r
| |         dv°"�Œ(|dk    r€|d	k    rz|dz  }|t          | ¦  «        dz
  k     r=| ||dz   …         d
k    r,|dz  }|t          | ¦  «        dz
  k     r| ||dz   …         d
k    °,t          |dz   t          | ¦  «        ¦  «        }�Œ®|                     |¦  «         |dz  }|t          | ¦  «        k     �°Èd                     |¦  «        S )Nr   r   Ú ú\é   ú#ú/)ú
úÚ*z*/)ÚlenÚappendr
   Úminr#   )r-   ÚstrippedÚin_quoteÚbackslashesÚindexÚcharÚ	next_chars          r   Ú/_strip_comments_for_empty_object_classificationr@   #   sr  € Ø€HØ€HØ€KØ€EØ
•#�d‘)”)Ò
Ñ
Ø�EŒ{ˆØ',¨q¡yµ3°t±9´9Ò'<Ð'<�D˜ ™”O�OÀ"ˆ	à�4Š<ˆ<Ø˜1ÑˆKØ�OŠO˜DÑ!Ô!Ð!Ø�Q‰JˆEØØÐØ�OŠO˜DÑ!Ô!Ð!Ø�xÒÐ K°!¡O°qÒ$8Ð$8Ø�ØˆKØ�Q‰JˆEØØÕ$Ð$Ð$¨°q©¸AÒ)=Ð)=ØˆHØ�OŠO˜DÑ!Ô!Ð!ØˆKØ�Q‰JˆEØØˆà�3Š;ˆ;˜4 3š;˜;¨9¸Ò+;Ð+;Ø˜$ #š+˜+�Q�Q¨1Ñ,ˆEØ�#˜d™)œ)Ò#Ð#¨¨U¬¸<Ð(GÐ(GØ˜‘
�ð �#˜d™)œ)Ò#Ð#¨¨U¬¸<Ð(GÐ(GáØ�3Š;ˆ;˜9¨Ò+Ð+Ø�Q‰JˆEØ�#˜d™)œ) a™-Ò'Ð'¨D°¸À¹Ð1BÔ,CÀtÒ,KÐ,KØ˜‘
�ð �#˜d™)œ) a™-Ò'Ð'¨D°¸À¹Ð1BÔ,CÀtÒ,KÐ,Kå˜ ™	¥3 t¡9¤9Ñ-Ô-ˆEÙà�Š˜ÑÔÐØ�‰
ˆðK •#�d‘)”)Ò
Ñ
ðN �7Š7�8ÑÔÐr   Úselfr   Ústart_indexÚschemac                 óF  — | j         |dz
  | j        dz   …         }|dd …         }|                     d¦  «        }|                     ¦   «         }|sdS |                     d¦  «        rd|v s|                     d¦  «        rGd|v rC|                     dd¦  «                             dd	¦  «        }|                      d
¦  «         d|fS t          |¦  «                             ¦   «         }|sdS d }d}|D ]`}	|	dk    r|dz  }Œ|�|	|k    r|dz  dk    rd }n<|	t          v r|dz  dk    r|	}n'|	dk    r!|dz  dk    r|                      d¦  «          dS d}Œa|�L|j	        dk    rAt          |t          ¦  «        r,|                     |¦  «        r|                     |¦  «        sdS dS )Nr   Ú})ÚkeepNz\"z\":z\'z\':ú"ú'zqParsed object is empty but the input starts like an escaped object key, normalizing and reparsing it as an objectÚobjectr   r0   r1   ú:zdParsed object is empty but the input still contains an object-style separator, keeping object repairr   )Úschema_set_objectN)ÚarrayN)Újson_strr=   ÚremovesuffixÚlstripÚ
startswithÚreplaceÚlogr@   r
   r!   r&   r'   Úis_object_schemaÚis_array_schema)
rA   rB   rC   r   Úattempted_objectr-   Únormalized_objectr;   r<   r>   s
             r   Ú_classify_empty_object_repairrW   R   s  € ð ”} [°1¡_°t´zÀA±~Ð%EÔFÐØ˜A˜B˜BÔ€DØ×Ò˜SÑ!Ô!€DØ�;Š;‰=Œ=€DØð Øˆ|Ø�Š˜ÑÔð + 6¨T > >°t·²ÀuÑ7MÔ7M >ÐRXÐ\`ÐR`ÐR`Ø,×4Ò4°U¸CÑ@Ô@×HÒHÈÐPSÑTÔTÐØ�ŠØñ	
ô 	
ð 	
ð Ð*Ð*Ð*Ý:¸4Ñ@Ô@×GÒGÑIÔI€DØð Øˆ|à€HØ€KØð ð ˆØ�4Š<ˆ<Ø˜1ÑˆKØØÐØ�xÒÐ K°!¡O°qÒ$8Ð$8Ø�øØÕ&Ð&Ð&¨;¸©?¸aÒ+?Ð+?ØˆHˆHØ�SŠ[ˆ[˜[¨1™_°Ò1Ð1Ø�HŠHØvñô ð ð  �<�<ØˆˆàÐ#ØÔ.°)Ò;Ð;Ý�v�tÑ$Ô$ð <à×,Ò,¨VÑ4Ô4ð <ð  ×/Ò/°Ñ7Ô7ð <ð
 )Ð(Øˆ=r   c                 óª  ‡— |r't          |                     ¦   «         ¦  «        d         nd }|r"t          ||         t           ¦  «        r| j        rdS | xj        dz  c_        |                      ¦   «         }t          |t           ¦  «        �rö||         }t          |t           ¦  «        �rØd„ |D ¦   «         Š‰r#t          ˆfd„‰D ¦   «         ¦  «        r‰d         nd }|�rWg }|r_t          |d         t           ¦  «        sD|                     |                     ¦   «         ¦  «         |rt          |d         t           ¦  «        ¯D|r–| 	                    ¦   «          t          |¦  «        |z  dk    rW|                      d¦  «         t          dt          |¦  «        |¦  «        D ]"}|                     ||||z   …         ¦  «         Œ#n|                     |¦  «         |rYt          d„ |D ¦   «         ¦  «        r+|                      d	¦  «         |                     |¦  «         na|                     |¦  «         nK|                     t          |¦  «        dk    r#t          |d         t           ¦  «        r|d         n|¦  «         |                      ¦   «          |                      ¦   «         d
k    r| xj        dz  c_        |                      ¦   «          dS )NéÿÿÿÿFr   c                 óV   — g | ]&}t          |t          ¦  «        ¯t          |¦  «        ‘Œ'S r   )r&   Úlistr7   ©r   Úitems     r   r   z4_merge_object_array_continuation.<locals>.<listcomp>‘   s.   € ÐWÐWÐW¨$Å
È4ÕQUÑ@VÔ@VÐW�C ™IœIÐWÐWÐWr   c              3   ó0   •K  — | ]}|‰d          k    V — ŒdS )r   Nr   )r   ÚlengthÚlist_lengthss     €r   ú	<genexpr>z3_merge_object_array_continuation.<locals>.<genexpr>“   s-   øè è € Ð7mÐ7mÐV\¸À,ÈqÄ/Ò8QÐ7mÐ7mÐ7mÐ7mÐ7mÐ7mr   r   z[While parsing an object we found row values without an inner array, grouping them into rowsc              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S )N)r&   r[   r\   s     r   ra   z3_merge_object_array_continuation.<locals>.<genexpr>¤   s,   è è € ÐHÐH°d�: d­DÑ1Ô1ÐHÐHÐHÐHÐHÐHr   zSWhile parsing an object we found additional rows, appending them without flatteningú,T)r[   Úkeysr&   Ústrictr=   Úparse_arrayÚallr8   ÚpopÚreverser7   rR   ÚrangeÚextendÚskip_whitespacesÚget_char_at)	rA   r   Úprev_keyÚ	new_arrayÚ
prev_valueÚexpected_lenÚtailÚir`   s	           @r   Ú _merge_object_array_continuationrt   „   s  ø€ ð (+Ð4�t�C—H’H‘J”JÑÔ Ô#Ð#°€HØð �: c¨(¤mµTÑ:Ô:ð ¸d¼kð Øˆuà€J„J�!�O€J„JØ× Ò Ñ"Ô"€IÝ�)�TÑ"Ô"ñ yØ˜”]ˆ
Ý�j¥$Ñ'Ô'ñ 	yØWÐW°*ÐWÑWÔWˆLà#/ÐwµCÐ7mÐ7mÐ7mÐ7mÐ`lÐ7mÑ7mÔ7mÑ4mÔ4mÐw�˜Q”�Ðswð ð ñ yØ�Ø ð 2­°J¸r´NÅDÑ)IÔ)Ið 2Ø—K’K 
§¢Ñ 0Ô 0Ñ1Ô1Ð1ð !ð 2­°J¸r´NÅDÑ)IÔ)Ið 2àð 	0Ø—L’L‘N”N�NÝ˜4‘y”y <Ñ/°1Ò4Ð4ØŸšØyñô ð õ "' q­#¨d©)¬)°\Ñ!BÔ!Bð Jð J˜AØ&×-Ò-¨d°1°q¸<Ñ7GÐ3GÔ.HÑIÔIÐIÐIðJð #×)Ò)¨$Ñ/Ô/Ð/Øð 5ÝÐHÐH¸iÐHÑHÔHÑHÔHð 5ØŸšØqñô ð ð #×)Ò)¨)Ñ4Ô4Ð4Ð4à"×)Ò)¨)Ñ4Ô4Ð4øà×!Ò!µ#°i±.´.ÀAÒ2EÐ2EÍ*ÐU^Ð_`ÔUaÕcgÑJhÔJhÐ2E )¨A¤, ,ÐnwÑxÔxÐxà×ÒÑÔÐØ×ÒÑÔ˜SÒ Ð Øˆ
Œ
�a‰ˆ
Œ
Ø×ÒÑÔÐØˆ4r   c                 óÈ  — d}| j         }| j                             t          j        ¦  «         	 |                      ¦   «         rå| j         }|                      ¦   «         dk    r|dk    rt          | |¦  «        rŒJ|                      ¦   «         }t          |t          ¦  «        sJ ‚|}|dk    r|  
                    ¦   «          |dk    s|dk    rH|                      ¦   «         dv r2|dk    r+| j        r$|                      d¦  «         t          d¦  «        ‚n|                      ¦   «         °å| j                             ¦   «          n# | j                             ¦   «          w xY w||fS )Nr/   ú[)rJ   rE   zEEmpty key found in strict mode while parsing object, raising an errorz4Empty key found in strict mode while parsing object.)r=   ÚcontextÚsetr   Ú
OBJECT_KEYrm   rt   Úparse_stringr&   Ústrrl   re   rR   r"   Úreset)rA   r   r   Úrollback_indexÚraw_keys        r   Ú_parse_object_keyr   µ   sz  € ð €CØ”Z€NØ„L×Ò•]Ô-Ñ.Ô.Ð.ðØ×ÒÑ Ô ð 	Ø!œZˆNØ×ÒÑ!Ô! SÒ(Ð(¨S°BªY¨YÕ;[Ð\`ÐbeÑ;fÔ;f¨YØà×'Ò'Ñ)Ô)ˆGÝ˜g¥sÑ+Ô+Ð+Ð+Ð+ØˆCØ�bŠyˆyØ×%Ò%Ñ'Ô'Ð'Ø�bŠyˆy˜S BšY˜Y¨4×+;Ò+;Ñ+=Ô+=ÀÐ+KÐ+KØ˜"’9�9 ¤�9Ø—H’HØ_ñô ð õ %Ð%[Ñ\Ô\Ð\Øð! ×ÒÑ Ô ð 	ð$ 	Œ×ÒÑÔÐÐøˆŒ×ÒÑÔÐÐøøøØ�ÐÐs   ¯C9E ÅEr}   c                 ó†  — || j         z
  dz
  }|                      |¦  «        }|rD|                     ¦   «         r0|dz  }|                      |¦  «        }|r|                     ¦   «         °0|                      || j         z
  ¦  «        }|                      |                      ¦   «         ¦  «        }|t          v o|dk    o|dk     S )Nr   rc   rJ   )r=   rm   ÚisspaceÚscroll_whitespacesr
   )rA   r}   Úlookback_idxÚprev_non_whitespaceÚkey_start_charÚnext_non_whitespaces         r   Ú_should_split_duplicate_objectr‡   Ó   sá   € Ø! D¤JÑ.°Ñ2€LØ×*Ò*¨<Ñ8Ô8ÐØ
ð =Ð"5×"=Ò"=Ñ"?Ô"?ð =Ø˜ÑˆØ"×.Ò.¨|Ñ<Ô<Ðð ð =Ð"5×"=Ò"=Ñ"?Ô"?ð =ð ×%Ò% n°t´zÑ&AÑBÔB€NØ×*Ò*¨4×+BÒ+BÑ+DÔ+DÑEÔEÐØÕ"3Ð3ÐqÐ8KÈsÒ8RÐqÐWjÐnqÒWqÐrÐrr   c                 óˆ   — |dz
  | _         | j        d | j         dz   …         dz   | j        | j         dz   d …         z   | _        d S )Nr   Ú{)r=   rM   )rA   r}   s     r   Ú_split_object_on_duplicate_keyrŠ   Þ   sJ   € Ø !Ñ#€D„JØ”MÐ"2 D¤J°¡NÐ"2Ô3°cÑ9¸D¼MÈ$Ì*ÐWXÉ.ÐJZÐJZÔ<[Ñ[€D„M€M€Mr   r   c                 ó0  — |�|€d g dfS d }g }||j         v rO|j         |         }|�+t          |t          t          f¦  «        st	          d¦  «        ‚t          d|¦  «        }||dfS g }g }|j        rt          |j        |¦  «        \  }}|D ]}	|                      d|	› d|› d�¦  «         Œ|r§|d         }
|
�+t          |
t          t          f¦  «        st	          d¦  «        ‚t          d|
¦  «        }|dd …         D ]R}|�+t          |t          t          f¦  «        st	          d¦  «        ‚| 	                    t          d|¦  «        ¦  «         ŒS||dfS |j
        du rd g d	fS t          |j
        t          ¦  «        rt          d
|j
        ¦  «        g dfS d	g dfS )NFzSchema must be an object.zdict[str, Any] | bool | Nonez-Skipped unsupported patternProperties regex 'z' while parsing object key 'rH   r   r   Tzdict[str, Any])r$   r&   r'   Úboolr"   r   Úpattern_propertiesr   rR   r8   Úadditional_properties)rA   r   r   r   r+   Úextra_schemasÚschema_valueÚmatchedÚunsupported_patternsÚpatternÚprimary_schemaÚextra_schemas               r   Ú_resolve_object_property_schemar–   ã   s  € ð Ð -Ð"7Ø�R˜ˆÐà04€KØ8:€MØ
ˆmÔ&Ð&Ð&Ø$Ô/°Ô4ˆØÐ#­J°|ÅdÍDÀ\Ñ,RÔ,RÐ#ÝÐ8Ñ9Ô9Ð9ÝÐ9¸<ÑHÔHˆØ˜M¨5Ð0Ð0à€GØ&(ÐØÔ'ð hÝ(@ÀÔAaÐcfÑ(gÔ(gÑ%ˆÐ%Ø'ð 
ð 
ˆØ�ŠØg¸GÐgÐgÐadÐgÐgÐgñ	
ô 	
ð 	
ð 	
ð ð 	1Ø  œˆØÐ%­j¸Í$ÕPTÈÑ.VÔ.VÐ%ÝÐ8Ñ9Ô9Ð9ÝÐ9¸>ÑJÔJˆØ# A B BœKð 	Uð 	UˆLØÐ'µ
¸<Í$ÕPTÈÑ0VÔ0VÐ'Ý Ð!<Ñ=Ô=Ð=Ø× Ò ¥Ð&DÀlÑ!SÔ!SÑTÔTÐTÐTØ˜M¨5Ð0Ð0àÔ*¨eÐ3Ð3Ø�R˜ˆ~ÐÝ�-Ô5µtÑ<Ô<ð VÝÐ$ mÔ&IÑJÔJÈBÐPUÐUÐUØ��Uˆ?Ðr   r+   Úkey_pathc                 ót  — | j                              t          j        ¦  «         	 |                      ¦   «          |                      ¦   «         }|dv rl|                      d|› d�¦  «         |�5|                     t          ||¦  «        | j          	                    ¦   «          S 	 | j          	                    ¦   «          dS |�/|  
                    ||¦  «        | j          	                    ¦   «          S |  
                    ¦   «         | j          	                    ¦   «          S # | j          	                    ¦   «          w xY w)N)rc   rE   z/While parsing an object value we found a stray z, ignoring itr/   )rw   rx   r   ÚOBJECT_VALUErl   rm   rR   Úrepair_valuer	   r|   Ú
parse_json)rA   r   r+   r—   r>   s        r   Ú_parse_object_valuerœ     s>  € ð 	„L×Ò•]Ô/Ñ0Ô0Ð0ðØ×ÒÑÔÐØ×ÒÑ!Ô!ˆØ�:ÐÐØ�HŠHØUÀ$ÐUÐUÐUñô ð ð Ð*Ø&×3Ò3µMÀ;ÐPXÑYÔYð 	Œ×ÒÑÔÐÐð ð 	Œ×ÒÑÔÐÐÐð	 Ð&Ø—?’? ;°Ñ9Ô9ð 	Œ×ÒÑÔÐÐð �ŠÑ Ô àŒ×ÒÑÔÐÐøˆŒ×ÒÑÔÐÐøøøs   ¦A"D Â>D Ã/D ÄD7c                 ób  — |s| j         |z
  dk    rdS | j        r$|                      d¦  «         t          d¦  «        ‚t	          | |||¦  «        \  }}|dk    r·|�µ| j         dz   }| j        d |dz
  …         |z   | j        |d …         z   | _        || _         | j                             t          j	        ¦  «        5  |  
                    ||¦  «        }	d d d ¦  «         n# 1 swxY w Y   | j                             t          j	        ¦  «         d|	fS |dk    rÿ|                      d	¦  «         || _         | j                             t          j	        ¦  «        5  |                      ¦   «         }
d d d ¦  «         n# 1 swxY w Y   | j                             t          j	        ¦  «         t          |
t          ¦  «        rVd
„ |
D ¦   «         }t!          |¦  «        t!          |
¦  «        k    r*dt#          dt$                               |¦  «        ¦  «        fS d|
fS |dk    r”|                      d¦  «         || _         | j                             t          j	        ¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   | j                             t          j	        ¦  «         d|fS dS )Nr1   )FNzUParsed object is empty but contains extra characters in strict mode, raising an errorzDParsed object is empty but contains extra characters in strict mode.rI   r   TrK   zrParsed object is empty but salvage schema expects an object, reparsing set-like members as null-valued object keysc                 ó@   — g | ]}t          |t          ¦  «        ¯|¯|‘ŒS r   )r&   r{   r\   s     r   r   z/_repair_empty_object_result.<locals>.<listcomp>K  s/   € Ð(fÐ(fÐ(f°$ÅzÐRVÕX[ÑG\ÔG\Ð(fÐaeÐ(f¨Ð(fÐ(fÐ(fr   r   rL   zEParsed object is empty, we will try to parse this as an array instead)r=   re   rR   r"   rW   rM   rw   Úenterr   ry   Úparse_objectÚdeferred_contextsr8   rf   r&   r[   r7   r   r'   Úfromkeys)rA   r   rB   rC   r   r   Úempty_object_repairrV   Ú	end_indexÚrepaired_valueÚ	set_itemsÚkey_candidatesÚrepaired_arrays                r   Ú_repair_empty_object_resultr©   (  ss  € ð ð ˆdŒj˜;Ñ&¨!Ò+Ð+Øˆ{à„{ð aØ�ŠØcñ	
ô 	
ð 	
õ Ð_Ñ`Ô`Ð`å-JÈ4ÐQ\Ð^dÐfuÑ-vÔ-vÑ*ÐÐ*Ø˜hÒ&Ð&Ð+<Ð+HØ”J ‘Nˆ	ØœÐ&7¨°a©Ð&7Ô8Ð;LÑLÈtÌ}Ð]fÐ]gÐ]gÔOhÑhˆŒØ ˆŒ
ØŒ\×Ò¥Ô 8Ñ9Ô9ð 	=ð 	=Ø!×.Ò.¨v°tÑ<Ô<ˆNð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=àÔ×%Ò%¥mÔ&>Ñ?Ô?Ð?Ø�^Ð#Ð#ØÐ1Ò1Ð1Ø�Šð Añ	
ô 	
ð 	
ð !ˆŒ
ØŒ\×Ò¥Ô 8Ñ9Ô9ð 	+ð 	+Ø×(Ò(Ñ*Ô*ˆIð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+àÔ×%Ò%¥mÔ&>Ñ?Ô?Ð?Ý�i¥Ñ&Ô&ð 	SØ(fÐ(f¸)Ð(fÑ(fÔ(fˆNÝ�>Ñ"Ô"¥c¨)¡n¤nÒ4Ð4Ø�TÐ"2µD·M²MÀ.Ñ4QÔ4QÑRÔRÐRÐRØ�YˆÐØ˜gÒ%Ð%Ø�ŠÐXÑYÔYÐYØ ˆŒ
ØŒ\×Ò¥Ô 8Ñ9Ô9ð 	0ð 	0Ø!×-Ò-Ñ/Ô/ˆNð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0àÔ×%Ò%¥mÔ&>Ñ?Ô?Ð?Ø�^Ð#Ð#Øˆ;s6   Â:CÃC!Ã$C!ÅE7Å7E;Å>E;ÉI<É<J ÊJ c                 ó’  — | j         j        sc|                      ¦   «         dk    rI| j         j        t          j        t          j        fvr%|                      d¦  «         | xj        dz  c_        |S |  	                    ¦   «          |                      ¦   «         dk    r›| xj        dz  c_        |  	                    ¦   «          |                      ¦   «         t          v r\| j        sU|                      d¦  «         |                      ||¦  «        }t          |t          ¦  «        r|                     |¦  «         t!          ||||¦  «        S )NrE   zAFound an extra closing brace that shouldn't be there, skipping itr   rc   zfFound a comma and string delimiter after object closing brace, checking for additional key-value pairs)rw   Úemptyrm   Úcurrentr   ry   r™   rR   r=   rl   r
   re   r    r&   r'   Úupdater,   )rA   r   rC   r   r   r   Úadditional_objs          r   Ú_complete_object_parser¯   Y  sM  € ð Œ<Ôð 	Ø×ÒÑÔ Ò$Ð$¨¬Ô)=ÝÔ$ÝÔ&ðF
ð *
ð *
ð �HŠHØSñô ð ð ˆJŒJ˜!‰OˆJŒJØˆ
à×ÒÑÔÐØ×ÒÑÔ˜SÒ Ð Øˆ
Œ
�a‰ˆ
Œ
Ø×ÒÑÔÐØ×ÒÑÔÕ!2Ð2Ð2¸4¼;Ð2Ø�HŠHØxñô ð ð "×.Ò.¨v°tÑ<Ô<ˆNÝ˜.­$Ñ/Ô/ð +Ø—
’
˜>Ñ*Ô*Ð*å˜C °-ÀÑFÔFÐFr   ú$c                 óF  — i }| j         }| j        j        t          j        k    }t          | j        |¦  «        \  }}}|                      ¦   «         pddk    �r|                      ¦   «          |                      ¦   «         dk    r%|  	                    d¦  «         | xj         dz  c_         t          | |¦  «        \  }}	t          j        | j        j        v r}||v ry| j        r$|  	                    d¦  «         t          d¦  «        ‚|sLt          | |	¦  «        r'|  	                    d¦  «         t          | |	¦  «         �n(|  	                    d¦  «         |                      ¦   «          |                      ¦   «         pddk    r�ŒD|                      ¦   «          |                      ¦   «         dk    r@| j        r$|  	                    d	¦  «         t          d
¦  «        ‚|  	                    d¦  «         | xj         dz  c_         t!          | |||¦  «        \  }
}}|› d|› �}t#          | ||
|¦  «        }|�|D ]}|                     |||¦  «        }Œ|€M|dk    rG| j        r@|                      d¦  «        t&          vr$|  	                    d¦  «         t          d¦  «        ‚|�|s|||<   n|                     d|¦  «         |                      ¦   «         dv r| xj         dz  c_         |                      ¦   «         dk    r>t          j        | j        j        v r&|  	                    d¦  «         | xj         dz  c_         n/|                      ¦   «          |                      ¦   «         pddk    �°| xj         dz  c_         t+          | |||||¦  «        \  }}|r|S t-          | |||||¦  «        S )NrE   rJ   z;While parsing an object we found a : before a key, ignoringr   zIDuplicate key found in strict mode while parsing object, raising an errorz8Duplicate key found in strict mode while parsing object.zdWhile parsing an object we found a duplicate key, closing the object here and rolling back the indexzxWhile parsing an object we found a duplicate key with a normal comma separator, keeping duplicate-key overwrite behaviorzKMissing ':' after key in strict mode while parsing object, raising an errorz:Missing ':' after key in strict mode while parsing object.z1While parsing an object we missed a : after a keyr   r/   rY   zKParsed value is empty in strict mode while parsing object, raising an errorz:Parsed value is empty in strict mode while parsing object.z,Dropped extra property not covered by schema)rc   rH   rG   ú]zlWhile parsing an object we found a closing array bracket, closing the object here and rolling back the index)r=   rw   r¬   r   r™   r   r   rm   rl   rR   r   ÚARRAYre   r"   r‡   rŠ   r–   rœ   rš   r
   r)   r©   r¯   )rA   rC   r   r   rB   Úparsing_object_valuer   r   r   r}   r+   r�   Údrop_propertyr—   Úvaluer•   Úrepaired_empty_objectr¥   s                     r   r    r    {  s=  € ð &(€CØ”*€KØœ<Ô/µ=Ô3MÒMÐÝ-IÈ$ÔJ^Ð`fÑ-gÔ-gÑ*€O�V˜]à×ÒÑÔÐ$ ¨Ò
,Ñ
,Ø×ÒÑÔÐà×ÒÑÔ Ò$Ð$Ø�HŠHØMñô ð ð ˆJŒJ˜!‰OˆJŒJå/°°cÑ:Ô:Ñˆˆ^ÝÔ $¤,Ô"6Ð6Ð6¸3À#¸:¸:ØŒ{ð ]Ø—’ÐdÑeÔeÐeÝ Ð![Ñ\Ô\Ð\Ø'ð 	Ý1°$¸ÑGÔGð Ø—H’HØ~ñô ð õ 3°4¸ÑHÔHÐHÙØ—’ð Oñô ð ð 	×ÒÑÔÐØ×ÒÑÔÐ% #¨#Ò-Ð-Ùà×ÒÑÔÐØ×ÒÑÔ Ò$Ð$ØŒ{ð _Ø—’Øañô ð õ !Ð!]Ñ^Ô^Ð^Ø�HŠHØCñô ð ð 	ˆ
Œ
�a‰ˆ
Œ
Ý4SØØØØñ	5
ô 5
Ñ1ˆ�] Mð �?�?˜S�?�?ˆÝ# D¨/¸;ÈÑQÔQˆàÐ&Ø -ð Tð T�Ø'×4Ò4°U¸LÈ(ÑSÔS��àÐ" u°¢{ {°t´{ {Àt×GWÒGWÐXZÑG[ÔG[ÕctÐGtÐGtØ�HŠHØ]ñô ð õ ÐYÑZÔZÐZàÐ"¨-Ð"ØˆC�‰HˆHà× Ò Ð!OÐQYÑZÔZÐZà×ÒÑÔ Ð0Ð0ØˆJŒJ˜!‰OˆJŒJØ×ÒÑÔ Ò$Ð$­Ô)<ÀÄÔ@TÐ)TÐ)TØ�HŠHØ~ñô ð ð ˆJŒJ˜!‰OˆJŒJØØ×ÒÑÔÐðS ×ÒÑÔÐ$ ¨Ò
,Ñ
,ðV 	€J„J�!�O€J„Jå,GØØØØØØñ-ô -Ñ)Ð˜>ð ð ØÐå!ØØØØØØñô ð r   )Nr°   )%Útypingr   r   r   Úparser_schemar   r   Úutils.constantsr	   r
   r   Úutils.json_contextr   Úutils.pattern_propertiesr   Újson_parserr   Úschema_repairr   r'   r{   r,   r@   ÚintrŒ   ÚtuplerW   rt   r   r‡   rŠ   r[   r–   rœ   r©   r¯   r    r   r   r   ú<module>rÁ      sŸ  ðØ +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ -Ð -Ð -Ð -Ð -Ð -Ø >Ð >Ð >Ð >Ð >Ð >àð .Ø'Ð'Ð'Ð'Ð'Ð'Ø-Ð-Ð-Ð-Ð-Ð-ðØ	ˆc�>Ð!Ô	"ðà,ðð &¨Ñ,ðð ð	ð
 
ˆ#ˆ~Ð
Ôðð ð ð ð,,¸#ð ,À#ð ,ð ,ð ,ð ,ð^/Ø
ð/àð/ð ��c�ŒN˜TÑ! DÑ(ð/ð -ð	/ð
 ˆ3��d‘
ˆ?Ôð/ð /ð /ð /ðd.Ø
ð.à	ˆc�>Ð!Ô	"ð.ð 
ð.ð .ð .ð .ðbØ
ðà	ˆc�>Ð!Ô	"ðð ˆ3�ˆ8„_ðð ð ð ð<s¨ð sÀsð sÈtð sð sð sð sð\¨ð \Àsð \Ètð \ð \ð \ð \ð
)Ø
ð)à,ð)ð &¨Ñ,ð)ð 
ð	)ð
 ˆ4��S�Œ>˜DÑ  4Ñ'¨¨d°3¸°8¬n¸tÑ.CÀdÑ.JÔ)KÈTÐQÔRð)ð )ð )ð )ðXØ
ðà,ðð �c˜3�h” $Ñ&¨Ñ-ðð ð	ð
 ðð ð ð ð2.Ø
ð.à	ˆc�>Ð!Ô	"ð.ð ð.ð ��c�ŒN˜TÑ! DÑ(ð	.ð
 ð.ð -ð.ð ˆ4�ÐÔ ð.ð .ð .ð .ðbGØ
ðGà	ˆc�>Ð!Ô	"ðGð ��c�ŒN˜TÑ! DÑ(ðGð ð	Gð
 -ðGð &¨Ñ,ðGð ðGð Gð Gð GðH ,0Øðjð jØ
ðjà��c�ŒN˜TÑ! DÑ(ðjð ðjð ð	jð jð jð jð jð jr   