Ë
    >ØïiP‹  ã                   ó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
Z
ddlmZ ddlmZ ddlmZ d	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$                  j2                  ej$                  j4                  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/e0e1fZ2 G d„ d e)«      Z3d3d!„Z4d"„ Z5d#„ Z6d$„ Z7d%d&gd'd(gd'd(gd)d*gd+d,gd'd(gd-d.gd/œZ8y)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)Úsymbol_databasez%Y-%m-%dT%H:%M:%SÚ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__© ó    úU/var/www/html/aiagents/fe/lib/python3.12/site-packages/google/protobuf/json_format.pyr   r   N   s   „ Ú/r   r   c                   ó   — e Zd ZdZy)ÚSerializeToJsonErrorz&Thrown if serialization to JSON fails.Nr   r   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   V   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.
    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&   Z   s7   € ôD Ø$Ø!ØØØ%ô'€'ð 
×	Ñ	˜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)   …   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   Ú_IsMapEntryr4   «   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)r9   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)r9   r   Úmessage_descriptorrA   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_namer4   r/   Úfields_by_nameÚ
isinstanceÚboolÚstrÚ_FieldToJsonObjectÚlabelr   r-   ÚLABEL_REPEATEDÚis_extensionrA   r   r@   ÚfieldsÚcpp_typeÚCPPTYPE_MESSAGEÚcontaining_oneofÚdefault_valueÚ
ValueErrorr   r7   )r9   r   r>   rV   r3   rH   rL   Úv_fieldÚjs_mapÚkeyÚrecorded_keyÚkrF   Úes                 r   rE   z$_Printer._RegularMessageToJsonObjectÔ   sf  € à×ÑÓ!€Fð8GØ ó ;‰,ˆ%�Ø×+Ò+Ø—‘‰$à—‘ˆ$Ü�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;ð> 
×	,Ò	,Ø$×/Ñ/ÐØ'×.Ñ.ò 	Kˆ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ð%	Kð0 €IùòG&øô> ò GÜ Ø
/×
6Ñ
6°u·z±zÀ1Ó
EóGð GûðGú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                  dk(  r|S t        d«      ‚|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t1        |«      S |j                   t2        v r¨t5        j6                  |«      r|dk  rt8        S t:        S t5        j<                  |«      rt>        S |j                   t        j                  j@                  k(  r@| jB                  rtE        tG        || jB                  «      «      S tI        jJ                  |«      S |S )z<Converts field value according to Proto3 JSON Specification.úgoogle.protobuf.NullValueNÚproto3zKEnum field contains an integer value which can not mapped to an enum value.úutf-8g        )&rW   r   r-   rX   r(   ÚCPPTYPE_ENUMr"   Ú	enum_typerA   Úvalues_by_numberÚgetrL   ÚfileÚsyntaxr   ÚCPPTYPE_STRINGr,   Ú
TYPE_BYTESÚbase64Ú	b64encodeÚdecodeÚCPPTYPE_BOOLrP   Ú_INT64_TYPESrQ   Ú_FLOAT_TYPESÚmathÚisinfÚ_NEG_INFINITYÚ	_INFINITYÚisnanÚ_NANÚCPPTYPE_FLOATr8   Úfloatr7   r   ÚToShortestFloat)r9   r3   rH   Ú
enum_values       r   rR   z_Printer._FieldToJsonObject  sÓ  € à‡~�~œ×3Ñ3×CÑCÒCØ×&Ñ& uÓ-Ð-Ø	�‰œ:×5Ñ5×BÑBÒ	BØ	×	$Ò	$ØˆØ	�‰×	"Ñ	"Ð&AÒ	AØØ—?‘?×3Ñ3×7Ñ7¸¸tÓD€jØ	Ð	Ø�‰Ðà�:‰:×Ñ Ò(Øˆ,Ü"ð $Ló Mð 	Mà	�‰œ:×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.ú@typerH   r   )rK   r   Útype_urlÚ_CreateMessageFromTypeUrlr#   ÚParseFromStringrH   r@   rA   rB   rC   rD   r   rE   )r9   r   r>   r€   Úsub_messagerF   rA   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   ©r9   r   s     r   Ú_GenericMessageToJsonObjectz$_Printer._GenericMessageToJsonObjectT  s   € ð ×ÑÓ!Ð!r   c                 ó  — |j                  d«      }|�|dk(  ry|dk(  r| j                  |j                  «      S |dk(  r|j                  }nt	        ||«      }|j
                  j                  |   }| j                  ||«      S )z>Converts Value message according to Proto3 JSON Specification.ÚkindNÚ
null_valueÚ
list_valueÚstruct_value)Ú
WhichOneofÚ_ListValueMessageToJsonObjectr‹   rŒ   Úgetattrr@   rN   rR   )r9   r   ÚwhichrH   Úoneof_descriptors        r   Ú_ValueMessageToJsonObjectz"_Printer._ValueMessageToJsonObjectZ  sŒ   € à×Ñ˜vÓ&€Eð €}˜ Ò-ØØ�ÒØ×/Ñ/°×0BÑ0BÓCÐCØ�ÒØ×"Ñ"�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’   )r9   r   rH   s      r   rŽ   z&_Printer._ListValueMessageToJsonObjectj  s3   € ð !Ÿ™ö)Øð ×*Ñ*¨5Õ1ò )ð )ùò )s   �*c                 ó^   — |j                   }i }|D ]  }| j                  ||   «      ||<   Œ |S )z?Converts Struct message according to Proto3 JSON Specification.)rV   r’   )r9   r   rV   Úretr^   s        r   Ú_StructMessageToJsonObjectz#_Printer._StructMessageToJsonObjecto  s<   € à�^‰^€FØ
€CØò =ˆØ×/Ñ/°°s±Ó<€cˆ#‚hð=à€Jr   c                 óh   — | j                  |j                  j                  d   |j                  «      S )NrH   )rR   r@   rN   rH   r†   s     r   rC   z$_Printer._WrapperMessageToJsonObjectw  s1   € Ø×"Ñ"Ø×Ñ×)Ñ)¨'Ñ2°G·M±MóCð Cr   ©FFFNN)r   r   r   r   r:   r   r(   rE   rR   r„   r‡   r’   rŽ   r—   rC   r   r   r   r   r   ±   sQ   „ Ù1ð &+Ø"'Ø"ØØóò Kò
	9ò>ò@)òV=ò*"ò<ò )ò
óCr   r   c                 ó4   — | j                   j                  dk(  S )Nzgoogle/protobuf/wrappers.proto)rj   rL   )rF   s    r   rB   rB   |  s   € Ø	×	 Ñ	 ×	%Ñ	%Ð)IÑ	IÐIr   c                 ód   — i }| D ](  \  }}||v rt        dj                  |«      «      ‚|||<   Œ* |S )Nz'Failed to load JSON: duplicate key {0}.)r   r7   )r>   ÚresultrL   rH   s       r   Ú_DuplicateCheckerr�   €  sH   € Ø€&Øò �k€dˆEØˆv�~ÜÐ@×GÑGÈÓMÓNÐNØ€Fˆ4‚Lðð 
€-r   c                 ó  — t        j                  «       }|€|j                  n|}| j                  d«      d   }	 |j	                  |«      }|j                  |«      } |«       S # t
        $ r t        dj                  | «      «      ‚w xY w)z"Creates a message from a type URL.ú/éÿÿÿÿz0Can not find message descriptor by type_url: {0})	r   ÚDefaultÚpoolÚsplitÚFindMessageTypeByNameÚKeyErrorÚ	TypeErrorr7   ÚGetPrototype)r€   r#   Údbr¢   Ú	type_namerF   Úmessage_classs          r   r�   r�   ‰  s“   € ä×ÑÓ €"Ø#Ð+ˆ�Š°€$Ø�n‰n˜SÓ! "Ñ%€)ðMØ×3Ñ3°IÓ>Ðð —/‘/Ð"4Ó5€-Ù	‹Ðøô	 
ò MÜ
Ø:×AÑAÀ(ÓKóMð MðMús   ºA# Á#$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)
rO   rQ   rp   r<   Úloadsr�   r[   r   r7   Ú	ParseDict)Útextr   Úignore_unknown_fieldsr#   Úmax_recursion_depthr>   ra   s          r   ÚParser²   —  s}   € ô. 
�Dœ#Ô	Ø�;‰;�wÓ€DðAÜ	�‰�DÔ,=Ô	>€Bô 
�2�wÐ 5°Ø&ó
(ð (øô 
ò AÜ
Ð0×7Ñ7¼¸A»Ó?Ó
@Ð@ûðAús   £A Á	A>Á#A9Á9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)r9   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   r7   r@   rA   rL   rB   Ú_ConvertWrapperMessagerD   r   Ú_ConvertFieldValuePair)r9   rH   r   ÚpathrF   rA   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        $ rB}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+   )rM   )Ú.0Úfs     r   ú	<genexpr>z1_Parser._ConvertFieldValuePair.<locals>.<genexpr>  s#   è ø€ ò CØ#$ð !"§¡¨QÔ/ñ Cù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   rc   ú{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}.).r@   ÚdictrV   ri   rN   Ú_VALID_EXTENSION_NAMEÚmatchÚis_extendabler   r7   rA   Ú
ExtensionsÚ_FindExtensionByNameÚjoinr£   r°   rM   ÚappendrY   rL   rW   r   r-   rX   r/   r�   rŠ   rf   rg   ÚsetattrÚ
ClearFieldr4   Ú_ConvertMapFieldValuerS   rT   rO   ÚlistÚ	enumerateÚaddr¶   Ú_ConvertScalarFieldValuerU   ÚSetInParentrQ   r[   r¦   )r9   r>   r   rÀ   ÚnamesrF   Úfields_by_json_namerL   r3   Ú
identifierrÄ   rH   Ú
oneof_namerƒ   ÚindexÚitemra   s                    r   r¿   z_Parser._ConvertFieldValuePairù  sô  € ð €EØ ×+Ñ+ÐÜñ CØ(:×(AÑ(AôCó CÐàó qLˆðpLØ#×'Ñ'¨¨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 A�A—K“KÒ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ä(¨Ó/ò 	L‘��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ò	Lô  )¨Ó/ò N‘��tØ�Ü ð "HßHNÉØ%)¨4°óI8ó9ð 9ô �g˜uŸz™zÓ*×1Ñ1Ü*Ø˜E >×#8Ñ#8¸¸tÀUÓ#KóMõNñNð �^‰^œ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qLùò8 DøôZ ò #Ù�U×+Ñ+Ð3ÜÐ<×CÑCÀDÈ!ÓLÓMÐ
Mäœ3˜q›6Ó"Ð
"ûÜò LÜÐ:×AÑAÀ$ÈÓJÓKÐKûÜò LÜÐ:×AÑAÀ$ÈÓJÓKÐKûðLúsP   ²C&WÄ+WÅWÅFWË*KW×W×	Y+×=XØY+Ø$X?Ø?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	                  |«      «      ‚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}rH   ú	{0}.valuer½   )rO   rÉ   r¥   r   r7   r�   r#   r¦   r@   rA   rB   r¾   rD   r   r¿   ÚSerializeToStringrH   r€   )	r9   rH   r   rÀ   r€   rƒ   ra   rF   rA   s	            r   Ú_ConvertAnyMessagez_Parser._ConvertAnyMessage{  sP  € ä�%œÔ¡uØðKØ�w‘€hð
5Ü-¨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Õøô/ ò KÜØ
<×
CÑ
CÀDÓ
IóKð KðKûô ò 5Ü�|×*Ñ*¨1¨dÓ3Ó4Ð4ûð5ús"   •C+ ›D Ã+$DÄ	D;ÄD6Ä6D;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   r7   )r9   rH   r   rÀ   ra   s        r   Ú_ConvertGenericMessagez_Parser._ConvertGenericMessageš  s=   € ð5Ø×Ñ˜UÕ#øÜò 5Ü�|×*Ñ*¨1¨dÓ3Ó4Ð4ûð5ús   ‚ ”	=�8¸=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})rO   rÉ   Ú_ConvertStructMessagerŒ   rÔ   Ú_ConvertListValueMessager‹   rŠ   rP   Ú
bool_valuerQ   Ústring_valueÚ_INT_OR_FLOATÚnumber_valuer   r7   r,   )r9   rH   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)	rO   rÔ   r   r7   rÒ   rÕ   rî   r”   rÖ   )r9   rH   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)rO   rÉ   r   r7   ÚClearrî   rV   )r9   rH   r   rÀ   r^   s        r   rè   z_Parser._ConvertStructMessage¿  sz   € ä�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.rH   rá   ©rÀ   N)r@   rN   rÑ   r×   r7   )r9   rH   r   rÀ   r3   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^   rH   z{0}.keyTrð   rô   N)rO   rÉ   r   r7   rL   r/   rN   r×   rW   r   r-   rX   r¶   r�   )	r9   rH   r   r3   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Øò 	NˆÜ*¨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Ò/ñ	Nr   N)r   r   r   r   r:   r¶   r¿   rã   ræ   rî   ré   rè   r¾   rÓ   r   r   r   rµ   rµ   Ô  s=   „ Ù0òòò6@LòD ò>5ò%ò$@òò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«      }|€J|j<                  j>                  dk(  r|S t)        dj9                  | |j,                  j:                  «      «      ‚|j@                  S y# t6        $ r0 t)        dj9                  | |j,                  j:                  «      «      ‚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}rd   rà   )!rW   Ú
_INT_TYPESÚ_ConvertIntegerrs   Ú_ConvertFloatr   r-   rq   Ú_ConvertBoolrl   r,   rm   rO   rQ   ÚencodeÚlenrn   Úurlsafe_b64decodeÚ_UNPAIRED_SURROGATE_PATTERNÚsearchr   rf   rg   Úvalues_by_nameri   Úintrh   r[   r7   rA   rj   rk   Únumber)	rH   r3   rÀ   Úrequire_strÚencodedÚpadded_valuer}   r  ra   s	            r   r×   r×   ñ  s  € ð(3Ø‡~�~œÑ#Ü˜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Ø	Ð	ð	1Ü�u“:ˆ&Ø—‘×7Ñ7×;Ñ;¸FÀDÓIˆ*ð ÐØ�Z‰Z×Ñ (Ò*àˆMÜÐE×LÑLØ�U—_‘_×.Ñ.ó0ó 1ð 1à×ÑÐð! 
Cøô ò 	1ÜÐE×LÑLØ�U—_‘_×.Ñ.ó0ó 1ð 1ð	1ûô 
ò 3Ü
�\×(Ñ(¨¨DÓ1Ó
2Ð2ûð3úsS   ‚I ŸI ½2I Á0BI Ä!I Ä0AI Æ 1H
 Æ1I Ç:I È
9IÉI É	I/ÉI*É*I/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)	rO   r{   Ú
is_integerr   r7   rQ   ÚfindrP   r  )rH   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        $ r] | t        k(  rt        d	«      cY S | t        k(  rt        d
«      cY S | t         k(  rt        d«      cY S t	        dj#                  | «      «      ‚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-infÚinfzCouldn't parse float: {0})rO   r{   rt   rx   r   ru   rW   r   r-   rz   r   Ú
_FLOAT_MAXÚ
_FLOAT_MINr[   rv   rw   ry   r7   )rH   r3   s     r   rþ   rþ   D  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ðCä�‹<ÐøÜ	ò 	Cà”ÒÜ�6‹]ÒØ	”)Ò	Ü�5‹\ÒØ	”$ŠÜ�5‹\ÒäÐ3×:Ñ:¸5ÓAÓBÐBð	Cús   Ã
C  Ã EÃ?EÄ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.
  rI   TrJ   Fz#Expected "true" or "false", not {0}z%Expected true or false without quotes)r   r7   rO   rP   )rH   r  s     r   rÿ   rÿ   h  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)9r   Ú
__author__rn   Úcollectionsr   r<   rt   Úoperatorr   ÚreÚsysÚgoogle.protobuf.internalr   Úgoogle.protobufr   r   Ú_TIMESTAMPFOMATÚ	frozensetr-   ÚCPPTYPE_INT32ÚCPPTYPE_UINT32ÚCPPTYPE_INT64ÚCPPTYPE_UINT64rü   rr   rz   ÚCPPTYPE_DOUBLErs   rw   rv   ry   Úcompiler  rÊ   Ú	Exceptionr   r   r   r&   r)   r4   Úobjectr   rB   r�   r�   r²   r®   r  r{   rì   rµ   r×   rý   rþ   rÿ   rD   r   r   r   ú<module>r(     sF  ðñ>
ð +€
ó Ý #Û Û Ý !Û 	Û 
å 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ðZ $)Ø %Ø ØØó#/òL5ôHCˆvô HCòVJòòð  !&ØØ!ó	(ðF %*Ø"Ø"%ó	ð2 �e�€ôZNˆfô ZNóz73òtò2!CòHð4 6Ø0ð2à!>Ø!9ð!;à"?Ø":ð"<à"AØ"<ð">à;Ø6ð8à"?Ø":ð"<à9Ø4ð6ñ�r   