§
    òŽ’j°„  ã                  óü   — U d dl mZ d dlZd dlZd dlZ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 ed         ZdZd	ed
<    G d„ de¦  «        Zd$d„Zd%d„Zd%d„Zd&d„Zd'd„Zd(d„Zd)d!„Z G d"„ d#¦  «        ZdS )*é    )ÚannotationsN)ÚAnyÚLiteralÚcasté   )Úarray_schema_configÚobject_schema_config)ÚMISSING_VALUEÚJSONReturnTypeÚMissingValueType)Úmatch_pattern_properties)ÚstandardÚsalvageztuple[SchemaRepairMode, ...]ÚSUPPORTED_SCHEMA_REPAIR_MODESc                  ó   — e Zd ZdZdS )ÚSchemaDefinitionErrorz6Raised when schema metadata is invalid or unsupported.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úGC:\Projects\DSCons\.venv\Lib\site-packages\json_repair\schema_repair.pyr   r      s   € € € € € Ø@Ð@Ð@Ð@r   r   Úmodeú
str | NoneÚreturnÚSchemaRepairModec                ó„   — | €dS | dk    rdS | dk    rdS d                      t          ¦  «        }t          d|› d�¦  «        ‚)Nr   r   ú, z#schema_repair_mode must be one of: ú.)Újoinr   Ú
ValueError)r   Úexpecteds     r   Únormalize_schema_repair_moder$      sX   € Ø€|ØˆzØˆzÒÐØˆzØˆyÒÐØˆyØ�yŠyÕ6Ñ7Ô7€HÝ
ÐF¸8ÐFÐFÐFÑ
GÔ
GÐGr   r   c                 óp   — 	 t          j        d¦  «        S # t          $ r} t          d¦  «        | ‚d } ~ ww xY w)NÚ
jsonschemaz6jsonschema is required when using schema-aware repair.©Ú	importlibÚimport_moduleÚImportErrorr"   ©Úexcs    r   Ú_require_jsonschemar-      sN   € ð\ÝÔ& |Ñ4Ô4Ð4øÝð \ð \ð \ÝÐQÑRÔRÐX[Ð[øøøøð\øøøó   ‚ –
5 0°5c                 óp   — 	 t          j        d¦  «        S # t          $ r} t          d¦  «        | ‚d } ~ ww xY w)NÚpydanticz.pydantic is required when using schema models.r'   r+   s    r   Ú_require_pydanticr1   &   sN   € ðTÝÔ& zÑ2Ô2Ð2øÝð Tð Tð TÝÐIÑJÔJÐPSÐSøøøøðTøøør.   Únodec                ó°  — t          | t          ¦  «        rŸd„ |                      ¦   «         D ¦   «         }|                     d¦  «        }t          |t          ¦  «        rU|                     dd ¦  «         ||d<   |                     dd ¦  «        }|du rd|d<   nt          |t          ¦  «        r||d<   |S t          | t          ¦  «        rd„ | D ¦   «         S | S )Nc                ó4   — i | ]\  }}|t          |¦  «        “ŒS r   ©Ú#_prepare_schema_for_validation_node©Ú.0ÚkeyÚvalues      r   ú
<dictcomp>z7_prepare_schema_for_validation_node.<locals>.<dictcomp>/   s'   € ÐeÐeÐeÉ*È#Èu�cÕ>¸uÑEÔEÐeÐeÐer   ÚitemsÚprefixItemsÚadditionalItemsFc                ó,   — g | ]}t          |¦  «        ‘ŒS r   r5   ©r8   Úitems     r   ú
<listcomp>z7_prepare_schema_for_validation_node.<locals>.<listcomp>;   s!   € ÐKÐKÐK¸dÕ3°DÑ9Ô9ÐKÐKÐKr   )Ú
isinstanceÚdictr<   ÚgetÚlistÚpop)r2   Ú
normalizedr<   Úadditional_itemss       r   r6   r6   -   sñ   € Ý�$�ÑÔð ØeÐeÐX\×XbÒXbÑXdÔXdÐeÑeÔeˆ
Ø—’˜wÑ'Ô'ˆÝ�e�TÑ"Ô"ð 	7Ø�NŠN˜7 DÑ)Ô)Ð)Ø(-ˆJ�}Ñ%Ø)Ÿ~š~Ð.?ÀÑFÔFÐØ 5Ð(Ð(Ø&+�
˜7Ñ#Ð#ÝÐ,­dÑ3Ô3ð 7Ø&6�
˜7Ñ#ØÐÝ�$�ÑÔð LØKÐKÀdÐKÑKÔKÐKØ€Kr   ÚpathÚstrú	type[Any]c                ó  — d| vrt          d¦  «        ‚|                      dd¦  «        \  }}t          j        |¦  «        }|j                             |¦  «        }|�t          |t          ¦  «        st          d|› d|› d�¦  «        ‚|S )Nú:z4Schema model must be in the form 'module:ClassName'.r   zSchema model 'z' not found in module 'z'.)r"   Úsplitr(   r)   Ú__dict__rE   rC   Útype)rJ   Úmodule_nameÚ
class_nameÚmoduleÚmodels        r   Úload_schema_modelrV   ?   s‘   € Ø
�$€€ÝÐOÑPÔPÐPØ"Ÿjšj¨¨aÑ0Ô0Ñ€K�ÝÔ$ [Ñ1Ô1€FØ!œ?×.Ò.¨zÑ:Ô:€EØ€}�J u­dÑ3Ô3€}ÝÐ\¨*Ð\Ð\È[Ð\Ð\Ð\Ñ]Ô]Ð]Ø€Lr   r:   Úobjectr   c                óÌ  — | t           u st          | t          ¦  «        rdS t          | t          ¦  «        rTi }|                      ¦   «         D ];\  }}t          |t
          ¦  «        st          d¦  «        ‚t          |¦  «        ||<   Œ<|S t          | t          ¦  «        rd„ | D ¦   «         S | �(t          | t
          t          t          t          f¦  «        r| S t          d¦  «        ‚)NÚ zObject keys must be strings.c                ó,   — g | ]}t          |¦  «        ‘ŒS r   ©Únormalize_missing_valuesr@   s     r   rB   z,normalize_missing_values.<locals>.<listcomp>U   s!   € ÐAÐAÐA°4Õ(¨Ñ.Ô.ÐAÐAÐAr   zValue is not JSON compatible.)r
   rC   r   rD   r<   rK   r"   r\   rF   ÚintÚfloatÚbool)r:   rH   r9   rA   s       r   r\   r\   J   sæ   € Ø•ÐÐ¥¨EÕ3CÑ!DÔ!DÐØˆrÝ�%�ÑÔð Ø02ˆ
ØŸš™œð 	=ð 	=‰IˆC�Ý˜c¥3Ñ'Ô'ð AÝ Ð!?Ñ@Ô@Ð@Ý6°tÑ<Ô<ˆJ�s‰OˆOØÐÝ�%�ÑÔð BØAÐA¸5ÐAÑAÔAÐAØ€}�
 5­3µµU½DÐ*AÑBÔB€}ØˆÝ
Ð4Ñ
5Ô
5Ð5r   Úschemaúdict[str, Any] | boolc           	     ó.  — t          | t          ¦  «        r| S | du s| du r| S t          | d¦  «        �rUt          ¦   «         }t	          |dt	          |dd¦  «        ¦  «        }t          |                     d¦  «        d         ¦  «        d	k     rt          d
¦  «        ‚|                      ¦   «         }t          | d¦  «        rÆ| 	                    di ¦  «        }t          |t          ¦  «        si }||d<   | j
                             ¦   «         D ]z\  }}|                     ¦   «         rŒ| 	                    |i ¦  «        }t          |t          ¦  «        si }|||<   d|v rŒQ|j        �|                     ¦   «         |d<   Œp|j        |d<   Œ{|S t          d¦  «        ‚)NTFÚmodel_json_schemaÚVERSIONÚ__version__Ú0r    r   é   z*pydantic v2 is required for schema models.Úmodel_fieldsÚ
propertiesÚdefaultzHSchema must be a JSON Schema dict, boolean schema, or pydantic v2 model.)rC   rD   Úhasattrr1   Úgetattrr]   rO   r"   rc   Ú
setdefaultrh   r<   Úis_requiredÚdefault_factoryrj   )r`   r0   ÚversionÚschema_dictri   ÚnameÚfieldÚproperty_schemas           r   Úschema_from_inputru   [   sº  € Ý�&�$ÑÔð ØˆØ�€~€~˜ 5˜˜ØˆÝˆvÐ*Ñ+Ô+ñ Ý$Ñ&Ô&ˆÝ˜( I­w°xÀÐPSÑ/TÔ/TÑUÔUˆÝˆw�}Š}˜SÑ!Ô! !Ô$Ñ%Ô%¨Ò)Ð)ÝÐIÑJÔJÐJØ&,×&>Ò&>Ñ&@Ô&@ˆÝ�6˜>Ñ*Ô*ð 	?Ø$×/Ò/°¸bÑAÔAˆJÝ˜j­$Ñ/Ô/ð 7Ø�
Ø,6�˜LÑ)Ø%Ô2×8Ò8Ñ:Ô:ð ?ð ?‘��eØ×$Ò$Ñ&Ô&ð ØØ",×"7Ò"7¸¸bÑ"AÔ"A�Ý! /µ4Ñ8Ô8ð 7Ø&(�OØ'6�J˜tÑ$Ø Ð/Ð/ØØÔ(Ð4Ø16×1FÒ1FÑ1HÔ1H�O IÑ.Ð.à16´�O IÑ.Ð.ØÐÝ
Ð_Ñ
`Ô
`Ð`r   c                  óâ   — e Zd Z	 d=d>d
„Zd?d„Zd@d„ZdAd„ZdBd„ZdCd„ZdDd„Z	dEd„Z
dEd„ZdFd„ZdGd„ZdHd„ZdId"„ZdJd%„ZdKd&„ZdLd+„ZdMd,„ZdMd-„ZdNd0„ZdOd3„ZdPd4„ZdQd5„ZdRd6„ZdSd8„ZdTd:„ZdUd;„Zd<S )VÚSchemaRepairerr   r`   ra   Úlogúlist[dict[str, str]] | NoneÚschema_repair_moderK   r   ÚNonec                óf   — || _         || _        t          |¦  «        | _        i | _        d | _        d S ©N)Úroot_schemarx   r$   rz   Ú_validator_cacheÚ_root_validator)Úselfr`   rx   rz   s       r   Ú__init__zSchemaRepairer.__init__}   s:   € ð "ˆÔØˆŒÝ">Ð?QÑ"RÔ"RˆÔØGIˆÔØ+/ˆÔÐÐr   ÚtextrJ   c                óR   — | j         �| j                              ||dœ¦  «         d S d S )N)rƒ   Úcontext)rx   Úappend)r�   rƒ   rJ   s      r   Ú_logzSchemaRepairer._log‰   s4   € ØŒ8ÐØŒH�OŠO T°dÐ;Ð;Ñ<Ô<Ð<Ð<Ð<ð  Ðr   údict[str, Any]r   c                ó,  — t          |¦  «        }| j                             |¦  «        }|�|d         |u r|d         S |                      |¦  «        }|                      ¦   «         }|| j        u r|n|                     |¬¦  «        }||f| j        |<   |S )Nr   r   )r`   )Úidr   rE   Ú_prepare_schema_for_validationÚ_get_root_validatorr~   Úevolve)r�   r`   Ú	cache_keyÚcached_validatorÚprepared_schemaÚroot_validatorÚ	validators          r   Ú_get_validatorzSchemaRepairer._get_validator�   s©   € Ý�v‘J”Jˆ	ØÔ0×4Ò4°YÑ?Ô?ÐØÐ'Ð,<¸QÔ,?À6Ð,IÐ,IØ# AÔ&Ð&à×=Ò=¸fÑEÔEˆØ×1Ò1Ñ3Ô3ˆØ&,°Ô0@Ð&@Ð&@�N�NÀn×F[ÒF[ÐcrÐF[ÑFsÔFsˆ	Ø,2°IÐ+>ˆÔ˜iÑ(ØÐr   c                óÐ   — | j         �| j         S |                      | j        ¦  «        }t          ¦   «         }|j                             |¦  «        } ||¦  «        | _         | j         S r}   )r€   r‹   r~   r-   Ú
validatorsÚvalidator_for)r�   Úprepared_root_schemar&   Úvalidator_clss       r   rŒ   z"SchemaRepairer._get_root_validator™   si   € ØÔÐ+ØÔ'Ð'à#×BÒBÀ4ÔCSÑTÔTÐÝ(Ñ*Ô*ˆ
Ø"Ô-×;Ò;Ð<PÑQÔQˆØ,˜}Ð-AÑBÔBˆÔØÔ#Ð#r   r:   r   r_   c                ó²   — |                       |¦  «        }|du rdS |du rdS |                      |¦  «        }t          |                     |¦  «        ¦  «        S )NTF)Úresolve_schemar“   r_   Úis_valid)r�   r:   r`   r’   s       r   r›   zSchemaRepairer.is_valid£   s`   € Ø×$Ò$ VÑ,Ô,ˆØ�Tˆ>ˆ>Ø�4Ø�Uˆ?ˆ?Ø�5Ø×'Ò'¨Ñ/Ô/ˆ	Ý�I×&Ò& uÑ-Ô-Ñ.Ô.Ð.r   c                ó,  — |                       |¦  «        }|du rd S |du rt          d¦  «        ‚t          ¦   «         }|                      |¦  «        }	 |                     |¦  «         d S # |j        j        $ r}t          |j        ¦  «        |‚d }~ww xY w)NTFú!Schema does not allow any values.)rš   r"   r-   r“   ÚvalidateÚ
exceptionsÚValidationErrorÚmessage)r�   r:   r`   r&   r’   r,   s         r   rž   zSchemaRepairer.validate¬   s¯   € Ø×$Ò$ VÑ,Ô,ˆØ�Tˆ>ˆ>ØˆFØ�Uˆ?ˆ?ÝÐ@ÑAÔAÐAÝ(Ñ*Ô*ˆ
Ø×'Ò'¨Ñ/Ô/ˆ	ð	3Ø×Ò˜uÑ%Ô%Ð%Ð%Ð%øØÔ$Ô4ð 	3ð 	3ð 	3Ý˜Sœ[Ñ)Ô)¨sÐ2øøøøð	3øøøs   ÁA* Á*BÁ9BÂBúobject | Nonec                óJ  — |€dS t          |t          ¦  «        r|S t          |t          ¦  «        st          d¦  «        ‚|D ]&}t          |t          ¦  «        st          d¦  «        ‚Œ't          d|¦  «        }t          ¦   «         }d|v r˜|d         }t          |t          ¦  «        st          d¦  «        ‚t          |¦  «        }||v rt          d|› �¦  «        ‚|                     |¦  «         |  	                    |¦  «        }t          |t          ¦  «        r|S |}d|v °˜|S )NTúSchema must be an object.zSchema keys must be strings.rˆ   z$refz$ref must be a string.zCircular $ref detected: )
rC   r_   rD   r   rK   r   ÚsetrŠ   ÚaddÚ_resolve_ref)r�   r`   r9   rq   Úseen_schema_idsÚrefÚ	schema_idÚresolveds           r   rš   zSchemaRepairer.resolve_schema¹   sS  € Øˆ>Ø�4Ý�f�dÑ#Ô#ð 	ØˆMÝ˜&¥$Ñ'Ô'ð 	EÝ'Ð(CÑDÔDÐDØð 	Lð 	LˆCÝ˜c¥3Ñ'Ô'ð LÝ+Ð,JÑKÔKÐKðLåÐ+¨VÑ4Ô4ˆÝ$'¡E¤EˆØ˜Ð#Ð#Ø˜fÔ%ˆCÝ˜c¥3Ñ'Ô'ð FÝ+Ð,DÑEÔEÐEÝ˜;™œˆIØ˜OÐ+Ð+Ý+Ð,LÀsÐ,LÐ,LÑMÔMÐMØ×Ò 	Ñ*Ô*Ð*Ø×(Ò(¨Ñ-Ô-ˆHÝ˜(¥DÑ)Ô)ð  Ø�Ø"ˆKð ˜Ð#Ð#ð Ðr   údict[str, Any] | bool | Nonec                ó  ‡— |                       ‰¦  «        Št          ‰t          ¦  «        sdS ‰                     d¦  «        }|dk    rdS t          |t          ¦  «        rd|v rdS t          ˆfd„dD ¦   «         ¦  «        S )NFrQ   rW   Tc              3  ó    •K  — | ]}|‰v V — Œ	d S r}   r   )r8   r9   r`   s     €r   ú	<genexpr>z2SchemaRepairer.is_object_schema.<locals>.<genexpr>Ü   s'   øè è € ÐtÐt S�3˜&�=ÐtÐtÐtÐtÐtÐtr   )ri   ÚpatternPropertiesÚadditionalPropertiesÚrequired)rš   rC   rD   rE   rF   Úany©r�   r`   Úschema_types    ` r   Úis_object_schemazSchemaRepairer.is_object_schemaÓ   s“   ø€ Ø×$Ò$ VÑ,Ô,ˆÝ˜&¥$Ñ'Ô'ð 	Ø�5Ø—j’j Ñ(Ô(ˆØ˜(Ò"Ð"Ø�4Ý�k¥4Ñ(Ô(ð 	¨X¸Ð-DÐ-DØ�4ÝÐtÐtÐtÐtÐ,sÐtÑtÔtÑtÔtÐtr   c                óÒ   — |                       |¦  «        }t          |t          ¦  «        sdS |                     d¦  «        }|dk    rdS t          |t          ¦  «        rd|v rdS d|v S )NFrQ   ÚarrayTr<   )rš   rC   rD   rE   rF   r´   s      r   Úis_array_schemazSchemaRepairer.is_array_schemaÞ   sy   € Ø×$Ò$ VÑ,Ô,ˆÝ˜&¥$Ñ'Ô'ð 	Ø�5Ø—j’j Ñ(Ô(ˆØ˜'Ò!Ð!Ø�4Ý�k¥4Ñ(Ô(ð 	¨W¸Ð-CÐ-CØ�4Ø˜&Ð Ð r   rµ   c                óô   — |                      d¦  «        }t          |t          ¦  «        r||k    S t          |t          ¦  «        r||v S |dk    r|                      |¦  «        S |                      |¦  «        S )NrQ   rW   )rE   rC   rK   rF   r¶   r¹   )r�   r`   rµ   Údeclared_types       r   Ú_allows_schema_typez"SchemaRepairer._allows_schema_typeé   s€   € ØŸ
š
 6Ñ*Ô*ˆÝ�m¥SÑ)Ô)ð 	0Ø  KÒ/Ð/Ý�m¥TÑ*Ô*ð 	0Ø -Ð/Ð/Ø˜(Ò"Ð"Ø×(Ò(¨Ñ0Ô0Ð0à×#Ò# FÑ+Ô+Ð+r   c                ó\   — |                       |d¦  «        o|                       |d¦  «         S )NrW   r¸   )r¼   )r�   r`   s     r   Ú_can_salvage_list_as_objectz*SchemaRepairer._can_salvage_list_as_objectô   s2   € Ø×'Ò'¨°Ñ9Ô9ÐkÀ$×BZÒBZÐ[aÐcjÑBkÔBkÐ>kÐkr   c                ó   — |                       |¦  «        }|du rt          |¦  «        S |du rt          d¦  «        ‚|st          |¦  «        S |t          u r|                      ||¦  «        S d|v r\|d         }|st          |¦  «        S |                      ||d         |¦  «        }|dd…         D ]}|                      |||¦  «        }Œ|S d|v r|                      ||d         |¦  «        S d	|v r|                      ||d	         |¦  «        S |                     d
¦  «        }|€/|                      |¦  «        rd}n|  	                    |¦  «        rd}t          |t          ¦  «        r|                      ||||¦  «        S |dk    r|                      |||¦  «        }nZ|dk    r|                      |||¦  «        }n<t          |t          ¦  «        r|                      |||¦  «        }nt          |¦  «        }|                      |||¦  «        S )zPApply schema rules to a parsed value, including unions, coercions, and defaults.TFr�   ÚallOfr   r   NÚoneOfÚanyOfrQ   rW   r¸   )rš   r\   r"   r
   Ú_fill_missingÚrepair_valueÚ_repair_unionrE   r¶   r¹   rC   rF   Ú_repair_type_unionÚ_repair_objectÚ_repair_arrayrK   Ú_coerce_scalarÚ_apply_enum_const)r�   r:   r`   rJ   Ú
subschemasÚrepairedÚ	subschemaÚexpected_types           r   rÄ   zSchemaRepairer.repair_value÷   sY  € à×$Ò$ VÑ,Ô,ˆØ�Tˆ>ˆ>Ý+¨EÑ2Ô2Ð2Ø�Uˆ?ˆ?ÝÐ@ÑAÔAÐAØð 	3Ý+¨EÑ2Ô2Ð2à•MÐ!Ð!Ø×%Ò% f¨dÑ3Ô3Ð3à�fÐÐØ œˆJØð 7Ý/°Ñ6Ô6Ð6Ø×(Ò(¨°
¸1´¸tÑDÔDˆHØ'¨¨¨œ^ð Hð H�	Ø×,Ò,¨X°yÀ$ÑGÔG��ØˆOà�fÐÐØ×%Ò% e¨V°G¬_¸dÑCÔCÐCØ�fÐÐØ×%Ò% e¨V°G¬_¸dÑCÔCÐCàŸ
š
 6Ñ*Ô*ˆØÐ Ø×$Ò$ VÑ,Ô,ð (Ø (��Ø×%Ò% fÑ-Ô-ð (Ø '�å�m¥TÑ*Ô*ð 	OØ×*Ò*¨5°-ÀÈÑNÔNÐNà˜HÒ$Ð$Ø×*Ò*¨5°&¸$Ñ?Ô?ˆHˆHØ˜gÒ%Ð%Ø×)Ò)¨%°¸Ñ>Ô>ˆHˆHÝ˜¥sÑ+Ô+ð 	7Ø×*Ò*¨5°-ÀÑFÔFˆHˆHå/°Ñ6Ô6ˆHà×%Ò% h°¸Ñ=Ô=Ð=r   Úschemasúlist[dict[str, Any] | bool]c                ó$  — d }|D ]^}	 |                       t          j        |¦  «        ||¦  «        }|                      ||¦  «         |c S # t          $ r}|}Y d }~ŒWd }~ww xY w|rt	          t          |¦  «        ¦  «        |‚t	          d¦  «        ‚)NzNo schema matched the value.)rÄ   ÚcopyÚdeepcopyrž   r"   rK   )r�   r:   rÏ   rJ   Ú
last_errorrÍ   Ú	candidater,   s           r   rÅ   zSchemaRepairer._repair_union'  s½   € Ø'+ˆ
Ø ð 	!ð 	!ˆIð!Ø ×-Ò-­d¬m¸EÑ.BÔ.BÀIÈtÑTÔT�	Ø—’˜i¨Ñ3Ô3Ð3ð !Ð Ð Ð øõ ð !ð !ð !Ø �
�
�
�
�
�
øøøøð!øøøð ð 	>Ý�S ™_œ_Ñ-Ô-°:Ð=ÝÐ7Ñ8Ô8Ð8s   ˆ?AÁ
A!ÁAÁA!Útypesú	list[str]c                ód  — d }|D ]~}i |¥d|i¥}	 |                       t          j        |¦  «        |||¦  «        }|                      |||¦  «        }|                      ||¦  «         |c S # t
          $ r}	|	}Y d }	~	Œwd }	~	ww xY w|rt          t          |¦  «        ¦  «        |‚t          d¦  «        ‚)NrQ   z!No schema type matched the value.)Ú_repair_by_typerÒ   rÓ   rÊ   rž   r"   rK   )
r�   r:   rÖ   r`   rJ   rÔ   rµ   Úbranch_schemarÕ   r,   s
             r   rÆ   z!SchemaRepairer._repair_type_union5  sî   € ð (,ˆ
Ø ð 
	!ð 
	!ˆKØ;˜vÐ; v¨{Ð;Ð;ˆMð!à ×0Ò0µ´¸uÑ1EÔ1EÀ{ÐTZÐ\`ÑaÔa�	Ø ×2Ò2°9¸mÈTÑRÔR�	Ø—’˜i¨Ñ7Ô7Ð7ð !Ð Ð Ð øõ ð !ð !ð !Ø �
�
�
�
�
�
øøøøð!øøøð ð 	>Ý�S ™_œ_Ñ-Ô-°:Ð=ÝÐ<Ñ=Ô=Ð=s   �AA+Á+
BÁ5A<Á<Bc                ó¤   — |dk    r|                       |||¦  «        S |dk    r|                      |||¦  «        S |                      |||¦  «        S )Nr¸   rW   )rÈ   rÇ   rÉ   )r�   r:   rµ   r`   rJ   s        r   rÙ   zSchemaRepairer._repair_by_typeL  s`   € Ø˜'Ò!Ð!Ø×%Ò% e¨V°TÑ:Ô:Ð:Ø˜(Ò"Ð"Ø×&Ò& u¨f°dÑ;Ô;Ð;Ø×"Ò" 5¨+°tÑ<Ô<Ð<r   rÎ   útype[object]Úunwrap_log_messageÚsalvage_log_messagec                ó¶  — t          |t          ¦  «        s|S 	 t          j        |¦  «        }nƒ# t          j        $ rq | j        dk    r|cY S t          j        t          › d�¦  «        }|                     |d¬¦  «        }t          ||¦  «        r|  	                    ||¦  «         |cY S |cY S w xY wt          ||¦  «        r|  	                    ||¦  «         |S |S )Nr   z.json_repairT)Úskip_json_loads)
rC   rK   ÚjsonÚloadsÚJSONDecodeErrorrz   r(   r)   Ú__package__r‡   )	r�   r:   rÎ   rJ   rÝ   rÞ   ÚparsedÚjson_repair_modulerÌ   s	            r   Ú_load_json_string_containerz*SchemaRepairer._load_json_string_containerS  s  € õ ˜%¥Ñ%Ô%ð 	ØˆLð
	Ý”Z Ñ&Ô&ˆFˆFøÝÔ#ð 	ð 	ð 	ØÔ&¨)Ò3Ð3Ø���Ý!*Ô!8½KÐ9UÐ9UÐ9UÑ!VÔ!VÐØ)×/Ò/°ÀtÐ/ÑLÔLˆHÝ˜( MÑ2Ô2ð  Ø—	’	Ð-¨tÑ4Ô4Ð4Ø���ØˆLˆLˆLð	øøøõ �f˜mÑ,Ô,ð 	Ø�IŠIÐ(¨$Ñ/Ô/Ð/ØˆMØˆs   ™. ®B.ÁAB.Â)B.Â-B.c                óŽ  ‡ ‡— ‰                       |t          |dd¦  «        }t          |t          ¦  «        r|}n&‰                      d|¦  «         t	          |¦  «        g}‰ j        dk    Št          |¦  «        }dˆˆ fd„}|j        �� t          |j        t          ¦  «        �r˜g }t          |j        ¦  «        D ]O\  }}	|t          |¦  «        k    r n6|› d|› d�}
 |||         |	|
¦  «        \  }}|r| 
                    |¦  «         ŒPt          |¦  «        t          |j        ¦  «        k    �r	|t          |j        ¦  «        d …         }t          |j        t          ¦  «        r^t          |t          |j        ¦  «        ¬¦  «        D ]9\  }}|› d|› d�}
 |||j        |
¦  «        \  }}|r| 
                    |¦  «         Œ:nu|j        du s|j        € |                     d„ |D ¦   «         ¦  «         nEt          |t          |j        ¦  «        ¬¦  «        D ]!\  }}‰                      d|› d|› d�¦  «         Œ"|}nMg }t          |¦  «        D ]9\  }}|› d|› d�}
 |||j        |
¦  «        \  }}|r| 
                    |¦  «         Œ:|}|                     d¦  «        }|�&t          |¦  «        |k     rt          d|› d�¦  «        ‚|S )Nz.Unwrapped JSON string to array to match schemaz7Repaired malformed JSON string to array to match schemaz&Wrapped value in array to match schemar   Úraw_itemr   Úitem_schemaÚ	item_pathrK   r   útuple[bool, JSONReturnType]c                ó    •— 	 d‰                      | ||¦  «        fS # t          $ r ‚ t          $ r ‰s‚ ‰                     d|¦  «         Y dS w xY w)NTz*Dropped invalid array item while salvaging)FN)rÄ   r   r"   r‡   )ré   rê   rë   Úsalvage_moder�   s      €€r   Úrepair_or_dropz4SchemaRepairer._repair_array.<locals>.repair_or_drop}  s|   ø€ ð#Ø˜T×.Ò.¨x¸ÀiÑPÔPÐPÐPøÝ(ð ð ð ØÝð #ð #ð #Ø#ð ØØ—	’	ÐFÈ	ÑRÔRÐRØ"�{�{ð	#øøøs   ƒ œ-AÁAú[ú])ÚstartTc              3  ó4   K  — | ]}t          |¦  «        V — Œd S r}   r[   r@   s     r   r¯   z/SchemaRepairer._repair_array.<locals>.<genexpr>›  s,   è è € Ð-^Ð-^ÐQUÕ.FÀtÑ.LÔ.LÐ-^Ð-^Ð-^Ð-^Ð-^Ð-^r   z.Dropped extra array item not covered by schemaÚminItemsú	Array at z does not meet minItems.)ré   r   rê   r   rë   rK   r   rì   )rç   rF   rC   r‡   r\   rz   r   Úitems_schemaÚ	enumerateÚlenr†   rI   rD   ÚextendrE   r"   )r�   r:   r`   rJ   r<   Úschema_configrï   Úrepaired_itemsÚidxrê   rë   Ú	keep_itemÚrepaired_valueÚtailÚoffsetrA   Ú_itemÚ	min_itemsrî   s   `                 @r   rÈ   zSchemaRepairer._repair_arraym  sw  øø€ Ø×0Ò0ØÝØØ<ØEñ
ô 
ˆõ �e�TÑ"Ô"ð 	6Ø*/ˆEˆEà�IŠIÐ>ÀÑEÔEÐEÝ-¨eÑ4Ô4Ð5ˆEØÔ.°)Ò;ˆÝ+¨FÑ3Ô3ˆð		#ð 		#ð 		#ð 		#ð 		#ð 		#ð 		#ð Ô%Ñ1Ý˜-Ô4µdÑ;Ô;ñ 'Ø79�Ý(1°-Ô2LÑ(MÔ(Mð >ð >Ñ$�C˜Ø�c %™jœjÒ(Ð(Ø˜Ø#'Ð 0Ð 0¨#Ð 0Ð 0Ð 0�IØ0>°¸uÀS¼zÈ;ÐXaÑ0bÔ0bÑ-�I˜~Ø ð >Ø&×-Ò-¨nÑ=Ô=Ð=øÝ�u‘:”:¥ MÔ$>Ñ ?Ô ?Ò?Ñ?Ø ¥ ]Ô%?Ñ!@Ô!@Ð!BÐ!BÔC�DÝ! -Ô"@Å$ÑGÔGð 
mÝ,5°dÅ#ÀmÔF`ÑBaÔBaÐ,bÑ,bÔ,bð Fð F™L˜F DØ+/Ð(;Ð(;°&Ð(;Ð(;Ð(;˜IØ8F¸ÀtÈ]ÔMkÐmvÑ8wÔ8wÑ5˜I ~Ø(ð FØ .× 5Ò 5°nÑ EÔ EÐ Eøð	Fð
 'Ô7¸4Ð?Ð?À=ÔCaÐCiØ&×-Ò-Ð-^Ð-^ÐY]Ð-^Ñ-^Ô-^Ñ^Ô^Ð^Ð^å-6°tÅ3À}ÔGaÑCbÔCbÐ-cÑ-cÔ-cð mð m™M˜F EØ ŸIšIÐ&VÐ[_ÐXkÐXkÐbhÐXkÐXkÐXkÑlÔlÐlÐlØ&��à!#�Ý!*¨5Ñ!1Ô!1ð >ð >‘I�C˜Ø#'Ð 0Ð 0¨#Ð 0Ð 0Ð 0�IØ0>°¸tÀ]ÔE_ÐajÑ0kÔ0kÑ-�I˜~Ø ð >Ø&×-Ò-¨nÑ=Ô=Ð=øØ&�Ø—J’J˜zÑ*Ô*ˆ	ØÐ ¥S¨¡Z¤Z°)Ò%;Ð%;ÝÐG¨ÐGÐGÐGÑHÔHÐHØˆr   c                óì  ‡— | j         dk    r˜t          ‰t          ¦  «        rƒ|                      |¦  «        rn|                      ‰||¦  «        }|�|ŠnR|dk    rLt          ‰¦  «        dk    r9t          ‰d         t          ¦  «        r‰d         Š|                      d|¦  «         |                      ‰t          |dd¦  «        Št          ‰t          ¦  «        s(t          d|› d	t          ‰¦  «        j        › d
�¦  «        ‚t          |¦  «        }| j         dk    r�|j        rzt          ‰¦  «        }|j        D ]a}||v rŒ|j                             |¦  «        }|€Œ$|› d
|› �}	|                      ||	¦  «        \  }
}|
r|||<   |                      d|	¦  «         Œb|Šˆfd„|j        D ¦   «         }|r(t          d|› dd                     |¦  «        › �¦  «        ‚i }|j                             ¦   «         D ]‰\  }}|› d
|› �}	|‰v r!|                      ‰|         ||	¦  «        ||<   Œ1t          |t          ¦  «        rCd|v r?||j        vr6|                      |d         |	d¦  «        ||<   |                      d|	¦  «         ŒŠ‰                     ¦   «         D �]$\  }}||j        v rŒ|› d
|› �}	g }g }|j        rt-          |j        |¦  «        \  }}|D ]}|                      d|› d�|	¦  «         Œ|rG|                      ||d         |	¦  «        }|dd …         D ]}|                      |||	¦  «        }Œ|||<   Œ¢t          |j        t          ¦  «        r.|                      |t1          d|j        ¦  «        |	¦  «        ||<   Œê|j        du s|j        €t3          |¦  «        ||<   �Œ|                      d|	¦  «         �Œ&|                     d¦  «        }|�&t          |¦  «        |k     rt          d|› d�¦  «        ‚|S )Nr   ú$r   r   z:Unwrapped single-item root array to object while salvagingz/Unwrapped JSON string to object to match schemaz8Repaired malformed JSON string to object to match schemazExpected object at z, got r    z0Filled missing required property while salvagingc                ó   •— g | ]}|‰v¯|‘Œ	S r   r   r7   s     €r   rB   z1SchemaRepairer._repair_object.<locals>.<listcomp>Õ  s$   ø€ ÐVÐVÐV CÀSÐPUÐEUÐEU˜CÐEUÐEUÐEUr   zMissing required properties at z: r   rj   z+Inserted default value for missing propertyz-Skipped unsupported patternProperties regex 'ú'rˆ   Tz,Dropped extra property not covered by schemaÚminPropertiesú
Object at z does not meet minProperties.)rz   rC   rF   r¾   Ú_map_list_to_objectrø   rD   r‡   rç   r"   rQ   r   r	   r²   ri   rE   Ú"_fill_missing_required_for_salvager!   r<   rÄ   Ú_copy_json_valueÚpattern_propertiesr   Úadditional_propertiesr   r\   )r�   r:   r`   rJ   Úmappedrú   Úvalue_with_salvage_fillsr9   Úprop_schemaÚkey_pathÚfilledÚfilled_valueÚmissing_requiredrÌ   Ú	raw_valueÚmatchedÚunsupported_patternsÚpatternrþ   Úmin_propertiess    `                  r   rÇ   zSchemaRepairer._repair_object­  sÄ  ø€ àÔ# yÒ0Ð0Ý˜5¥$Ñ'Ô'ð 1à×0Ò0°Ñ8Ô8ð 1ð ×-Ò-¨e°V¸TÑBÔBˆFØÐ!Ø��Ø˜’�¥ U¡¤¨q¢ µZÀÀaÄÍ$Ñ5OÔ5O à˜aœ�Ø—	’	ÐVÐX\Ñ]Ô]Ð]Ø×0Ò0ØÝØØ=ØFñ
ô 
ˆõ ˜%¥Ñ&Ô&ð 	XÝÐV°4ÐVÐV½tÀE¹{¼{Ô?SÐVÐVÐVÑWÔWÐWå,¨VÑ4Ô4ˆàÔ" iÒ/Ð/°MÔ4JÐ/Ý'+¨E¡{¤{Ð$Ø$Ô-ð 
\ð 
\�ØÐ2Ð2Ð2ØØ+Ô6×:Ò:¸3Ñ?Ô?�ØÐ&ØØ"˜?˜? S˜?˜?�Ø'+×'NÒ'NÈ{Ð\dÑ'eÔ'eÑ$�˜Øð \Ø4@Ð,¨SÑ1Ø—I’IÐPÐRZÑ[Ô[Ð[øØ,ˆEàVÐVÐVÐV¨=Ô+AÐVÑVÔVÐØð 	fÝÐd¸tÐdÐdÀtÇyÂyÐQaÑGbÔGbÐdÐdÑeÔeÐeà.0ˆà -Ô 8× >Ò >Ñ @Ô @ð 	Sð 	SÑˆC�Ø�� ��ˆHØ�eˆ|ˆ|Ø $× 1Ò 1°%¸´*¸kÈ8Ñ TÔ T�˜‘�Ý˜K­Ñ.Ô.ð S°9ÀÐ3KÐ3KÐPSÐ[hÔ[qÐPqÐPqØ $× 5Ò 5°kÀ)Ô6LÈhÐXaÑ bÔ b�˜‘Ø—	’	ÐGÈÑRÔRÐRøà#Ÿkšk™mœmð 	Pñ 	P‰NˆC�Ø�mÔ.Ð.Ð.ØØ�� ��ˆHØ!#ˆGØ.0Ð ØÔ/ð pÝ0HÈÔIiÐknÑ0oÔ0oÑ-�Ð-Ø/ð `ð `�Ø—	’	ÐTÈ'ÐTÐTÐTÐV^Ñ_Ô_Ð_Ð_Øð Ø!%×!2Ò!2°9¸gÀa¼jÈ(Ñ!SÔ!S�Ø#*¨1¨2¨2¤;ð ^ð ^�KØ%)×%6Ò%6°~À{ÐT\Ñ%]Ô%]�N�NØ .�˜‘ØÝ˜-Ô=½tÑDÔDð Ø $× 1Ò 1ØÝÐ)¨=Ô+NÑOÔOØñ!ô !�˜‘ð
 ØÔ2°dÐ:Ð:¸mÔ>aÐ>iÝ 8¸Ñ CÔ C�˜‘ÙØ�IŠIÐDÀhÑOÔOÐOÑOàŸš OÑ4Ô4ˆØÐ%­#¨h©-¬-¸.Ò*HÐ*HÝÐM¨$ÐMÐMÐMÑNÔNÐNØˆr   ú	list[Any]ú dict[str, JSONReturnType] | Nonec                ó`  — |                      d¦  «        }t          |t          ¦  «        r|sd S i }|                     ¦   «         D ].\  }}t          |t          ¦  «        st          d¦  «        ‚|||<   Œ/t          |                     ¦   «         ¦  «        }t          |¦  «        t          |¦  «        k    rd S i }	t          |¦  «        D ]O\  }
}|› d|› �}	 |  
                    ||
         ||         |¦  «        |	|<   Œ4# t
          $ r ‚ t          $ r Y  d S w xY w|                      d|¦  «         |	S )Nri   z-Schema object property names must be strings.r    z/Mapped array to object by schema property order)rE   rC   rD   r<   rK   r   rF   Úkeysrø   r÷   rÄ   r"   r‡   )r�   r:   r`   rJ   ri   Útyped_propertiesr9   r  r  r  rü   r  s               r   r	  z"SchemaRepairer._map_list_to_object  sn  € ð —Z’Z Ñ-Ô-ˆ
Ý˜*¥dÑ+Ô+ð 	°:ð 	Ø�4à+-ÐØ *× 0Ò 0Ñ 2Ô 2ð 	0ð 	0ÑˆC�Ý˜c¥3Ñ'Ô'ð ]Ý+Ð,[Ñ\Ô\Ð\Ø$/Ð˜SÑ!Ð!åÐ$×)Ò)Ñ+Ô+Ñ,Ô,ˆÝˆu‰:Œ:�˜T™œÒ"Ð"Ø�4à,.ˆÝ! $™œð 	ð 	‰HˆC�Ø�� ��ˆHðØ"×/Ò/°°c´
Ð<LÈSÔ<QÐS[Ñ\Ô\��s‘�øÝ(ð ð ð ØÝð ð ð Ø�t�t�tðøøøð 	�	Š	ÐCÀTÑJÔJÐJØˆs   Ã&C<Ã<DÄDrW   rì   c                ó^  — |                       |¦  «        }t          |t          ¦  «        sdS d|v rd|                      |d         |d¦  «        fS d|v rd|                      |d         |d¦  «        fS |                     d¦  «        }|rd|                      |d         |d¦  «        fS |                     d¦  «        }|€/|                      |¦  «        rd}n|                      |¦  «        rd	}|dk    r|                     d
¦  «        sdg fS |d	k    r|                     d¦  «        sdi fS dS )N)FrY   rj   TÚconstÚenumr   rQ   r¸   rW   rô   r  )rš   rC   rD   r  rE   r¹   r¶   )r�   r`   rJ   Úresolved_schemaÚenum_valuesrÎ   s         r   r
  z1SchemaRepairer._fill_missing_required_for_salvage"  sh  € Ø×-Ò-¨fÑ5Ô5ˆÝ˜/­4Ñ0Ô0ð 	Ø�9à˜Ð'Ð'Ø˜×.Ò.¨¸yÔ/IÈ4ÐQZÑ[Ô[Ð[Ð[Ø�oÐ%Ð%Ø˜×.Ò.¨¸wÔ/GÈÈwÑWÔWÐWÐWØ%×)Ò)¨&Ñ1Ô1ˆØð 	MØ˜×.Ò.¨{¸1¬~¸tÀVÑLÔLÐLÐLà'×+Ò+¨FÑ3Ô3ˆØÐ Ø×#Ò# OÑ4Ô4ð )Ø '��Ø×&Ò& Ñ7Ô7ð )Ø (�à˜GÒ#Ð#¨O×,?Ò,?À
Ñ,KÔ,KÐ#Ø˜�8ˆOØ˜HÒ$Ð$¨_×-@Ò-@ÀÑ-QÔ-QÐ$Ø˜�8ˆOàˆyr   c                ó  — d|v r3|                       d|¦  «         |                      |d         |d¦  «        S d|v rP|d         }|st          d|› d�¦  «        ‚|                       d|¦  «         |                      |d         |d¦  «        S d|v r3|                       d	|¦  «         |                      |d         |d¦  «        S |                     d
¦  «        }t	          |t
          ¦  «        rF|D ]0}	 |                      i |¥d
|i¥|¦  «        c S # t          $ r Y Œ-w xY wt          d|› d�¦  «        ‚|€/|                      |¦  «        rd}n|                      |¦  «        rd}|dk    r|                       d|¦  «         dS |dv r|                       d|¦  «         dS |dk    r|                       d|¦  «         dS |dk    rE|                     d¦  «        }|rt          d|› d|› d�¦  «        ‚|                       d|¦  «         g S |dk    rE|                     d¦  «        }|rt          d|› d|› d�¦  «        ‚|                       d|¦  «         i S |d k    r|                       d!|¦  «         d S t          d|› d�¦  «        ‚)"Nr   zFilled missing value with constr!  zEnum at z has no values.z*Filled missing value with first enum valuer   rj   z!Filled missing value with defaultrQ   zCannot infer missing value at r    rW   r¸   Ústringz&Filled missing value with empty stringrY   )ÚintegerÚnumberzFilled missing value with 0ÚbooleanzFilled missing value with falseFrô   rõ   z requires at least z items.z%Filled missing value with empty arrayr  r  z properties.z&Filled missing value with empty objectÚnullzFilled missing value with null)	r‡   r  r"   rE   rC   rF   rÃ   r¶   r¹   )r�   r`   rJ   r#  rÎ   rµ   r  r  s           r   rÃ   zSchemaRepairer._fill_missing=  s0  € Ø�fÐÐà�IŠIÐ7¸Ñ>Ô>Ð>Ø×(Ò(¨°¬¸$ÀÑHÔHÐHØ�VÐÐØ  œ.ˆKØð CÝ Ð!A¨DÐ!AÐ!AÐ!AÑBÔBÐBØ�IŠIÐBÀDÑIÔIÐIØ×(Ò(¨°Q¬¸¸vÑFÔFÐFØ˜ÐÐØ�IŠIÐ9¸4Ñ@Ô@Ð@Ø×(Ò(¨°	Ô):¸DÀ)ÑLÔLÐLàŸ
š
 6Ñ*Ô*ˆÝ�m¥TÑ*Ô*ð 	GØ,ð ð �ðØ×-Ò-Ð.M°Ð.M¸ÀÐ.MÐ.MÈtÑTÔTÐTÐTÐTøÝ!ð ð ð Ø�HðøøøåÐE¸dÐEÐEÐEÑFÔFÐFàÐ à×$Ò$ VÑ,Ô,ð (Ø (��Ø×%Ò% fÑ-Ô-ð (Ø '�à˜HÒ$Ð$Ø�IŠIÐ>ÀÑEÔEÐEØ�2ØÐ1Ð1Ð1Ø�IŠIÐ3°TÑ:Ô:Ð:Ø�1Ø˜IÒ%Ð%Ø�IŠIÐ7¸Ñ>Ô>Ð>Ø�5Ø˜GÒ#Ð#ØŸ
š
 :Ñ.Ô.ˆIØð ZÝ Ð!X¨TÐ!XÐ!XÀiÐ!XÐ!XÐ!XÑYÔYÐYØ�IŠIÐ=¸tÑDÔDÐDØˆIØ˜HÒ$Ð$Ø#ŸZšZ¨Ñ8Ô8ˆNØð eÝ Ð!c¨dÐ!cÐ!cÀ~Ð!cÐ!cÐ!cÑdÔdÐdØ�IŠIÐ>ÀÑEÔEÐEØˆIØ˜FÒ"Ð"Ø�IŠIÐ6¸Ñ=Ô=Ð=Ø�4åÐA¸$ÐAÐAÐAÑBÔBÐBs   Ã2DÄ
DÄDc                óî  — |dk    r€t          |t          ¦  «        r|S t          |t          t          f¦  «        r:t          |t          ¦  «        s%|                      d|¦  «         t          |¦  «        S t          d|› d�¦  «        ‚|dk    �rˆt          |t          ¦  «        rt          d|› d�¦  «        ‚t          |t          ¦  «        r|S t          |t          ¦  «        rL|                     ¦   «         r%|                      d|¦  «         t          |¦  «        S t          d|› d�¦  «        ‚t          |t          ¦  «        rÀ	 t          |¦  «        }n# t          $ r d }Y nw xY w|�|                      d|¦  «         |S 	 t          |¦  «        }n&# t          $ r}t          d|› d�¦  «        |‚d }~ww xY w|                     ¦   «         st          d|› d�¦  «        ‚|                      d|¦  «         t          |¦  «        S t          d|› d�¦  «        ‚|d	k    r½t          |t          ¦  «        rt          d
|› d�¦  «        ‚t          |t          t          f¦  «        r|S t          |t          ¦  «        rO	 t          |¦  «        }n&# t          $ r}t          d
|› d�¦  «        |‚d }~ww xY w|                      d|¦  «         |S t          d
|› d�¦  «        ‚|dk    råt          |t          ¦  «        r|S t          |t          ¦  «        rL|                     ¦   «         }|dv r|                      d|¦  «         dS |dv r|                      d|¦  «         dS t          |t          t          f¦  «        r>t          |t          ¦  «        s)|dv r%|                      d|¦  «         t	          |¦  «        S t          d|› d�¦  «        ‚|dk    r|€d S t          d|› d�¦  «        ‚t          d|› d|› d�¦  «        ‚)Nr%  zCoerced number to stringzExpected string at r    r&  zExpected integer at zCoerced number to integerzCoerced string to integerr'  zExpected number at zCoerced string to numberr(  )ÚtrueÚyesÚyÚonÚ1zCoerced string to booleanT)ÚfalseÚnoÚnÚoffrf   F)r   r   zCoerced number to booleanzExpected boolean at r)  zExpected null at zUnsupported schema type z at )
rC   rK   r]   r^   r_   r‡   r"   Ú
is_integerÚlowerr   )	r�   r:   rµ   rJ   Ú	int_valueÚnumr,   Úfloat_valueÚlowereds	            r   rÉ   zSchemaRepairer._coerce_scalarw  s’  € Ø˜(Ò"Ð"Ý˜%¥Ñ%Ô%ð Ø�Ý˜%¥#¥u Ñ.Ô.ð "µzÀ%ÍÑ7NÔ7Nð "Ø—	’	Ð4°dÑ;Ô;Ð;Ý˜5‘z”zÐ!ÝÐ:°4Ð:Ð:Ð:Ñ;Ô;Ð;à˜)Ò#Ñ#Ý˜%¥Ñ&Ô&ð AÝ Ð!?¸Ð!?Ð!?Ð!?Ñ@Ô@Ð@Ý˜%¥Ñ%Ô%ð Ø�Ý˜%¥Ñ'Ô'ð AØ×#Ò#Ñ%Ô%ð &Ø—I’IÐ9¸4Ñ@Ô@Ð@Ý˜u™:œ:Ð%Ý Ð!?¸Ð!?Ð!?Ð!?Ñ@Ô@Ð@Ý˜%¥Ñ%Ô%ð  ð%Ý # E¡
¤
�I�IøÝ!ð %ð %ð %Ø $�I�I�Ið%øøøàÐ(Ø—I’IÐ9¸4Ñ@Ô@Ð@Ø$Ð$ðNÝ ™,œ,�C�CøÝ!ð Nð Nð NÝ$Ð%C¸DÐ%CÐ%CÐ%CÑDÔDÈ#ÐMøøøøðNøøøà—~’~Ñ'Ô'ð EÝ$Ð%C¸DÐ%CÐ%CÐ%CÑDÔDÐDØ—	’	Ð5°tÑ<Ô<Ð<Ý˜3‘x”x�ÝÐ;°DÐ;Ð;Ð;Ñ<Ô<Ð<à˜(Ò"Ð"Ý˜%¥Ñ&Ô&ð @Ý Ð!>°tÐ!>Ð!>Ð!>Ñ?Ô?Ð?Ý˜%¥#¥u Ñ.Ô.ð Ø�Ý˜%¥Ñ%Ô%ð #ðMÝ"'¨¡,¤,�K�KøÝ!ð Mð Mð MÝ$Ð%B¸4Ð%BÐ%BÐ%BÑCÔCÈÐLøøøøðMøøøà—	’	Ð4°dÑ;Ô;Ð;Ø"Ð"ÝÐ:°4Ð:Ð:Ð:Ñ;Ô;Ð;à˜)Ò#Ð#Ý˜%¥Ñ&Ô&ð Ø�Ý˜%¥Ñ%Ô%ð !ØŸ+š+™-œ-�ØÐ=Ð=Ð=Ø—I’IÐ9¸4Ñ@Ô@Ð@Ø˜4ØÐ>Ð>Ð>Ø—I’IÐ9¸4Ñ@Ô@Ð@Ø ˜5Ý˜%¥#¥u Ñ.Ô.ð #µzÀ%ÍÑ7NÔ7Nð #ÐSXÐ\bÐSbÐSbØ—	’	Ð5°tÑ<Ô<Ð<Ý˜E‘{”{Ð"ÝÐ;°DÐ;Ð;Ð;Ñ<Ô<Ð<à˜&Ò Ð Øˆ}Ø�tÝÐ8°Ð8Ð8Ð8Ñ9Ô9Ð9å#Ð$W¸{Ð$WÐ$WÐPTÐ$WÐ$WÐ$WÑXÔXÐXsB   ÅE ÅE#Å"E#ÆF Æ
F4ÆF/Æ/F4É8J Ê
J+ÊJ&Ê&J+c                óŽ   — d|v r||d         k    rt          d|› d�¦  «        ‚d|v r||d         vrt          d|› d�¦  «        ‚|S )Nr   z	Value at z does not match const.r!  z does not match enum.)r"   )r�   r:   r`   rJ   s       r   rÊ   z SchemaRepairer._apply_enum_constÁ  sm   € Ø�fÐÐ ¨&°¬/Ò!9Ð!9ÝÐE¨ÐEÐEÐEÑFÔFÐFØ�VÐÐ ¨V°F¬^Ð ;Ð ;ÝÐD¨ÐDÐDÐDÑEÔEÐEØˆr   r©   c                óÜ  — |                      d¦  «        st          d|› �¦  «        ‚|                     d¦  «                             d¦  «        }| j        }|D ]_}|                     dd¦  «                             dd¦  «        }t          |t          ¦  «        r||vrt          d|› �¦  «        ‚||         }Œ`t          |t          ¦  «        r|S |du rdS |d	u rd	S t          d|› �¦  «        ‚)
Nz#/zUnsupported $ref: ú/z~1z~0Ú~zUnresolvable $ref: TF)Ú
startswithr   ÚlstriprO   r~   ÚreplacerC   rD   )r�   r©   ÚpartsÚcurrentÚpartÚresolved_parts         r   r§   zSchemaRepairer._resolve_refÈ  s  € Ø�~Š~˜dÑ#Ô#ð 	DÝ'Ð(B¸SÐ(BÐ(BÑCÔCÐCØ—
’
˜4Ñ Ô ×&Ò& sÑ+Ô+ˆØÔ'ˆØð 	-ð 	-ˆDØ ŸLšL¨¨sÑ3Ô3×;Ò;¸DÀ#ÑFÔFˆMÝ˜g¥tÑ,Ô,ð I°ÀWÐ0LÐ0LÝ+Ð,GÀ#Ð,GÐ,GÑHÔHÐHØ˜mÔ,ˆGˆGÝ�g�tÑ$Ô$ð 	ØˆNØ�dˆ?ˆ?Ø�4Ø�eÐÐØ�5Ý#Ð$?¸#Ð$?Ð$?Ñ@Ô@Ð@r   Úlabelc                ó.  ‡ ‡‡— |�(t          |t          t          t          t          f¦  «        r|S t          |t
          ¦  «        rˆˆˆ fd„t          |¦  «        D ¦   «         S t          |t          ¦  «        ryi }|                     ¦   «         D ]`\  }}t          |t          ¦  «        s't          ‰ 
                    ¦   «         › d‰› d�¦  «        ‚‰                      |‰› d|› �‰¦  «        ||<   Œa|S t          ‰ 
                    ¦   «         › d‰› d�¦  «        ‚)Nc           	     óP   •— g | ]"\  }}‰                      |‰› d |› d�‰¦  «        ‘Œ#S )rð   rñ   )r  )r8   rü   rA   rE  rJ   r�   s      €€€r   rB   z3SchemaRepairer._copy_json_value.<locals>.<listcomp>Þ  sA   ø€ ÐkÐkÐkÉYÈSÐRV�D×)Ò)¨$°4Ð0@Ð0@¸#Ð0@Ð0@Ð0@À%ÑHÔHÐkÐkÐkr   z
 value at z contains a non-string key.r    z is not JSON compatible.)rC   rK   r]   r^   r_   rF   r÷   rD   r<   r"   Ú
capitalizer  )r�   r:   rJ   rE  Úcopiedr9   rA   s   ` ``   r   r  zSchemaRepairer._copy_json_valueÚ  s,  øøø€ Øˆ=�J u­sµC½ÅÐ.EÑFÔFˆ=ØˆLÝ�e�TÑ"Ô"ð 	lØkÐkÐkÐkÐkÐkÕZcÐdiÑZjÔZjÐkÑkÔkÐkÝ�e�TÑ"Ô"ð 	Ø02ˆFØ"Ÿ[š[™]œ]ð Rð R‘	��TÝ! #¥sÑ+Ô+ð iÝ$¨×(8Ò(8Ñ(:Ô(:Ð%gÐ%gÀdÐ%gÐ%gÐ%gÑhÔhÐhØ"×3Ò3°D¸T¸/¸/ÀC¸/¸/È5ÑQÔQ��s‘�ØˆMÝ˜E×,Ò,Ñ.Ô.ÐXÐX¸$ÐXÐXÐXÑYÔYÐYr   c                ól   — t          |¦  «        }t          |t          ¦  «        st          d¦  «        ‚|S )Nr¤   )r6   rC   rD   r"   )r�   r`   rH   s      r   r‹   z-SchemaRepairer._prepare_schema_for_validationè  s6   € Ý8¸Ñ@Ô@ˆ
Ý˜*¥dÑ+Ô+ð 	:ÝÐ8Ñ9Ô9Ð9ØÐr   N)r   )r`   ra   rx   ry   rz   rK   r   r{   )rƒ   rK   rJ   rK   r   r{   )r`   rˆ   r   r   ©r   r   )r:   r   r`   ra   r   r_   )r:   r   r`   ra   r   r{   )r`   r¢   r   ra   )r`   r¬   r   r_   )r`   rˆ   rµ   rK   r   r_   )r`   rˆ   r   r_   )r:   r   r`   r¬   rJ   rK   r   r   )r:   r   rÏ   rÐ   rJ   rK   r   r   )
r:   r   rÖ   r×   r`   rˆ   rJ   rK   r   r   )
r:   r   rµ   rK   r`   rˆ   rJ   rK   r   r   )r:   r   rÎ   rÜ   rJ   rK   rÝ   rK   rÞ   rK   r   r   )r:   r   r`   rˆ   rJ   rK   r   r   )r:   r  r`   rˆ   rJ   rK   r   r  )r`   rW   rJ   rK   r   rì   )r`   rˆ   rJ   rK   r   r   )r:   r   rµ   rK   rJ   rK   r   r   )r:   r   r`   rˆ   rJ   rK   r   r   )r©   rK   r   ra   )r:   r   rJ   rK   rE  rK   r   r   )r`   rW   r   rˆ   )r   r   r   r‚   r‡   r“   rŒ   r›   rž   rš   r¶   r¹   r¼   r¾   rÄ   rÅ   rÆ   rÙ   rç   rÈ   rÇ   r	  r
  rÃ   rÉ   rÊ   r§   r  r‹   r   r   r   rw   rw   |   sK  € € € € € ð
 #-ð	
0ð 
0ð 
0ð 
0ð 
0ð=ð =ð =ð =ð
ð 
ð 
ð 
ð$ð $ð $ð $ð/ð /ð /ð /ð3ð 3ð 3ð 3ðð ð ð ð4	uð 	uð 	uð 	uð	!ð 	!ð 	!ð 	!ð	,ð 	,ð 	,ð 	,ðlð lð lð lð.>ð .>ð .>ð .>ð`9ð 9ð 9ð 9ð>ð >ð >ð >ð.=ð =ð =ð =ðð ð ð ð4>ð >ð >ð >ð@Uð Uð Uð Uðnð ð ð ð<ð ð ð ð68Cð 8Cð 8Cð 8CðtHYð HYð HYð HYðTð ð ð ðAð Að Að Að$Zð Zð Zð Zðð ð ð ð ð r   rw   )r   r   r   r   rK  )r2   r   r   r   )rJ   rK   r   rL   )r:   rW   r   r   )r`   r   r   ra   )Ú
__future__r   rÒ   r(   rá   Útypingr   r   r   Úparser_schemar   r	   Úutils.constantsr
   r   r   Úutils.pattern_propertiesr   r   r   Ú__annotations__r"   r   r$   r-   r1   r6   rV   r\   ru   rw   r   r   r   ú<module>rR     sÇ  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ >Ð >Ð >Ð >Ð >Ð >àÐ0Ô1Ð Ø>UÐ Ð UÐ UÐ UÑ UðAð Að Að Að A˜Jñ Aô Að AðHð Hð Hð Hð\ð \ð \ð \ðTð Tð Tð Tðð ð ð ð$ð ð ð ð6ð 6ð 6ð 6ð"að að að aðBp	ð p	ð p	ð p	ð p	ñ p	ô p	ð p	ð p	ð p	r   