o
    ‹¨Êhw  ã                   @   s  d Z dZzddlmZ W n ey   ddlmZ Y nw ddl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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jejjgƒZd	Zd
ZdZe  e !d¡¡Z"e  d¡Z#G dd„ de$ƒZ%G dd„ de%ƒZ&G dd„ de%ƒZ'						d=dd„Z(				d>dd„Z)dd„ Z*G dd„ de+ƒZ,dd„ Z-d d!„ Z.d"d#„ Z/d?d$d%„Z0		d?d&d'„Z1ej2e3f Z4G d(d)„ d)e+ƒZ5d@d*d+„Z6d,d-„ Z7d.d/„ Z8d0d1„ Z9d2d3gd4d5gd4d5gd6d7gd8d9gd4d5gd:d;gd<œZ:dS )Aat  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)é    )ÚOrderedDictN)Úmethodcaller)Ú
descriptor)Úsymbol_databasez%Y-%m-%dT%H:%M:%SÚInfinityz	-InfinityÚNaNzF[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]z\[[a-zA-Z0-9\._]*\]$c                   @   ó   e Zd ZdZdS )ÚErrorz'Top-level module error for json_format.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   úM/var/www/html/env/lib/python3.10/site-packages/google/protobuf/json_format.pyr	   W   ó    r	   c                   @   r   )ÚSerializeToJsonErrorz&Thrown if serialization to JSON fails.Nr
   r   r   r   r   r   [   r   r   c                   @   r   )Ú
ParseErrorz Thrown in case of parsing error.Nr
   r   r   r   r   r   _   r   r   Fé   c                 C   s   t ||||ƒ}| | ||¡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.

  Returns:
    A string containing the JSON formatted protocol buffer message.
  )Ú_PrinterÚToJsonString)ÚmessageÚincluding_default_value_fieldsÚpreserving_proto_field_nameÚindentÚ	sort_keysÚuse_integers_for_enumsÚdescriptor_poolÚprinterr   r   r   ÚMessageToJsonc   s   ür   c                 C   s   t ||||ƒ}| | ¡S )at  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.

  Returns:
    A dict representation of the protocol buffer message.
  )r   Ú_MessageToJsonObject)r   r   r   r   r   r   r   r   r   ÚMessageToDictˆ   s   ü
r!   c                 C   s"   | j tjjko| jjo| j ¡ jS ©N)Útyper   ÚFieldDescriptorÚTYPE_MESSAGEÚmessage_typeÚhas_optionsÚ
GetOptionsÚ	map_entry)Úfieldr   r   r   Ú_IsMapEntry«   s
   ÿ
þr+   c                   @   sr   e Zd ZdZ				ddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )r   z)JSON format printer for protocol message.FNc                 C   s   || _ || _|| _|| _d S r"   )r   r   r   r   )Úselfr   r   r   r   r   r   r   Ú__init__´   s   
z_Printer.__init__c                 C   s   |   |¡}tj|||d�S )N)r   r   )r    ÚjsonÚdumps)r,   r   r   r   Újsr   r   r   r   ¿   s   
z_Printer.ToJsonStringc                 C   sL   |j }|j}t|ƒr|  |¡S |tv rtt| d |ƒ| ƒS i }|  ||¡S )zEConverts message to an object according to Proto3 JSON Specification.r   )Ú
DESCRIPTORÚ	full_nameÚ_IsWrapperMessageÚ_WrapperMessageToJsonObjectÚ_WKTJSONMETHODSr   Ú_RegularMessageToJsonObject)r,   r   Úmessage_descriptorr2   r0   r   r   r   r    Ã   s   
z_Printer._MessageToJsonObjectc              
      sæ  |  ¡ }zÙ|D ]…\‰ }ˆjrˆ j}nˆ j}tˆ ƒrDˆ jjd }i }|D ]}t|tƒr2|r/d}	nd}	n|}	ˆ 	||| ¡||	< q#|||< qˆ j
tjjkrX‡ ‡fdd„|D ƒ||< qˆ jr„ˆ }
|
j ¡ jrt|
jtjjkrt|
j
tjjkrt|
j}
d|
j|f }ˆ 	ˆ |¡||< qˆ 	ˆ |¡||< qˆjrØ|j}|jD ]D‰ ˆ j
tjjkr¦ˆ jtjjks©ˆ jrªq–ˆjr±ˆ j}nˆ j}||v r¹q–tˆ ƒrÂi ||< q–ˆ j
tjjkrÎg ||< q–ˆ 	ˆ ˆ j¡||< q–W |S W |S  tyò } z	td ˆ j|¡ƒ‚d}~ww )	z?Converts normal message according to Proto3 JSON Specification.ÚvalueÚtrueÚfalsec                    s   g | ]}ˆ  ˆ |¡‘qS r   )Ú_FieldToJsonObject)Ú.0Úk©r*   r,   r   r   Ú
<listcomp>é   s    ÿz8_Printer._RegularMessageToJsonObject.<locals>.<listcomp>z[%s.%s]z#Failed to serialize {0} field: {1}.N) Ú
ListFieldsr   ÚnameÚ	json_namer+   r&   Úfields_by_nameÚ
isinstanceÚboolr;   Úlabelr   r$   ÚLABEL_REPEATEDÚis_extensionÚcontaining_typer(   Úmessage_set_wire_formatr#   r%   ÚLABEL_OPTIONALr2   r   r1   ÚfieldsÚcpp_typeÚCPPTYPE_MESSAGEÚcontaining_oneofÚdefault_valueÚ
ValueErrorr   Úformat)r,   r   r0   rL   r8   rA   Úv_fieldÚjs_mapÚkeyÚrecorded_keyÚfr7   Úer   r>   r   r6   Î   sx   

ÿ
ÿ
ÿ

ìèüÿ€ÿz$_Printer._RegularMessageToJsonObjectc                 C   sô   |j tjjkr|  |¡S |j tjjkr3| jr|S |jj 	|d¡}|dur'|j
S |jjdkr/|S tdƒ‚|j tjjkrK|jtjjkrIt |¡ d¡S |S |j tjjkrVt|ƒS |j tv r_t|ƒS |j tv rxt |¡rq|dk rotS tS t |¡rxtS |S )z<Converts field value according to Proto3 JSON Specification.NÚproto3zKEnum field contains an integer value which can not mapped to an enum value.úutf-8g        )rM   r   r$   rN   r    ÚCPPTYPE_ENUMr   Ú	enum_typeÚvalues_by_numberÚgetrA   ÚfileÚsyntaxr   ÚCPPTYPE_STRINGr#   Ú
TYPE_BYTESÚbase64Ú	b64encodeÚdecodeÚCPPTYPE_BOOLrE   Ú_INT64_TYPESÚstrÚ_FLOAT_TYPESÚmathÚisinfÚ_NEG_INFINITYÚ	_INFINITYÚisnanÚ_NAN)r,   r*   r8   Ú
enum_valuer   r   r   r;     s6   




z_Printer._FieldToJsonObjectc                 C   s�   |  ¡ si S tƒ }|j}||d< t|| jƒ}| |j¡ |j}|j}t	|ƒr/|  
|¡|d< |S |tv rBtt| d |ƒ| ƒ|d< |S |  ||¡S )z<Converts Any message according to Proto3 JSON Specification.ú@typer8   r   )r@   r   Útype_urlÚ_CreateMessageFromTypeUrlr   ÚParseFromStringr8   r1   r2   r3   r4   r5   r   r6   )r,   r   r0   rr   Úsub_messager7   r2   r   r   r   Ú_AnyMessageToJsonObject6  s(   ÿÿz _Printer._AnyMessageToJsonObjectc                 C   s   |  ¡ S )z8Converts message according to Proto3 JSON Specification.)r   ©r,   r   r   r   r   Ú_GenericMessageToJsonObjectK  s   z$_Printer._GenericMessageToJsonObjectc                 C   sd   |  d¡}|du s|dkrdS |dkr|  |j¡S |dkr!|j}nt||ƒ}|jj| }|  ||¡S )z>Converts Value message according to Proto3 JSON Specification.ÚkindNÚ
null_valueÚ
list_valueÚstruct_value)Ú
WhichOneofÚ_ListValueMessageToJsonObjectr{   r|   Úgetattrr1   rC   r;   )r,   r   Úwhichr8   Úoneof_descriptorr   r   r   Ú_ValueMessageToJsonObjectQ  s   

z"_Printer._ValueMessageToJsonObjectc                    s   ‡ fdd„|j D ƒS )zBConverts ListValue message according to Proto3 JSON Specification.c                    s   g | ]}ˆ   |¡‘qS r   )r‚   )r<   r8   ©r,   r   r   r?   c  s    ÿz:_Printer._ListValueMessageToJsonObject.<locals>.<listcomp>)Úvaluesrw   r   rƒ   r   r~   a  s   
ÿz&_Printer._ListValueMessageToJsonObjectc                 C   s*   |j }i }|D ]}|  || ¡||< q|S )z?Converts Struct message according to Proto3 JSON Specification.)rL   r‚   )r,   r   rL   ÚretrU   r   r   r   Ú_StructMessageToJsonObjectf  s
   z#_Printer._StructMessageToJsonObjectc                 C   s   |   |jjd |j¡S )Nr8   )r;   r1   rC   r8   rw   r   r   r   r4   n  s   ÿz$_Printer._WrapperMessageToJsonObject©FFFN)r   r   r   r   r-   r   r    r6   r;   rv   rx   r‚   r~   r†   r4   r   r   r   r   r   ±   s"    
ûE#r   c                 C   s   | j jdkS )Nzgoogle/protobuf/wrappers.proto)r_   rA   )r7   r   r   r   r3   s  s   r3   c                 C   s4   i }| D ]\}}||v rt d |¡ƒ‚|||< q|S )Nz'Failed to load JSON: duplicate key {0}.)r   rR   )r0   ÚresultrA   r8   r   r   r   Ú_DuplicateCheckerw  s   
r‰   c                 C   sd   t  ¡ }|du r|jn|}|  d¡d }z| |¡}W n ty)   td | ¡ƒ‚w | |¡}|ƒ S )z"Creates a message from a type URL.Nú/éÿÿÿÿz1Can not find message descriptor by type_url: {0}.)	r   ÚDefaultÚpoolÚsplitÚFindMessageTypeByNameÚKeyErrorÚ	TypeErrorrR   ÚGetPrototype)rr   r   Údbr�   Ú	type_namer7   Úmessage_classr   r   r   rs   €  s   ÿÿ
rs   c              
   C   sb   t | tjƒs|  d¡} z	tj| td�}W n ty) } z	td 	t
|ƒ¡ƒ‚d}~ww t||||ƒS )a¿  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.

  Returns:
    The same message passed as argument.

  Raises::
    ParseError: On JSON parsing problems.
  rZ   )Úobject_pairs_hookzFailed to load JSON: {0}.N)rD   ÚsixÚ	text_typere   r.   Úloadsr‰   rQ   r   rR   rh   Ú	ParseDict)Útextr   Úignore_unknown_fieldsr   r0   rX   r   r   r   ÚParseŽ  s   €ÿr�   c                 C   s   t ||ƒ}| | |¡ |S )a‰  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.

  Returns:
    The same message passed as argument.
  )Ú_ParserÚConvertMessage)Újs_dictr   rœ   r   Úparserr   r   r   rš   ¦  s   
rš   c                   @   s`   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )rž   z(JSON format parser for protocol message.c                 C   s   || _ || _d S r"   )rœ   r   )r,   rœ   r   r   r   r   r-   Á  s   
z_Parser.__init__c                 C   sX   |j }|j}t|ƒr|  ||¡ dS |tv r$tt| d ||ƒ| ƒ dS |  ||¡ dS )zÒConvert a JSON object into a message.

    Args:
      value: A JSON object.
      message: A WKT or regular protocol message to record the data.

    Raises:
      ParseError: In case of convert problems.
    é   N)r1   r2   r3   Ú_ConvertWrapperMessager5   r   Ú_ConvertFieldValuePair)r,   r8   r   r7   r2   r   r   r   rŸ   Å  s   
z_Parser.ConvertMessagec                 C   s\  g }|j }tdd„ |jD ƒƒ}|D �]™}�zJ| |d¡}|s%|j |d¡}|sOt |¡rO|js7td 	|j
¡ƒ‚|dd… }d | d¡dd… ¡}|j |¡}|sf| jrVW qtd 	|j
|d	d
„ |jD ƒ¡ƒ‚||v rttd 	|j j
|¡ƒ‚| |¡ |jdur•|jj}	|	|v r�td 	|j j
|	¡ƒ‚| |	¡ || }
|
du r¼|jtjjkr´|jj
dkr´t||jƒ}d|_n| |j¡ W qt|ƒrÎ| |j¡ |  |
||¡ n�|jtjjk�r1| |j¡ t|
t ƒsétd 	||
¡ƒ‚|jtjjk�r|
D ] }t||jƒ !¡ }|du �r|j j
dk�rtdƒ‚|  "||¡ qónI|
D ]}|du �r"tdƒ‚t||jƒ t#||ƒ¡ �qn-|jtjjk�rT|j$�rC|j| }nt||jƒ}| %¡  |  "|
|¡ n
t&||jt#|
|ƒƒ W q t�yƒ } z|�ry|jdu �rytd 	||¡ƒ‚tt'|ƒƒ‚d}~w t(�y— } ztd 	||¡ƒ‚d}~w t)�y« } ztd 	||¡ƒ‚d}~ww dS )zö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.

    Raises:
      ParseError: In case of problems converting.
    c                 s   s   � | ]}|j |fV  qd S r"   ©rB   ©r<   rW   r   r   r   Ú	<genexpr>ä  s   € ÿz1_Parser._ConvertFieldValuePair.<locals>.<genexpr>Nz)Message type {0} does not have extensionsr¢   r‹   Ú.zVMessage type "{0}" has no field named "{1}".
 Available Fields(except extensions): {2}c                 S   s   g | ]}|j ‘qS r   r¥   r¦   r   r   r   r?   û  s    z2_Parser._ConvertFieldValuePair.<locals>.<listcomp>z9Message type "{0}" should not have multiple "{1}" fields.z?Message type "{0}" should not have multiple "{1}" oneof fields.úgoogle.protobuf.Valuer   z.repeated field {0} must be in [] which is {1}.zAnull is not allowed to be used as an element in a repeated field.zFailed to parse {0} field: {1}zFailed to parse {0} field: {1}.)*r1   ÚdictrL   r^   rC   Ú_VALID_EXTENSION_NAMEÚmatchÚis_extendabler   rR   r2   ÚjoinrŽ   Ú
ExtensionsÚ_FindExtensionByNamerœ   ÚappendrO   rA   rM   r   r$   rN   r&   r   rz   Ú
ClearFieldr+   Ú_ConvertMapFieldValuerF   rG   rD   ÚlistÚaddrŸ   Ú_ConvertScalarFieldValuerH   ÚSetInParentÚsetattrrh   rQ   r‘   )r,   r0   r   Únamesr7   Úfields_by_json_namerA   r*   Ú
identifierÚ
oneof_namer8   ru   ÚitemrX   r   r   r   r¤   Ø  sÂ   
ÿ
ÿþþÿÿ

ÿÿ

ÿ
ù

ÿü€€€€ÿ§z_Parser._ConvertFieldValuePairc                 C   s¼   t |tƒr	|s	dS z|d }W n ty   tdƒ‚w t|| jƒ}|j}|j}t|ƒr4|  	|d |¡ n |t
v rGtt
| d |d |ƒ| ƒ n|d= |  ||¡ ||d< | ¡ |_||_dS )z/Convert a JSON representation into Any message.Nrq   z*@type is missing when parsing any message.r8   r¢   )rD   rª   r�   r   rs   r   r1   r2   r3   r£   r5   r   r¤   ÚSerializeToStringr8   rr   )r,   r8   r   rr   ru   r7   r2   r   r   r   Ú_ConvertAnyMessageB  s.   ÿÿÿ

z_Parser._ConvertAnyMessagec                 C   s   |  |¡ dS )z?Convert a JSON representation into message with FromJsonString.N)ÚFromJsonString©r,   r8   r   r   r   r   Ú_ConvertGenericMessage[  s   z_Parser._ConvertGenericMessagec                 C   s�   t |tƒr|  ||j¡ dS t |tƒr|  ||j¡ dS |du r%d|_dS t |tƒr/||_	dS t |t
jƒr:||_dS t |tƒrD||_dS tdƒ‚)z1Convert a JSON representation into Value message.Nr   z"Unexpected type for Value message.)rD   rª   Ú_ConvertStructMessager|   r´   Ú_ConvertListValueMessager{   rz   rE   Ú
bool_valuer—   Ústring_typesÚstring_valueÚ_INT_OR_FLOATÚnumber_valuer   rÁ   r   r   r   Ú_ConvertValueMessagea  s   







z_Parser._ConvertValueMessagec                 C   sB   t |tƒstd |¡ƒ‚| d¡ |D ]}|  ||j ¡ ¡ qdS )z5Convert a JSON representation into ListValue message.z%ListValue must be in [] which is {0}.r„   N)rD   r´   r   rR   r²   rÊ   r„   rµ   )r,   r8   r   r½   r   r   r   rÄ   r  s   
ÿ
ÿz _Parser._ConvertListValueMessagec                 C   sD   t |tƒstd |¡ƒ‚| ¡  |D ]}|  || |j| ¡ qdS )z2Convert a JSON representation into Struct message.z&Struct must be in a dict which is {0}.N)rD   rª   r   rR   ÚClearrÊ   rL   )r,   r8   r   rU   r   r   r   rÃ   {  s   
ÿz_Parser._ConvertStructMessagec                 C   s"   |j jd }t|dt||ƒƒ dS )z3Convert a JSON representation into Wrapper message.r8   N)r1   rC   r¸   r¶   )r,   r8   r   r*   r   r   r   r£   ‡  s   z_Parser._ConvertWrapperMessagec                 C   s”   t |tƒstd |j|¡ƒ‚|jjd }|jjd }|D ]+}t||dƒ}|jt	j
jkr:|  || t||jƒ| ¡ qt|| |ƒt||jƒ|< qdS )a5  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.

    Raises:
      ParseError: In case of convert problems.
    z-Map field {0} must be in a dict which is {1}.rU   r8   TN)rD   rª   r   rR   rA   r&   rC   r¶   rM   r   r$   rN   rŸ   r   )r,   r8   r   r*   Ú	key_fieldÚvalue_fieldrU   Ú	key_valuer   r   r   r³   Œ  s(   
ÿÿÿÿÿúz_Parser._ConvertMapFieldValueN)r   r   r   r   r-   rŸ   r¤   r¿   rÂ   rÊ   rÄ   rÃ   r£   r³   r   r   r   r   rž   ¾  s    j	rž   c                 C   s  |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r1t | ¡S t | ¡r:tdƒ‚| S |j tjjkrˆ|jj | d¡}|du r…zt| ƒ}|jj |d¡}W n tyn   td | |jj¡ƒ‚w |du r…|jjdkr{|S td | |jj¡ƒ‚|jS dS )aB  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.
    require_str: If True, the field value must be a str.

  Returns:
    The converted scalar field value

  Raises:
    ParseError: In case of convert problems.
  zUnpaired surrogateNz)Invalid enum value {0} for enum type {1}.rY   )rM   Ú
_INT_TYPESÚ_ConvertIntegerri   Ú_ConvertFloatr   r$   rf   Ú_ConvertBoolra   r#   rb   rc   Ú	b64decodeÚ_UNPAIRED_SURROGATE_PATTERNÚsearchr   r[   r\   Úvalues_by_namer^   Úintr]   rQ   rR   r2   r_   r`   Únumber)r8   r*   Úrequire_strrp   rØ   r   r   r   r¶   §  s>   




ÿÿÿðr¶   c                 C   sP   t | tƒr|  ¡ std | ¡ƒ‚t | tjƒr$|  d¡dkr$td | ¡ƒ‚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}".)	rD   ÚfloatÚ
is_integerr   rR   r—   r˜   Úfindr×   ©r8   r   r   r   rÐ   ×  s
   rÐ   c                 C   st   | dkrt dƒ‚zt| ƒW S  ty9   | tkrtdƒ Y S | tkr(tdƒ Y S | tkr2tdƒ Y S t d | ¡ƒ‚w )z!Convert an floating point number.Únanz.Couldn't parse float "nan", use "NaN" instead.z-infÚinfzCouldn't parse float: {0}.)r   rÛ   rQ   rl   rm   ro   rR   rÞ   r   r   r   rÑ   ì  s   
÷rÑ   c                 C   s@   |r| dkrdS | dkrdS t d | ¡ƒ‚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.
  r9   Tr:   Fz$Expected "true" or "false", not {0}.z&Expected true or false without quotes.)r   rR   rD   rE   )r8   rÙ   r   r   r   rÒ   ÿ  s   
rÒ   rv   r¿   rx   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©   )FFr   FFNr‡   )FN)F);r   Ú
__author__Úcollectionsr   ÚImportErrorÚordereddictrc   r.   rj   Úoperatorr   ÚreÚsysr—   Úgoogle.protobufr   r   Ú_TIMESTAMPFOMATÚ	frozensetr$   ÚCPPTYPE_INT32ÚCPPTYPE_UINT32ÚCPPTYPE_INT64ÚCPPTYPE_UINT64rÏ   rg   ÚCPPTYPE_FLOATÚCPPTYPE_DOUBLEri   rm   rl   ro   ÚcompileÚurÔ   r«   Ú	Exceptionr	   r   r   r   r!   r+   Úobjectr   r3   r‰   rs   r�   rš   Úinteger_typesrÛ   rÈ   rž   r¶   rÐ   rÑ   rÒ   r5   r   r   r   r   Ú<module>   s²   ÿýÿÿÿ

ù'
û# C	

ý 
j0ÿÿÿÿÿÿÿ
ó