Ë
    ©ŒjIˆ  ã                   óf  — d Z dZddlZddlmZ ddlZddlZddlmZ ddl	Z	ddl
mZ ddlmZ ddlmZ dd	lmZ  eej"                  j$                  ej"                  j&                  ej"                  j(                  ej"                  j*                  g«      Z eej"                  j(                  ej"                  j*                  g«      Z eej"                  j0                  ej"                  j2                  g«      Zd
ZdZdZ e	j<                  d«      Z e	j<                  d«      Z  G d„ de!«      Z" G d„ de"«      Z# G d„ de"«      Z$	 	 	 	 	 	 	 	 d0d„Z%	 	 	 	 	 d1d„Z&d„ Z' G d„ de(«      Z)d„ Z*d„ Z+d„ Z,	 	 	 d2d„Z-	 	 	 d2d„Z.e/e0fZ1 G d„ d e(«      Z2d3d!„Z3d"„ Z4d#„ Z5d$„ Z6d%d&gd'd(gd'd(gd)d*gd+d,gd'd(gd-d.gd/œZ7y)4at  Contains routines for printing protocol messages in JSON format.

Simple usage example:

  # Create a proto object and serialize it to a json format string.
  message = my_proto_pb2.MyMessage(foo='bar')
  json_string = json_format.MessageToJson(message)

  # Parse a json format string to proto object.
  message = json_format.Parse(json_string, my_proto_pb2.MyMessage())
zjieluo@google.com (Jie Luo)é    N)ÚOrderedDict)Úmethodcaller)Útype_checkers)Ú
descriptor)Úmessage_factory)Úsymbol_databaseÚInfinityz	-InfinityÚNaNu.   [í €-í¯¿](?![í°€-í¿¿])|(?<![í €-í¯¿])[í°€-í¿¿]z\[[a-zA-Z0-9\._]*\]$c                   ó   — e Zd ZdZy)ÚErrorz'Top-level module error for json_format.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úe/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/google/protobuf/json_format.pyr   r   6   s   „ Ú/r   r   c                   ó   — e Zd ZdZy)ÚSerializeToJsonErrorz&Thrown if serialization to JSON fails.Nr   r   r   r   r   r   :   s   „ Ú.r   r   c                   ó   — e Zd ZdZy)Ú
ParseErrorz Thrown in case of parsing error.Nr   r   r   r   r   r   >   s   „ Ú(r   r   c	                 óJ   — t        |||||¬«      }	|	j                  | |||«      S )a  Converts protobuf message to JSON format.

  Args:
    message: The protocol buffers message instance to serialize.
    including_default_value_fields: If True, singular primitive fields,
        repeated fields, and map fields will always be serialized.  If
        False, only serialize non-empty fields.  Singular message fields
        and oneof fields are not affected by this option.
    preserving_proto_field_name: If True, use the original proto field
        names as defined in the .proto file. If False, convert the field
        names to lowerCamelCase.
    indent: The JSON object will be pretty-printed with this indent level.
        An indent level of 0 or negative will only insert newlines. If the
        indent level is None, no newlines will be inserted.
    sort_keys: If True, then the output will be sorted by field names.
    use_integers_for_enums: If true, print integers instead of enum names.
    descriptor_pool: A Descriptor Pool for resolving types. If None use the
        default.
    float_precision: If set, use this to specify float field valid digits.
    ensure_ascii: If True, strings with non-ASCII characters are escaped.
        If False, Unicode strings are returned unchanged.

  Returns:
    A string containing the JSON formatted protocol buffer message.
  ©Úfloat_precision)Ú_PrinterÚToJsonString)
ÚmessageÚincluding_default_value_fieldsÚpreserving_proto_field_nameÚindentÚ	sort_keysÚuse_integers_for_enumsÚdescriptor_poolr   Úensure_asciiÚprinters
             r   ÚMessageToJsonr'   B   s7   € ôF Ø$Ø!ØØØ%ô'€'ð 
×	Ñ	˜g v¨y¸,Ó	GÐGr   c                 óD   — t        |||||¬«      }|j                  | «      S )a¿  Converts protobuf message to a dictionary.

  When the dictionary is encoded to JSON, it conforms to proto3 JSON spec.

  Args:
    message: The protocol buffers message instance to serialize.
    including_default_value_fields: If True, singular primitive fields,
        repeated fields, and map fields will always be serialized.  If
        False, only serialize non-empty fields.  Singular message fields
        and oneof fields are not affected by this option.
    preserving_proto_field_name: If True, use the original proto field
        names as defined in the .proto file. If False, convert the field
        names to lowerCamelCase.
    use_integers_for_enums: If true, print integers instead of enum names.
    descriptor_pool: A Descriptor Pool for resolving types. If None use the
        default.
    float_precision: If set, use this to specify float field valid digits.

  Returns:
    A dict representation of the protocol buffer message.
  r   )r   Ú_MessageToJsonObject)r   r   r    r#   r$   r   r&   s          r   ÚMessageToDictr*   n   s0   € ô8 Ø$Ø!ØØØ%ô'€'ð 
×	%Ñ	% gÓ	.Ð.r   c                 óÌ   — | j                   t        j                  j                  k(  xr< | j                  j
                  xr$ | j                  j                  «       j                  S ©N)Útyper   ÚFieldDescriptorÚTYPE_MESSAGEÚmessage_typeÚhas_optionsÚ
GetOptionsÚ	map_entry)Úfields    r   Ú_IsMapEntryr5   ”   sP   € Ø
�*‰*œ
×2Ñ2×?Ñ?Ñ
?ò 4Ø
×
Ñ
×
(Ñ
(ò4à
×
Ñ
×
'Ñ
'Ó
)×
3Ñ
3ð5r   c                   ó^   — e Zd ZdZ	 	 	 	 	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zy)r   z)JSON format printer for protocol message.Nc                 ó|   — || _         || _        || _        || _        |rdj	                  |«      | _        y d | _        y )Nz.{}g)r   r    r#   r$   ÚformatÚfloat_format)Úselfr   r    r#   r$   r   s         r   Ú__init__z_Printer.__init__�   sA   € ð +I€DÔ'Ø'B€DÔ$Ø"8€DÔØ*€DÔÙØ Ÿ-™-¨Ó8€dÕà€dÕr   c                 óV   — | j                  |«      }t        j                  ||||¬«      S )N)r!   r"   r%   )r)   ÚjsonÚdumps)r:   r   r!   r"   r%   Újss         r   r   z_Printer.ToJsonString­   s.   € Ø	×	"Ñ	" 7Ó	+€BÜ�:‰:Ø
�6 Y¸\ôKð Kr   c                 óÚ   — |j                   }|j                  }t        |«      r| j                  |«      S |t        v r t        t        |   d   |«      | «      S i }| j                  ||«      S )zEConverts message to an object according to Proto3 JSON Specification.r   )Ú
DESCRIPTORÚ	full_nameÚ_IsWrapperMessageÚ_WrapperMessageToJsonObjectÚ_WKTJSONMETHODSr   Ú_RegularMessageToJsonObject)r:   r   Úmessage_descriptorrB   r?   s        r   r)   z_Printer._MessageToJsonObject²   sq   € à ×+Ñ+ÐØ"×,Ñ,€IÜÐ+Ô,Ø×-Ñ-¨gÓ6Ð6Ø”OÑ#ØAŒ\œ/¨)Ñ4°QÑ7¸ÓAÀ$ÓGÐGØ	€BØ×+Ñ+¨G°RÓ8Ð8r   c                 ó  — |j                  «       }	 |D �]+  \  }}| j                  r|j                  }n|j                  }t	        |«      rc|j
                  j                  d   }i }|D ]=  }	t        |	t        «      r|	rd}
nd}
nt        |	«      }
| j                  |||	   «      ||
<   Œ? |||<   Œš|j                  t        j                  j                  k(  r$|D �cg c]  }| j                  ||«      ‘Œ c}||<   Œå|j                  r&d|j                   z  }| j                  ||«      ||<   �Œ| j                  ||«      ||<   �Œ. | j"                  rÿ|j$                  }|j&                  D ]ä  }|j                  t        j                  j                  k7  r'|j(                  t        j                  j*                  k(  s|j,                  rŒ^| j                  r|j                  }n|j                  }||v rŒˆt	        |«      ri ||<   Œ™|j                  t        j                  j                  k(  rg ||<   ŒÆ| j                  ||j.                  «      ||<   Œæ |S c c}w # t0        $ r+}t3        dj5                  j                  |«      «      |‚d}~ww xY w)z?Converts normal message according to Proto3 JSON Specification.ÚvalueÚtrueÚfalsez[%s]z#Failed to serialize {0} field: {1}.N)Ú
ListFieldsr    ÚnameÚ	json_namer5   r0   Úfields_by_nameÚ
isinstanceÚboolÚstrÚ_FieldToJsonObjectÚlabelr   r.   ÚLABEL_REPEATEDÚis_extensionrB   r   rA   ÚfieldsÚcpp_typeÚCPPTYPE_MESSAGEÚcontaining_oneofÚdefault_valueÚ
ValueErrorr   r8   )r:   r   r?   rW   r4   rI   rM   Úv_fieldÚjs_mapÚkeyÚrecorded_keyÚkrG   Úes                 r   rF   z$_Printer._RegularMessageToJsonObject½   s]  € à×ÑÓ!€Fð8NÜ ‰,ˆ%�Ø×+Ò+Ø—‘‰$à—‘ˆ$Ü�uÔà×&Ñ&×5Ñ5°gÑ>ˆ'Øˆ&ÛˆcÜ˜#œtÔ$ÙØ%‘à&‘ä  ›XˆlØ#'×#:Ñ#:Ø˜˜s™ó$%ˆF�<Ò ð ð ˆ"ˆTŠ(Ø�[‰[œJ×6Ñ6×EÑEÒEñ  %ó&Ù$˜!ð ×-Ñ-¨e°QÕ7Ø$ñ&ˆ"ˆTŠ(à×ÒØ˜%Ÿ/™/Ñ)ˆ$Ø×,Ñ,¨U°EÓ:ˆ"ˆT‹(à×,Ñ,¨U°EÓ:ˆ"ˆT‹(ð9 !ð> 
×	,Ò	,Ø$×/Ñ/ÐØ'×.Ô.ˆEà�{‰{œj×8Ñ8×GÑGÒGØ�~‰~¤×!;Ñ!;×!KÑ!KÒKØ×$Ò$ØØ×-Ò-Ø—:‘:‰Dà—?‘?ˆDØ�R‰ZàÜ˜ÔØˆBˆtŠHØ�{‰{œj×8Ñ8×GÑGÒGØˆBˆtŠHà×.Ñ.¨u°e×6IÑ6IÓJˆBˆtŠHð% /ð0 €IùòG&øô> ò NÜ Ø
/×
6Ñ
6°u·z±zÀ1Ó
EóGØLMðNûðNús+   ’CI ÃIÃ2EI ÉI É	J	É&JÊJ	c                 ó¼  — |j                   t        j                  j                  k(  r| j	                  |«      S |j                   t        j                  j
                  k(  r| j                  r|S |j                  j                  dk(  ry|j                  j                  j                  |d«      }|�|j                  S |j                  j                  rt        d«      ‚|S |j                   t        j                  j                  k(  rM|j                  t        j                  j                   k(  r$t#        j$                  |«      j'                  d«      S |S |j                   t        j                  j(                  k(  rt+        |«      S |j                   t,        v rt/        |«      S |j                   t0        v r¨t3        j4                  |«      r|dk  rt6        S t8        S t3        j:                  |«      rt<        S |j                   t        j                  j>                  k(  r@| j@                  rtC        tE        || j@                  «      «      S tG        jH                  |«      S |S )z<Converts field value according to Proto3 JSON Specification.úgoogle.protobuf.NullValueNzKEnum field contains an integer value which can not mapped to an enum value.úutf-8g        )%rX   r   r.   rY   r)   ÚCPPTYPE_ENUMr#   Ú	enum_typerB   Úvalues_by_numberÚgetrM   Ú	is_closedr   ÚCPPTYPE_STRINGr-   Ú
TYPE_BYTESÚbase64Ú	b64encodeÚdecodeÚCPPTYPE_BOOLrQ   Ú_INT64_TYPESrR   Ú_FLOAT_TYPESÚmathÚisinfÚ_NEG_INFINITYÚ	_INFINITYÚisnanÚ_NANÚCPPTYPE_FLOATr9   Úfloatr8   r   ÚToShortestFloat)r:   r4   rI   Ú
enum_values       r   rS   z_Printer._FieldToJsonObjectý   sÐ  € à‡~�~œ×3Ñ3×CÑCÒCØ×&Ñ& uÓ-Ð-Ø	�‰œ:×5Ñ5×BÑBÒ	BØ	×	$Ò	$ØˆØ	�‰×	"Ñ	"Ð&AÒ	AØØ—?‘?×3Ñ3×7Ñ7¸¸tÓD€jØ	Ð	Ø�‰Ðà�?‰?×$Ò$Ü$ð &Nó Oð Oð ˆ,Ø	�‰œ:×5Ñ5×DÑDÒ	DØ	�‰”z×1Ñ1×<Ñ<Ò	<ä×Ñ Ó&×-Ñ-¨gÓ6Ð6àˆØ	�‰œ:×5Ñ5×BÑBÒ	BÜ�%‹[ÐØ	�‰œ<Ñ	'Ü�‹ZÐØ	�‰œ<Ñ	'Ü	�‰�EÔ	Ø�3Š;ÜÐ
äÐ
Ü	�‰�EÔ	ÜˆØ	�‰œ:×5Ñ5×CÑCÒ	CØ×ÒÜ”v˜e T×%6Ñ%6Ó7Ó8Ð
8ä×.Ñ.¨uÓ5Ð
5à€Lr   c                 ó¦  — |j                  «       si S t        «       }|j                  }||d<   t        || j                  «      }|j                  |j                  «       |j                  }|j                  }t        |«      r| j                  |«      |d<   |S |t        v r! t        t        |   d   |«      | «      |d<   |S | j                  ||«      S )z<Converts Any message according to Proto3 JSON Specification.ú@typerI   r   )rL   r   Útype_urlÚ_CreateMessageFromTypeUrlr$   ÚParseFromStringrI   rA   rB   rC   rD   rE   r   rF   )r:   r   r?   r   Úsub_messagerG   rB   s          r   Ú_AnyMessageToJsonObjectz _Printer._AnyMessageToJsonObject)  sÔ   € à×ÑÔØ€iä	‹€BØ×Ñ€HØ€B€w�KÜ+¨H°d×6JÑ6JÓK€KØ×Ñ §¡Ô.Ø$×/Ñ/ÐØ"×,Ñ,€IÜÐ+Ô,Ø×4Ñ4°[ÓA€bˆ�kØ€iØ”OÑ#ð.”L¤°Ñ!;¸AÑ!>Ø!,ó.Ø.2ó4€bˆ�kà€iØ×+Ñ+¨K¸Ó<Ð<r   c                 ó"   — |j                  «       S )z8Converts message according to Proto3 JSON Specification.)r   ©r:   r   s     r   Ú_GenericMessageToJsonObjectz$_Printer._GenericMessageToJsonObject>  s   € ð ×ÑÓ!Ð!r   c                 ó„  — |j                  d«      }|�|dk(  ry|dk(  r| j                  |j                  «      S |dk(  rL|j                  }t	        j
                  |«      rt        d«      ‚t	        j                  |«      rt        d«      ‚t        ||«      }|j                  j                  |   }| j                  ||«      S )z>Converts Value message according to Proto3 JSON Specification.ÚkindNÚ
null_valueÚ
list_valueÚnumber_valuezTFail to serialize Infinity for Value.number_value, which would parse as string_valuezOFail to serialize NaN for Value.number_value, which would parse as string_value)Ú
WhichOneofÚ_ListValueMessageToJsonObjectrŠ   r‹   rs   rt   r\   rw   ÚgetattrrA   rO   rS   )r:   r   ÚwhichrI   Úoneof_descriptors        r   Ú_ValueMessageToJsonObjectz"_Printer._ValueMessageToJsonObjectD  sÊ   € à×Ñ˜vÓ&€Eð €}˜ Ò-ØØ�ÒØ×/Ñ/°×0BÑ0BÓCÐCØ�ÒØ×"Ñ"€eÜ	�‰�EÔ	Üð =ó >ð 	>ä	�‰�EÔ	Üð =ó >ð 	>ô �g˜uÓ%€eØ×)Ñ)×8Ñ8¸Ñ?ÐØ×"Ñ"Ð#3°UÓ;Ð;r   c                 ó^   — |j                   D �cg c]  }| j                  |«      ‘Œ c}S c c}w )zBConverts ListValue message according to Proto3 JSON Specification.)Úvaluesr‘   )r:   r   rI   s      r   r�   z&_Printer._ListValueMessageToJsonObjectZ  s8   € ð !Ÿšó)Ù'�ð ×*Ñ*¨5Õ1Ø'ñ)ð )ùò )s   �*c                 ó^   — |j                   }i }|D ]  }| j                  ||   «      ||<   Œ |S )z?Converts Struct message according to Proto3 JSON Specification.)rW   r‘   )r:   r   rW   Úretr_   s        r   Ú_StructMessageToJsonObjectz#_Printer._StructMessageToJsonObject_  s7   € à�^‰^€FØ
€CÛˆØ×/Ñ/°°s±Ó<€cˆ#‚hð à€Jr   c                 óh   — | j                  |j                  j                  d   |j                  «      S )NrI   )rS   rA   rO   rI   r…   s     r   rD   z$_Printer._WrapperMessageToJsonObjectg  s1   € Ø×"Ñ"Ø×Ñ×)Ñ)¨'Ñ2°G·M±MóCð Cr   ©FFFNN)r   r   r   r   r;   r   r)   rF   rS   rƒ   r†   r‘   r�   r–   rD   r   r   r   r   r   š   sQ   „ Ù1ð &+Ø"'Ø"ØØóò Kò
	9ò>ò@*òX=ò*"ò<ò,)ò
óCr   r   c                 ó4   — | j                   j                  dk(  S )Nzgoogle/protobuf/wrappers.proto)ÚfilerM   )rG   s    r   rC   rC   l  s   € Ø	×	 Ñ	 ×	%Ñ	%Ð)IÑ	IÐIr   c                 ód   — i }| D ](  \  }}||v rt        dj                  |«      «      ‚|||<   Œ* |S )Nz'Failed to load JSON: duplicate key {0}.)r   r8   )r?   ÚresultrM   rI   s       r   Ú_DuplicateCheckerr�   p  sC   € Ø€&Û�k€dˆEØˆv�~ÜÐ@×GÑGÈÓMÓNÐNØ€Fˆ4‚Lð ð 
€-r   c                 ó&  — t        j                  «       }|€|j                  n|}| j                  d«      d   }	 |j	                  |«      }t        j                  |«      } |«       S # t
        $ r }t        dj                  | «      «      |‚d}~ww xY w)z"Creates a message from a type URL.NÚ/éÿÿÿÿz0Can not find message descriptor by type_url: {0})
r   ÚDefaultÚpoolÚsplitÚFindMessageTypeByNameÚKeyErrorÚ	TypeErrorr8   r   ÚGetMessageClass)r   r$   Údbr¢   Ú	type_namerG   rb   Úmessage_classs           r   r€   r€   y  s”   € ä×ÑÓ €"Ø#Ð+ˆ�Š°€$Ø�n‰n˜SÓ! "Ñ%€)ðØ×3Ñ3°IÓ>Ðô
 "×1Ñ1Ð2DÓE€-Ù	‹Ðøô 
ò Ü
Ø:×AÑAÀ(ÓKóàðûðús   ºA' Á'	BÁ0BÂBc                 ó  — t        | t        «      s| j                  d«      } 	 t        j                  | t
        ¬«      }t        |||||«      S # t        $ r)}t        dj                  t        |«      «      «      |‚d}~ww xY w)al  Parses a JSON representation of a protocol message into a message.

  Args:
    text: Message JSON representation.
    message: A protocol buffer message to merge into.
    ignore_unknown_fields: If True, do not raise errors for unknown fields.
    descriptor_pool: A Descriptor Pool for resolving types. If None use the
      default.
    max_recursion_depth: max recursion depth of JSON message to be
      deserialized. JSON messages over this depth will fail to be
      deserialized. Default value is 100.

  Returns:
    The same message passed as argument.

  Raises::
    ParseError: On JSON parsing problems.
  re   )Úobject_pairs_hookzFailed to load JSON: {0}.N)
rP   rR   ro   r=   Úloadsr�   r\   r   r8   Ú	ParseDict)Útextr   Úignore_unknown_fieldsr$   Úmax_recursion_depthr?   rb   s          r   ÚParser²   ˆ  s   € ô. 
�Dœ#Ô	Ø�;‰;�wÓ€DðHÜ	�‰�DÔ,=Ô	>€Bô 
�2�wÐ 5°Ø&ó
(ð (øô 
ò HÜ
Ð0×7Ñ7¼¸A»Ó?Ó
@ÀaÐGûðHús   £A Á	A?Á$A:Á:A?c                 óF   — t        |||«      }|j                  | |d«       |S )a8  Parses a JSON dictionary representation into a message.

  Args:
    js_dict: Dict representation of a JSON message.
    message: A protocol buffer message to merge into.
    ignore_unknown_fields: If True, do not raise errors for unknown fields.
    descriptor_pool: A Descriptor Pool for resolving types. If None use the
      default.
    max_recursion_depth: max recursion depth of JSON message to be
      deserialized. JSON messages over this depth will fail to be
      deserialized. Default value is 100.

  Returns:
    The same message passed as argument.
  Ú )Ú_ParserÚConvertMessage)Újs_dictr   r°   r$   r±   Úparsers         r   r®   r®   ©  s+   € ô( Ð(¨/Ð;NÓO€&Ø×Ñ˜ ¨"Ô-Ø	€.r   c                   óL   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)rµ   z(JSON format parser for protocol message.c                 ó<   — || _         || _        || _        d| _        y )Nr   )r°   r$   r±   Úrecursion_depth)r:   r°   r$   r±   s       r   r;   z_Parser.__init__È  s"   € à!6€DÔØ*€DÔØ2€DÔØ€DÕr   c                 óÐ  — | xj                   dz  c_         | j                   | j                  kD  r$t        dj                  | j                  «      «      ‚|j                  }|j
                  }|s|j                  }t        |«      r| j                  |||«       n:|t        v r t        t        |   d   |||«      | «       n| j                  |||«       | xj                   dz  c_         y)a  Convert a JSON object into a message.

    Args:
      value: A JSON object.
      message: A WKT or regular protocol message to record the data.
      path: parent path to log parse error info.

    Raises:
      ParseError: In case of convert problems.
    é   z,Message too deep. Max recursion depth is {0}N)r»   r±   r   r8   rA   rB   rM   rC   Ú_ConvertWrapperMessagerE   r   Ú_ConvertFieldValuePair)r:   rI   r   ÚpathrG   rB   s         r   r¶   z_Parser.ConvertMessageÏ  s×   € ð 	×Ò˜AÑÕØ×Ñ˜d×6Ñ6Ò6ÜÐE×LÑLØ
×
"Ñ
"ó$ó %ð %à ×+Ñ+ÐØ"×,Ñ,€IÙØ×$Ñ$€dÜÐ+Ô,Ø
×!Ñ! %¨°$Õ7Ø	”oÑ	%ØG„l”? 9Ñ-¨aÑ0°%¸À$ÓGÈÕMà
×!Ñ! %¨°$Ô7Ø×Ò˜AÑÖr   c                 óä  — g }|j                   }t        d„ |j                  D «       «      }|D �]›  }	 |j                  |d«      }|s|j                  j                  |d«      }|s¦t
        j                  |«      r‘|j                  s%t        dj                  |j                  |«      «      ‚|dd }	|j                  j                  |	«      }|s>dj                  |	j                  d«      dd «      }	|j                  j                  |	«      }|sV| j                  rŒìt        dj                  |j                  |||j                  D �
cg c]  }
|
j                   ‘Œ c}
«      «      ‚||v r0t        dj                  |j                   j                  ||«      «      ‚|j#                  |«       ||   }|j$                  �]|�[|j$                  j&                  }||v r0t        d	j                  |j                   j                  ||«      «      ‚|j#                  |«       |€Ó|j(                  t*        j,                  j.                  k(  r7|j0                  j                  d
k(  rt3        ||j&                  «      }d|_        ns|j(                  t*        j,                  j6                  k(  r1|j8                  j                  dk(  rt;        ||j&                  d«       n|j=                  |j&                  «       �Œ½t?        |«      rA|j=                  |j&                  «       | jA                  |||dj                  ||«      «       �n“|jB                  t*        j,                  jD                  k(  �ru|j=                  |j&                  «       tG        |tH        «      st        dj                  |||«      «      ‚|j(                  t*        j,                  j.                  k(  r”tK        |«      D ]„  \  }}t3        ||j&                  «      jM                  «       }|€5|j                   j                  d
k7  rt        dj                  |||«      «      ‚| jO                  ||dj                  |||«      «       Œ† �nitK        |«      D ]d  \  }}|€t        dj                  |||«      «      ‚t3        ||j&                  «      j#                  tQ        ||dj                  |||«      «      «       Œf nö|j(                  t*        j,                  j.                  k(  rf|jR                  r|j                  |   }nt3        ||j&                  «      }|jU                  «        | jO                  ||dj                  ||«      «       ni|jR                  r+tQ        ||dj                  ||«      «      |j                  |<   n2t;        ||j&                  tQ        ||dj                  ||«      «      «       �Œž yc c}
w # t        $ rD}r(|j$                  €t        dj                  ||«      «      |‚t        tW        |«      «      |‚d}~wtX        $ r!}t        dj                  ||«      «      |‚d}~wtZ        $ r!}t        dj                  ||«      «      |‚d}~ww xY w)a'  Convert field value pairs into regular message.

    Args:
      js: A JSON object to convert the field value pairs.
      message: A regular protocol message to record the data.
      path: parent path to log parse error info.

    Raises:
      ParseError: In case of problems converting.
    c              3   ó8   K  — | ]  }|j                   |f–— Œ y ­wr,   )rN   )Ú.0Úfs     r   Ú	<genexpr>z1_Parser._ConvertFieldValuePair.<locals>.<genexpr>÷  s"   è ø€ ð CÙ(A 1ð !"§¡¨QÔ/Ù(Aùs   ‚Nz0Message type {0} does not have extensions at {1}r½   r    Ú.zaMessage type "{0}" has no field named "{1}" at "{2}".
 Available Fields(except extensions): "{3}"zBMessage type "{0}" should not have multiple "{1}" fields at "{2}".zHMessage type "{0}" should not have multiple "{1}" oneof fields at "{2}".úgoogle.protobuf.Valuer   rd   ú{0}.{1}z4repeated field {0} must be in [] which is {1} at {2}zPnull is not allowed to be used as an element in a repeated field at {0}.{1}[{2}]z{0}.{1}[{2}]zFailed to parse {0} field: {1}.).rA   ÚdictrW   ri   rO   Ú_VALID_EXTENSION_NAMEÚmatchÚis_extendabler   r8   rB   Ú
ExtensionsÚ_FindExtensionByNameÚjoinr£   r°   rN   ÚappendrZ   rM   rX   r   r.   rY   r0   rŽ   r‰   rf   rg   ÚsetattrÚ
ClearFieldr5   Ú_ConvertMapFieldValuerT   rU   rP   ÚlistÚ	enumerateÚaddr¶   Ú_ConvertScalarFieldValuerV   ÚSetInParentrR   r\   r¦   )r:   r?   r   rÀ   ÚnamesrG   Úfields_by_json_namerM   r4   Ú
identifierrÄ   rI   Ú
oneof_namer‚   ÚindexÚitemrb   s                    r   r¿   z_Parser._ConvertFieldValuePairê  sú  € ð €EØ ×+Ñ+ÐÜñ CØ(:×(AÒ(AóCó CÐäˆðvØ#×'Ñ'¨¨dÓ3ˆÙØ$×3Ñ3×7Ñ7¸¸dÓCˆ%ÙÔ.×4Ñ4°TÔ:Ø#×1Ò1ÜØB×IÑIØ&×0Ñ0°$ó8ó9ð 9ð ˜A˜b�zˆ*à×$Ñ$×9Ñ9¸*ÓEˆ%áð Ÿ™ *×"2Ñ"2°3Ó"7¸¸Ð"<Ó=ˆJà×&Ñ&×;Ñ;¸JÓGˆEáØ×'Ò'ØÜð=ß>D¹fØ%×/Ñ/°°tØ);×)BÒ)BÓCÑ)B A�A—K“KÐ)BÑCó?EóFð Fð
 �5‰=Üð 4ß4:±FØ&×1Ñ1×;Ñ;¸TÀ4ó5IóJð Jð 	�‰�TÔØ�4‘ˆà×!Ñ!Ð-°%Ð2CØ×-Ñ-×2Ñ2ˆ*Ø˜5Ñ Üð <ß<B¹FØ!(×!3Ñ!3×!=Ñ!=¸zØ!%ó='ó(ð (ð �,‰,�zÔ
"àˆ=Ø�n‰n¤
× :Ñ :× JÑ JÒJØ×$Ñ$×.Ñ.Ð2IÒIÜ! '¨5¯:©:Ó6ˆKØ%&ˆKÕ"Ø—‘¤*×"<Ñ"<×"IÑ"IÒIØ—O‘O×-Ñ-Ð1LÒLÜ�G˜UŸZ™Z¨Õ+à×Ñ˜uŸz™zÔ*Ù
ô �uÔØ
×
Ñ
˜UŸZ™ZÔ
(Ø
×
$Ñ
$ U¨G°UØ%.×%5Ñ%5°d¸DÓ%AöCà�[‰[œJ×6Ñ6×EÑEÓEØ
×
Ñ
˜UŸZ™ZÔ
(Ü˜E¤4Ô(Üð *ß*0©&°°u¸dÓ*CóEð Eà�^‰^œz×9Ñ9×IÑIÒIä(¨Ö/‘��tÜ# G¨U¯Z©ZÓ8×<Ñ<Ó>ˆkà�,Ø×(Ñ(×2Ñ2Ð6MÒMÜ ð "HßHNÉØ%)¨4°óI8ó9ð 9ð ×!Ñ! $¨Ø"0×"7Ñ"7¸¸dÀEÓ"JõLò  0ô  )¨Ö/‘��tØ�Ü ð "HßHNÉØ%)¨4°óI8ó9ð 9ô �g˜uŸz™zÓ*×1Ñ1Ü*Ø˜E >×#8Ñ#8¸¸tÀUÓ#KóMõNñ  0ð �^‰^œz×9Ñ9×IÑIÒIØ×ÒØ!×,Ñ,¨UÑ3‰Kä! '¨5¯:©:Ó6ˆKØ
×
!Ñ
!Ô
#Ø
×
Ñ
˜e [°)×2BÑ2BÀ4ÈÓ2NÕ
Oà×ÒÜ(@Ø�u˜i×.Ñ.¨t°TÓ:ó)<ˆG×Ñ˜uÒ%ô Ø˜Ÿ™Ü(¨°Ø)2×)9Ñ)9¸$ÀÓ)EóGôHùñK ùò8 DøôZ ò *Ù�U×+Ñ+Ð3ÜØ-×4Ñ4°T¸1Ó=óàðô œ3˜q›6Ó"¨Ð
)ûÜò ÜØ
+×
2Ñ
2°4¸Ó
;ó
àð	ûô ò ÜØ
+×
2Ñ
2°4¸Ó
;ó
àð	ûðúsP   ²C&WÄ+WÅWÅFWË*KW×W×	Y/×?XØY/Ø&YÙY/ÙY*Ù*Y/c           	      óˆ  — t        |t        «      r|sy	 |d   }	 t        || j                  «      }|j                  }|j                  }t        |«      r&| j                  |d   |dj	                  |«      «       nT|t        v r1 t        t        |   d   |d   |dj	                  |«      «      | «       n|d= | j                  |||«       ||d<   |j                  «       |_        ||_        y# t        $ r }t        dj	                  |«      «      |‚d}~ww xY w# t        $ r!}t        dj	                  ||«      «      |‚d}~ww xY w)z/Convert a JSON representation into Any message.Nr~   z0@type is missing when parsing any message at {0}ú
{0} at {1}rI   ú	{0}.valuer½   )rP   rÉ   r¥   r   r8   r€   r$   r¦   rA   rB   rC   r¾   rE   r   r¿   ÚSerializeToStringrI   r   )	r:   rI   r   rÀ   r   rb   r‚   rG   rB   s	            r   Ú_ConvertAnyMessagez_Parser._ConvertAnyMessager  sQ  € ä�%œÔ¡uØðØ�w‘€hð<Ü-¨h¸×8LÑ8LÓM€kð %×/Ñ/ÐØ"×,Ñ,€IÜÐ+Ô,Ø
×!Ñ! %¨¡.°+Ø"-×"4Ñ"4°TÓ":õ<à	”oÑ	%ð-„l”? 9Ñ-¨aÑ0°%¸±.À+Ø×%Ñ% dÓ+ó-àõð �ˆ.Ø
×!Ñ! %¨°dÔ;Ø€eˆG�nà×1Ñ1Ó3€G„MØ€GÕøô1 ò ÜØ:×AÑAÀ$ÓGóàðûðûô ò <Ü�|×*Ñ*¨1¨dÓ3Ó4¸!Ð;ûð<ús.   •C+ ›D Ã+	DÃ4DÄDÄ	EÄ D<Ä<Ec                 ó‚   — 	 |j                  |«       y# t        $ r!}t        dj                  ||«      «      |‚d}~ww xY w)z?Convert a JSON representation into message with FromJsonString.rà   N)ÚFromJsonStringr\   r   r8   )r:   rI   r   rÀ   rb   s        r   Ú_ConvertGenericMessagez_Parser._ConvertGenericMessage’  s?   € ð<Ø×Ñ˜UÕ#øÜò <Ü�|×*Ñ*¨1¨dÓ3Ó4¸!Ð;ûð<ús   ‚ ”	>�9¹>c                 ó¨  — t        |t        «      r| j                  ||j                  |«       yt        |t        «      r| j                  ||j                  |«       y|€d|_        yt        |t        «      r||_	        yt        |t        «      r||_        yt        |t        «      r||_        yt        dj                  |t!        |«      |«      «      ‚)z1Convert a JSON representation into Value message.Nr   z(Value {0} has unexpected type {1} at {2})rP   rÉ   Ú_ConvertStructMessageÚstruct_valuerÔ   Ú_ConvertListValueMessagerŠ   r‰   rQ   Ú
bool_valuerR   Ústring_valueÚ_INT_OR_FLOATr‹   r   r8   r-   )r:   rI   r   rÀ   s       r   Ú_ConvertValueMessagez_Parser._ConvertValueMessage›  s¯   € ä�%œÔØ
× Ñ  ¨×(<Ñ(<¸dÕCÜ	�Eœ4Ô	 Ø
×#Ñ# E¨7×+=Ñ+=¸tÕDØ	ˆØ€gÕÜ	�Eœ4Ô	 Ø €gÕÜ	�Eœ3Ô	Ø"€gÕÜ	�Eœ=Ô	)Ø"€gÕäÐA×HÑHØ
”�e“˜dó$ó %ð %r   c           	      ó  — t        |t        «      st        dj                  ||«      «      ‚|j	                  d«       t        |«      D ]@  \  }}| j                  ||j                  j                  «       dj                  ||«      «       ŒB y)z5Convert a JSON representation into ListValue message.z+ListValue must be in [] which is {0} at {1}r“   ú{0}[{1}]N)	rP   rÔ   r   r8   rÒ   rÕ   rî   r“   rÖ   )r:   rI   r   rÀ   rÝ   rÞ   s         r   rê   z _Parser._ConvertListValueMessage­  s}   € ä�eœTÔ"ÜÐD×KÑKØ
�óó ð à×Ñ�xÔ Ü  Ö'‰ˆˆtØ
×Ñ  g§n¡n×&8Ñ&8Ó&:Ø *× 1Ñ 1°$¸Ó >õ@ñ (r   c           	      óî   — t        |t        «      st        dj                  ||«      «      ‚|j	                  «        |D ]5  }| j                  ||   |j                  |   dj                  ||«      «       Œ7 y)z2Convert a JSON representation into Struct message.z,Struct must be in a dict which is {0} at {1}rÈ   N)rP   rÉ   r   r8   ÚClearrî   rW   )r:   rI   r   rÀ   r_   s        r   rè   z_Parser._ConvertStructMessage·  su   € ä�eœTÔ"ÜÐE×LÑLØ
�óó ð ð ‡M�M„OÛˆØ
×Ñ  c¡
¨G¯N©N¸3Ñ,?Ø )× 0Ñ 0°°sÓ ;õ=ð ð r   c                 ó†   — |j                   j                  d   }t        |dt        ||dj	                  |«      ¬«      «       y)z3Convert a JSON representation into Wrapper message.rI   rá   ©rÀ   N)rA   rO   rÑ   r×   r8   )r:   rI   r   rÀ   r4   s        r   r¾   z_Parser._ConvertWrapperMessageÄ  s=   € à×Ñ×-Ñ-¨gÑ6€EÜØ�Ü  ¨°K×4FÑ4FÀtÓ4LÔMõOr   c           	      óV  — t        |t        «      s&t        dj                  |j                  ||«      «      ‚|j
                  j                  d   }|j
                  j                  d   }|D ]¼  }t        ||dj                  |«      d«      }|j                  t        j                  j                  k(  r>| j                  ||   t        ||j                  «      |   dj                  ||«      «       Œ…t        ||   |dj                  ||«      ¬«      t        ||j                  «      |<   Œ¾ y)	af  Convert map field value for a message map field.

    Args:
      value: A JSON object to convert the map field value.
      message: A protocol message to record the converted data.
      field: The descriptor of the map field to be converted.
      path: parent path to log parse error info.

    Raises:
      ParseError: In case of convert problems.
    z3Map field {0} must be in a dict which is {1} at {2}r_   rI   z{0}.keyTrð   rô   N)rP   rÉ   r   r8   rM   r0   rO   r×   rX   r   r.   rY   r¶   rŽ   )	r:   rI   r   r4   rÀ   Ú	key_fieldÚvalue_fieldr_   Ú	key_values	            r   rÓ   z_Parser._ConvertMapFieldValueË  s  € ô �eœTÔ"ÜØ
?×
FÑ
FØ�j‰j˜% ó'ó(ð (ð ×"Ñ"×1Ñ1°%Ñ8€IØ×$Ñ$×3Ñ3°GÑ<€KÛˆÜ*¨3°	Ø+4×+;Ñ+;¸DÓ+AÀ4óI€ià	×	Ñ	¤×!;Ñ!;×!KÑ!KÒ	KØ×Ñ˜E #™JÜ# G¨U¯Z©ZÓ8¸ÑCØ&×-Ñ-¨d°IÓ>õ	@ô 3KØ�#‰J˜¨*×*;Ñ*;¸DÀ)Ó*Lô3NŒ�˜Ÿ™Ó$ YÒ/ñ r   N)r   r   r   r   r;   r¶   r¿   rã   ræ   rî   rê   rè   r¾   rÓ   r   r   r   rµ   rµ   Å  s=   „ Ù0òòò6FòP ò@<ò%ò$@òòOóNr   rµ   c                 óê  — 	 |j                   t        v rt        | «      S |j                   t        v rt	        | |«      S |j                   t
        j                  j                  k(  rt        | |«      S |j                   t
        j                  j                  k(  r™|j                  t
        j                  j                  k(  rPt        | t        «      r| j                  d«      }n| }|ddt        |«      dz  z
  z  z   }t!        j"                  |«      S t$        j'                  | «      rt)        d«      ‚| S |j                   t
        j                  j*                  k(  r¯|j,                  j.                  j1                  | d«      }|€{	 t3        | «      }|j,                  j4                  j1                  |d«      }|€G|j,                  j<                  r/t)        dj9                  | |j,                  j:                  «      «      ‚|S |j>                  S y# t6        $ r5}t)        dj9                  | |j,                  j:                  «      «      |‚d}~ww xY w# t(        $ r!}t)        dj9                  ||«      «      |‚d}~ww xY w)aq  Convert a single scalar field value.

  Args:
    value: A scalar value to convert the scalar field value.
    field: The descriptor of the field to convert.
    path: parent path to log parse error info.
    require_str: If True, the field value must be a str.

  Returns:
    The converted scalar field value

  Raises:
    ParseError: In case of convert problems.
  re   ó   =é   zUnpaired surrogateNz(Invalid enum value {0} for enum type {1}rà   ) rX   Ú
_INT_TYPESÚ_ConvertIntegerrr   Ú_ConvertFloatr   r.   rp   Ú_ConvertBoolrk   r-   rl   rP   rR   ÚencodeÚlenrm   Úurlsafe_b64decodeÚ_UNPAIRED_SURROGATE_PATTERNÚsearchr   rf   rg   Úvalues_by_nameri   Úintrh   r\   r8   rB   rj   Únumber)	rI   r4   rÀ   Úrequire_strÚencodedÚpadded_valuer|   r  rb   s	            r   r×   r×   é  s  € ð(:Ø‡~�~œÑ#Ü˜UÓ#Ð#Ø	�‰œ<Ñ	'Ü˜5 %Ó(Ð(Ø	�‰œ:×5Ñ5×BÑBÒ	BÜ˜% Ó-Ð-Ø	�‰œ:×5Ñ5×DÑDÒ	DØ	�‰”z×1Ñ1×<Ñ<Ò	<Ü�eœSÔ!Ø—L‘L Ó)‰'àˆ'à ¨¬S°«\¸AÑ-=Ñ)=Ñ!>Ñ>ˆÜ×'Ñ'¨Ó5Ð5ô '×-Ñ-¨eÔ4ÜÐ/Ó0Ð
0ØˆØ	�‰œ:×5Ñ5×BÑBÒ	Bà—?‘?×1Ñ1×5Ñ5°e¸TÓB€jØ	Ð	ð	8Ü�u“:ˆ&Ø—‘×7Ñ7×;Ñ;¸FÀDÓIˆ*ð ÐØ�_‰_×&Ò&ÜÐG×NÑNØ�u—‘×0Ñ0ó2ó 3ð 3ð ˆMØ×ÑÐð! 
Cøô ò 	8ÜÐE×LÑLØ�U—_‘_×.Ñ.ó0ó 1Ø67ð8ûð	8ûô 
ò :Ü
�\×(Ñ(¨¨DÓ1Ó
2¸Ð9ûð:ús`   ‚I ŸI ½2I Á0BI Ä!I Ä0AI Æ 1H Æ1AI Ç:I È	IÈ0I É IÉI É	I2ÉI-É-I2c                 ó\  — t        | t        «      r*| j                  «       st        dj	                  | «      «      ‚t        | t
        «      r.| j                  d«      dk7  rt        dj	                  | «      «      ‚t        | t        «      rt        dj	                  | «      «      ‚t        | «      S )z§Convert an integer.

  Args:
    value: A scalar value to convert.

  Returns:
    The integer value.

  Raises:
    ParseError: If an integer couldn't be consumed.
  zCouldn't parse integer: {0}Ú r    zCouldn't parse integer: "{0}"z2Bool value {0} is not acceptable for integer field)	rP   rz   Ú
is_integerr   r8   rR   ÚfindrQ   r  )rI   s    r   rý   rý   #  s‘   € ô �”uÔ e×&6Ñ&6Ô&8Ü
Ð3×:Ñ:¸5ÓAÓ
BÐBä�”sÔ §
¡
¨3£°2Ò 5Ü
Ð5×<Ñ<¸UÓCÓ
DÐDä�”tÔÜ
ð %ß%+¡V¨E£]ó4ð 4ô 
ˆU‹Ðr   c                 ó®  — t        | t        «      r³t        j                  | «      rt	        d«      ‚t        j
                  | «      r| dkD  rt	        d«      ‚t	        d«      ‚|j                  t        j                  j                  k(  r<| t        j                  kD  rt	        d«      ‚| t        j                  k  rt	        d«      ‚| dk(  rt	        d«      ‚	 t        | «      S # t        $ rk}| t        k(  rt        d	«      cY d
}~S | t        k(  rt        d«      cY d
}~S | t         k(  rt        d«      cY d
}~S t	        dj#                  | «      «      |‚d
}~ww xY w)z!Convert an floating point number.z,Couldn't parse NaN, use quoted "NaN" insteadr   zICouldn't parse Infinity or value too large, use quoted "Infinity" insteadzKCouldn't parse -Infinity or value too small, use quoted "-Infinity" insteadzFloat value too largezFloat value too smallÚnanz-Couldn't parse float "nan", use "NaN" insteadz-infNÚinfzCouldn't parse float: {0})rP   rz   rs   rw   r   rt   rX   r   r.   ry   r   Ú
_FLOAT_MAXÚ
_FLOAT_MINr\   ru   rv   rx   r8   )rI   r4   rb   s      r   rþ   rþ   <  s,  € ä�”uÔÜ‡z�z�%ÔÜÐFÓGÐGÜ‡z�z�%ÔØ	�ŠÜð 9ó :ð 	:ô ð :ó ;ð 	;à‡~�~œ×3Ñ3×AÑAÒAà	”×)Ñ)Ò	)ÜÐ0Ó1Ð1à	”×)Ñ)Ò	)ÜÐ0Ó1Ð1Ø
ˆe‚^Ü
ÐEÓ
FÐFðJä�‹<ÐøÜ	ò 	Jà”ÒÜ�6‹]ÕØ	”)Ò	Ü�5‹\ÕØ	”$ŠÜ�5‹\ÕäÐ3×:Ñ:¸5ÓAÓBÈÐIûð	Jús<   Ã
C  Ã 	EÃ)EÃ<EÄEÄEÄEÄ.EÄ4EÅEc                 óŒ   — |r&| dk(  ry| dk(  ryt        dj                  | «      «      ‚t        | t        «      st        d«      ‚| S )zÞConvert a boolean value.

  Args:
    value: A scalar value to convert.
    require_str: If True, value must be a str.

  Returns:
    The bool parsed.

  Raises:
    ParseError: If a boolean value couldn't be consumed.
  rJ   TrK   Fz#Expected "true" or "false", not {0}z%Expected true or false without quotes)r   r8   rP   rQ   )rI   r  s     r   rÿ   rÿ   `  sN   € ñ Ø�‚ØØ	�'Ò	ØäÐ<×CÑCÀEÓJÓKÐKä	�Eœ4Ô	 Ü
Ð<Ó
=Ð=Ø	€,r   rƒ   rã   r†   ræ   r�   rê   r–   rè   r‘   rî   )zgoogle.protobuf.Anyzgoogle.protobuf.Durationzgoogle.protobuf.FieldMaskzgoogle.protobuf.ListValuezgoogle.protobuf.Structzgoogle.protobuf.TimestamprÇ   )FFé   FFNNTr˜   )FNéd   )F)8r   Ú
__author__rm   Úcollectionsr   r=   rs   Úoperatorr   ÚreÚgoogle.protobuf.internalr   Úgoogle.protobufr   r   r   Ú	frozensetr.   ÚCPPTYPE_INT32ÚCPPTYPE_UINT32ÚCPPTYPE_INT64ÚCPPTYPE_UINT64rü   rq   ry   ÚCPPTYPE_DOUBLErr   rv   ru   rx   Úcompiler  rÊ   Ú	Exceptionr   r   r   r'   r*   r5   Úobjectr   rC   r�   r€   r²   r®   r  rz   rí   rµ   r×   rý   rþ   rÿ   rE   r   r   r   Ú<module>r&     sA  ðñ
ð +€
ó Ý #Û Û Ý !Û 	å 2Ý &Ý +Ý +ñ ˜
×2Ñ2×@Ñ@Ø"×2Ñ2×AÑAØ"×2Ñ2×@Ñ@Ø"×2Ñ2×AÑAðCó D€
ñ ˜*×4Ñ4×BÑBØ$×4Ñ4×CÑCðEó F€á˜*×4Ñ4×BÑBØ$×4Ñ4×CÑCðEó F€à€	Ø€Ø€à(˜bŸj™jØMóOÐ ð #˜Ÿ
™
Ð#:Ó;Ð ô0ˆIô 0ô/˜5ô /ô)�ô )ð $)Ø %ØØØ ØØØó)Hð\ $)Ø %Ø ØØó#/òL5ôOCˆvô OCòdJòòð" !&ØØ!ó	(ðF %*Ø"Ø"%ó	ð2 �e�€ôaNˆfô aNóH	7:òtò2!JòHð4 6Ø0ð2à!>Ø!9ð!;à"?Ø":ð"<à"AØ"<ð">à;Ø6ð8à"?Ø":ð"<à9Ø4ð6ñ�r   